这个问题与我最近发布的另一个问题相关:Check printing with Java/JSP
我们正在寻找当前通过小程序在 Java Web 应用程序中打印支票的替代方案。似乎共识是使用 PDF 进行打印,而 itext 提供了使用 Java 进行打印的能力。
但是,在我们的特殊情况下,重要的是支票是“仅打印”的 - 用户不应该在应用程序中具有保存支票的任何能力(我知道精明的用户可以这样做PrintScreen,但我们想掩盖我们的后顾之忧,并且在应用程序中不使用 native 功能来保存支票)。
我还没有成功地浏览网页来了解是否可以通过这种方式使用 itext 创建 PDF。我看过有关限制 PDF 权限的帖子,但我真正寻找的是一种禁用使用 itext 在本地保存 PDF 的功能的方法。
这个功能存在吗?如果是这样,您能给我指出有关它的文档/代码示例吗?
最佳答案
我假设您正在提供此 PDF,并希望从未安装任何异常客户端插件的 Web 应用程序/网站中打印它。
如果使用传统方式(例如 Adobe Reader)打印 PDF,则 PDF必须下载到浏览器的缓存中才能打开和打印。没有办法解决这个问题。
现在您可以通过以下技术阻止普通人在本地保存 PDF,但任何精明的用户都可以检查您的 HTML 源代码并直接下载 PDF。
- 在 iText 中输出 PDF,这样当打开 PDF 时,会出现 print action自动发生
- 在 HTML 页面上放置一个不可见的 IFRAME,用于加载此 PDF,但用户在浏览器中看不到
当用户加载 HTML 页面时,PDF 将加载到 IFRAME 中并发送到用户打印机(假设浏览器中安装了 Adobe Reader)。是的,PDF 最终会出现在浏览器缓存中,但用户必须足够精明才能识别这一点,然后在浏览器缓存中查找它。
如果这是 Not Acceptable ,您将不得不考虑将 PDF 转换为另一种文件类型(例如,页面呈现为浏览器中显示的图像,或者可能是发送文档中每个页面的 Flash/Java 对象)直接到打印机)
关于java - 使用 itext 创建 "print-only"PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9638989/