2017-10-16 106 views
1

我想用jasper創建不可打印的pdf,但是用戶可以顯示pdf,但是他們不能打印PDF。我不想要任何pdf密碼限制。我已經研究過碧玉的文檔,但是我找不到任何關於它的事情。在java中使用jasper或itext可以創建不可打印的pdf嗎?

有無論如何解決我的問題?我已經感謝你的幫助。

+0

碧玉不允許你這樣做。您可以對文件進行一些屬性更改。您可以限制打印該文件。 – Lokesh

回答

1

可以使用的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 
+0

是的,這是另一種方法來實現 – Lokesh

+0

OP說*「我不希望任何pdf密碼限制。」*嚴格地說,這不包括你的解決方案,因爲你使用密碼加密(即使它是一個默認密碼和一個隨機生成,未知之一)。 – mkl

+0

@mkl問題在於,在PDF格式中,打印限制與設置「權限密碼」相關。例如,請參閱Adobe網站上的此頁(https://helpx.adobe.com/acrobat/how-to/security-permissions-protect-pdf-files.html)。所以,如果你想禁止打印,你必須設置密碼。 –

相關問題