当前位置: 首页 > 面试题库 >

使用itext创建“仅打印” PDF

巫马嘉祯
2023-03-14
问题内容

我们正在寻找替代方法,以替代当前通过小程序在Java
Web应用程序中打印支票的方式。似乎共识是使用PDF进行打印,而itext提供了使用Java进行打印的功能。

但是 ,在我们的特殊情况下,支票是“仅打印”的,这一点很重要-
用户在应用程序中不应该具有保存支票的任何能力(我知道精明的用户可以做一个PrintScreen,但我们想遮盖住后盖,在应用程序中不进行任何本机功能来保存支票)。

我在浏览Web上未能成功找到是否可以以这种方式使用itext创建PDF。我看到过有关限制PDF权限的帖子,但是我真正想要的是一种 禁用
使用itext在本地保存PDF的功能。

是否存在此功能?如果是这样,您能指出我的文档/代码示例吗?


问题答案:

我假设您正在提供此PDF,并希望从未安装任何普通客户端插件的Web应用程序/网站中进行打印。

如果使用常规方式(例如Adobe Reader)打印PDF,则 必须 将PDF 下载到浏览器的缓存中才能打开和打印。没有办法解决。

现在,您可以通过以下方法来防止普通的Joe在本地保存PDF,但任何精明的用户都可以检查HTML的源代码并直接下载PDF。

  1. 在iText中输出PDF,以便在打开PDF时自动进行打印操作
  2. 在载入此PDF的HTML页面上放置一个不可见的IFRAME,但在浏览器中对用户不可见

当用户加载您的HTML页面时,PDF将被加载到IFRAME中并发送到用户打印机(假定浏览器中已安装Adobe
Reader)。是的,PDF将最终存储在浏览器的缓存中,但是用户必须足够精明,才能识别这一点,然后在浏览器的缓存中查找它。

如果这是不可接受的,那么您将不得不考虑将PDF转换为另一种文件类型(例如,将页面呈现为浏览器中显示的图像,或者可能是将文档中的每个页面发送到打印机的Flash
/ Java对象。直)



 类似资料:
  • null 有人能解释一下,当我使用PdfReader阅读模板后,我如何制作模板的副本吗?有没有办法把表格写到模板副本上,而不是一个新文档上? 为了将来的参考,我做了以下工作:

  • 我遇到过许多使用PDFBox Layer实用程序的appendFormAsLayer方法的示例,如下所示: 前面代码中的getPDFName调用中的“mc”有什么意义? 我已经编写了下面的代码,在一个现有pdf的每一页上插入水印,并启用每一组可选内容。 将组设置为已启用或已禁用的“SetGroupEnabled(groupName,true)”将使其显示以供显示和打印。根据我在这个主题上研究的其他

  • 我用iText创建了一个pdf,我想打开它,但是当我这样做时,Adobe阅读器说我“打开文档时出错。此文件已打开或由其他应用程序使用“。我该如何解决? 这是我的代码(抱歉休斯顿println异常;)):

  • 我在Android日食中使用 itext 创建 pdf 时遇到问题 如果给定了引导入口,我无法创建pdf,在我的情况下是Android 5.0.1。如果我删除了bootstrap条目,我可以创建pdf,但不能启动活动,因为android 5.0.1包含android jar。你能告诉我如何解决这个问题吗?同样,如果我把它变成一个非活动类,我希望能够在另一个活动类中创建一个非活动类的对象,这样我就可

  • 我正在开发一个web应用程序,并试图使用它的文本创建一个pdf文档。 当我得到一个路径(本地和服务器上)时,它工作得很好,但我知道我需要在不实际创建它的情况下完成它。 我不想要的:PdfCopy copy=newpdfcopy(documentPDF,newfileoutputstream(mypath)) 我想要的是://PdfCopy copy=new PdfCopy(documentPDF,

  • 问题内容: 最近我一直在用Python编写很多代码。而且我一直在使用以前从未使用过的数据,使用以前从未见过的公式来处理大型文件。所有这些使我写了很多打印语句来验证是否一切正常,并确定故障点。但是,通常,输出太多信息不是一个好习惯。仅当我要调试时才使用打印语句,而当我不希望打印它们时如何跳过它们? 问题答案: 该模块具有您想要的一切。乍一看似乎有些多余,但只使用您需要的零件。我推荐使用切换日志级别和