com.lowagie.text.pdf

## Class PdfStamperImp

- java.lang.Object
- - com.lowagie.text.DocWriter
  - - com.lowagie.text.pdf.PdfWriter
    - - com.lowagie.text.pdf.PdfStamperImp

- All Implemented Interfaces:
    DocListener, ElementListener, PdfAnnotations, PdfDocumentActions, PdfEncryptionSettings, PdfPageActions, PdfRunDirection, PdfVersion, PdfViewerPreferences, PdfXConformance, java.util.EventListener

       class PdfStamperImp
      extends PdfWriter

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) static class` | `PdfStamperImp.PageStamp`

    - ### Nested classes/interfaces inherited from class com.lowagie.text.pdf.PdfWriter

      `PdfWriter.PdfBody, PdfWriter.PdfTrailer`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected AcroFields` | `acroFields`
    `protected boolean` | `append`
    `(package private) boolean` | `closed`
    `protected boolean` | `fieldsAdded`
    `protected java.util.HashMap` | `fieldTemplates`
    `(package private) RandomAccessFileOrArray` | `file`
    `protected boolean` | `flat`
    `protected boolean` | `flatFreeText`
    `protected int` | `initialXrefSize`
    `protected IntHashtable` | `marked`
    `(package private) IntHashtable` | `myXref`
    `protected int[]` | `namePtr`
    `protected PdfAction` | `openAction`
    `(package private) java.util.HashMap` | `pagesToContent` Integer(page number) -> PageStamp
    `protected java.util.HashSet` | `partialFlattening`
    `(package private) PdfReader` | `reader`
    `(package private) java.util.HashMap` | `readers2file`
    `(package private) java.util.HashMap` | `readers2intrefs`
    `private boolean` | `rotateContents` Holds value of property rotateContents.
    `protected int` | `sigFlags`
    `protected boolean` | `useVp`
    `protected PdfViewerPreferencesImp` | `viewerPreferences`

    - ### Fields inherited from class com.lowagie.text.pdf.PdfWriter

      `ALLOW_ASSEMBLY, ALLOW_COPY, ALLOW_DEGRADED_PRINTING, ALLOW_FILL_IN, ALLOW_MODIFY_ANNOTATIONS, ALLOW_MODIFY_CONTENTS, ALLOW_PRINTING, ALLOW_SCREENREADERS, AllowAssembly, AllowCopy, AllowDegradedPrinting, AllowFillIn, AllowModifyAnnotations, AllowModifyContents, AllowPrinting, AllowScreenReaders, body, CenterWindow, colorNumber, compressionLevel, crypto, currentPageNumber, currentPdfReaderInstance, defaultColorspace, DID_PRINT, DID_SAVE, directContent, directContentUnder, DirectionL2R, DirectionR2L, DisplayDocTitle, DO_NOT_ENCRYPT_METADATA, DOCUMENT_CLOSE, documentColors, documentExtGState, documentFonts, documentOCG, documentOCGorder, documentPatterns, documentProperties, documentShadingPatterns, documentShadings, documentSpotPatterns, EMBEDDED_FILES_ONLY, ENCRYPTION_AES_128, ENCRYPTION_MASK, extraCatalog, FitWindow, fontNumber, formXObjects, formXObjectsCounter, fullCompression, GENERATION_MAX, group, HideMenubar, HideToolbar, HideWindowUI, imageDictionary, importedPages, JBIG2Globals, newBookmarks, NO_SPACE_CHAR_RATIO, NonFullScreenPageModeUseNone, NonFullScreenPageModeUseOC, NonFullScreenPageModeUseOutlines, NonFullScreenPageModeUseThumbs, OCGLocked, OCGRadioGroup, OCProperties, PAGE_CLOSE, PAGE_OPEN, PageLayoutOneColumn, PageLayoutSinglePage, PageLayoutTwoColumnLeft, PageLayoutTwoColumnRight, PageLayoutTwoPageLeft, PageLayoutTwoPageRight, PageModeFullScreen, PageModeUseAttachments, PageModeUseNone, PageModeUseOC, PageModeUseOutlines, PageModeUseThumbs, pageReferences, patternColorspaceCMYK, patternColorspaceGRAY, patternColorspaceRGB, patternNumber, pdf, pdf_version, PDF_VERSION_1_2, PDF_VERSION_1_3, PDF_VERSION_1_4, PDF_VERSION_1_5, PDF_VERSION_1_6, PDF_VERSION_1_7, PDFA1A, PDFA1B, PDFX1A2001, PDFX32002, PDFXNONE, prevxref, PrintScalingNone, root, RUN_DIRECTION_DEFAULT, RUN_DIRECTION_LTR, RUN_DIRECTION_NO_BIDI, RUN_DIRECTION_RTL, runDirection, SIGNATURE_APPEND_ONLY, SIGNATURE_EXISTS, SPACE_CHAR_RATIO_DEFAULT, STANDARD_ENCRYPTION_128, STANDARD_ENCRYPTION_40, STRENGTH128BITS, STRENGTH40BITS, structureTreeRoot, tabs, tagged, userunit, VERSION_1_2, VERSION_1_3, VERSION_1_4, VERSION_1_5, VERSION_1_6, VERSION_1_7, WILL_PRINT, WILL_SAVE, xmpMetadata`

    - ### Fields inherited from class com.lowagie.text.DocWriter

      `closeStream, document, EQUALS, FORWARD, GT, LT, NEWLINE, open, os, pageSize, pause, QUOTE, SPACE, TAB`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PdfStamperImp(PdfReader reader, java.io.OutputStream os, char pdfVersion, boolean append)` Creates new PdfStamperImp.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAnnotation(PdfAnnotation annot)` Use this methods to add a `PdfAnnotation` or a `PdfFormField` to the document.
    `(package private) void` | `addAnnotation(PdfAnnotation annot, int page)`
    `(package private) void` | `addAnnotation(PdfAnnotation annot, PdfDictionary pageN)`
    `void` | `addComments(FdfReader fdf)`
    `(package private) void` | `addDocumentField(PdfIndirectReference ref)`
    `(package private) void` | `addFieldResources()`
    `(package private) void` | `addFileAttachments()`
    `private void` | `addOrder(PdfLayer parent, PdfArray arr, java.util.Map ocgmap)` Recursive method to reconstruct the documentOCGorder variable in the writer.
    `void` | `addViewerPreference(PdfName key, PdfObject value)` Adds a viewer preference
    `(package private) void` | `alterContents()`
    `(package private) void` | `alterResources(PdfStamperImp.PageStamp ps)`
    `(package private) void` | `applyRotation(PdfDictionary pageN, ByteBuffer out)`
    `(package private) void` | `close(java.util.HashMap moreInfo)`
    `(package private) void` | `correctAcroFieldPages(int page)`
    `(package private) void` | `deleteOutlines()`
    `(package private) void` | `eliminateAcroformObjects()`
    `(package private) void` | `expandFields(PdfFormField field, java.util.ArrayList allAnnots)`
    `(package private) static void` | `findAllObjects(PdfReader reader, PdfObject obj, IntHashtable hits)`
    `(package private) void` | `flatFields()`
    `private void` | `flatFreeTextFields()`
    `(package private) AcroFields` | `getAcroFields()`
    `PdfContentByte` | `getDirectContent()` Use this method to get the direct content for this document.
    `PdfContentByte` | `getDirectContentUnder()` Use this method to get the direct content under for this document.
    `protected int` | `getNewObjectNumber(PdfReader reader, int number, int generation)`
    `(package private) PdfContentByte` | `getOverContent(int pageNum)`
    `PdfIndirectReference` | `getPageReference(int page)` Use this method to get a reference to a page existing or not.
    `(package private) PdfStamperImp.PageStamp` | `getPageStamp(int pageNum)`
    `java.util.Map` | `getPdfLayers()` Gets the PdfLayer objects in an existing document as a Map with the names/titles of the layers as keys.
    `(package private) RandomAccessFileOrArray` | `getReaderFile(PdfReader reader)`
    `(package private) PdfContentByte` | `getUnderContent(int pageNum)`
    `(package private) void` | `insertPage(int pageNumber, Rectangle mediabox)`
    `(package private) boolean` | `isAppend()` Getter for property append.
    `(package private) boolean` | `isContentWritten()`
    `(package private) boolean` | `isRotateContents()` Getter for property rotateContents.
    `(package private) void` | `makePackage(PdfCollection collection)` Adds or replaces the Collection Dictionary in the Catalog.
    `protected void` | `markUsed(int num)`
    `protected void` | `markUsed(PdfObject obj)`
    `private static void` | `moveRectangle(PdfDictionary dic2, PdfReader r, int pageImported, PdfName key, java.lang.String name)`
    `private void` | `outlineTravel(PRIndirectReference outline)`
    `(package private) boolean` | `partialFormFlattening(java.lang.String name)`
    `protected void` | `readOCProperties()` Reads the OCProperties dictionary from the catalog of the existing document and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter.
    `void` | `registerReader(PdfReader reader, boolean openFile)`
    `(package private) void` | `replacePage(PdfReader r, int pageImported, int pageReplaced)`
    `void` | `setAdditionalAction(PdfName actionType, PdfAction action)` Additional-actions defining the actions to be taken in response to various trigger events affecting the document as a whole.
    `void` | `setDuration(int seconds)` Always throws an `UnsupportedOperationException`.
    `(package private) void` | `setDuration(int seconds, int page)` Sets the display duration for the page (for presentations)
    `(package private) void` | `setFormFlattening(boolean flat)`
    `(package private) void` | `setFreeTextFlattening(boolean flat)`
    `(package private) void` | `setJavaScript()`
    `void` | `setOpenAction(PdfAction action)` When the document opens this `action` will be invoked.
    `void` | `setOpenAction(java.lang.String name)` When the document opens it will jump to the destination with this name.
    `(package private) void` | `setOutlines()`
    `void` | `setPageAction(PdfName actionType, PdfAction action)` Always throws an `UnsupportedOperationException`.
    `(package private) void` | `setPageAction(PdfName actionType, PdfAction action, int page)` Sets the open and close page additional action.
    `(package private) void` | `setRotateContents(boolean rotateContents)` Setter for property rotateContents.
    `void` | `setSigFlags(int f)` Set the signature flags.
    `void` | `setThumbnail(Image image)` Use this method to set the thumbnail image for the current page.
    `(package private) void` | `setThumbnail(Image image, int page)`
    `void` | `setTransition(PdfTransition transition)` Always throws an `UnsupportedOperationException`.
    `(package private) void` | `setTransition(PdfTransition transition, int page)` Sets the transition for the page
    `void` | `setViewerPreferences(int preferences)` Sets the viewer preferences.
    `(package private) void` | `sweepKids(PdfObject obj)`
    `void` | `unRegisterReader(PdfReader reader)`

    - ### Methods inherited from class com.lowagie.text.pdf.PdfWriter

      `add, add, add, addCalculationOrder, addDeveloperExtension, addDirectImageSimple, addDirectImageSimple, addDirectTemplateSimple, addFileAttachment, addFileAttachment, addFileAttachment, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addLocalDestinations, addNamedDestination, addNamedDestinations, addOCGRadioGroup, addSharedObjectsToBody, addSimple, addSimple, addSimpleExtGState, addSimplePattern, addSimplePatternColorspace, addSimpleProperty, addSimpleShading, addSimpleShadingPattern, addToBody, addToBody, addToBody, addToBody, addToBody, addToBody, clearTextWrap, close, createXmpMetadata, eliminateFontSubset, fillOCProperties, fitsPage, fitsPage, freeReader, getAcroForm, getBoxSize, getCatalog, getColorspaceName, getCompressionLevel, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getEncryption, getExtraCatalog, getGroup, getImageReference, getImportedPage, getIndirectReferenceNumber, getInfo, getInstance, getInstance, getOCProperties, getOs, getPageEvent, getPageNumber, getPageSize, getPdfDocument, getPdfIndirectReference, getPdfVersion, getPDFXConformance, getReferenceJBIG2Globals, getRootOutline, getRunDirection, getSpaceCharRatio, getStructureTreeRoot, getTabs, getUserunit, getVerticalPosition, isFullCompression, isPageEmpty, isPdfX, isRgbTransparencyBlending, isStrictImageSequence, isTagged, isUserProperties, lockLayer, open, propertyExists, registerLayer, releaseTemplate, reorderPages, resetContent, setAtLeastPdfVersion, setBoxSize, setCollection, setCompressionLevel, setCropBoxSize, setDefaultColorspace, setEncryption, setEncryption, setEncryption, setEncryption, setEncryption, setFullCompression, setGroup, setInitialLeading, setLinearPageMode, setOutlines, setOutputIntents, setOutputIntents, setOutputIntents, setPageEmpty, setPageEvent, setPageLabels, setPageXmpMetadata, setPdfVersion, setPdfVersion, setPDFXConformance, setRgbTransparencyBlending, setRunDirection, setSpaceCharRatio, setStrictImageSequence, setTabs, setTagged, setUserProperties, setUserunit, setXmpMetadata, writeOutlines`

    - ### Methods inherited from class com.lowagie.text.DocWriter

      `add, addTabs, flush, getISOBytes, isCloseStream, isPaused, newPage, pause, resetFooter, resetHeader, resetPageCount, resume, setCloseStream, setFooter, setHeader, setMarginMirroring, setMarginMirroringTopBottom, setMargins, setPageCount, setPageSize, write, write, writeEnd, writeEnd, writeMarkupAttributes, writeStart`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### readers2intrefs

          java.util.HashMap readers2intrefs

    - #### readers2file

          java.util.HashMap readers2file

    - #### file

          RandomAccessFileOrArray file

    - #### reader

          PdfReader reader

    - #### myXref

          IntHashtable myXref

    - #### pagesToContent

          java.util.HashMap pagesToContent

      Integer(page number) -> PageStamp

    - #### closed

          boolean closed

    - #### rotateContents

          private boolean rotateContents

      Holds value of property rotateContents.

    - #### acroFields

          protected AcroFields acroFields

    - #### flat

          protected boolean flat

    - #### flatFreeText

          protected boolean flatFreeText

    - #### namePtr

          protected int[] namePtr

    - #### partialFlattening

          protected java.util.HashSet partialFlattening

    - #### useVp

          protected boolean useVp

    - #### viewerPreferences

          protected PdfViewerPreferencesImp viewerPreferences

    - #### fieldTemplates

          protected java.util.HashMap fieldTemplates

    - #### fieldsAdded

          protected boolean fieldsAdded

    - #### sigFlags

          protected int sigFlags

    - #### append

          protected boolean append

    - #### marked

          protected IntHashtable marked

    - #### initialXrefSize

          protected int initialXrefSize

    - #### openAction

          protected PdfAction openAction

  - ### Constructor Detail

    - #### PdfStamperImp

          PdfStamperImp(PdfReader reader,
                       java.io.OutputStream os,
                       char pdfVersion,
                       boolean append)
                  throws DocumentException,
                         java.io.IOException

      Creates new PdfStamperImp.
      Parameters:
        `reader` - the read PDF
        `os` - the output destination
        `pdfVersion` - the new pdf version or '\0' to keep the same version as the original document
        `append` -
      Throws:
        `DocumentException` - on error
        `java.io.IOException`

  - ### Method Detail

    - #### close

          void close(java.util.HashMap moreInfo)
               throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### applyRotation

          void applyRotation(PdfDictionary pageN,
                           ByteBuffer out)

    - #### alterContents

          void alterContents()
                       throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### alterResources

          void alterResources(PdfStamperImp.PageStamp ps)

    - #### getNewObjectNumber

          protected int getNewObjectNumber(PdfReader reader,
                               int number,
                               int generation)

      Overrides:
        `getNewObjectNumber` in class `PdfWriter`

    - #### getReaderFile

          RandomAccessFileOrArray getReaderFile(PdfReader reader)

      Overrides:
        `getReaderFile` in class `PdfWriter`

    - #### registerReader

          public void registerReader(PdfReader reader,
                            boolean openFile)
                              throws java.io.IOException

      Parameters:
        `reader` -
        `openFile` -
      Throws:
        `java.io.IOException`

    - #### unRegisterReader

          public void unRegisterReader(PdfReader reader)

      Parameters:
        `reader` -

    - #### findAllObjects

          static void findAllObjects(PdfReader reader,
                            PdfObject obj,
                            IntHashtable hits)

    - #### addComments

          public void addComments(FdfReader fdf)
                           throws java.io.IOException

      Parameters:
        `fdf` -
      Throws:
        `java.io.IOException`

    - #### getPageStamp

          PdfStamperImp.PageStamp getPageStamp(int pageNum)

    - #### getUnderContent

          PdfContentByte getUnderContent(int pageNum)

    - #### getOverContent

          PdfContentByte getOverContent(int pageNum)

    - #### correctAcroFieldPages

          void correctAcroFieldPages(int page)

    - #### moveRectangle

          private static void moveRectangle(PdfDictionary dic2,
                           PdfReader r,
                           int pageImported,
                           PdfName key,
                           java.lang.String name)

    - #### replacePage

          void replacePage(PdfReader r,
                         int pageImported,
                         int pageReplaced)

    - #### insertPage

          void insertPage(int pageNumber,
                        Rectangle mediabox)

    - #### isRotateContents

          boolean isRotateContents()

      Getter for property rotateContents.
      Returns:
        Value of property rotateContents.

    - #### setRotateContents

          void setRotateContents(boolean rotateContents)

      Setter for property rotateContents.
      Parameters:
        `rotateContents` - New value of property rotateContents.

    - #### isContentWritten

          boolean isContentWritten()

    - #### getAcroFields

          AcroFields getAcroFields()

    - #### setFormFlattening

          void setFormFlattening(boolean flat)

    - #### setFreeTextFlattening

          void setFreeTextFlattening(boolean flat)

    - #### partialFormFlattening

          boolean partialFormFlattening(java.lang.String name)

    - #### flatFields

          void flatFields()

    - #### eliminateAcroformObjects

          void eliminateAcroformObjects()

    - #### sweepKids

          void sweepKids(PdfObject obj)

    - #### flatFreeTextFields

          private void flatFreeTextFields()

    - #### getPageReference

          public PdfIndirectReference getPageReference(int page)

      Description copied from class: `PdfWriter`
      Use this method to get a reference to a page existing or not. If the page does not exist yet the reference will be created in advance. If on closing the document, a page number greater than the total number of pages was requested, an exception is thrown.
      Overrides:
        `getPageReference` in class `PdfWriter`
      Parameters:
        `page` - the page number. The first page is 1
      Returns:
        the reference to the page
      See Also:
        `PdfWriter.getPageReference(int)`

    - #### addAnnotation

          public void addAnnotation(PdfAnnotation annot)

      Description copied from interface: `PdfAnnotations`
      Use this methods to add a `PdfAnnotation` or a `PdfFormField` to the document. Only the top parent of a `PdfFormField` needs to be added.
      Specified by:
        `addAnnotation` in interface `PdfAnnotations`
      Overrides:
        `addAnnotation` in class `PdfWriter`
      Parameters:
        `annot` - the `PdfAnnotation` or the `PdfFormField` to add
      See Also:
        `PdfWriter.addAnnotation(com.lowagie.text.pdf.PdfAnnotation)`

    - #### addDocumentField

          void addDocumentField(PdfIndirectReference ref)

    - #### addFieldResources

          void addFieldResources()
                           throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### expandFields

          void expandFields(PdfFormField field,
                          java.util.ArrayList allAnnots)

    - #### addAnnotation

          void addAnnotation(PdfAnnotation annot,
                           PdfDictionary pageN)

    - #### addAnnotation

          void addAnnotation(PdfAnnotation annot,
                           int page)

      Overrides:
        `addAnnotation` in class `PdfWriter`

    - #### outlineTravel

          private void outlineTravel(PRIndirectReference outline)

    - #### deleteOutlines

          void deleteOutlines()

    - #### setJavaScript

          void setJavaScript()
                       throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### addFileAttachments

          void addFileAttachments()
                            throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### makePackage

          void makePackage(PdfCollection collection)

      Adds or replaces the Collection Dictionary in the Catalog.
      Parameters:
        `collection` - the new collection dictionary.

    - #### setOutlines

          void setOutlines()
                     throws java.io.IOException

      Throws:
        `java.io.IOException`

    - #### setViewerPreferences

          public void setViewerPreferences(int preferences)

      Sets the viewer preferences.
      Specified by:
        `setViewerPreferences` in interface `PdfViewerPreferences`
      Overrides:
        `setViewerPreferences` in class `PdfWriter`
      Parameters:
        `preferences` - the viewer preferences
      See Also:
        `PdfWriter.setViewerPreferences(int)`

    - #### addViewerPreference

          public void addViewerPreference(PdfName key,
                                 PdfObject value)

      Adds a viewer preference
      Specified by:
        `addViewerPreference` in interface `PdfViewerPreferences`
      Overrides:
        `addViewerPreference` in class `PdfWriter`
      Parameters:
        `key` - a key for a viewer preference
        `value` - the value for the viewer preference
      See Also:
        `PdfViewerPreferences.addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject)`

    - #### setSigFlags

          public void setSigFlags(int f)

      Set the signature flags.
      Specified by:
        `setSigFlags` in interface `PdfAnnotations`
      Overrides:
        `setSigFlags` in class `PdfWriter`
      Parameters:
        `f` - the flags. This flags are ORed with current ones
      See Also:
        `PdfAnnotations.setSigFlags(int)`

    - #### setPageAction

          public void setPageAction(PdfName actionType,
                           PdfAction action)
                             throws PdfException

      Always throws an `UnsupportedOperationException`.
      Specified by:
        `setPageAction` in interface `PdfPageActions`
      Overrides:
        `setPageAction` in class `PdfWriter`
      Parameters:
        `actionType` - ignore
        `action` - ignore
      Throws:
        `PdfException` - ignore
      See Also:
        `PdfStamper.setPageAction(PdfName, PdfAction, int)`

    - #### setPageAction

          void setPageAction(PdfName actionType,
                           PdfAction action,
                           int page)
                       throws PdfException

      Sets the open and close page additional action.
      Parameters:
        `actionType` - the action type. It can be `PdfWriter.PAGE_OPEN` or `PdfWriter.PAGE_CLOSE`
        `action` - the action to perform
        `page` - the page where the action will be applied. The first page is 1
      Throws:
        `PdfException` - if the action type is invalid

    - #### setDuration

          public void setDuration(int seconds)

      Always throws an `UnsupportedOperationException`.
      Specified by:
        `setDuration` in interface `PdfPageActions`
      Overrides:
        `setDuration` in class `PdfWriter`
      Parameters:
        `seconds` - ignore
      See Also:
        `PdfPageActions.setDuration(int)`

    - #### setTransition

          public void setTransition(PdfTransition transition)

      Always throws an `UnsupportedOperationException`.
      Specified by:
        `setTransition` in interface `PdfPageActions`
      Overrides:
        `setTransition` in class `PdfWriter`
      Parameters:
        `transition` - ignore
      See Also:
        `PdfPageActions.setTransition(com.lowagie.text.pdf.PdfTransition)`

    - #### setDuration

          void setDuration(int seconds,
                         int page)

      Sets the display duration for the page (for presentations)
      Parameters:
        `seconds` - the number of seconds to display the page. A negative value removes the entry
        `page` - the page where the duration will be applied. The first page is 1

    - #### setTransition

          void setTransition(PdfTransition transition,
                           int page)

      Sets the transition for the page
      Parameters:
        `transition` - the transition object. A `null` removes the transition
        `page` - the page where the transition will be applied. The first page is 1

    - #### markUsed

          protected void markUsed(PdfObject obj)

    - #### markUsed

          protected void markUsed(int num)

    - #### isAppend

          boolean isAppend()

      Getter for property append.
      Returns:
        Value of property append.

    - #### setAdditionalAction

          public void setAdditionalAction(PdfName actionType,
                                 PdfAction action)
                                   throws PdfException

      Additional-actions defining the actions to be taken in response to various trigger events affecting the document as a whole. The actions types allowed are: `DOCUMENT_CLOSE`, `WILL_SAVE`, `DID_SAVE`, `WILL_PRINT` and `DID_PRINT`.
      Specified by:
        `setAdditionalAction` in interface `PdfDocumentActions`
      Overrides:
        `setAdditionalAction` in class `PdfWriter`
      Parameters:
        `actionType` - the action type
        `action` - the action to execute in response to the trigger
      Throws:
        `PdfException` - on invalid action type
      See Also:
        `PdfDocumentActions.setAdditionalAction(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfAction)`

    - #### setOpenAction

          public void setOpenAction(PdfAction action)

      Description copied from interface: `PdfDocumentActions`
      When the document opens this `action` will be invoked.
      Specified by:
        `setOpenAction` in interface `PdfDocumentActions`
      Overrides:
        `setOpenAction` in class `PdfWriter`
      Parameters:
        `action` - the action to be invoked
      See Also:
        `PdfWriter.setOpenAction(com.lowagie.text.pdf.PdfAction)`

    - #### setOpenAction

          public void setOpenAction(java.lang.String name)

      Description copied from interface: `PdfDocumentActions`
      When the document opens it will jump to the destination with this name.
      Specified by:
        `setOpenAction` in interface `PdfDocumentActions`
      Overrides:
        `setOpenAction` in class `PdfWriter`
      Parameters:
        `name` - the name of the destination to jump to
      See Also:
        `PdfWriter.setOpenAction(java.lang.String)`

    - #### setThumbnail

          public void setThumbnail(Image image)

      Description copied from class: `PdfWriter`
      Use this method to set the thumbnail image for the current page.
      Overrides:
        `setThumbnail` in class `PdfWriter`
      Parameters:
        `image` - the image
      See Also:
        `PdfWriter.setThumbnail(com.lowagie.text.Image)`

    - #### setThumbnail

          void setThumbnail(Image image,
                          int page)
                      throws PdfException,
                             DocumentException

      Throws:
        `PdfException`
        `DocumentException`

    - #### getDirectContentUnder

          public PdfContentByte getDirectContentUnder()

      Description copied from class: `PdfWriter`
      Use this method to get the direct content under for this document. There is only one direct content, multiple calls to this method will always retrieve the same object.
      Overrides:
        `getDirectContentUnder` in class `PdfWriter`
      Returns:
        the direct content

    - #### getDirectContent

          public PdfContentByte getDirectContent()

      Description copied from class: `PdfWriter`
      Use this method to get the direct content for this document. There is only one direct content, multiple calls to this method will allways retrieve the same object.
      Overrides:
        `getDirectContent` in class `PdfWriter`
      Returns:
        the direct content

    - #### readOCProperties

          protected void readOCProperties()

      Reads the OCProperties dictionary from the catalog of the existing document and fills the documentOCG, documentOCGorder and OCGRadioGroup variables in PdfWriter. Note that the original OCProperties of the existing document can contain more information.
      Since:
        2.1.2

    - #### addOrder

          private void addOrder(PdfLayer parent,
                      PdfArray arr,
                      java.util.Map ocgmap)

      Recursive method to reconstruct the documentOCGorder variable in the writer.
      Parameters:
        `parent` - a parent PdfLayer (can be null)
        `arr` - an array possibly containing children for the parent PdfLayer
        `ocgmap` - a HashMap with indirect reference Strings as keys and PdfLayer objects as values.
      Since:
        2.1.2

    - #### getPdfLayers

          public java.util.Map getPdfLayers()

      Gets the PdfLayer objects in an existing document as a Map with the names/titles of the layers as keys.
      Returns:
        a Map with all the PdfLayers in the document (and the name/title of the layer as key)
      Since:
        2.1.2