/** Sets the encryption options for this document. 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 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 if anything was already written to the output */ public void SetEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, bool strength128Bits) { if (stamper.append) { throw new DocumentException("Append mode does not support changing the encryption status."); } if (stamper.ContentWritten) { throw new DocumentException("Content was already written to the output."); } stamper.SetEncryption(userPassword, ownerPassword, permissions, strength128Bits); }