как перейти на страницу рендера pdf - PullRequest
0 голосов
/ 07 июня 2019

Я использую pdfobject вместе с forcePDFJS, который использует pdfjs viewer.js для рендеринга PDF-файлов. После того, как они отрендерены, мне нужно иметь возможность переходить на страницы без перезагрузки документа. Документы могут быть довольно большими

Я видел некоторые упоминания об использовании PDFApplicationViewer.pdfview.currentPageNumber. но я не видел хороший пример того, как его использовать correclty

Я видел два примера использования PDFApplicationViewer 1. PDFApplicationViewer.pdfview.currentPageNumber = pagNum; 2. document.getElementById ('mycanvas'). ContentWindow.PDFApplicationViewer.pdfview.currentPageNumber = pagNum;

Хотя второй вариант имеет больше смысла, я не уверен, откуда берется объект contentWindow из элемента. Я предполагаю, что pdfobject встраивает что-то, что я тоже могу получить, но не могу понять ...

Кроме того, так как я не мог действительно найти много на этом .. Это даже возможно ..

Из-за нехватки времени я не хочу собирать новую программу просмотра с использованием pdfjs .. Мне нравится то, что поставляется с viewer.html .. Мне просто нужно переходить по страницам без перезагрузки

1 Ответ

0 голосов
/ 07 июня 2019

PDFObject.embed не возвращает никаких ссылок. Поэтому я заглянул в код pdfObject, чтобы увидеть, как он встраивает pdf.

, чтобы это работало, должен быть iframe. Поэтому при рендеринге с pdfobject Im использую конфигурацию следующим образом:

Уведомление forcePDFJS = true

    if(!pageNum)
    pageNum=1;
var options = {
    pdfOpenParams: {
        view: "FitV",
        page: pageNum               
    },
    forcePDFJS: true,
    PDFJS_URL: "../pdfjs/web/viewer.html"
};

Вот код, который работает

var pdfviewer = document.getElementById('pdfviewer');//get the viewer element
var contenttag =  pdfviewer.getElementsByTagName("iframe")[0]//got this from pdfobject code
contenttag.contentWindow.PDFViewerApplication.pdfViewer.currentPageNumber = parseInt(pageNum);//change the page
...