javascript - 如何使用 PDF.js 加载 Web 应用程序中包含的文件(不是来自 "file:"URL?

标签 javascript google-chrome google-chrome-extension google-chrome-app pdf.js

我希望能够使用 PDF.js 在我的 Chrome 应用程序中显示 PDF 文件但文档不存在。我无法找到任何简单的示例或教程来显示从相对 URL 加载 PDF、显示页面以及浏览 PDF 的代码。他们有非常复杂的示例,其中 95% 的代码执行其他操作,并且很难解析这些代码并找到相关函数。我愿意:

  1. 在我的应用程序中包含相关代码(这是由“node make generic”创建的“pdf.js”而没有其他内容吗?或者我还需要包含其他JS文件吗?)

  2. 能够显示我的 myapp.crx 文件中的 PDF 文件

  3. pdf.js 是否需要“LocalStorage”? Chrome 扩展程序/应用程序中将继续允许 localStorage 还是已弃用?

有人可以告诉我#2 是否可行,以及如何找到一些有关要调用的正确类/函数以及要包含/构建的文件的示例代码或文档?

最佳答案

  1. node make generic 输出到 build/generic 目录。该目录包含两个子目录,“build”和“web”。
    “build”包含“pdf.js”,这是实际的 PDF 引擎。
    “web”包含一个查看器,类似于http://mozilla.github.io/pdf.js/web/viewer.html处的查看器。 .

  2. 将之前的两个目录复制到您的应用后,您应该能够使用 chrome.extensi/web/viewer.html?file=path%2Fto%3Ffile.pdf< 加载 PDF 文件

  3. PDF.js 不需要 localStorage。如果可用于持久设置(例如滚动位置),则使用它,但如果不可用,则 PDF。无需它即可继续工作。

但有一个重要问题:PDF.js 使用同步 XMLHttpRequest 加载本地化文件。这是not allowed在 Chrome 应用程序中。您可以通过序列化 locales 中的所有文件来解决此问题,将其放入单个 JavaScript 文件中,将其加载到viewer.html 中,然后简化 l10n.js 来读取我刚刚描述的文件的翻译。

关于javascript - 如何使用 PDF.js 加载 Web 应用程序中包含的文件(不是来自 "file:"URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709966/

相关文章:

Javascript 提示对话框自定义输入

javascript - 使用 Meteor.publish 过滤用户访问的数据

html - <h1> 在 firefox 和 chrome 中小于 <h2>

javascript - 如何使 Chrome 扩展程序的未捕获异常处理程序工作(由于 CORS 保护而不起作用)

google-chrome-extension - Chrome 扩展从内容脚本到后台 html 的 sendMessage 错误

javascript - JavaScript 中的 window.event 是什么?

c# - 如何使用 Selenium 或其他工具操作 Chrome 扩展的小部件?

Javascript:什么算作 "User interacting with webpage?"

javascript - chrome 可选权限 API 不支持 unlimitedStorage;如何使用权限更新扩展?

javascript - Firebase 查询,其中我正在寻找的键/值对位于未知引用下