## com.lowagie.text.pdf
Class PdfEncryptor

    java.lang.Object
      com.lowagie.text.pdf.PdfEncryptor

    public class PdfEncryptor

extends java.lang.Object

This class takes any PDF and returns exactly the same but encrypted. All the content, links, outlines, etc, are kept. It is also possible to change the info dictionary.

Constructor Summary
`private` `PdfEncryptor()`

Method Summary
`static void` `encrypt(PdfReader reader, java.io.OutputStream os, boolean strength, java.lang.String userPassword, java.lang.String ownerPassword, int permissions)` Entry point to encrypt a PDF document.
`static void` `encrypt(PdfReader reader, java.io.OutputStream os, boolean strength, java.lang.String userPassword, java.lang.String ownerPassword, int permissions, java.util.HashMap newInfo)` Entry point to encrypt a PDF document.
`static void` `encrypt(PdfReader reader, java.io.OutputStream os, byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits)` Entry point to encrypt a PDF document.
`static void` `encrypt(PdfReader reader, java.io.OutputStream os, byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits, java.util.HashMap newInfo)` Entry point to encrypt a PDF document.
`static java.lang.String` `getPermissionsVerbose(int permissions)` Give you a verbose analysis of the permissions.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PdfEncryptor

    private PdfEncryptor()

Method Detail

### encrypt

    public static void encrypt(PdfReader reader,
                               java.io.OutputStream os,
                               byte[] userPassword,
                               byte[] ownerPassword,
                               int permissions,
                               boolean strength128Bits)
                        throws DocumentException,
                               java.io.IOException

  Entry point to encrypt a PDF document. The encryption parameters are the same as in `PdfWriter`. 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.

  Parameters:
    `reader` - the read PDF
    `os` - the output destination
    `userPassword` - the user password. Can be null or empty
    `ownerPassword` - the owner password. Can be null or empty
    `permissions` - the user permissions
    `strength128Bits` - `true` for 128 bit key length, `false` for 40 bit key length
  Throws:
    `DocumentException` - on error
    `java.io.IOException` - on error

### encrypt

    public static void encrypt(PdfReader reader,
                               java.io.OutputStream os,
                               byte[] userPassword,
                               byte[] ownerPassword,
                               int permissions,
                               boolean strength128Bits,
                               java.util.HashMap newInfo)
                        throws DocumentException,
                               java.io.IOException

  Entry point to encrypt a PDF document. The encryption parameters are the same as in `PdfWriter`. 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.

  Parameters:
    `reader` - the read PDF
    `os` - the output destination
    `userPassword` - the user password. Can be null or empty
    `ownerPassword` - the owner password. Can be null or empty
    `permissions` - the user permissions
    `strength128Bits` - `true` for 128 bit key length, `false` for 40 bit key length
    `newInfo` - an optional `String` map to add or change the info dictionary. Entries with `null` values delete the key in the original info dictionary
  Throws:
    `DocumentException` - on error
    `java.io.IOException` - on error

### encrypt

    public static void encrypt(PdfReader reader,
                               java.io.OutputStream os,
                               boolean strength,
                               java.lang.String userPassword,
                               java.lang.String ownerPassword,
                               int permissions)
                        throws DocumentException,
                               java.io.IOException

  Entry point to encrypt a PDF document. The encryption parameters are the same as in `PdfWriter`. 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.

  Parameters:
    `reader` - the read PDF
    `os` - the output destination
    `strength` - `true` for 128 bit key length, `false` for 40 bit key length
    `userPassword` - the user password. Can be null or empty
    `ownerPassword` - the owner password. Can be null or empty
    `permissions` - the user permissions
  Throws:
    `DocumentException` - on error
    `java.io.IOException` - on error

### encrypt

    public static void encrypt(PdfReader reader,
                               java.io.OutputStream os,
                               boolean strength,
                               java.lang.String userPassword,
                               java.lang.String ownerPassword,
                               int permissions,
                               java.util.HashMap newInfo)
                        throws DocumentException,
                               java.io.IOException

  Entry point to encrypt a PDF document. The encryption parameters are the same as in `PdfWriter`. 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.

  Parameters:
    `reader` - the read PDF
    `os` - the output destination
    `strength` - `true` for 128 bit key length, `false` for 40 bit key length
    `userPassword` - the user password. Can be null or empty
    `ownerPassword` - the owner password. Can be null or empty
    `permissions` - the user permissions
    `newInfo` - an optional `String` map to add or change the info dictionary. Entries with `null` values delete the key in the original info dictionary
  Throws:
    `DocumentException` - on error
    `java.io.IOException` - on error

### getPermissionsVerbose

    public static java.lang.String getPermissionsVerbose(int permissions)

  Give you a verbose analysis of the permissions.

  Parameters:
    `permissions` - the permissions value of a PDF file
  Returns:
    a String that explains the meaning of the permissions value