When attempting to encrypt a pdf, I get a zero size file as a result. Any ideas what is causing this?
File f = new File("C://secure_abc.pdf"); FileOutputStream out = new FileOutputStream(f); PdfReader reader = new PdfReader("C://abc.pdf"); System.out.println("reader.getFileLength(): "+reader.getFileLength()); PdfStamper stamp = new PdfStamper(reader, out); stamp.setEncryption(null, null, PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);
In iText 7 all manipulations with PDF are done using
PdfDocument instance. Encryption can be done like this:
PdfReader reader = new PdfReader(src); WriterProperties props = new WriterProperties() .setStandardEncryption("Hello".getBytes(), "World".getBytes(), EncryptionConstants.ALLOW_PRINTING, EncryptionConstants.ENCRYPTION_AES_128 | EncryptionConstants.DO_NOT_ENCRYPT_METADATA); PdfWriter writer = new PdfWriter(new FileOutputStream(dest), props); PdfDocument pdfDoc = new PdfDocument(reader, writer); pdfDoc.close();
The problem you faced with, was about not closed
PdfStamper. Donâ€™t forget to close the
PdfDocument instance from now on.
Click this link if you want to see how to answer this question in iText 5.