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

PDF overview links not working inside my angularjs app

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

获取 PDF

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

当我访问 REST API URL 时,例如 api.example.com/rest/my-pdf.pdf,使用 firefox(使用 PDF.js 呈现 PDF),PDF 打开,大纲具有正确的相关链接。

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

每个 OutlineItem 都有一个动作词典,里面有我的相关链接。操作字典具有 Launch 的 ActionType (S) 和如下所示的 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。我只划掉了红色的实际文件名。如果有帮助,我已经离开了路径。

试试这个方法

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

希望对你有用。

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

那么,PDF.js 所做的就是假装 "Launch" 类型是 "GoToR ActionType"(转到远程)。
如果加载 PDF 的 URL 是 PDF.js 的来源,这将起作用。

如果不是这种情况,就像在我的应用程序中一样(PDF.js 加载到 angular 应用程序内的 iframe 中),PDF.js 无法解析 URLs 所以链接留空。

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