## 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, java.util.EventListener

     class PdfStamperImp

extends PdfWriter

Nested Class Summary
`(package private) static class` `PdfStamperImp.PageStamp`

Nested classes/interfaces inherited from class com.lowagie.text.pdf.PdfWriter
`PdfWriter.PdfBody, PdfWriter.PdfTrailer`

Field Summary
`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 boolean` `namedAsNames`
`protected int[]` `namePtr`
`protected java.util.List` `newBookmarks`
`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 int` `vp`

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

`AllowAssembly, AllowCopy, AllowDegradedPrinting, AllowFillIn, AllowModifyAnnotations, AllowModifyContents, AllowPrinting, AllowScreenReaders, body, CenterWindow, colorNumber, crypto, currentPageNumber, currentPdfReaderInstance, defaultColorspace, DID_PRINT, DID_SAVE, directContent, directContentUnder, DirectionL2R, DirectionR2L, DisplayDocTitle, DOCUMENT_CLOSE, documentColors, documentExtGState, documentFonts, documentOCG, documentOCGorder, documentPatterns, documentProperties, documentShadingPatterns, documentShadings, documentSpotPatterns, FitWindow, fontNumber, formXObjects, formXObjectsCounter, fullCompression, group, HEADER, HideMenubar, HideToolbar, HideWindowUI, imageDictionary, importedPages, NO_SPACE_CHAR_RATIO, NonFullScreenPageModeUseNone, NonFullScreenPageModeUseOC, NonFullScreenPageModeUseOutlines, NonFullScreenPageModeUseThumbs, OCGRadioGroup, OCProperties, PAGE_CLOSE, PAGE_OPEN, PageLayoutOneColumn, PageLayoutSinglePage, PageLayoutTwoColumnLeft, PageLayoutTwoColumnRight, PageLayoutTwoPageLeft, PageLayoutTwoPageRight, PageModeFullScreen, PageModeUseAttachments, PageModeUseNone, PageModeUseOC, PageModeUseOutlines, PageModeUseThumbs, pageReferences, patternColorspaceCMYK, patternColorspaceGRAY, patternColorspaceRGB, patternNumber, pdf, PDFX1A2001, PDFX32002, PDFXKEY_CMYK, PDFXKEY_COLOR, PDFXKEY_FONT, PDFXKEY_GSTATE, PDFXKEY_IMAGE, PDFXKEY_LAYER, PDFXKEY_RGB, 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, STRENGTH128BITS, STRENGTH40BITS, structureTreeRoot, tagged, userunit, VERSION_1_2, VERSION_1_3, VERSION_1_4, VERSION_1_5, VERSION_1_6, ViewerPreferencesMask, 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
`PdfStamperImp(PdfReader reader, java.io.OutputStream os, char pdfVersion, boolean append)` Creates new PdfStamperImp.

Method Summary
`void` `addAnnotation(PdfAnnotation annot)` Adds 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()`
`(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()` Gets the direct content for this document.
`PdfContentByte` `getDirectContentUnder()` Gets 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)` Gets a reference to a page existing or not.
`(package private) PdfStamperImp.PageStamp` `getPageStamp(int pageNum)`
`(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.
`protected void` `markUsed(int num)`
`protected void` `markUsed(PdfObject obj)`
`private void` `outlineTravel(PRIndirectReference outline)`
`(package private) boolean` `partialFormFlattening(java.lang.String name)`
`void` `registerReader(PdfReader reader, boolean openFile)`
`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()`
`(package private) void` `setOutlines(java.util.List outlines)`
`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)` Sets the 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, addDirectImageSimple, addDirectImageSimple, addDirectTemplateSimple, addFileAttachment, addFileAttachment, addJavaScript, addJavaScript, addJavaScript, addLocalDestinations, addOCGRadioGroup, addSharedObjectsToBody, addSimple, addSimple, addSimpleExtGState, addSimplePattern, addSimplePatternColorspace, addSimpleProperty, addSimpleShading, addSimpleShadingPattern, addToBody, addToBody, addToBody, addToBody, addToBody, addToBody, breakTableIfDoesntFit, checkPDFXConformance, close, createXmpMetadata, eliminateFontSubset, fitsPage, fitsPage, fitsPage, fitsPage, freeReader, getAcroForm, getBoxSize, getCatalog, getColorspaceName, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getEncryption, getExtraCatalog, getGroup, getImageReference, getImportedPage, getIndirectReferenceNumber, getInfo, getInstance, getInstance, getOCProperties, getOs, getPageEvent, getPageNumber, getPageSize, getPdfDocument, getPdfIndirectReference, getPdfTable, getPDFXConformance, getRootOutline, getRunDirection, getSpaceCharRatio, getStructureTreeRoot, getTableBottom, getUserunit, getVerticalPosition, isFullCompression, isPaused, isStrictImageSequence, isTagged, open, propertyExists, registerLayer, releaseTemplate, reorderPages, resetContent, setBoxSize, setCropBoxSize, setDefaultColorspace, setEncryption, setEncryption, setFullCompression, setGroup, setLinearPageMode, setOutputIntents, setOutputIntents, setPageEmpty, setPageEvent, setPageLabels, setPdfVersion, setPDFXConformance, setRunDirection, setSpaceCharRatio, setStrictImageSequence, setTagged, setUserunit, setXmpMetadata`

Methods inherited from class com.lowagie.text.DocWriter
`add, add, addTabs, clearTextWrap, flush, getISOBytes, hasMarkupAttributes, isCloseStream, newPage, pause, removeWatermark, resetFooter, resetHeader, resetPageCount, resume, setCloseStream, setFooter, setHeader, setMarginMirroring, 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

### namedAsNames

    protected boolean namedAsNames

### newBookmarks

    protected java.util.List newBookmarks

### partialFlattening

    protected java.util.HashSet partialFlattening

### useVp

    protected boolean useVp

### vp

    protected int vp

### 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 DocumentException,
                java.io.IOException

  Throws:
    `DocumentException`
    `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)

### 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`
  Gets 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 class: `PdfWriter`
  Adds a `PdfAnnotation` or a `PdfFormField` to the document. Only the top parent of a `PdfFormField` needs to be added.

  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()

### 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`

### setOutlines

    void setOutlines()
               throws java.io.IOException

  Throws:
    `java.io.IOException`

### setOutlines

    void setOutlines(java.util.List outlines)

### setViewerPreferences

    public void setViewerPreferences(int preferences)

  Sets the viewer preferences.

  Overrides:
    `setViewerPreferences` in class `PdfWriter`
  Parameters:
    `preferences` - the viewer preferences
  See Also:
    `PdfWriter.setViewerPreferences(int)`

### setSigFlags

    public void setSigFlags(int f)

  Set the signature flags.

  Overrides:
    `setSigFlags` in class `PdfWriter`
  Parameters:
    `f` - the flags. This flags are ORed with current ones

### setPageAction

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

  Always throws an `UnsupportedOperationException`.

  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`.

  Overrides:
    `setDuration` in class `PdfWriter`
  Parameters:
    `seconds` - ignore

### setTransition

    public void setTransition(PdfTransition transition)

  Always throws an `UnsupportedOperationException`.

  Overrides:
    `setTransition` in class `PdfWriter`
  Parameters:
    `transition` - ignore

### 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`.

  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

### setOpenAction

    public void setOpenAction(PdfAction action)

  Description copied from class: `PdfWriter`
  When the document opens this `action` will be invoked.

  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 class: `PdfWriter`
  When the document opens it will jump to the destination with this name.

  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`
  Sets the 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`
  Gets the direct content under for this document. There is only one direct content, multiple calls to this method will allways retrieve the same.

  Overrides:
    `getDirectContentUnder` in class `PdfWriter`
  Returns:
    the direct content

### getDirectContent

    public PdfContentByte getDirectContent()

  Description copied from class: `PdfWriter`
  Gets the direct content for this document. There is only one direct content, multiple calls to this method will allways retrieve the same.

  Overrides:
    `getDirectContent` in class `PdfWriter`
  Returns:
    the direct content