Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.pdfbox.pdmodel.encryption
Class PDStandardEncryption

    java.lang.Object
      org.pdfbox.pdmodel.encryption.PDEncryptionDictionary
          org.pdfbox.pdmodel.encryption.PDStandardEncryption

public class PDStandardEncryption
extends PDEncryptionDictionary

This class holds information that is related to the standard PDF encryption. See PDF Reference 1.4 section "3.5 Encryption"

Version:
  $Revision: 1.5 $
Author:
  Ben Litchfield (ben@csh.rit.edu)

Field Summary
`static int` | `DEFAULT_PERMISSIONS` The default set of permissions which is to allow all.
`static int` | `DEFAULT_REVISION` The default revision of one is not specified.
`static String` | `FILTER_NAME` The 'Filter' name for this security handler.
`static int` | `REVISION2` Encryption revision 2.
`static int` | `REVISION3` Encryption revision 3.
`static int` | `REVISION4` Encryption revision 4.

Fields inherited from class org.pdfbox.pdmodel.encryption.PDEncryptionDictionary
`DEFAULT_LENGTH, DEFAULT_NAME, DEFAULT_VERSION, encryptionDictionary, VERSION0_UNDOCUMENTED_UNSUPPORTED, VERSION1_40_BIT_ALGORITHM, VERSION2_VARIABLE_LENGTH_ALGORITHM, VERSION3_UNPUBLISHED_ALGORITHM, VERSION4_SECURITY_HANDLER`

Constructor Summary
`PDStandardEncryption()` Default constructor that uses Version 2, Revision 3, 40 bit encryption, all permissions allowed.
`PDStandardEncryption(COSDictionary dict)` Constructor from existing dictionary.

Method Summary
`boolean` | `canAssembleDocument()` This will tell if the user can insert/rotate/delete pages.
`boolean` | `canExtractContent()` This will tell if the user can extract text and images from the PDF document.
`boolean` | `canExtractForAccessibility()` This will tell if the user can extract text and images from the PDF document for accessibility purposes.
`boolean` | `canFillInForm()` This will tell if the user can fill in interactive forms.
`boolean` | `canModify()` This will tell if the user can modify contents of the document.
`boolean` | `canModifyAnnotations()` This will tell if the user can add/modify text annotations, fill in interactive forms fields.
`boolean` | `canPrint()` This will tell if the user can print.
`boolean` | `canPrintDegraded()` This will tell if the user can print the document in a degraded format.
`byte[]` | `getOwnerKey()` This will get the O entry in the standard encryption dictionary.
`int` | `getPermissions()` This will get the permissions bit mask.
`int` | `getRevision()` This will return the R entry of the encryption dictionary.
`byte[]` | `getUserKey()` This will get the U entry in the standard encryption dictionary.
`void` | `setCanAssembleDocument(boolean allowAssembly)` Set if the user can insert/rotate/delete pages.
`void` | `setCanExtractContent(boolean allowExtraction)` Set if the user can extract content from the document.
`void` | `setCanExtractForAccessibility(boolean allowExtraction)` Set if the user can extract content from the document for accessibility purposes.
`void` | `setCanFillInForm(boolean allowFillingInForm)` Set if the user can fill in interactive forms.
`void` | `setCanModify(boolean allowModifications)` Set if the user can modify the document.
`void` | `setCanModifyAnnotations(boolean allowAnnotationModification)` Set if the user can modify annotations.
`void` | `setCanPrint(boolean allowPrinting)` Set if the user can print.
`void` | `setCanPrintDegraded(boolean allowAssembly)` Set if the user can print the document in a degraded format.
`void` | `setOwnerKey(byte[] o)` This will set the O entry in the standard encryption dictionary.
`void` | `setPermissions(int p)` This will set the permissions bit mask.
`void` | `setRevision(int revision)` This will set the R entry of the encryption dictionary.
`void` | `setUserKey(byte[] u)` This will set the U entry in the standard encryption dictionary.

Methods inherited from class org.pdfbox.pdmodel.encryption.PDEncryptionDictionary
`getCOSDictionary, getFilter, getLength, getVersion, setLength, setVersion`

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

Field Detail

### FILTER_NAME

    public static final String FILTER_NAME

  The 'Filter' name for this security handler.

  See Also:
    Constant Field Values

### DEFAULT_REVISION

    public static final int DEFAULT_REVISION

  The default revision of one is not specified.

  See Also:
    Constant Field Values

### REVISION2

    public static final int REVISION2

  Encryption revision 2.

  See Also:
    Constant Field Values

### REVISION3

    public static final int REVISION3

  Encryption revision 3.

  See Also:
    Constant Field Values

### REVISION4

    public static final int REVISION4

  Encryption revision 4.

  See Also:
    Constant Field Values

### DEFAULT_PERMISSIONS

    public static final int DEFAULT_PERMISSIONS

  The default set of permissions which is to allow all.

  See Also:
    Constant Field Values

Constructor Detail

### PDStandardEncryption

    public PDStandardEncryption()

  Default constructor that uses Version 2, Revision 3, 40 bit encryption, all permissions allowed.

