## com.lowagie.text.pdf
Class PdfCopyFields

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

    public class PdfCopyFields

extends java.lang.Object

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.

Author:
  Paulo Soares (psoares@consiste.pt)

Field Summary
`private PdfCopyFieldsImp` `fc`

Constructor Summary
`PdfCopyFields(java.io.OutputStream os)` Creates a new instance.
`PdfCopyFields(java.io.OutputStream os, char pdfVersion)` Creates a new instance.

Method Summary
`void` `addDocument(PdfReader reader)` Concatenates a PDF document.
`void` `addDocument(PdfReader reader, java.util.List pagesToKeep)` Concatenates a PDF document selecting the pages to keep.
`void` `addDocument(PdfReader reader, java.lang.String ranges)` Concatenates a PDF document selecting the pages to keep.
`void` `addJavaScript(java.lang.String js)` Adds JavaScript to the global document
`void` `close()` Closes the output document.
`PdfWriter` `getWriter()` Gets the underlying PdfWriter.
`boolean` `isFullCompression()` Gets the 1.5 compression status.
`void` `open()` Opens the document.
`void` `setEncryption(boolean strength, java.lang.String userPassword, java.lang.String ownerPassword, int permissions)` Sets the encryption options for this document.
`void` `setEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits)` Sets the encryption options for this document.
`void` `setFullCompression()` Sets the document's compression to the new 1.5 mode with object streams and xref streams.
`void` `setOutlines(java.util.List outlines)` Sets the bookmarks.

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

Field Detail

### fc

    private PdfCopyFieldsImp fc

Constructor Detail

### PdfCopyFields

    public PdfCopyFields(java.io.OutputStream os)
                  throws DocumentException,
                         java.io.IOException

  Creates a new instance.

  Parameters:
    `os` - the output stream
  Throws:
    `DocumentException` - on error
    `java.io.IOException` - on error

### PdfCopyFields

    public PdfCopyFields(java.io.OutputStream os,
                         char pdfVersion)
                  throws DocumentException,
                         java.io.IOException

  Creates a new instance.

  Parameters:
    `os` - the output stream
    `pdfVersion` - the pdf version the output will have
  Throws:
    `DocumentException` - on error
    `java.io.IOException` - on error

Method Detail

### addDocument

    public void addDocument(PdfReader reader)
                     throws DocumentException

  Concatenates a PDF document.

  Parameters:
    `reader` - the PDF document
  Throws:
    `DocumentException` - on error

### addDocument

    public void addDocument(PdfReader reader,
                            java.util.List pagesToKeep)
                     throws DocumentException

  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

### addDocument

    public void addDocument(PdfReader reader,
                            java.lang.String ranges)
                     throws DocumentException

  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

### 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,
                              java.lang.String userPassword,
                              java.lang.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.

### open

    public void open()

  Opens the document. This is usually not needed as addDocument() will do it automatically.

### addJavaScript

    public void addJavaScript(java.lang.String js)

  Adds JavaScript to the global document

  Parameters:
    `js` - the JavaScript

### setOutlines

    public void setOutlines(java.util.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.