我的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.js viewer.html文件查看PDF。 这是通过创建一个iframe来完成的:
<iframe src="/path/to/pdfjs/viewer.html?file=http://api.example.com/rest/my-pdf.pdf">
如何在这里使用相对链接?
P.S。我只用红色划掉了实际的文件名。如果有帮助,我已经走了。
答案 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,因此将链接留空。
Action
的信息。ActionType
。