### PDStandardEncryption

    public PDStandardEncryption(COSDictionary dict)

  Constructor from existing dictionary.

Parameters:
  `dict` - The existing encryption dictionary.

Method Detail

### getRevision

    public int getRevision()

  This will return the R entry of the encryption dictionary.
  See PDF Reference 1.4 Table 3.14.

  Returns:
    The encryption revision to use.

### setRevision

    public void setRevision(int revision)

  This will set the R entry of the encryption dictionary.
  See PDF Reference 1.4 Table 3.14.
  Note: This value is used to decrypt the pdf document. If you change this when the document is encrypted then decryption will fail!.

  Parameters:
    `revision` - The new encryption version.

### getOwnerKey

    public byte[] getOwnerKey()

  This will get the O entry in the standard encryption dictionary.

  Returns:
    A 32 byte array or null if there is no owner key.

### setOwnerKey

    public void setOwnerKey(byte[] o)
                     throws IOException

  This will set the O entry in the standard encryption dictionary.

  Parameters:
    `o` - A 32 byte array or null if there is no owner key.
  Throws:
    `IOException` - If there is an error setting the data.

### getUserKey

    public byte[] getUserKey()

  This will get the U entry in the standard encryption dictionary.

  Returns:
    A 32 byte array or null if there is no user key.

### setUserKey

    public void setUserKey(byte[] u)
                    throws IOException

  This will set the U entry in the standard encryption dictionary.

  Parameters:
    `u` - A 32 byte array.
  Throws:
    `IOException` - If there is an error setting the data.

### getPermissions

    public int getPermissions()

  This will get the permissions bit mask.

  Returns:
    The permissions bit mask.

### setPermissions

    public void setPermissions(int p)

  This will set the permissions bit mask.

  Parameters:
    `p` - The new permissions bit mask

### canPrint

    public boolean canPrint()

  This will tell if the user can print.

  Returns:
    true If supplied with the user password they are allowed to print.

### setCanPrint

    public void setCanPrint(boolean allowPrinting)

  Set if the user can print.

  Parameters:
    `allowPrinting` - A boolean determining if the user can print.

### canModify

    public boolean canModify()

  This will tell if the user can modify contents of the document.

  Returns:
    true If supplied with the user password they are allowed to modify the document

### setCanModify

    public void setCanModify(boolean allowModifications)

  Set if the user can modify the document.

  Parameters:
    `allowModifications` - A boolean determining if the user can modify the document.

### canExtractContent

    public boolean canExtractContent()

  This will tell if the user can extract text and images from the PDF document.

  Returns:
    true If supplied with the user password they are allowed to extract content from the PDF document

### setCanExtractContent

    public void setCanExtractContent(boolean allowExtraction)

  Set if the user can extract content from the document.

  Parameters:
    `allowExtraction` - A boolean determining if the user can extract content from the document.

### canModifyAnnotations

    public boolean canModifyAnnotations()

  This will tell if the user can add/modify text annotations, fill in interactive forms fields.

  Returns:
    true If supplied with the user password they are allowed to modify annotations.

### setCanModifyAnnotations

    public void setCanModifyAnnotations(boolean allowAnnotationModification)

  Set if the user can modify annotations.

  Parameters:
    `allowAnnotationModification` - A boolean determining if the user can modify annotations.

### canFillInForm

    public boolean canFillInForm()

  This will tell if the user can fill in interactive forms.

  Returns:
    true If supplied with the user password they are allowed to fill in form fields.

### setCanFillInForm

    public void setCanFillInForm(boolean allowFillingInForm)

  Set if the user can fill in interactive forms.

  Parameters:
    `allowFillingInForm` - A boolean determining if the user can fill in interactive forms.

### canExtractForAccessibility

    public boolean canExtractForAccessibility()

  This will tell if the user can extract text and images from the PDF document for accessibility purposes.

  Returns:
    true If supplied with the user password they are allowed to extract content from the PDF document

### setCanExtractForAccessibility

    public void setCanExtractForAccessibility(boolean allowExtraction)

  Set if the user can extract content from the document for accessibility purposes.

  Parameters:
    `allowExtraction` - A boolean determining if the user can extract content from the document.

### canAssembleDocument

    public boolean canAssembleDocument()

  This will tell if the user can insert/rotate/delete pages.

  Returns:
    true If supplied with the user password they are allowed to extract content from the PDF document

### setCanAssembleDocument

    public void setCanAssembleDocument(boolean allowAssembly)

  Set if the user can insert/rotate/delete pages.

  Parameters:
    `allowAssembly` - A boolean determining if the user can assemble the document.

### canPrintDegraded

    public boolean canPrintDegraded()

  This will tell if the user can print the document in a degraded format.

  Returns:
    true If supplied with the user password they are allowed to print the document in a degraded format.

### setCanPrintDegraded

    public void setCanPrintDegraded(boolean allowAssembly)

  Set if the user can print the document in a degraded format.

  Parameters:
    `allowAssembly` - A boolean determining if the user can print the document in a degraded format.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD