Class PdfWriter

java.lang.Object
com.lowagie.text.DocWriter
com.lowagie.text.pdf.PdfWriter
All Implemented Interfaces:
DocListener, ElementListener, PdfAnnotations, PdfDocumentActions, PdfEncryptionSettings, PdfPageActions, PdfRunDirection, PdfVersion, PdfViewerPreferences, PdfXConformance, AutoCloseable, EventListener
Direct Known Subclasses:
FdfWriter.Wrt, PdfCopy, PdfCopyFieldsImp, PdfStamperImp

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:
    • VERSION_1_2

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

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

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

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

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

      public static final char VERSION_1_7
      possible PDF version (header)
      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)
    • 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:
    • 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
    • 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:
    • PDFXNONE

      public static final int PDFXNONE
      A PDF/X level.
      See Also:
    • PDFX1A2001

      public static final int PDFX1A2001
      A PDF/X level.
      See Also:
    • PDFX32002

      public static final int PDFX32002
      A PDF/X level.
      See Also:
    • PDFA1A

      public static final int PDFA1A
      PDFA-1A level.
      See Also:
    • PDFA1B

      public static final int PDFA1B
      PDFA-1B level.
      See Also:
    • ENCRYPTION_NONE

      public static final int ENCRYPTION_NONE
      No 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_AES_256_V3

      public static final int ENCRYPTION_AES_256_V3
      Type of encryption
      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
      Since:
      2.0.7
      See Also:
    • ALLOW_MODIFY_CONTENTS

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

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

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

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

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

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

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

      public static final PdfName PAGE_OPEN
      action value
    • PAGE_CLOSE

      public static final PdfName PAGE_CLOSE
      action value
    • 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:
    • ENCRYPTION_MASK

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

      private final PdfXConformanceImp pdfxConformance
      Stores the PDF/X level.
    • images

      private final HashMap<Long,PdfName> images
      This is the list with all the images in the document.
    • pdf

      protected PdfDocument pdf
      the pdfdocument object.
    • directContent

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

      protected PdfContentByte directContentUnder
      The direct content under in this document.
    • body

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

      protected PdfDictionary extraCatalog
      Holds value of property extraCatalog this is used for Output Intents.
    • root

      protected PdfPages root
      The root of the page tree.
    • pageReferences

      protected ArrayList<PdfIndirectReference> pageReferences
      The PdfIndirectReference to the pages.
    • currentPageNumber

      protected int currentPageNumber
      The current page number.
    • tabs

      protected PdfName tabs
      The value of the Tabs entry in the page dictionary.
      Since:
      2.1.5
    • prevxref

      protected int prevxref
      A number referring to the previous Cross-Reference Table.
    • newBookmarks

      protected List newBookmarks
    • pdf_version

      protected PdfVersionImp pdf_version
      Stores the version information for the header and the catalog.
    • xmpMetadata

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

      protected PdfEncryption crypto
      Contains the business logic for cryptography.
    • fullCompression

      protected boolean fullCompression
      Holds value of property fullCompression.
    • compressionLevel

      protected int compressionLevel
      The compression level of the content streams.
      Since:
      2.1.3
    • documentFonts

      protected LinkedHashMap<BaseFont,FontDetails> documentFonts
      The fonts of this document
    • fontNumber

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

      protected LinkedHashMap<PdfIndirectReference,Object[]> 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.
    • importedPages

      protected HashMap<PdfReader,PdfReaderInstance> importedPages
    • currentPdfReaderInstance

      protected PdfReaderInstance currentPdfReaderInstance
    • documentColors

      protected HashMap<PdfSpotColor,ColorDetails> documentColors
      The colors of this document
    • colorNumber

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

      protected HashMap<PdfPatternPainter,PdfName> documentPatterns
      The patterns of this document
    • patternNumber

      protected int patternNumber
      The pattern number counter for the colors in the document.
    • documentShadingPatterns

      protected HashMap<PdfShadingPattern,Object> documentShadingPatterns
    • documentShadings

      protected HashMap<PdfShading,Object> documentShadings
    • documentExtGState

      protected HashMap<PdfDictionary,PdfObject[]> documentExtGState
    • documentProperties

      protected HashMap<Object,PdfObject[]> documentProperties
    • tagged

      protected boolean tagged
    • structureTreeRoot

      protected PdfStructureTreeRoot structureTreeRoot
    • documentOCG

      protected Set<PdfOCG> documentOCG
      A hashSet containing all the PdfLayer objects.
    • documentOCGorder

      protected List<PdfOCG> documentOCGorder
      An array list used to define the order of an OCG tree.
    • OCProperties

      protected PdfOCProperties OCProperties
      The OCProperties in a catalog dictionary.
    • OCGRadioGroup

      protected PdfArray OCGRadioGroup
      The RBGroups array in an OCG dictionary
    • OCGLocked

      protected PdfArray OCGLocked
      The locked array in an OCG dictionary
      Since:
      2.1.2
    • group

      protected PdfDictionary group
      A group attributes dictionary specifying the attributes of the page's page group for use in the transparent imaging model
    • runDirection

      protected int runDirection
    • userunit

      protected float userunit
    • defaultColorspace

      protected PdfDictionary defaultColorspace
    • documentSpotPatterns

      protected HashMap<ColorDetails,ColorDetails> documentSpotPatterns
    • patternColorspaceRGB

      protected ColorDetails patternColorspaceRGB
    • patternColorspaceGRAY

      protected ColorDetails patternColorspaceGRAY
    • patternColorspaceCMYK

      protected ColorDetails patternColorspaceCMYK
    • imageDictionary

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

      protected HashMap<PdfStream,PdfIndirectReference> JBIG2Globals
      A HashSet with Stream objects containing JBIG2 Globals
      Since:
      2.1.5
    • pageEvent

      private PdfPageEvent pageEvent
      The PdfPageEvent for this document.
    • 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.
    • userProperties

      private boolean userProperties
      A flag indicating the presence of structure elements that contain user properties attributes.
    • rgbTransparencyBlending

      private boolean rgbTransparencyBlending
      Holds value of property RGBTranparency.
  • Constructor Details

    • PdfWriter

      protected PdfWriter()
      Constructs a PdfWriter.
    • PdfWriter

      protected PdfWriter(PdfDocument document, 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

    • getInstance

      public static PdfWriter getInstance(Document document, OutputStream os) throws DocumentException
      Use this method to get an instance of the PdfWriter.
      Parameters:
      document - The Document that has to be written
      os - The OutputStream the writer has to write to.
      Returns:
      a new PdfWriter
      Throws:
      DocumentException - on error
    • getInstance

      public static PdfWriter getInstance(Document document, OutputStream os, DocListener listener) throws DocumentException
      Use this method to get an instance of the PdfWriter.
      Parameters:
      document - The Document that has to be written
      os - The OutputStream the writer has to write to.
      listener - A DocListener to pass to the PdfDocument.
      Returns:
      a new PdfWriter
      Throws:
      DocumentException - on error
    • getNameString

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

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

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

      public PdfDictionary getInfo()
      Use this method to get the info dictionary if you want to change it directly (add keys and values to the info dictionary).
      Returns:
      the info dictionary
    • getVerticalPosition

      public float getVerticalPosition(boolean ensureNewLine)
      Use this method to get 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.
    • setInitialLeading

      public void setInitialLeading(float leading) throws DocumentException
      Sets the initial leading for the PDF document. This has to be done before the document is opened.
      Parameters:
      leading - the initial leading
      Throws:
      DocumentException - if you try setting the leading after the document was opened.
      Since:
      2.1.6
    • getDirectContent

      public PdfContentByte getDirectContent()
      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.
      Returns:
      the direct content
    • getDirectContentUnder

      public PdfContentByte getDirectContentUnder()
      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.
      Returns:
      the direct content
    • resetContent

      void resetContent()
      Resets all the direct contents to empty. This happens when a new page is started.
    • 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
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object) throws IOException
      Use this method to add a PDF object to the PDF body. Use this method only if you know what you're doing!
      Parameters:
      object - the PDF object to add
      Returns:
      a PdfIndirectObject
      Throws:
      IOException - thrown when an I/O operation fails
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, boolean inObjStm) throws IOException
      Use this method to add a PDF object to the PDF body. Use this method only if you know what you're doing!
      Parameters:
      object - the PDF object to add
      inObjStm - a boolean
      Returns:
      a PdfIndirectObject
      Throws:
      IOException - thrown when an I/O operation fails
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, PdfIndirectReference ref) throws IOException
      Use this method to add a PDF object to the PDF body. Use this method only if you know what you're doing!
      Parameters:
      object - the object to add
      ref - the IndirectReference of that object
      Returns:
      a PdfIndirectObject
      Throws:
      IOException - thrown when an I/O operation fails
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, PdfIndirectReference ref, boolean inObjStm) throws IOException
      Use this method to add a PDF object to the PDF body. Use this method only if you know what you're doing!
      Parameters:
      object - the object to add
      ref - the indirect reference
      inObjStm - a boolean
      Returns:
      a PdfIndirectObject
      Throws:
      IOException - thrown when an I/O operation fails
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, int refNumber) throws IOException
      Use this method to add a PDF object to the PDF body. Use this method only if you know what you're doing!
      Parameters:
      object - the object to add
      refNumber - the reference number
      Returns:
      a PdfIndirectObject
      Throws:
      IOException - thrown when an I/O operation fails
    • addToBody

      public PdfIndirectObject addToBody(PdfObject object, int refNumber, boolean inObjStm) throws IOException
      Use this method to add a PDF object to the PDF body. Use this method only if you know what you're doing!
      Parameters:
      object - the object to add
      refNumber - the reference number
      inObjStm - a boolean
      Returns:
      a PdfIndirectObject
      Throws:
      IOException - thrown when an I/O operation fails
    • getPdfIndirectReference

      public PdfIndirectReference getPdfIndirectReference()
      Use this to get an PdfIndirectReference for an object that will be created in the future. Use this method only if you know what you're doing!
      Returns:
      the PdfIndirectReference
    • getIndirectReferenceNumber

      int getIndirectReferenceNumber()
    • getOs

      Returns the outputStreamCounter.
      Returns:
      the outputStreamCounter
    • getCatalog

      protected PdfDictionary getCatalog(PdfIndirectReference rootObj)
    • getExtraCatalog

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

      public void setLinearPageMode()
      Use this method to make sure the page tree has a linear structure (every leave is attached directly to the root). Use this method to allow page reordering with method reorderPages.
    • reorderPages

      public int reorderPages(int[] order) throws DocumentException
      Use this method to 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
    • getPageReference

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

      public int getPageNumber()
      Gets the pagenumber of this document. This number can be different from the real pagenumber, if you have (re)set the page number previously.
      Returns:
      a page number
    • getCurrentPage

      PdfIndirectReference getCurrentPage()
    • getCurrentPageNumber

      public int getCurrentPageNumber()
    • getTabs

      public PdfName getTabs()
      Returns the value to be used for the Tabs entry in the page tree.
      Returns:
      a PdfName of the value of the Tabs entry in the page dictionnary
      Since:
      2.1.5
    • setTabs

      public void setTabs(PdfName tabs)
      Sets the value for the Tabs entry in the page tree.
      Parameters:
      tabs - Can be PdfName.R, PdfName.C or PdfName.S. Since the Adobe Extensions Level 3, it can also be PdfName.A or PdfName.W
      Since:
      2.1.5
    • 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
    • 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
    • setPageEvent

      public void setPageEvent(PdfPageEvent event)
      Sets the PdfPageEvent for this document.
      Parameters:
      event - the PdfPageEvent for this document
    • 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
      See Also:
    • 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 reference table is composed and everything is written to the outputstream embedded in a Trailer.

      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface DocListener
      Overrides:
      close in class DocWriter
      See Also:
    • addSharedObjectsToBody

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

      public PdfOutline getRootOutline()
      Use this method to get the root outline and construct bookmarks.
      Returns:
      the root outline
    • setOutlines

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

      protected void writeOutlines(PdfDictionary catalog, boolean namedAsNames) throws IOException
      Throws:
      IOException
    • setAtLeastPdfVersion

      public void setAtLeastPdfVersion(char version)
      Description copied from interface: PdfVersion
      If the PDF Header hasn't been written yet, this changes the version as it will appear in the PDF Header, but only if the parameter refers to a higher version. If the PDF header was already written to the OutputStream, this changes the version as it will appear in the Catalog.
      Specified by:
      setAtLeastPdfVersion in interface PdfVersion
      Parameters:
      version - a character representing the PDF version
      See Also:
    • addDeveloperExtension

      public void addDeveloperExtension(PdfDeveloperExtension de)
      Description copied from interface: PdfVersion
      Adds a developer extension to the Extensions dictionary in the Catalog.
      Specified by:
      addDeveloperExtension in interface PdfVersion
      Parameters:
      de - an object that contains the extensions prefix and dictionary
      Since:
      2.1.6
      See Also:
    • getPdfVersion

      PdfVersionImp getPdfVersion()
      Returns the version information.
    • setPdfVersion

      public void setPdfVersion(char version)
      Description copied from interface: PdfVersion
      If the PDF Header hasn't been written yet, this changes the version as it will appear in the PDF Header. If the PDF header was already written to the OutputStream, this changes the version as it will appear in the Catalog.
      Specified by:
      setPdfVersion in interface PdfVersion
      Parameters:
      version - a character representing the PDF version
      See Also:
    • setPdfVersion

      public void setPdfVersion(PdfName version)
      Description copied from interface: PdfVersion
      Sets the PDF version as it will appear in the Catalog. Note that this only has effect if you use a later version than the one that appears in the header; this method ignores the parameter if you try to set a lower version.
      Specified by:
      setPdfVersion in interface PdfVersion
      Parameters:
      version - the PDF name that will be used for the Version key in the catalog
      See Also:
    • setViewerPreferences

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

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

      public void setPageLabels(PdfPageLabels pageLabels)
      Use this method to add page labels
      Parameters:
      pageLabels - the page labels
    • addNamedDestinations

      public void addNamedDestinations(Map<String,String> map, int page_offset)
      Adds named destinations in bulk. Valid keys and values of the map can be found in the map that is created by SimpleNamedDestination.
      Parameters:
      map - a map with strings as keys for the names, and structured strings as values for the destinations
      page_offset - number of pages that has to be added to the page numbers in the destinations (useful if you use this method in combination with PdfCopy).
      Since:
      iText 5.0
    • addNamedDestination

      public void addNamedDestination(String name, int page, PdfDestination dest)
      Adds one named destination.
      Parameters:
      name - the name for the destination
      page - the page number where you want to jump to
      dest - an explicit destination
      Since:
      iText 5.0
    • addJavaScript

      public void addJavaScript(PdfAction js)
      Use this method to add a JavaScript action at the document level. When the document opens, all this JavaScript runs.
      Parameters:
      js - The JavaScript action
    • addJavaScript

      public void addJavaScript(String code, boolean unicode)
      Use this method to add 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)
      Use this method to adds a JavaScript action at the document level. When the document opens, all this JavaScript runs.
      Parameters:
      code - the JavaScript code
    • addJavaScript

      public void addJavaScript(String name, PdfAction js)
      Use this method to add a JavaScript action at the document level. When the document opens, all this JavaScript runs.
      Parameters:
      name - The name of the JS Action in the name tree
      js - The JavaScript action
    • addJavaScript

      public void addJavaScript(String name, String code, boolean unicode)
      Use this method to add a JavaScript action at the document level. When the document opens, all this JavaScript runs.
      Parameters:
      name - The name of the JS Action in the name tree
      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 name, String code)
      Use this method to adds a JavaScript action at the document level. When the document opens, all this JavaScript runs.
      Parameters:
      name - The name of the JS Action in the name tree
      code - the JavaScript code
    • addFileAttachment

      public void addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay) throws IOException
      Use this method to add a file attachment at the document level.
      Parameters:
      description - the file description
      fileStore - an array with the file. If it's null the file will be read from the disk
      file - the path to the file. It will only be used if fileStore is not null
      fileDisplay - the actual file name stored in the pdf
      Throws:
      IOException - on error
    • addFileAttachment

      public void addFileAttachment(String description, PdfFileSpecification fs) throws IOException
      Use this method to add a file attachment at the document level.
      Parameters:
      description - the file description
      fs - the file specification
      Throws:
      IOException - thrown when an I/O operation fails
    • addFileAttachment

      public void addFileAttachment(PdfFileSpecification fs) throws IOException
      Use this method to add a file attachment at the document level.
      Parameters:
      fs - the file specification
      Throws:
      IOException - thrown when an I/O operation fails
    • setOpenAction

      public void setOpenAction(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
      Parameters:
      name - the name of the destination to jump to
      See Also:
    • 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
      Parameters:
      action - the action to be invoked
      See Also:
    • setAdditionalAction

      public void setAdditionalAction(PdfName actionType, PdfAction action) throws DocumentException
      Description copied from interface: PdfDocumentActions
      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
      Parameters:
      actionType - the action type
      action - the action to execute in response to the trigger
      Throws:
      DocumentException - on invalid action type
      See Also:
    • setCollection

      public void setCollection(PdfCollection collection)
      Use this method to add the Collection dictionary.
      Parameters:
      collection - a dictionary of type PdfCollection
    • getAcroForm

      public PdfAcroForm getAcroForm()
      Description copied from interface: PdfAnnotations
      Use this methods to get the AcroForm object. Use this method only if you know what you're doing
      Specified by:
      getAcroForm in interface PdfAnnotations
      Returns:
      the PdfAcroform object of the PdfDocument
      See Also:
    • 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
      Parameters:
      annot - the PdfAnnotation or the PdfFormField to add
      See Also:
    • addAnnotation

      void addAnnotation(PdfAnnotation annot, int page)
    • addCalculationOrder

      public void addCalculationOrder(PdfFormField annot)
      Description copied from interface: PdfAnnotations
      Use this method to adds the PdfAnnotation to the calculation order array.
      Specified by:
      addCalculationOrder in interface PdfAnnotations
      Parameters:
      annot - the PdfAnnotation to be added
      See Also:
    • setSigFlags

      public void setSigFlags(int f)
      Description copied from interface: PdfAnnotations
      Use this method to set the signature flags.
      Specified by:
      setSigFlags in interface PdfAnnotations
      Parameters:
      f - the flags. This flags are ORed with current ones
      See Also:
    • setXmpMetadata

      public void setXmpMetadata(byte[] xmpMetadata)
      Use this method to set the XMP Metadata.
      Parameters:
      xmpMetadata - The xmpMetadata to set.
    • setPageXmpMetadata

      public void setPageXmpMetadata(byte[] xmpMetadata)
      Use this method to set the XMP Metadata for each page.
      Parameters:
      xmpMetadata - The xmpMetadata to set.
    • createXmpMetadata

      public void createXmpMetadata()
      Use this method to creates XMP Metadata based on the metadata in the PdfDocument.
    • createXmpMetadataBytes

      private byte[] createXmpMetadataBytes()
      Returns:
      an XmpMetadata byte array
    • getPDFXConformance

      public int getPDFXConformance()
      Description copied from interface: PdfXConformance
      Getter for the PDF/X Conformance value.
      Specified by:
      getPDFXConformance in interface PdfXConformance
      Returns:
      the pdfxConformance
      See Also:
    • setPDFXConformance

      public void setPDFXConformance(int pdfx)
      Description copied from interface: PdfXConformance
      Sets the PDF/X conformance level. Allowed values are PDFX1A2001, PDFX32002, PDFA1A and PDFA1B. It must be called before opening the document.
      Specified by:
      setPDFXConformance in interface PdfXConformance
      Parameters:
      pdfx - the conformance level
      See Also:
    • isPdfX

      public boolean isPdfX()
      Description copied from interface: PdfXConformance
      Checks if the PDF/X Conformance is necessary.
      Specified by:
      isPdfX in interface PdfXConformance
      Returns:
      true if the PDF has to be in conformance with any of the PDF/X specifications
      See Also:
    • isPdfA1

      public boolean isPdfA1()
    • setOutputIntents

      public void setOutputIntents(String outputConditionIdentifier, String outputCondition, String registryName, String info, ICC_Profile colorProfile) 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, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance.
      registryName - a value
      info - a value
      colorProfile - a value
      Throws:
      IOException - on error
      Since:
      2.1.5
    • 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.

      Prefer the ICC_Profile-based version of this method.

      Parameters:
      outputConditionIdentifier - a value
      outputCondition - a value, "PDFA/A" to force GTS_PDFA1, otherwise cued by pdfxConformance.
      registryName - a value
      info - a value
      destOutputProfile - a value
      Throws:
      IOException - on error
      Since:
      1.x
    • setOutputIntents

      public boolean setOutputIntents(PdfReader reader, boolean checkExistence) throws IOException
      Use this method to copy the output intent dictionary from another 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
    • getEncryption

      PdfEncryption getEncryption()
    • setEncryption

      public void setEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, int encryptionType) throws DocumentException
      Description copied from interface: PdfEncryptionSettings
      Sets the encryption options for this document. The userPassword and the ownerPassword can be null or have zero length. In this case the ownerPassword is replaced by a random string. The open permissions for the document can be AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. The permissions can be combined by ORing them.
      Specified by:
      setEncryption in interface PdfEncryptionSettings
      Parameters:
      userPassword - the user password. Can be null or empty
      ownerPassword - the owner password. Can be null or empty
      permissions - the user permissions
      encryptionType - the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext
      Throws:
      DocumentException - if the document is already open
      See Also:
    • setEncryption

      public void setEncryption(Certificate[] certs, int[] permissions, int encryptionType) throws DocumentException
      Description copied from interface: PdfEncryptionSettings
      Sets the certificate encryption options for this document. An array of one or more public certificates must be provided together with an array of the same size for the permissions for each certificate. The open permissions for the document can be AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. The permissions can be combined by ORing them. Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext
      Specified by:
      setEncryption in interface PdfEncryptionSettings
      Parameters:
      certs - the public certificates to be used for the encryption
      permissions - the user permissions for each of the certificates
      encryptionType - the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128.
      Throws:
      DocumentException - if the document is already open
      See Also:
    • isFullCompression

      public boolean isFullCompression()
      Use this method to find out if 1.5 compression is on.
      Returns:
      the 1.5 compression status
    • setFullCompression

      public void setFullCompression()
      Use this method to set the document's compression to the PDF 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.

    • getCompressionLevel

      public int getCompressionLevel()
      Returns the compression level used for streams written by this writer.
      Returns:
      the compression level (0 = best speed, 9 = best compression, -1 is default)
      Since:
      2.1.3
    • setCompressionLevel

      public void setCompressionLevel(int compressionLevel)
      Sets the compression level to be used for streams written by this writer.
      Parameters:
      compressionLevel - a value between 0 (best speed) and 9 (best compression)
      Since:
      2.1.3
    • 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)
    • 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
    • releaseTemplate

      public void releaseTemplate(PdfTemplate tp) throws IOException
      Use this method to releases the memory used by a template. This method writes the template 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
    • getImportedPage

      public PdfImportedPage getImportedPage(PdfReader reader, int pageNumber)
      Use this method to get 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
    • freeReader

      public void freeReader(PdfReader reader) throws IOException
      Use this method to writes the reader to the document and free 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
    • getCurrentDocumentSize

      public long getCurrentDocumentSize()
      Use this method to gets the current document size. This size only includes the data already written to the output stream, it does not include templates or fonts. It is useful 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
    • getNewObjectNumber

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

      RandomAccessFileOrArray getReaderFile(PdfReader reader)
    • 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
    • addSimplePattern

      PdfName addSimplePattern(PdfPatternPainter painter)
    • addSimpleShadingPattern

      void addSimpleShadingPattern(PdfShadingPattern shading)
    • addSimpleShading

      void addSimpleShading(PdfShading shading)
    • addSimpleExtGState

      PdfObject[] addSimpleExtGState(PdfDictionary gstate)
    • addSimpleProperty

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

      boolean propertyExists(Object prop)
    • 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
    • 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
    • getOCProperties

      public PdfOCProperties getOCProperties()
      Use this method to get 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(List<PdfLayer> group)
      Use this method to set 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
    • lockLayer

      public void lockLayer(PdfLayer layer)
      Use this method to lock an optional content group. The state of a locked group cannot be changed through the user interface of a viewer application. Producers can use this entry to prevent the visibility of content that depends on these groups from being changed by users.
      Parameters:
      layer - the layer that needs to be added to the array of locked OCGs
      Since:
      2.1.2
    • addASEvent

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

      protected void fillOCProperties(boolean erase)
      Parameters:
      erase - true to erase, false otherwise
      Since:
      2.1.2
    • registerLayer

      void registerLayer(PdfOCG layer)
    • getPageSize

      public Rectangle getPageSize()
      Use this method to get the size of the media box.
      Returns:
      a Rectangle
    • setCropBoxSize

      public void setCropBoxSize(Rectangle crop)
      Use this method to set 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
    • setBoxSize

      public void setBoxSize(String boxName, Rectangle size)
      Use this method to set the page box sizes. Allowed names are: "crop", "trim", "art" and "bleed".
      Parameters:
      boxName - the box size
      size - the size
    • getBoxSize

      public Rectangle getBoxSize(String boxName)
      Use this method to get the size of a trim, art, crop or bleed box, or null if not defined.
      Parameters:
      boxName - crop, trim, art or bleed
      Returns:
      the Rectangle
    • isPageEmpty

      public boolean isPageEmpty()
      Checks if a newPage() will actually generate a new page.
      Returns:
      true if a new page will be generated, false otherwise
      Since:
      2.1.8
    • setPageEmpty

      public void setPageEmpty(boolean pageEmpty)
      Use this method to make sure a page is added, even if it's empty. If you use setPageEmpty(false), invoking newPage() after a blank page will add a newPage. setPageEmpty(true) won't have any effect.
      Parameters:
      pageEmpty - the state
    • setPageAction

      public void setPageAction(PdfName actionType, PdfAction action) throws DocumentException
      Description copied from interface: PdfPageActions
      Sets the open and close page additional action.
      Specified by:
      setPageAction in interface PdfPageActions
      Parameters:
      actionType - the action type. It can be PdfWriter.PAGE_OPEN or PdfWriter.PAGE_CLOSE
      action - the action to perform
      Throws:
      DocumentException - if the action type is invalid
      See Also:
    • setDuration

      public void setDuration(int seconds)
      Description copied from interface: PdfPageActions
      Sets the display duration for the page (for presentations)
      Specified by:
      setDuration in interface PdfPageActions
      Parameters:
      seconds - the number of seconds to display the page
      See Also:
    • setTransition

      public void setTransition(PdfTransition transition)
      Description copied from interface: PdfPageActions
      Sets the transition for the page
      Specified by:
      setTransition in interface PdfPageActions
      Parameters:
      transition - the Transition object
      See Also:
    • setThumbnail

      public void setThumbnail(Image image) throws DocumentException
      Use this method to set the thumbnail image for the current page.
      Parameters:
      image - the image
      Throws:
      PdfException - on error
      DocumentException - or error
    • getGroup

      public PdfDictionary getGroup()
      Use this method to get the group dictionary.
      Returns:
      Value of property group.
    • setGroup

      public void setGroup(PdfDictionary group)
      Use this method to set the group dictionary.
      Parameters:
      group - New value of property group.
    • getSpaceCharRatio

      public float getSpaceCharRatio()
      Use this method to gets the space/character extra spacing ratio for fully justified text.
      Returns:
      the space/character extra spacing ratio
    • setSpaceCharRatio

      public void setSpaceCharRatio(float spaceCharRatio)
      Use this method to set 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
    • getRunDirection

      public int getRunDirection()
      Use this method to set the run direction.
      Specified by:
      getRunDirection in interface PdfRunDirection
      Returns:
      the run direction
    • setRunDirection

      public void setRunDirection(int runDirection)
      Use this method to set the run direction. This is only used as a placeholder as it does not affect anything.
      Specified by:
      setRunDirection in interface PdfRunDirection
      Parameters:
      runDirection - the run direction
    • getUserunit

      public float getUserunit()
      Use this method to get the user unit. A user unit 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. Note that this userunit only works starting with PDF1.6!
      Returns:
      Returns the userunit.
    • setUserunit

      public void setUserunit(float userunit) throws DocumentException
      Use this method to set the user unit. 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. Note that this userunit only works starting with PDF1.6!
      Parameters:
      userunit - The userunit to set.
      Throws:
      DocumentException - on error
    • getDefaultColorspace

      public PdfDictionary getDefaultColorspace()
      Use this method to get the default colorspaces.
      Returns:
      the default colorspaces
    • setDefaultColorspace

      public void setDefaultColorspace(PdfName key, PdfObject cs)
      Use this method to 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
    • addSimplePatternColorspace

      ColorDetails addSimplePatternColorspace(Color color)
    • isStrictImageSequence

      public boolean isStrictImageSequence()
      Use this method to get the strictImageSequence status.
      Returns:
      value of property strictImageSequence
    • setStrictImageSequence

      public void setStrictImageSequence(boolean strictImageSequence)
      Use this method to set the image sequence, so that it follows the text in strict order (or not).
      Parameters:
      strictImageSequence - new value of property strictImageSequence
    • clearTextWrap

      public void clearTextWrap() throws DocumentException
      Use this method to clear text wrapping around images (if applicable).
      Throws:
      DocumentException - on error
    • addDirectImageSimple

      public PdfName addDirectImageSimple(Image image) throws DocumentException
      Use this method to adds an image to the document but not to the page resources. It is used with templates and Document.add(Image). Use this method only if you know what you're doing!
      Parameters:
      image - the Image to add
      Returns:
      the name of the image added
      Throws:
      PdfException - on error
      DocumentException - on error
    • addDirectImageSimple

      public PdfName addDirectImageSimple(Image image, PdfIndirectReference fixedRef) throws DocumentException
      Adds an image to the document but not to the page resources. It is used with templates and Document.add(Image). Use this method only if you know what you're doing!
      Parameters:
      image - the Image to add
      fixedRef - the reference to used. It may be null, a PdfIndirectReference or a PRIndirectReference.
      Returns:
      the name of the image added
      Throws:
      PdfException - on error
      DocumentException - on error
    • add

      Writes a PdfImage to the outputstream.
      Parameters:
      pdfImage - the image to be added
      Returns:
      a PdfIndirectReference to the encapsulated image
      Throws:
      PdfException - when a document isn't open yet, or has been closed
    • 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
    • add

      protected PdfIndirectReference add(PdfICCBased icc)
    • getReferenceJBIG2Globals

      protected PdfIndirectReference getReferenceJBIG2Globals(byte[] content)
      Gets an indirect reference to a JBIG2 Globals stream. Adds the stream if it hasn't already been added to the writer.
      Parameters:
      content - a byte array that may already been added to the writer inside a stream object.
      Returns:
      the PdfIndirectReference
      Since:
      2.1.5
    • fitsPage

      public boolean fitsPage(Table table, float margin)
      Checks if a Table fits the current page of the PdfDocument.
      Parameters:
      table - the table that has to be checked
      margin - a certain margin
      Returns:
      true if the Table fits the page, false otherwise.
    • fitsPage

      public boolean fitsPage(Table table)
      Checks if a Table fits the current page of the PdfDocument.
      Parameters:
      table - the table that has to be checked
      Returns:
      true if the Table fits the page, false otherwise.
    • isUserProperties

      public boolean isUserProperties()
      Gets the flag indicating the presence of structure elements that contain user properties attributes.
      Returns:
      the user properties flag
    • setUserProperties

      public void setUserProperties(boolean userProperties)
      Sets the flag indicating the presence of structure elements that contain user properties attributes.
      Parameters:
      userProperties - the user properties flag
    • isRgbTransparencyBlending

      public boolean isRgbTransparencyBlending()
      Gets the transparency blending colorspace.
      Returns:
      true if the transparency blending colorspace is RGB, false if it is the default blending colorspace
      Since:
      2.1.0
    • setRgbTransparencyBlending

      public void setRgbTransparencyBlending(boolean rgbTransparencyBlending)
      Sets the transparency blending colorspace to RGB. The default blending colorspace is CMYK and will result in faded colors in the screen and in printing. Calling this method will return the RGB colors to what is expected. The RGB blending will be applied to all subsequent pages until other value is set. Note that this is a generic solution that may not work in all cases.
      Parameters:
      rgbTransparencyBlending - true to set the transparency blending colorspace to RGB, false to use the default blending colorspace
      Since:
      2.1.0