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

是否可以在java中使用jasper或itext创建不可打印的pdf?,java,pdf,jasper-reports,itext,Java,Pdf,Jasper Reports,Itext,我想使用jasper创建不可打印的pdf,但是用户可以显示pdf,但不能打印pdf。我不想要任何pdf密码限制。我研究过jasper文档,但没有找到任何相关信息 有没有办法解决我的问题?我已经感谢你的帮助了 您可以使用iText对PDF进行后期处理: byte[] pdfContent = /* your PDF content here */; ByteArrayOutputStream stampedPdfContent = new ByteArrayOutputStream(); PdfR

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

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

您可以使用iText对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

贾斯珀不允许你这么做。您可以对文件进行一些属性更改。您可以限制该文档的打印。是的,这是另一种实现方法,OP说“我不想要任何pdf密码限制”。严格来说,这排除了您使用密码加密的解决方案(即使它是一个默认密码和一个随机生成的未知密码)。@mkl问题是在pdf格式中,打印限制与设置“权限密码”绑定。例如,见。所以,如果你想禁止打印,你必须设置密码。我知道这一点。因此,在我看来,答案应该是“没有办法”