java.lang.Object
com.gitlab.pdftk_java.com.lowagie.text.DocWriter
com.gitlab.pdftk_java.com.lowagie.text.pdf.PdfWriter
All Implemented Interfaces:
DocListener, ElementListener, EventListener
Direct Known Subclasses:
FdfWriter.Wrt, PdfCopy, PdfCopyFieldsImp, PdfStamperImp

public class PdfWriter extends DocWriter
A DocWriter class for PDF.

When this PdfWriter is added to a certain PdfDocument, the PDF representation of every Element added to this Document will be written to the outputstream.

  • Field Details

    • GENERATION_MAX

      public static final int GENERATION_MAX
      The highest generation number possible.
      Since:
      iText 2.1.6
      See Also:
    • PageLayoutSinglePage

      public static final int PageLayoutSinglePage
      A viewer preference
      See Also:
    • PageLayoutOneColumn

      public static final int PageLayoutOneColumn
      A viewer preference
      See Also:
    • PageLayoutTwoColumnLeft

      public static final int PageLayoutTwoColumnLeft
      A viewer preference
      See Also:
    • PageLayoutTwoColumnRight

      public static final int PageLayoutTwoColumnRight
      A viewer preference
      See Also:
    • PageLayoutTwoPageLeft

      public static final int PageLayoutTwoPageLeft
      A viewer preference
      See Also:
    • PageLayoutTwoPageRight

      public static final int PageLayoutTwoPageRight
      A viewer preference
      See Also:
    • PageModeUseNone

      public static final int PageModeUseNone
      A viewer preference
      See Also:
    • PageModeUseOutlines

      public static final int PageModeUseOutlines
      A viewer preference
      See Also:
    • PageModeUseThumbs

      public static final int PageModeUseThumbs
      A viewer preference
      See Also:
    • PageModeFullScreen

      public static final int PageModeFullScreen
      A viewer preference
      See Also:
    • PageModeUseOC

      public static final int PageModeUseOC
      A viewer preference
      See Also:
    • PageModeUseAttachments

      public static final int PageModeUseAttachments
      A viewer preference
      See Also:
    • HideToolbar

      public static final int HideToolbar
      A viewer preference
      See Also:
    • HideMenubar

      public static final int HideMenubar
      A viewer preference
      See Also:
    • HideWindowUI

      public static final int HideWindowUI
      A viewer preference
      See Also:
    • FitWindow

      public static final int FitWindow
      A viewer preference
      See Also:
    • CenterWindow

      public static final int CenterWindow
      A viewer preference
      See Also:
    • DisplayDocTitle

      public static final int DisplayDocTitle
      A viewer preference
      See Also:
    • NonFullScreenPageModeUseNone

      public static final int NonFullScreenPageModeUseNone
      A viewer preference
      See Also:
    • NonFullScreenPageModeUseOutlines

      public static final int NonFullScreenPageModeUseOutlines
      A viewer preference
      See Also:
    • NonFullScreenPageModeUseThumbs

      public static final int NonFullScreenPageModeUseThumbs
      A viewer preference
      See Also:
    • NonFullScreenPageModeUseOC

      public static final int NonFullScreenPageModeUseOC
      A viewer preference
      See Also:
    • DirectionL2R

      public static final int DirectionL2R
      A viewer preference
      See Also:
    • DirectionR2L

      public static final int DirectionR2L
      A viewer preference
      See Also:
    • PrintScalingNone

      public static final int PrintScalingNone
      A viewer preference
      See Also:
    • ViewerPreferencesMask

      static final int ViewerPreferencesMask
      The mask to decide if a ViewerPreferences dictionary is needed
      See Also:
    • AllowPrinting

      public static final int AllowPrinting
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowModifyContents

      public static final int AllowModifyContents
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowCopy

      public static final int AllowCopy
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowModifyAnnotations

      public static final int AllowModifyAnnotations
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowFillIn

      public static final int AllowFillIn
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowScreenReaders

      public static final int AllowScreenReaders
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowAssembly

      public static final int AllowAssembly
      The operation permitted when the document is opened with the user password
      See Also:
    • AllowDegradedPrinting

      public static final int AllowDegradedPrinting
      The operation permitted when the document is opened with the user password
      See Also:
    • STRENGTH40BITS

      public static final boolean STRENGTH40BITS
      Type of encryption
      See Also:
    • STRENGTH128BITS

      public static final boolean STRENGTH128BITS
      Type of encryption
      See Also:
    • DOCUMENT_CLOSE

      public static final PdfName DOCUMENT_CLOSE
      action value
    • WILL_SAVE

      public static final PdfName WILL_SAVE
      action value
    • DID_SAVE

      public static final PdfName DID_SAVE
      action value
    • WILL_PRINT

      public static final PdfName WILL_PRINT
      action value
    • DID_PRINT

      public static final PdfName DID_PRINT
      action value
    • PAGE_OPEN

      public static final PdfName PAGE_OPEN
      action value
    • PAGE_CLOSE

      public static final PdfName PAGE_CLOSE
      action value
    • SIGNATURE_EXISTS

      public static final int SIGNATURE_EXISTS
      signature value
      See Also:
    • SIGNATURE_APPEND_ONLY

      public static final int SIGNATURE_APPEND_ONLY
      signature value
      See Also:
    • VERSION_1_0

      public static final char VERSION_1_0
      possible PDF version
      See Also:
    • VERSION_1_1

      public static final char VERSION_1_1
      possible PDF version
      See Also:
    • VERSION_1_2

      public static final char VERSION_1_2
      possible PDF version
      See Also:
    • VERSION_1_3

      public static final char VERSION_1_3
      possible PDF version
      See Also:
    • VERSION_1_4

      public static final char VERSION_1_4
      possible PDF version
      See Also:
    • VERSION_1_5

      public static final char VERSION_1_5
      possible PDF version
      See Also:
    • VERSION_1_6

      public static final char VERSION_1_6
      possible PDF version
      See Also:
    • VERSION_1_7

      public static final char VERSION_1_7
      possible PDF version
      See Also:
    • PDF_VERSION_1_2

      public static final PdfName PDF_VERSION_1_2
      possible PDF version (catalog)
    • PDF_VERSION_1_3

      public static final PdfName PDF_VERSION_1_3
      possible PDF version (catalog)
    • PDF_VERSION_1_4

      public static final PdfName PDF_VERSION_1_4
      possible PDF version (catalog)
    • PDF_VERSION_1_5

      public static final PdfName PDF_VERSION_1_5
      possible PDF version (catalog)
    • PDF_VERSION_1_6

      public static final PdfName PDF_VERSION_1_6
      possible PDF version (catalog)
    • PDF_VERSION_1_7

      public static final PdfName PDF_VERSION_1_7
      possible PDF version (catalog)
    • VPOINT

      private static final int VPOINT
      See Also:
    • prevxref

      protected int prevxref
    • root

      private PdfPages root
    • imageDictionary

      protected PdfDictionary imageDictionary
      Dictionary, containing all the images of the PDF document
    • formXObjects

      protected HashMap formXObjects
      The form XObjects in this document. The key is the xref and the value is Object[]{PdfName, template}.
    • formXObjectsCounter

      protected int formXObjectsCounter
      The name counter for the form XObjects name.
    • fontNumber

      protected int fontNumber
      The font number counter for the fonts in the document.
    • colorNumber

      protected int colorNumber
      The color number counter for the colors in the document.
    • patternNumber

      protected int patternNumber
      The patten number counter for the colors in the document.
    • directContent

      private PdfContentByte directContent
      The direct content in this document.
    • directContentUnder

      private PdfContentByte directContentUnder
      The direct content under in this document.
    • documentFonts

      protected HashMap documentFonts
      The fonts of this document
    • documentColors

      protected HashMap documentColors
      The colors of this document
    • documentPatterns

      protected HashMap documentPatterns
      The patterns of this document
    • documentShadings

      protected HashMap documentShadings
    • documentShadingPatterns

      protected HashMap documentShadingPatterns
    • patternColorspaceRGB

      protected ColorDetails patternColorspaceRGB
    • patternColorspaceGRAY

      protected ColorDetails patternColorspaceGRAY
    • patternColorspaceCMYK

      protected ColorDetails patternColorspaceCMYK
    • documentSpotPatterns

      protected HashMap documentSpotPatterns
    • documentExtGState

      protected HashMap documentExtGState
    • documentProperties

      protected HashMap documentProperties
    • documentOCG

      protected HashSet documentOCG
    • documentOCGorder

      protected ArrayList documentOCGorder
    • OCProperties

      protected PdfOCProperties OCProperties
    • OCGRadioGroup

      protected PdfArray OCGRadioGroup
    • defaultColorspace

      protected PdfDictionary defaultColorspace
    • userunit

      protected float userunit
    • PDFXNONE

      public static final int PDFXNONE
      PDF/X value
      See Also:
    • PDFX1A2001

      public static final int PDFX1A2001
      PDF/X value
      See Also:
    • PDFX32002

      public static final int PDFX32002
      PDF/X value
      See Also:
    • pdfxConformance

      private int pdfxConformance
    • PDFXKEY_COLOR

      static final int PDFXKEY_COLOR
      See Also:
    • PDFXKEY_CMYK

      static final int PDFXKEY_CMYK
      See Also:
    • PDFXKEY_RGB

      static final int PDFXKEY_RGB
      See Also:
    • PDFXKEY_FONT

      static final int PDFXKEY_FONT
      See Also:
    • PDFXKEY_IMAGE

      static final int PDFXKEY_IMAGE
      See Also:
    • PDFXKEY_GSTATE

      static final int PDFXKEY_GSTATE
      See Also:
    • PDFXKEY_LAYER

      static final int PDFXKEY_LAYER
      See Also:
    • body

      protected PdfWriter.PdfBody body
      body of the PDF document
    • pdf

      private PdfDocument pdf
      the pdfdocument object.
    • pageEvent

      private PdfPageEvent pageEvent
      The PdfPageEvent for this document.
    • importedPages

      protected HashMap importedPages
    • currentPdfReaderInstance

      protected PdfReaderInstance currentPdfReaderInstance
    • pageReferences

      protected ArrayList pageReferences
      The PdfIndirectReference to the pages.
    • currentPageNumber

      protected int currentPageNumber
    • group

      protected PdfDictionary group
    • SPACE_CHAR_RATIO_DEFAULT

      public static final float SPACE_CHAR_RATIO_DEFAULT
      The default space-char ratio.
      See Also:
    • NO_SPACE_CHAR_RATIO

      public static final float NO_SPACE_CHAR_RATIO
      Disable the inter-character spacing.
      See Also:
    • RUN_DIRECTION_DEFAULT

      public static final int RUN_DIRECTION_DEFAULT
      Use the default run direction.
      See Also:
    • RUN_DIRECTION_NO_BIDI

      public static final int RUN_DIRECTION_NO_BIDI
      Do not use bidirectional reordering.
      See Also:
    • RUN_DIRECTION_LTR

      public static final int RUN_DIRECTION_LTR
      Use bidirectional reordering with left-to-right preferential run direction.
      See Also:
    • RUN_DIRECTION_RTL

      public static final int RUN_DIRECTION_RTL
      Use bidirectional reordering with right-to-left preferential run direction.
      See Also:
    • runDirection

      protected int runDirection
    • spaceCharRatio

      private float spaceCharRatio
      The ratio between the extra word spacing and the extra character spacing. Extra word spacing will grow ratio times more than extra character spacing.
    • extraCatalog

      private PdfDictionary extraCatalog
      Holds value of property extraCatalog.
    • filterStreams

      public boolean filterStreams
    • compressStreams

      public boolean compressStreams
    • xmpMetadata

      protected byte[] xmpMetadata
      XMP Metadata for the document.
    • fullCompression

      protected boolean fullCompression
      Holds value of property fullCompression.
    • tagged

      protected boolean tagged
    • fileID

      protected PdfObject fileID
    • structureTreeRoot

      protected PdfStructureTreeRoot structureTreeRoot
    • INVALID_ENCRYPTION

      public static final int INVALID_ENCRYPTION
      Type of encryption
      See Also:
    • STANDARD_ENCRYPTION_40

      public static final int STANDARD_ENCRYPTION_40
      Type of encryption
      See Also:
    • STANDARD_ENCRYPTION_128

      public static final int STANDARD_ENCRYPTION_128
      Type of encryption
      See Also:
    • ENCRYPTION_AES_128

      public static final int ENCRYPTION_AES_128
      Type of encryption
      See Also:
    • ENCRYPTION_MASK

      static final int ENCRYPTION_MASK
      Mask to separate the encryption type from the encryption mode.
      See Also:
    • DO_NOT_ENCRYPT_METADATA

      public static final int DO_NOT_ENCRYPT_METADATA
      Add this to the mode to keep the metadata in clear text
      See Also:
    • EMBEDDED_FILES_ONLY

      public static final int EMBEDDED_FILES_ONLY
      Add this to the mode to keep encrypt only the embedded files.
      Since:
      2.1.3
      See Also:
    • ALLOW_PRINTING

      public static final int ALLOW_PRINTING
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_MODIFY_CONTENTS

      public static final int ALLOW_MODIFY_CONTENTS
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_COPY

      public static final int ALLOW_COPY
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_MODIFY_ANNOTATIONS

      public static final int ALLOW_MODIFY_ANNOTATIONS
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_FILL_IN

      public static final int ALLOW_FILL_IN
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_SCREENREADERS

      public static final int ALLOW_SCREENREADERS
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_ASSEMBLY

      public static final int ALLOW_ASSEMBLY
      The operation permitted when the document is opened with the user password
      See Also:
    • ALLOW_DEGRADED_PRINTING

      public static final int ALLOW_DEGRADED_PRINTING
      The operation permitted when the document is opened with the user password
      See Also:
    • crypto

      protected PdfEncryption crypto
  • Constructor Details

    • PdfWriter

      protected PdfWriter()
    • PdfWriter

      protected PdfWriter(OutputStream os)
      Constructs a PdfWriter.

      Remark: a PdfWriter can only be constructed by calling the method getInstance(Document document, OutputStream os).

      Parameters:
      document - The PdfDocument that has to be written
      os - The OutputStream the writer has to write to.
  • Method Details

    • add

      Adds some PdfContents to this Writer.

      The document has to be open before you can begin to add content to the body of the document.

      Parameters:
      page - the PdfPage to add
      contents - the PdfContents of the page
      Returns:
      a PdfIndirectReference
      Throws:
      PdfException - on error
    • getImageReference

      PdfIndirectReference getImageReference(PdfName name)
      return the PdfIndirectReference to the image with a given name.
      Parameters:
      name - the name of the image
      Returns:
      a PdfIndirectReference
    • open

      public void open()
      Signals that the Document has been opened and that Elements can be added.

      When this method is called, the PDF-document header is written to the outputstream.

      Specified by:
      open in interface DocListener
      Overrides:
      open in class DocWriter
    • getOCGOrder

      private static void getOCGOrder(PdfArray order, PdfLayer layer)
    • addASEvent

      private void addASEvent(PdfName event, PdfName category)
    • fillOCProperties

      private void fillOCProperties(boolean erase)
    • getCatalog

      protected PdfDictionary getCatalog(PdfIndirectReference rootObj) throws DocumentException
      Throws:
      DocumentException
    • addSharedObjectsToBody

      protected void addSharedObjectsToBody() throws IOException
      Throws:
      IOException
    • close

      public void close()
      Signals that the Document was closed and that no other Elements will be added.

      The pages-tree is built and written to the outputstream. A Catalog is constructed, as well as an Info-object, the referencetable is composed and everything is written to the outputstream embedded in a Trailer.

      Specified by:
      close in interface DocListener
      Overrides:
      close in class DocWriter
    • getVerticalPosition

      public float getVerticalPosition(boolean ensureNewLine)
      Gets the current vertical page position.
      Parameters:
      ensureNewLine - Tells whether a new line shall be enforced. This may cause side effects for elements that do not terminate the lines they've started because those lines will get terminated.
      Returns:
      The current vertical page position.
    • isPaused

      boolean isPaused()
      Checks if writing is paused.
      Returns:
      true if writing temporarely has to be paused, false otherwise.
    • getDirectContent

      public PdfContentByte getDirectContent()
      Gets the direct content for this document. There is only one direct content, multiple calls to this method will allways retrieve the same.
      Returns:
      the direct content
    • getDirectContentUnder

      public PdfContentByte getDirectContentUnder()
      Gets the direct content under for this document. There is only one direct content, multiple calls to this method will allways retrieve the same.
      Returns:
      the direct content
    • resetContent

      void resetContent()
      Resets all the direct contents to empty. This happens when a new page is started.
    • getAcroForm

      public PdfAcroForm getAcroForm() throws DocumentException
      Gets the AcroForm object.
      Returns:
      the PdfAcroForm
      Throws:
      DocumentException
    • getRootOutline

      public PdfOutline getRootOutline()
      Gets the root outline.
      Returns:
      the root outline
    • getOs

      public OutputStreamCounter getOs()
      Returns the outputStreamCounter.
      Returns:
      the outputStreamCounter
    • addSimple

      FontDetails addSimple(BaseFont bf)
      Adds a BaseFont to the document but not to the page resources. It is used for templates.
      Parameters:
      bf - the BaseFont to add
      Returns:
      an Object[] where position 0 is a PdfName and position 1 is an PdfIndirectReference
    • eliminateFontSubset

      void eliminateFontSubset(PdfDictionary fonts)
    • getColorspaceName

      PdfName getColorspaceName()
    • addSimple

      ColorDetails addSimple(PdfSpotColor spc)
      Adds a SpotColor to the document but not to the page resources.
      Parameters:
      spc - the SpotColor to add
      Returns:
      an Object[] where position 0 is a PdfName and position 1 is an PdfIndirectReference
    • addSimplePatternColorspace

      ColorDetails addSimplePatternColorspace(Color color)
    • addSimpleShadingPattern

      void addSimpleShadingPattern(PdfShadingPattern shading)
    • addSimpleShading

      void addSimpleShading(PdfShading shading)
    • addSimpleExtGState

      PdfObject[] addSimpleExtGState(PdfDictionary gstate)
    • registerLayer

      void registerLayer(PdfOCG layer)
    • addSimpleProperty

      PdfObject[] addSimpleProperty(Object prop, PdfIndirectReference refi)
    • propertyExists

      boolean propertyExists(Object prop)
    • getPdfDocument

      public PdfDocument getPdfDocument()
      Gets the PdfDocument associated with this writer.
      Returns:
      the PdfDocument
    • getPdfIndirectReference

      public PdfIndirectReference getPdfIndirectReference()
      Gets a PdfIndirectReference for an object that will be created in the future.
      Returns:
      the PdfIndirectReference
    • getIndirectReferenceNumber

      int getIndirectReferenceNumber()
    • addSimplePattern

      PdfName addSimplePattern(PdfPatternPainter painter)
    • addDirectTemplateSimple

      PdfName addDirectTemplateSimple(PdfTemplate template, PdfName forcedName)
      Adds a template to the document but not to the page resources.
      Parameters:
      template - the template to add
      forcedName - the template name, rather than a generated one. Can be null
      Returns:
      the PdfName for this template
    • setPageEvent

      public void setPageEvent(PdfPageEvent pageEvent)
      Sets the PdfPageEvent for this document.
      Parameters:
      pageEvent - the PdfPageEvent for this document
    • getPageEvent

      public PdfPageEvent getPageEvent()
      Gets the PdfPageEvent for this document or null if none is set.
      Returns:
      the PdfPageEvent for this document or null if none is set
    • addLocalDestinations

      void addLocalDestinations(TreeMap dest) throws IOException
      Adds the local destinations to the body of the document.
      Parameters:
      dest - the HashMap containing the destinations
      Throws:
      IOException - on error
    • getPageNumber

      public int getPageNumber()
      Gets the current pagenumber of this document.
      Returns:
      a page number
    • setViewerPreferences

      public void setViewerPreferences(int preferences)
      Sets the viewer preferences by ORing some constants.

      • The page layout to be used when the document is opened (choose one).
        • PageLayoutSinglePage - Display one page at a time. (default)
        • PageLayoutOneColumn - Display the pages in one column.
        • PageLayoutTwoColumnLeft - Display the pages in two columns, with oddnumbered pages on the left.
        • PageLayoutTwoColumnRight - Display the pages in two columns, with oddnumbered pages on the right.
      • The page mode how the document should be displayed when opened (choose one).
        • PageModeUseNone - Neither document outline nor thumbnail images visible. (default)
        • PageModeUseOutlines - Document outline visible.
        • PageModeUseThumbs - Thumbnail images visible.
        • PageModeFullScreen - Full-screen mode, with no menu bar, window controls, or any other window visible.
        • PageModeUseOC - Optional content group panel visible
      • HideToolbar - A flag specifying whether to hide the viewer application's tool bars when the document is active.
      • HideMenubar - A flag specifying whether to hide the viewer application's menu bar when the document is active.
      • HideWindowUI - 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.
      • FitWindow - A flag specifying whether to resize the document's window to fit the size of the first displayed page.
      • CenterWindow - A flag specifying whether to position the document's window in the center of the screen.
      • DisplayDocTitle - 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).
        • DirectionL2R - Left to right
        • DirectionR2L - 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).
        • NonFullScreenPageModeUseNone - Neither document outline nor thumbnail images visible
        • NonFullScreenPageModeUseOutlines - Document outline visible
        • NonFullScreenPageModeUseThumbs - Thumbnail images visible
        • NonFullScreenPageModeUseOC - Optional content group panel visible
      • PrintScalingNone - Indicates that the print dialog should reflect no page scaling.
      Parameters:
      preferences - the viewer preferences
    • getEncryption

      PdfEncryption getEncryption()
    • 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(byte[] userPassword, byte[] ownerPassword, int permissions, int encryptionType) throws DocumentException
      Throws:
      DocumentException
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object) throws IOException
      Adds an object to the PDF body.
      Parameters:
      object -
      Returns:
      a PdfIndirectObject
      Throws:
      IOException
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, boolean inObjStm) throws IOException
      Adds an object to the PDF body.
      Parameters:
      object -
      inObjStm -
      Returns:
      a PdfIndirectObject
      Throws:
      IOException
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, PdfIndirectReference ref) throws IOException
      Adds an object to the PDF body.
      Parameters:
      object -
      ref -
      Returns:
      a PdfIndirectObject
      Throws:
      IOException
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, PdfIndirectReference ref, boolean inObjStm) throws IOException
      Adds an object to the PDF body.
      Parameters:
      object -
      ref -
      inObjStm -
      Returns:
      a PdfIndirectObject
      Throws:
      IOException
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, int refNumber) throws IOException
      Adds an object to the PDF body.
      Parameters:
      object -
      refNumber -
      Returns:
      a PdfIndirectObject
      Throws:
      IOException
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, int refNumber, boolean inObjStm) throws IOException
      Adds an object to the PDF body.
      Parameters:
      object -
      refNumber -
      inObjStm -
      Returns:
      a PdfIndirectObject
      Throws:
      IOException
    • setOpenAction

      public void setOpenAction(String name)
      When the document opens it will jump to the destination with this name.
      Parameters:
      name - the name of the destination to jump to
    • 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.
      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)
      When the document opens this action will be invoked.
      Parameters:
      action - the action to be invoked
    • setPageLabels

      public void setPageLabels(PdfPageLabels pageLabels)
      Sets the page labels
      Parameters:
      pageLabels - the page labels
    • getReaderFile

      RandomAccessFileOrArray getReaderFile(PdfReader reader) throws IOException
      Throws:
      IOException
    • getNewObjectNumber

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

      public PdfImportedPage getImportedPage(PdfReader reader, int pageNumber) throws IOException
      Gets a page from other PDF document. The page can be used as any other PdfTemplate. Note that calling this method more than once with the same parameters will retrieve the same object.
      Parameters:
      reader - the PDF document where the page is
      pageNumber - the page number. The first page is 1
      Returns:
      the template representing the imported page
      Throws:
      IOException
    • addJavaScript

      public void addJavaScript(PdfAction js)
      Adds a JavaScript action at the document level. When the document opens all this JavaScript runs.
      Parameters:
      js - The JavaScrip action
    • addJavaScript

      public void addJavaScript(String code, boolean unicode)
      Adds a JavaScript action at the document level. When the document opens all this JavaScript runs.
      Parameters:
      code - the JavaScript code
      unicode - select JavaScript unicode. Note that the internal Acrobat JavaScript engine does not support unicode, so this may or may not work for you
    • addJavaScript

      public void addJavaScript(String code)
      Adds a JavaScript action at the document level. When the document opens all this JavaScript runs.
      Parameters:
      code - the JavaScript code
    • setCropBoxSize

      public void setCropBoxSize(Rectangle crop)
      Sets the crop box. The crop box should not be rotated even if the page is rotated. This change only takes effect in the next page.
      Parameters:
      crop - the crop box
    • getPageReference

      public PdfIndirectReference getPageReference(int page)
      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.
      Parameters:
      page - the page number. The first page is 1
      Returns:
      the reference to the page
    • getCurrentPage

      PdfIndirectReference getCurrentPage()
    • getCurrentPageNumber

      int getCurrentPageNumber()
    • addCalculationOrder

      public void addCalculationOrder(PdfFormField annot) throws DocumentException
      Adds the PdfAnnotation to the calculation order array.
      Parameters:
      annot - the PdfAnnotation to be added
      Throws:
      DocumentException
    • setSigFlags

      public void setSigFlags(int f) throws DocumentException
      Set the signature flags.
      Parameters:
      f - the flags. This flags are ORed with current ones
      Throws:
      DocumentException
    • addAnnotation

      public void addAnnotation(PdfAnnotation annot)
      Adds a PdfAnnotation or a PdfFormField to the document. Only the top parent of a PdfFormField needs to be added.
      Parameters:
      annot - the PdfAnnotation or the PdfFormField to add
    • addAnnotation

      void addAnnotation(PdfAnnotation annot, int page)
    • setPdfVersion

      public void setPdfVersion(char version)
      Sets the PDF version. Must be used right before the document is opened. Valid options are VERSION_1_2, VERSION_1_3, VERSION_1_4, VERSION_1_5 and VERSION_1_6. VERSION_1_4 is the default.
      Parameters:
      version - the version number
    • reorderPages

      public int reorderPages(int[] order) throws DocumentException
      Reorder the pages in the document. A null argument value only returns the number of pages to process. It is advisable to issue a Document.newPage() before using this method.
      Parameters:
      order - an array with the new page sequence. It must have the same size as the number of pages.
      Returns:
      the total number of pages
      Throws:
      DocumentException - if all the pages are not present in the array
    • getSpaceCharRatio

      public float getSpaceCharRatio()
      Gets the space/character extra spacing ratio for fully justified text.
      Returns:
      the space/character extra spacing ratio
    • setSpaceCharRatio

      public void setSpaceCharRatio(float spaceCharRatio)
      Sets the ratio between the extra word spacing and the extra character spacing when the text is fully justified. Extra word spacing will grow spaceCharRatio times more than extra character spacing. If the ratio is PdfWriter.NO_SPACE_CHAR_RATIO then the extra character spacing will be zero.
      Parameters:
      spaceCharRatio - the ratio between the extra word spacing and the extra character spacing
    • setRunDirection

      public void setRunDirection(int runDirection)
      Sets the run direction. This is only used as a placeholder as it does not affect anything.
      Parameters:
      runDirection - the run direction
    • getRunDirection

      public int getRunDirection()
      Gets the run direction.
      Returns:
      the run direction
    • setDuration

      public void setDuration(int seconds)
      Sets the display duration for the page (for presentations)
      Parameters:
      seconds - the number of seconds to display the page
    • setTransition

      public void setTransition(PdfTransition transition)
      Sets the transition for the page
      Parameters:
      transition - the Transition object
    • freeReader

      public void freeReader(PdfReader reader) throws IOException
      Writes the reader to the document and frees the memory used by it. The main use is when concatenating multiple documents to keep the memory usage restricted to the current appending document.
      Parameters:
      reader - the PdfReader to free
      Throws:
      IOException - on error
    • setPageAction

      public void setPageAction(PdfName actionType, PdfAction action) 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
      Throws:
      PdfException - if the action type is invalid
    • getCurrentDocumentSize

      public int getCurrentDocumentSize()
      Gets the current document size. This size only includes the data already writen to the output stream, it does not include templates or fonts. It is usefull if used with freeReader() when concatenating many documents and an idea of the current size is needed.
      Returns:
      the approximate size without fonts or templates
    • isStrictImageSequence

      public boolean isStrictImageSequence()
      Getter for property strictImageSequence.
      Returns:
      value of property strictImageSequence
    • setStrictImageSequence

      public void setStrictImageSequence(boolean strictImageSequence)
      Sets the image sequence to follow the text in strict order.
      Parameters:
      strictImageSequence - new value of property strictImageSequence
    • setPageEmpty

      public void setPageEmpty(boolean pageEmpty)
      If you use setPageEmpty(false), invoking newPage() after a blank page will add a newPage.
      Parameters:
      pageEmpty - the state
    • getInfo

      public PdfDictionary getInfo()
      Gets the info dictionary for changing.
      Returns:
      the info dictionary
    • getExtraCatalog

      public PdfDictionary getExtraCatalog()
      Sets extra keys to the catalog.
      Returns:
      the catalog to change
    • setLinearPageMode

      public void setLinearPageMode()
      Sets the document in a suitable way to do page reordering.
    • getGroup

      public PdfDictionary getGroup()
      Getter for property group.
      Returns:
      Value of property group.
    • setGroup

      public void setGroup(PdfDictionary group)
      Setter for property group.
      Parameters:
      group - New value of property group.
    • setPDFXConformance

      public void setPDFXConformance(int pdfxConformance)
      Sets the PDFX conformance level. Allowed values are PDFX1A2001 and PDFX32002. It must be called before opening the document.
      Parameters:
      pdfxConformance - the conformance level
    • getPDFXConformance

      public int getPDFXConformance()
      Gets the PDFX conformance level.
      Returns:
      the PDFX conformance level
    • checkPDFXConformance

      static void checkPDFXConformance(PdfWriter writer, int key, Object obj1)
    • setOutputIntents

      public void setOutputIntents(String outputConditionIdentifier, String outputCondition, String registryName, String info, byte[] destOutputProfile) throws IOException
      Sets the values of the output intent dictionary. Null values are allowed to suppress any key.
      Parameters:
      outputConditionIdentifier - a value
      outputCondition - a value
      registryName - a value
      info - a value
      destOutputProfile - a value
      Throws:
      IOException - on error
    • getNameString

      private static String getNameString(PdfDictionary dic, PdfName key)
    • setOutputIntents

      public boolean setOutputIntents(PdfReader reader, boolean checkExistence) throws IOException
      Copies the output intent dictionary from other document to this one.
      Parameters:
      reader - the other document
      checkExistence - true to just check for the existence of a valid output intent dictionary, false to insert the dictionary if it exists
      Returns:
      true if the output intent dictionary exists, false otherwise
      Throws:
      IOException - on error
    • setBoxSize

      public void setBoxSize(String boxName, Rectangle size)
      Sets the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed".
      Parameters:
      boxName - the box size
      size - the size
    • getDefaultColorspace

      public PdfDictionary getDefaultColorspace()
      Gets the default colorspaces.
      Returns:
      the default colorspaces
    • setDefaultColorspace

      public void setDefaultColorspace(PdfName key, PdfObject cs)
      Sets the default colorspace that will be applied to all the document. The colorspace is only applied if another colorspace with the same name is not present in the content.

      The colorspace is applied immediately when creating templates and at the page end for the main document content.

      Parameters:
      key - the name of the colorspace. It can be PdfName.DEFAULTGRAY, PdfName.DEFAULTRGB or PdfName.DEFAULTCMYK
      cs - the colorspace. A null or PdfNull removes any colorspace with the same name
    • 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.

    • getOCProperties

      public PdfOCProperties getOCProperties()
      Gets the Optional Content Properties Dictionary. Each call fills the dictionary with the current layer state. It's advisable to only call this method right before close and do any modifications at that time.
      Returns:
      the Optional Content Properties Dictionary
    • addOCGRadioGroup

      public void addOCGRadioGroup(ArrayList group)
      Sets a collection of optional content groups whose states are intended to follow a "radio button" paradigm. That is, the state of at most one optional content group in the array should be ON at a time: if one group is turned ON, all others must be turned OFF.
      Parameters:
      group - the radio group
    • getUserunit

      public float getUserunit()
      A UserUnit is a value that defines the default user space unit. The minimum UserUnit is 1 (1 unit = 1/72 inch). The maximum UserUnit is 75,000. Remark that this userunit only works starting with PDF1.6!
      Returns:
      Returns the userunit.
    • setUserunit

      public void setUserunit(float userunit) throws DocumentException
      A UserUnit is a value that defines the default user space unit. The minimum UserUnit is 1 (1 unit = 1/72 inch). The maximum UserUnit is 75,000. Remark that this userunit only works starting with PDF1.6!
      Parameters:
      userunit - The userunit to set.
      Throws:
      DocumentException
    • setXmpMetadata

      public void setXmpMetadata(byte[] xmpMetadata)
      Sets XMP Metadata.
      Parameters:
      xmpMetadata - The xmpMetadata to set.
    • releaseTemplate

      public void releaseTemplate(PdfTemplate tp) throws IOException
      Releases the memory used by a template by writing it to the output. The template can still be added to any content but changes to the template itself won't have any effect.
      Parameters:
      tp - the template to release
      Throws:
      IOException - on error
    • setTagged

      public void setTagged()
      Mark this document for tagging. It must be called before open.
    • isTagged

      public boolean isTagged()
      Check if the document is marked for tagging.
      Returns:
      true if the document is marked for tagging
    • setFileID

      public void setFileID(PdfObject fileID)
      Set the PDF ID; ssteward
    • getFileID

      public PdfObject getFileID()
      Get the pre-set PDF ID; ssteward
    • getStructureTreeRoot

      public PdfStructureTreeRoot getStructureTreeRoot()
      Gets the structure tree root. If the document is not marked for tagging it will return null.
      Returns:
      the structure tree root
    • getRoot

      public PdfPages getRoot()