How to protect an already existing PDF with a password?
Posted on StackOverflow on Dec 2, 2014 by Sreekanth P
It's as simple as this:
PdfReader reader = new PdfReader(src);
WriterProperties props = new WriterProperties()
.setStandardEncryption(USERPASS, OWNERPASS, 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();
Note that USERPASS
and OWNERPASS
are of type byte[]
: public static byte[] USERPASS = "superuser".getBytes(); public static byte[] OWNERPASS = "superowner".getBytes();
You have different options for the permissions (look for EncryprionConstants
starting with ALLOW_
) and also you can chose from different encryption algorithms.
Click How to protect an already existing PDF with a password? if you want to see how to answer this question in iText 5.