/** Entry point to encrypt a PDF document. The encryption parameters are the same as in * <code>PdfWriter</code>. The userPassword and the * ownerPassword can be null or have zero length. In this case the ownerPassword * is replaced by a random string. The open permissions for the document can be * AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, * AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. * The permissions can be combined by ORing them. * @param reader the read PDF * @param os the output destination * @param type the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. * Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext * @param userPassword the user password. Can be null or empty * @param ownerPassword the owner password. Can be null or empty * @param permissions the user permissions * values delete the key in the original info dictionary * @throws DocumentException on error * @throws IOException on error */ public static void Encrypt(PdfReader reader, Stream os, int type, String userPassword, String ownerPassword, int permissions) { PdfStamper stamper = new PdfStamper(reader, os); stamper.SetEncryption(type, userPassword, ownerPassword, permissions); stamper.Close(); }
/** Entry point to encrypt a PDF document. The encryption parameters are the same as in * <code>PdfWriter</code>. The userPassword and the * ownerPassword can be null or have zero length. In this case the ownerPassword * is replaced by a random string. The open permissions for the document can be * AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, * AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. * The permissions can be combined by ORing them. * @param reader the read PDF * @param os the output destination * @param userPassword the user password. Can be null or empty * @param ownerPassword the owner password. Can be null or empty * @param permissions the user permissions * @param strength128Bits <code>true</code> for 128 bit key length, <code>false</code> for 40 bit key length * @throws DocumentException on error * @throws IOException on error */ public static void Encrypt(PdfReader reader, Stream os, byte[] userPassword, byte[] ownerPassword, int permissions, bool strength128Bits) { PdfStamper stamper = new PdfStamper(reader, os); stamper.SetEncryption(userPassword, ownerPassword, permissions, strength128Bits); stamper.Close(); }
/** Entry point to encrypt a PDF document. The encryption parameters are the same as in * <code>PdfWriter</code>. The userPassword and the * ownerPassword can be null or have zero length. In this case the ownerPassword * is replaced by a random string. The open permissions for the document can be * AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, * AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. * The permissions can be combined by ORing them. * @param reader the read PDF * @param os the output destination * @param strength <code>true</code> for 128 bit key length, <code>false</code> for 40 bit key length * @param userPassword the user password. Can be null or empty * @param ownerPassword the owner password. Can be null or empty * @param permissions the user permissions * @param newInfo an optional <CODE>String</CODE> map to add or change * the info dictionary. Entries with <CODE>null</CODE> * values delete the key in the original info dictionary * @throws DocumentException on error * @throws IOException on error */ public static void Encrypt(PdfReader reader, Stream os, bool strength, String userPassword, String ownerPassword, int permissions, Hashtable newInfo) { PdfStamper stamper = new PdfStamper(reader, os); stamper.SetEncryption(strength, userPassword, ownerPassword, permissions); stamper.MoreInfo = newInfo; stamper.Close(); }