Установите PDFViewCtrl прокрутки до абсолютной позиции в документе
Я использую Android версию PDFNet 6.5.0.
Мне нужно установить вертикальную прокрутку PDFViewCtrl в абсолютную точку в PDF, выраженную в координатах PDF Canvas.
Например, скажите, что я хочу увеличить середину второй страницы.
Я мог бы получить координату Y, в позиции PDF Canvas, как:
int y = doc.getPage(1).getPageHeight() + (doc.getPage(2).getPageHeight() / 2)
Как я мог прокрутить в позицию у?
Я пытаюсь сделать это с PDFViewCtrl#setVScrollPos()
, но я не знаю, как конвертировать y
действительный параметр для этого метода.
2 ответа
Вы пытались использовать PDFViewCtrl#scrollTo(int, int)?
т.е. сначала преобразуйте точки из пространства PDF в пространство холста (PDFViewCtrl#convPagePtToCanvasPt), затем прокрутите до позиции.
Хотя я принял ответ Ширли Джи, я публикую этот другой ответ для разъяснения.
Хитрый бит - это какой номер передать в качестве параметра PDFViewCtrl#setVScrollPos(int)
или же PDFViewCtrl#scrollTo(int, int)
Вам необходимо использовать PDFViewCtrl#convPagePtToScreenPt() для преобразования положения страницы в физическую точку экрана.
Но вам также нужно учитывать текущее смещение прокрутки в представлении прокрутки pdfViewCtrl#getVScrollPos()
Итак, если вы хотите, чтобы перейти к verticalPosition
в page
:
public void scrollToDocPosition( final int verticalPosition, final int page) {
double[] screenPos = pdfViewCtrl.convPagePtToScreenPt(0, verticalPosition, page);
pdfViewCtrl.setVScrollPos((int) screenPos[1] + pdfViewCtrl.getVScrollPos());
}
Я пришел к этому благодаря https://groups.google.com/forum/?fromgroups#!searchin/pdfnet-sdk/scroll/pdfnet-sdk/7Wy00goWfyQ/t1tvApNDrr8J, где Томас Хоффман объясняет:
Первое, на что нужно обратить внимание - это положение прокрутки. y после преобразования находится в пространстве экрана, а SetX/YScrollPos находится в координатах средства просмотра прокрутки. То есть верхний левый угол PDFViewCtrl находится в позиции (0, 0) в пространстве экрана, но в позиции (GetHScrollPos и GetVScrollPos) в координатах прокрутки