2017-10-16 20 views
1

Je veux créer un pdf non-imprimable avec l'utilisation de jasper, cependant les utilisateurs peuvent afficher le pdf mais ils ne peuvent pas imprimer le pdf. Je ne veux pas de restriction de mot de passe pdf. J'ai recherché de la documentation jaspe mais je n'ai rien trouvé à ce sujet.Est-il possible de créer un pdf non imprimable en utilisant jasper ou itext en java?

Y a-t-il un moyen de résoudre mon problème? Je vous remercie déjà pour votre aide.

+0

jaspe ne vous permet pas de le faire. Vous pouvez le faire avec quelques modifications de propriété au fichier. Vous pouvez restreindre l'impression de ce document. – Lokesh

Répondre

1

Vous pouvez utiliser PdfStamper de iText pour post-traiter votre 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

oui c'est une autre façon d'atteindre cela – Lokesh

+0

L'OP a dit * "Je ne veux pas de restriction de mot de passe pdf." * Strictement parlant cela exclut votre solution que vous utilisez le cryptage de mot de passe (même si c'est un mot de passe par défaut , inconnu). – mkl

+0

@mkl Le problème est que dans le format PDF, la restriction d'impression est liée à la définition d'un "Mot de passe d'autorisation". Voir [cette page sur le site Web d'Adobe] (https://helpx.adobe.com/acrobat/how-to/security-permissions-protect-pdf-files.html), par exemple. Donc, si vous voulez interdire l'impression, vous devez définir un mot de passe. –