9

根据 Mozilla 的 pdfjs 插件,我可以通过将查询参数传递给viewer.html来查看我的 pdf,如下所示:

http://localhost/MyProject/viewer.html/?file=file.pdf

这工作正常。但我有一些不同的要求。我的项目中的要求是我需要在单个页面上有标签之类的功能。每个选项卡都包含一个 pdf 文件。

所以,我想把所有代码都viewer.js变成一个大函数。这样我就可以将它用作构造函数来渲染每个 pdf 文件。像这样的东西:

var firstPdf = new paintPdf({file: 'myfile.pdf'});

无论如何,当我能够在我的项目中成功集成 pdfjs 的查看器功能时,我决定稍后进行上述更改。

我的项目总结

  • 单页应用
  • 所有模板都保存在名称对象内的单个文件中 -templates

为此,首先,我复制了 body 标记内的所有 html,viewer.html并将其作为新属性附加到templates对象。然后我将示例中的所有必要和依赖文件复制到我的项目文件夹中并动态加载它们。我包含的文件是:

  • pdf.js
  • pdf.worker.js
  • 查看器.js
  • l10n.js
  • viewer.css -我没有动态加载这个文件。

加载文件后,我正在viewer.html使用lodash. 尽管如此,我还是无法在我的项目中看到渲染的 pdf。我怀疑这可能是因为一切都是动态发生的。(但我不确定,因为一切都按应有的顺序呈现

顺便说一句,我添加了名称与文件compressed.tracemonkey-pldi-09.pdf相邻的默认 pdf。index.html我会错过什么?

Firefox 和 chrome 不会抛出任何错误。

注意:我可能做错了。建议我在正确的方向上解决问题将是可观的。

4

1 回答 1

8

修改时的一些要点viewer.js

  • 建议您自己构建viewer.js,而不是修改viewer.js实际上仅用于演示目的的可用文件。
  • 您可以通过访问此处提供的每个 js 文件来创建自己的 viewer.js 文件。

如果您在现有演示中只有小东西需要修改viewer.js,那么

  • 在. pdf.worker.js_viewer.js
  • DomContentLoaded该文件将在事件中开始呈现 pdf 。如果您打算稍后动态呈现 pdf 文件,则应注释此事件寄存器并在必要时调用以下函数。

    webViewerLoad();
    

我希望这会对某人有所帮助。

于 2015-06-07T15:13:00.833 回答