如何跳至呈现的pdf页面

时间:2019-06-07 15:44:13

标签: javascript pdfjs pdfobject

我将pdfobject与forcePDFJS一起使用,forcePDFJS使用pdfjs viewer.js来呈现pdf。一旦呈现,我需要能够跳转到页面而无需重新加载文档。文档可能非常大

我已经看到有关使用PDFApplicationViewer.pdfview.currentPageNumber的一些提及。但我还没有看到如何正确使用它的好例子

我已经看到了两个使用PDFApplicationViewer的示例 1. PDFApplicationViewer.pdfview.currentPageNumber = pagNum; 2. document.getElementById('mycanvas')。contentWindow.PDFApplicationViewer.pdfview.currentPageNumber = pagNum;

虽然认为第二个更有意义,但我不确定该元素的contentWindow对象来自何处。我以为pdfobject嵌入了一些我也可以访问的东西,但我不知道。.

而且,因为我真的找不到很多..这甚至有可能..

出于时间限制的原因,我不想使用pdfjs组装新的查看器。我喜欢viewer.html附带的内容。我只需要跳过页面而无需重新加载

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

就我而言,pdfviewer ID不再可用。

PDFObject确实返回其创建的iframe的引用。我使用的是基本的HTML + JS,因此必须将对引用的引用保存为全局window对象,以便能够从项目中的任何位置访问它。

Code screenshot

最后,有了引用,我们可以如下访问PDFViewerApplication对象并操作PDF:

enter image description here