PDF概述链接在我的angularjs应用程序中不起作用

时间:2019-07-02 08:33:50

标签: javascript angularjs rest pdf pdf.js

我的Web应用程序使用PDF.js在浏览器中加载PDF。它从REST API获取PDF。

该Web应用程序是单个页面angularjs事务。您可以在应用程序内导航并打开其中一个PDF。当您打开其中一个时,第一个PDF的“大纲”内指向其他PDF的相对链接不起作用。

当我使用Firefox(使用PDF.js渲染PDF)访问api.example.com/rest/my-pdf.pdf处的REST API URL时,PDF将打开,并且Outline具有正确的相对链接。

我怀疑这与我的应用与提供PDF的REST API的来源不同有关。

每个OutlineItem都有一个动作字典,其中有我的相对链接。该动作词典的动作类型(S)为Launch,其FileStream(F)值如下所示。

PDF Object browser

我正在使用PDF.js viewer.html文件查看PDF。 这是通过创建一个iframe来完成的:

<iframe src="/path/to/pdfjs/viewer.html?file=http://api.example.com/rest/my-pdf.pdf">

如何在这里使用相对链接?

P.S。我只用红色划掉了实际的文件名。如果有帮助,我已经走了。

2 个答案:

答案 0 :(得分:0)

尝试此方法

onclick=" window.open('../../assets/python/python.pdf'); return true;"

希望它对您有用。

答案 1 :(得分:0)

问题在于PDF大纲中的链接是“启动ActionType”。
PDF.js实际上无法处理“启动”类型,因为它无法启动外部程序,因为它在浏览器中运行。

因此,PDF.js的作用是假装“启动”类型是“ GoToR ActionType”(转到远程)。
如果从中加载PDF的URL也是从中加载PDF.js的原点,那么这将起作用。

如果不是这种情况,例如在我的应用程序中(将PDF.js加载到有角度的应用程序中的iframe中),PDF.js无法解析URL,因此将链接留空。

  1. PDF Reference的8.5节包含有关PDF中Action的信息。
  2. PDF.js source file显示了如何处理不同的ActionType