【问题标题】:PDF Viewer in HTML5 CanvasHTML5 Canvas 中的 PDF 查看器
【发布时间】:2015-06-04 14:32:28
【问题描述】:

目前在我们的网络应用程序中,我们使用 Java Applet 作为 PDF 查看器,它还:

  • 阻止用户保存 PDF 文档
  • 将 PDF 内容打印到 物理 打印机(而不是软打印机,即保存)。

我最近听说 Google 将停止对 Chrome 的 Java Applet 插件支持。

在使用基于 HTML5 的 PDF 查看器时,我能否有与上述相同的限制?

【问题讨论】:

  • 咯咯笑,我想我已经准备好你的问题了!您是要阻止保存还是允许保存

标签: html applet html5-canvas pdf-generation pdfviewer


【解决方案1】:

[...] 阻止用户保存 PDF 文档并打印 PDF 物理打印机中的内容(不在软打印机中,即保存)。 [...] 我可以通过 HTML5 画布完成以上 PDF 查看器功能吗?

对您的问题的简短回答是,不,这些功能无法使用基于 HTML5 的 PDF 查看器来实现。

加长版:

如果在浏览器中加载 PDF,用户也可以直接下载该文档。浏览器及其用于显示 PDF 的任何解决方案将具有与用户相同的访问级别,或者换一种说法:用户具有与浏览器相同的访问级别。该链接是必需的,可以通过开发控制台(或代理)轻松获得。

不能直接从用户系统加载文件。出于安全原因,用户必须选择文件,因此他已经可以访问该文件以便能够选择它。

因此无法阻止下载。

根据查看器的实现,如果查看器遵守文档的此状态标志,则可以阻止打印。无法从浏览器环境中区分正在使用的打印机类型。 JavaScript 只能在不了解打印机或打印过程的情况下调用打印对话框。

即使可以:使用纯 HTML5 解决方案意味着将涉及 JavaScript,在客户端是开源的。具有编程技能的用户可以覆盖部分源代码。在任何情况下,用户都可以简单地屏幕抓取页面并保存抓取。

所以不,不能强制打印到物理单元(或阻止)。

HTML5 查看器

对于浏览器,请查看pdf.js。这是 Firefox 正在使用的解决方案,我相信 Chrome 将来会使用。

【讨论】:

  • 那么我应该使用基于 JNLP 的解决方案来维护此功能,而不是 Java Applet。但是这个解决方案让最终用户安装了 Java Runtime
  • 但是和applet一样——用户需要安装java
  • 有一些来自 Accusoft 或 Box 等公司的商业 HTML5 查看器,可让您控制用户可以执行的操作。
猜你喜欢
  • 2012-03-23
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 2012-12-13
  • 2011-05-25
相关资源
最近更新 更多