目前在我们的 Web 应用程序中,我们使用 Java Applet 作为 PDF 查看器,它还:
- 阻止用户保存 PDF 文档
- 将 PDF 内容打印到物理打印机(而不是软打印机,即保存)。
我最近听说 Google 将终止对 Chrome 的 Java Applet 插件支持。
使用基于 HTML5 的 PDF 查看器是否可以具有与上述相同的限制?
目前在我们的 Web 应用程序中,我们使用 Java Applet 作为 PDF 查看器,它还:
我最近听说 Google 将终止对 Chrome 的 Java Applet 插件支持。
使用基于 HTML5 的 PDF 查看器是否可以具有与上述相同的限制?
[...] 阻止用户保存 PDF 文档并在物理打印机中打印 PDF 内容(而不是在软打印机中,即保存)。[...] 我可以通过 HTML5 画布完成上述 PDF 查看器功能吗?
对您的问题的简短回答是,不,这些功能无法使用基于 HTML5 的 PDF 查看器来实现。
更长的版本:
如果在浏览器中加载 PDF,用户也可以直接下载该文档。浏览器及其用于显示PDF 的任何解决方案都将具有与用户相同的访问级别,或者换一种说法:用户与浏览器具有相同的访问级别。该链接是必需的,可以通过开发控制台(或代理)轻松获得。
不能直接从用户系统加载文件。由于安全原因,用户必须选择文件,所以在这里他已经可以访问文件以便能够选择它。
因此无法阻止下载。
根据查看器的实现,如果查看器符合文档的此状态标志,则可以阻止打印。无法从浏览器环境中区分正在使用的打印机类型。JavaScript 只能调用打印对话框,而无需了解有关打印机或打印过程的任何信息。
即使可以:使用纯 HTML5 解决方案意味着将涉及 JavaScript,在客户端开源。具有编程技能的用户可以覆盖部分源代码。在任何情况下,用户都可以简单地屏幕抓取页面并保存抓取。
所以不,不能强制打印到物理单元(或阻止)。
对于浏览器,请查看pdf.js。这是 Firefox 正在使用的解决方案,我相信 Chrome 将来会使用。