java - 是否可以使用java中的jasper或itext创建不可打印的pdf?

标签 java pdf jasper-reports itext

我想使用 jasper 创建不可打印的 pdf,但是用户可以显示 pdf,但无法打印 pdf。我不想要任何 pdf 密码限制。我研究过 jasper 文档,但找不到任何相关内容。

有办法解决我的问题吗?我已经感谢你的帮助了。

最佳答案

您可以使用iText的PdfStamper对 PDF 进行后处理:

byte[] pdfContent = /* your PDF content here */;
ByteArrayOutputStream stampedPdfContent = new ByteArrayOutputStream();
PdfReader reader = new PdfReader(pdfContent);
PdfStamper stamper = new PdfStamper(reader, stampedPdfContent);
stamper.setEncryption(null, null, ~(PdfWriter.ALLOW_PRINTING), PdfWriter.STANDARD_ENCRYPTION_128);
stamper.close();
pdfContent = stampedPdfContent.toByteArray(); // your PDF is now non printable

关于java - 是否可以使用java中的jasper或itext创建不可打印的pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46765283/

相关文章:

java - 如果我在文件中有翻译,如何在 DSpace 中翻译或替换主题词

java - 使用 Apache PDFBox 添加文本时如何移动到下一行

android - 在 Android/iOS 应用程序中显示 PDF

fonts - Jasper 报告 - 柬埔寨语/高棉语和老挝语

java - JasperReport & 填充组件

grails - Grails Jasper子报表

java - findViewById 与 getIdentifier 不起作用

java - 如何使用 DOM 转义特殊字符

python - 使用 python PyPDF2 从 PDF 中提取图像

java - 为什么我不能像导入类后那样在 java.io.PrintStream 中使用 print() 或 println() 方法?