Class PdfCopyFields

java.lang.Object
com.lowagie.text.pdf.PdfCopyFields
All Implemented Interfaces:
PdfEncryptionSettings, PdfViewerPreferences, AutoCloseable

public class PdfCopyFields extends Object implements PdfViewerPreferences, PdfEncryptionSettings, AutoCloseable
Concatenates PDF documents including form fields. The rules for the form field concatenation are the same as in Acrobat. All the documents are kept in memory unlike PdfCopy.
  • Field Details

  • Constructor Details

  • Method Details

    • addDocument

      public void addDocument(PdfReader reader) throws DocumentException, IOException
      Concatenates a PDF document.
      Parameters:
      reader - the PDF document
      Throws:
      DocumentException - on error
      IOException - on error
    • addDocument

      public void addDocument(PdfReader reader, List<Integer> pagesToKeep) throws DocumentException, IOException
      Concatenates a PDF document selecting the pages to keep. The pages are described as a List of Integer. The page ordering can be changed but no page repetitions are allowed.
      Parameters:
      reader - the PDF document
      pagesToKeep - the pages to keep
      Throws:
      DocumentException - on error
      IOException - on error
    • addDocument

      public void addDocument(PdfReader reader, String ranges) throws DocumentException, IOException
      Concatenates a PDF document selecting the pages to keep. The pages are described as ranges. The page ordering can be changed but no page repetitions are allowed.
      Parameters:
      reader - the PDF document
      ranges - the comma separated ranges as described in SequenceList
      Throws:
      DocumentException - on error
      IOException - on error
    • setEncryption

      public void setEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits) throws DocumentException
      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.
      Parameters:
      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 - if the document is already open
    • setEncryption

      public void setEncryption(boolean strength, String userPassword, String ownerPassword, int permissions) throws DocumentException
      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.
      Parameters:
      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 - if the document is already open
    • close

      public void close()
      Closes the output document.
      Specified by:
      close in interface AutoCloseable
    • open

      public void open()
      Opens the document. This is usually not needed as addDocument() will do it automatically.
    • addJavaScript

      public void addJavaScript(String js)
      Adds JavaScript to the global document
      Parameters:
      js - the JavaScript
    • setOutlines

      public void setOutlines(List outlines)
      Sets the bookmarks. The list structure is defined in SimpleBookmark#.
      Parameters:
      outlines - the bookmarks or null to remove any
    • getWriter

      public PdfWriter getWriter()
      Gets the underlying PdfWriter.
      Returns:
      the underlying PdfWriter
    • isFullCompression

      public boolean isFullCompression()
      Gets the 1.5 compression status.
      Returns:
      true if the 1.5 compression is on
    • setFullCompression

      public void setFullCompression()
      Sets the document's compression to the new 1.5 mode with object streams and xref streams. It can be set at any time but once set it can't be unset.

      If set before opening the document it will also set the pdf version to 1.5.

    • setEncryption

      public void setEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, int encryptionType) throws DocumentException
      Description copied from interface: PdfEncryptionSettings
      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.
      Specified by:
      setEncryption in interface PdfEncryptionSettings
      Parameters:
      userPassword - the user password. Can be null or empty
      ownerPassword - the owner password. Can be null or empty
      permissions - the user permissions
      encryptionType - 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
      Throws:
      DocumentException - if the document is already open
      See Also:
    • addViewerPreference

      public void addViewerPreference(PdfName key, PdfObject value)
      Description copied from interface: PdfViewerPreferences
      Adds a viewer preference.
      • In case the key is one of these values:
        • PdfName.HIDETOOLBAR
        • PdfName.HIDEMENUBAR
        • PdfName.HIDEWINDOWUI
        • PdfName.FITWINDOW
        • PdfName.CENTERWINDOW
        • PdfName.DISPLAYDOCTITLE
        The value must be a of type PdfBoolean (true or false).
      • In case the key is PdfName.NONFULLSCREENPAGEMODE, the value must be one of these names:
        • PdfName.USENONE
        • PdfName.USEOUTLINES
        • PdfName.USETHUMBS
        • PdfName.USEOC
      • In case the key is PdfName.DIRECTION, the value must be one of these names:
        • PdfName.L2R
        • PdfName.R2L
      • In case the key is one of these values:
        • PdfName.VIEWAREA
        • PdfName.VIEWCLIP
        • PdfName.PRINTAREA
        • PdfName.PRINTCLIP
        The value must be one of these names:
        • PdfName.MEDIABOX
        • PdfName.CROPBOX
        • PdfName.BLEEDBOX
        • PdfName.TRIMBOX
        • PdfName.ARTBOX
      • In case the key is PdfName.PRINTSCALING, the value can be
        • PdfName.APPDEFAULT
        • PdfName.NONE
      • In case the key is PdfName.DUPLEX, the value can be:
        • PdfName.SIMPLEX
        • PdfName.DUPLEXFLIPSHORTEDGE
        • PdfName.DUPLEXFLIPLONGEDGE
      • In case the key is PdfName.PICKTRAYBYPDFSIZE, the value must be of type PdfBoolean.
      • In case the key is PdfName.PRINTPAGERANGE, the value must be of type PdfArray.
      • In case the key is PdfName.NUMCOPIES, the value must be of type PdfNumber.
      Specified by:
      addViewerPreference in interface PdfViewerPreferences
      Parameters:
      key - the name of the viewer preference
      value - the value of the viewer preference
      See Also:
    • setViewerPreferences

      public void setViewerPreferences(int preferences)
      Description copied from interface: PdfViewerPreferences
      Sets the page layout and page mode preferences by ORing one or two of these constants.
      • The page layout to be used when the document is opened (choose one).
        • PAGE_LAYOUT_SINGLE_PAGE - Display one page at a time. (default)
        • PAGE_LAYOUT_ONE_COLUMN - Display the pages in one column.
        • PAGE_LAYOUT_TWO_COLUMN_LEFT - Display the pages in two columns, with oddnumbered pages on the left.
        • PAGE_LAYOUT_TWO_COLUMN_RIGHT - Display the pages in two columns, with oddnumbered pages on the right.
        • PAGE_LAYOUT_TWO_PAGE_LEFT - Display the pages two at a time, with oddnumbered pages on the left.
        • PAGE_LAYOUT_TWO_PAGE_RIGHT - Display the pages two at a time, with oddnumbered pages on the right.
      • The page mode how the document should be displayed when opened (choose one).
        • PAGE_MODE_USE_NONE - Neither document outline nor thumbnail images visible. (default)
        • PAGE_MODE_USE_OUTLINES - Document outline visible.
        • PAGE_MODE_USE_THUMBS - Thumbnail images visible.
        • PAGE_MODE_FULL_SCREEN - Full-screen mode, with no menu bar, window controls, or any other window visible.
        • PAGE_MODE_USE_OC - Optional content group panel visible
        • PAGE_MODE_USE_ATTACHMENTS - Attachments panel visible
      For backward compatibility these values are also supported, but it's better to use method addViewerPreference(key, value) if you want to change the following preferences:
      • HIDE_TOOLBAR - A flag specifying whether to hide the viewer application's tool bars when the document is active.
      • HIDE_MENUBAR - A flag specifying whether to hide the viewer application's menu bar when the document is active.
      • HIDE_WINDOW_UI - A flag specifying whether to hide user interface elements in the document's window (such as scroll bars and navigation controls), leaving only the document's contents displayed.
      • FIT_WINDOW - A flag specifying whether to resize the document's window to fit the size of the first displayed page.
      • CENTER_WINDOW - A flag specifying whether to position the document's window in the center of the screen.
      • DISPLAY_DOC_TITLE - A flag specifying whether to display the document's title in the top bar.
      • The predominant reading order for text. This entry has no direct effect on the document's contents or page numbering, but can be used to determine the relative positioning of pages when displayed side by side or printed n-up (choose one).
        • DIRECTION_L2R - Left to right
        • DIRECTION_R2L - Right to left (including vertical writing systems such as Chinese, Japanese, and Korean)
      • The document's page mode, specifying how to display the document on exiting full-screen mode. It is meaningful only if the page mode is PageModeFullScreen (choose one).
        • NON_FULL_SCREEN_PAGE_MODE_USE_NONE - Neither document outline nor thumbnail images visible
        • NON_FULL_SCREEN_PAGE_MODE_USE_OUTLINES - Document outline visible
        • NON_FULL_SCREEN_PAGE_MODE_USE_THUMBS - Thumbnail images visible
        • NON_FULL_SCREEN_PAGE_MODE_USE_OC - Optional content group panel visible
      • PRINT_SCALING_NONE - Indicates that the print dialog should reflect no page scaling.
      Specified by:
      setViewerPreferences in interface PdfViewerPreferences
      Parameters:
      preferences - the viewer preferences
      See Also:
    • setEncryption

      public void setEncryption(Certificate[] certs, int[] permissions, int encryptionType) throws DocumentException
      Description copied from interface: PdfEncryptionSettings
      Sets the certificate encryption options for this document. An array of one or more public certificates must be provided together with an array of the same size for the permissions for each certificate. 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. Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext
      Specified by:
      setEncryption in interface PdfEncryptionSettings
      Parameters:
      certs - the public certificates to be used for the encryption
      permissions - the user permissions for each of the certificates
      encryptionType - the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128.
      Throws:
      DocumentException - if the document is already open
      See Also: