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();
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 this link if you want to see how to answer this question in iText 5.