## com.lowagie.text.pdf
Class PdfDocument

    java.lang.Object
      com.lowagie.text.Document
          com.lowagie.text.pdf.PdfDocument

All Implemented Interfaces:
  DocListener, ElementListener, java.util.EventListener

     class PdfDocument

extends Document
implements DocListener

`PdfDocument` is the class that is used by `PdfWriter` to translate a `Document` into a PDF with different pages.

A `PdfDocument` always listens to a `Document` and adds the Pdf representation of every `Element` that is added to the `Document`.

See Also:
  `Document`, `DocListener`, `PdfWriter`

Nested Class Summary
`(package private) static class` `PdfDocument.PdfCatalog` `PdfCatalog` is the PDF Catalog-object.
`static class` `PdfDocument.PdfInfo` `PdfInfo` is the PDF InfoDictionary.
`private static class` `PdfDocument.RenderingContext`

Field Summary
`(package private) PdfAcroForm` `acroForm` This is the AcroForm object.
`private PdfDictionary` `additionalActions`
`private int` `alignment` This represents the current alignment of the PDF Elements.
`private java.util.ArrayList` `annotations` This is the array containing the references to the annotations.
`protected java.util.HashMap` `boxSize` This is the size of the several boxes that will be used in the next page.
`private PdfAction` `currentAction` The current active `PdfAction` when processing an `Anchor`.
`private float` `currentHeight` This is the current height of the document.
`private PdfOutline` `currentOutline` This is the current `PdfOutline` in the hierarchy of outlines.
`private java.util.ArrayList` `delayedAnnotations` This is an array containg references to some delayed annotations.
`private java.util.HashMap` `documentFileAttachment`
`private java.util.ArrayList` `documentJavaScript`
`protected int` `duration` The duration of the page
`private boolean` `firstPageEvent` Signals that OnOpenDocument should be called.
`private PdfContentByte` `graphics` This is the PdfContentByte object, containing the borders and other Graphics.
`(package private) static java.lang.String` `hangingPunctuation` The characters to be applied the hanging ponctuation.
`private float` `imageEnd` This is the position where the image ends.
`private float` `imageIndentLeft` This is the indentation caused by an image on the left.
`private float` `imageIndentRight` This is the indentation caused by an image on the right.
`private Image` `imageWait` This is the image that could not be shown on a previous page.
`private float` `indentBottom` This represents the current indentation of the PDF Elements on the bottom side.
`private float` `indentLeft` This represents the current indentation of the PDF Elements on the left side.
`private float` `indentRight` This represents the current indentation of the PDF Elements on the right side.
`private float` `indentTop` This represents the current indentation of the PDF Elements on the top side.
`private PdfDocument.PdfInfo` `info` some meta information about the Document.
`private boolean` `isNewpage`
`private boolean` `isNewPagePending`
`private boolean` `isParagraph` Signals that onParagraph is valid.
`private int` `lastElementType` Holds the type of the last element, that has been added to the document.
`private float` `leading` This represents the leading of the lines.
`private PdfLine` `line` The line that is currently being written.
`private java.util.ArrayList` `lines` The lines that are written until now.
`private float` `listIndentLeft` This represents the current indentation of the PDF Elements on the left side.
`private java.util.TreeMap` `localDestinations` Stores the destinations keyed by name.
`protected int` `markPoint`
`protected float` `nextMarginBottom` margin in y direction starting from the bottom.
`protected float` `nextMarginLeft` margin in x direction starting from the left.
`protected float` `nextMarginRight` margin in x direction starting from the right.
`protected float` `nextMarginTop` margin in y direction starting from the top.
`protected Rectangle` `nextPageSize` This is the size of the next page.
`private PdfAction` `openActionAction`
`private java.lang.String` `openActionName`
`protected PdfDictionary` `pageAA`
`private boolean` `pageEmpty` This checks if the page is empty.
`private PdfPageLabels` `pageLabels`
`protected PageResources` `pageResources` This are the page resources of the current Page.
`private float` `paraIndent`
`private PdfOutline` `rootOutline` This is the root outline of the document.
`private boolean` `strictImageSequence` Holds value of property strictImageSequence.
`private PdfContentByte` `text` This is the PdfContentByte object, containing the text.
`private int` `textEmptySize`
`protected java.util.HashMap` `thisBoxSize` This is the size of the several boxes of the current Page.
`private PdfIndirectReference` `thumb`
`protected PdfTransition` `transition` The page transition
`private int` `viewerPreferences` these are the viewerpreferences of the document
`private PdfWriter` `writer` The `PdfWriter`.

Fields inherited from class com.lowagie.text.Document
`close, compress, footer, header, htmlStyleClass, javaScript_onLoad, javaScript_onUnLoad, marginBottom, marginLeft, marginMirroring, marginRight, marginTop, open, pageN, pageSize, watermark`

Constructor Summary
`PdfDocument()` Constructs a new PDF document.

Method Summary
`boolean` `add(Element element)` Signals that an `Element` was added to the `Document`.
`private void` `add(Image image)` Adds an image to the document.
`private void` `add(PdfTable table, boolean onlyFirstPage)` Adds a new table to
`boolean` `add(Watermark watermark)` Sets the `Watermark`.
`(package private) void` `addAdditionalAction(PdfName actionType, PdfAction action)`
`(package private) void` `addAnnotation(PdfAnnotation annot)`
`(package private) void` `addCalculationOrder(PdfFormField formField)`
`(package private) void` `addFileAttachment(java.lang.String description, PdfFileSpecification fs)`
`(package private) void` `addFormFieldRaw(PdfFormField field)`
`(package private) void` `addJavaScript(PdfAction js)`
`(package private) void` `addOutline(PdfOutline outline, java.lang.String name)` Adds a named outline to the document .
`(package private) void` `addPTable(PdfPTable ptable)` Adds a `PdfPTable` to the document.
`void` `addWriter(PdfWriter writer)` Adds a `PdfWriter` to the `PdfDocument`.
`private void` `analyzeRow(java.util.ArrayList rows, PdfDocument.RenderingContext ctx)`
`(package private) float` `bottom(Table table)` Returns the bottomvalue of a `Table` if it were added to this document.
`(package private) boolean` `breakTableIfDoesntFit(PdfTable table)`
`(package private) void` `calculateOutlineCount()`
`private void` `carriageReturn()` If the current line is not empty or null, it is added to the arraylist of lines and a new empty line is added.
`void` `clearTextWrap()` Method added by Pelikan Stephan
`void` `close()` Closes the document.
`private void` `consumeRowspan(java.util.ArrayList row, PdfDocument.RenderingContext ctx)`
`(package private) static PdfAnnotation` `convertAnnotation(PdfWriter writer, Annotation annot)`
`byte[]` `createXmpMetadata()`
`private void` `ensureNewLine()` Ensures that a new line has been started.
`private java.util.ArrayList` `extractRows(java.util.ArrayList cells, PdfDocument.RenderingContext ctx)`
`(package private) boolean` `fitsPage(PdfPTable table, float margin)` Checks if a `PdfPTable` fits the current page of the `PdfDocument`.
`private float` `flushLines()` Writes all the lines to the text-object.
`PdfAcroForm` `getAcroForm()` Gets the AcroForm object.
`(package private) Rectangle` `getBoxSize(java.lang.String boxName)` Gives the size of a trim, art, crop or bleed box, or null if not defined.
`(package private) PdfDocument.PdfCatalog` `getCatalog(PdfIndirectReference pages)` Gets the `PdfCatalog`-object.
`(package private) java.util.HashMap` `getDocumentFileAttachment()`
`(package private) java.util.ArrayList` `getDocumentJavaScript()`
`(package private) PdfDocument.PdfInfo` `getInfo()` Gets the `PdfInfo`-object.
`(package private) PdfAction` `getLocalGotoAction(java.lang.String name)`
`(package private) int` `getMarkPoint()`
`(package private) PageResources` `getPageResources()`
`(package private) PdfTable` `getPdfTable(Table table, boolean supportRowAdditions)` Gets a PdfTable object (contributed by dperezcar@fcc.es)
`PdfOutline` `getRootOutline()` Gets the root outline.
`float` `getVerticalPosition(boolean ensureNewLine)` Gets the current vertical page position.
`(package private) void` `incMarkPoint()`
`(package private) float` `indentBottom()` Gets the indentation on the bottom side.
`private float` `indentLeft()` Gets the indentation on the left side.
`private float` `indentRight()` Gets the indentation on the right side.
`private float` `indentTop()` Gets the indentation on the top side.
`private void` `initPage()` Initializes a page.
`(package private) boolean` `isStrictImageSequence()` Getter for property strictImageSequence.
`(package private) boolean` `localDestination(java.lang.String name, PdfDestination destination)` The local destination to where a local goto with the same name will jump to.
`(package private) void` `localGoto(java.lang.String name, float llx, float lly, float urx, float ury)` Implements a link to other part of the document.
`private boolean` `mayBeRemoved(java.util.ArrayList row)`
`private void` `newLine()` Adds the current line to the list of lines and also adds an empty line.
`boolean` `newPage()` Makes a new page and sends it to the `PdfWriter`.
`void` `open()` Opens the document.
`(package private) void` `outlineTree(PdfOutline outline)`
`(package private) void` `remoteGoto(java.lang.String filename, int page, float llx, float lly, float urx, float ury)` Implements a link to another document.
`(package private) void` `remoteGoto(java.lang.String filename, java.lang.String name, float llx, float lly, float urx, float ury)` Implements a link to another document.
`void` `removeWatermark()` Removes the `Watermark`.
`private void` `renderCells(PdfDocument.RenderingContext ctx, java.util.List cells, boolean hasToFit)`
`void` `resetFooter()` Resets the footer of this document.
`void` `resetHeader()` Resets the header of this document.
`void` `resetPageCount()` Sets the page number to 0.
`protected PdfArray` `rotateAnnotations()`
`(package private) void` `setAction(PdfAction action, float llx, float lly, float urx, float ury)` Implements an action in an area.
`(package private) void` `setBoxSize(java.lang.String boxName, Rectangle size)`
`(package private) void` `setCropBoxSize(Rectangle crop)`
`(package private) void` `setDuration(int seconds)` Sets the display duration for the page (for presentations)
`void` `setFooter(HeaderFooter footer)` Changes the footer of this document.
`void` `setHeader(HeaderFooter header)` Changes the header of this document.
`boolean` `setMarginMirroring(boolean MarginMirroring)` Set the margin mirroring.
`boolean` `setMargins(float marginLeft, float marginRight, float marginTop, float marginBottom)` Sets the margins.
`(package private) void` `setOpenAction(PdfAction action)`
`(package private) void` `setOpenAction(java.lang.String name)`
`(package private) void` `setPageAction(PdfName actionType, PdfAction action)`
`void` `setPageCount(int pageN)` Sets the page number.
`(package private) void` `setPageEmpty(boolean pageEmpty)`
`(package private) void` `setPageLabels(PdfPageLabels pageLabels)`
`boolean` `setPageSize(Rectangle pageSize)` Sets the pagesize.
`(package private) void` `setSigFlags(int f)`
`(package private) void` `setStrictImageSequence(boolean strictImageSequence)` Setter for property strictImageSequence.
`(package private) void` `setThumbnail(Image image)`
`(package private) void` `setTransition(PdfTransition transition)` Sets the transition for the page
`void` `setViewerPreferences(int preferences)` Sets the viewer preferences as the sum of several constants.
`(package private) void` `traverseOutlineCount(PdfOutline outline)`
`(package private) void` `writeLineToContent(PdfLine line, PdfContentByte text, PdfContentByte graphics, java.lang.Object[] currentValues, float ratio)` Writes a text line to the document.
`(package private) void` `writeOutlines()`

Methods inherited from class com.lowagie.text.Document

`addAuthor, addCreationDate, addCreator, addDocListener, addHeader, addKeywords, addProducer, addSubject, addTitle, bottom, bottom, bottomMargin, getHtmlStyleClass, getJavaScript_onLoad, getJavaScript_onUnLoad, getPageNumber, getPageSize, getVersion, isMarginMirroring, isOpen, left, left, leftMargin, removeDocListener, right, right, rightMargin, setHtmlStyleClass, setJavaScript_onLoad, setJavaScript_onUnLoad, top, top, topMargin`

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

Field Detail

### thumb

    private PdfIndirectReference thumb

### hangingPunctuation

    static final java.lang.String hangingPunctuation

  The characters to be applied the hanging ponctuation.

  See Also:
    Constant Field Values

### writer

    private PdfWriter writer

  The `PdfWriter`.

### info

    private PdfDocument.PdfInfo info

  some meta information about the Document.

### firstPageEvent

    private boolean firstPageEvent

  Signals that OnOpenDocument should be called.

### isParagraph

    private boolean isParagraph

  Signals that onParagraph is valid.

### line

    private PdfLine line

  The line that is currently being written.

### indentLeft

    private float indentLeft

  This represents the current indentation of the PDF Elements on the left side.

### indentRight

    private float indentRight

  This represents the current indentation of the PDF Elements on the right side.

### listIndentLeft

    private float listIndentLeft

  This represents the current indentation of the PDF Elements on the left side.

### alignment

    private int alignment

  This represents the current alignment of the PDF Elements.

### text

    private PdfContentByte text

  This is the PdfContentByte object, containing the text.

### graphics

    private PdfContentByte graphics

  This is the PdfContentByte object, containing the borders and other Graphics.

### lines

    private java.util.ArrayList lines

  The lines that are written until now.

### leading

    private float leading

  This represents the leading of the lines.

### currentHeight

    private float currentHeight

  This is the current height of the document.

### indentTop

    private float indentTop

  This represents the current indentation of the PDF Elements on the top side.

### indentBottom

    private float indentBottom

  This represents the current indentation of the PDF Elements on the bottom side.

### pageEmpty

    private boolean pageEmpty

  This checks if the page is empty.

### textEmptySize

    private int textEmptySize

### nextPageSize

    protected Rectangle nextPageSize

  This is the size of the next page.

### thisBoxSize

    protected java.util.HashMap thisBoxSize

  This is the size of the several boxes of the current Page.

### boxSize

    protected java.util.HashMap boxSize

  This is the size of the several boxes that will be used in the next page.

### pageResources

    protected PageResources pageResources

  This are the page resources of the current Page.

### imageWait

    private Image imageWait

  This is the image that could not be shown on a previous page.

### imageEnd

    private float imageEnd

  This is the position where the image ends.

### imageIndentLeft

    private float imageIndentLeft

  This is the indentation caused by an image on the left.

### imageIndentRight

    private float imageIndentRight

  This is the indentation caused by an image on the right.

### annotations

    private java.util.ArrayList annotations

  This is the array containing the references to the annotations.

### delayedAnnotations

    private java.util.ArrayList delayedAnnotations

  This is an array containg references to some delayed annotations.

### acroForm

    PdfAcroForm acroForm

  This is the AcroForm object.

### rootOutline

    private PdfOutline rootOutline

  This is the root outline of the document.

### currentOutline

    private PdfOutline currentOutline

  This is the current `PdfOutline` in the hierarchy of outlines.

### currentAction

    private PdfAction currentAction

  The current active `PdfAction` when processing an `Anchor`.

### localDestinations

    private java.util.TreeMap localDestinations

  Stores the destinations keyed by name. Value is `Object[]{PdfAction,PdfIndirectReference,PdfDestintion}`.

### documentJavaScript

    private java.util.ArrayList documentJavaScript

### documentFileAttachment

    private java.util.HashMap documentFileAttachment

### viewerPreferences

    private int viewerPreferences

  these are the viewerpreferences of the document

### openActionName

    private java.lang.String openActionName

### openActionAction

    private PdfAction openActionAction

### additionalActions

    private PdfDictionary additionalActions

### pageLabels

    private PdfPageLabels pageLabels

### isNewpage

    private boolean isNewpage

### paraIndent

    private float paraIndent

### nextMarginLeft

    protected float nextMarginLeft

  margin in x direction starting from the left. Will be valid in the next page

### nextMarginRight

    protected float nextMarginRight

  margin in x direction starting from the right. Will be valid in the next page

### nextMarginTop

    protected float nextMarginTop

  margin in y direction starting from the top. Will be valid in the next page

### nextMarginBottom

    protected float nextMarginBottom

  margin in y direction starting from the bottom. Will be valid in the next page

### duration

    protected int duration

  The duration of the page

### transition

    protected PdfTransition transition

  The page transition

### pageAA

    protected PdfDictionary pageAA

### strictImageSequence

    private boolean strictImageSequence

  Holds value of property strictImageSequence.

### lastElementType

    private int lastElementType

  Holds the type of the last element, that has been added to the document.

### isNewPagePending

    private boolean isNewPagePending

### markPoint

    protected int markPoint

Constructor Detail

### PdfDocument

    public PdfDocument()
                throws DocumentException

  Constructs a new PDF document.

  Throws:
    `DocumentException` - on error

Method Detail

### addWriter

    public void addWriter(PdfWriter writer)
                   throws DocumentException

  Adds a `PdfWriter` to the `PdfDocument`.

  Parameters:
    `writer` - the `PdfWriter` that writes everything what is added to this document to an outputstream.
  Throws:
    `DocumentException` - on error

### setPageSize

    public boolean setPageSize(Rectangle pageSize)

  Sets the pagesize.

  Specified by:
    `setPageSize` in interface `DocListener`
  Overrides:
    `setPageSize` in class `Document`
  Parameters:
    `pageSize` - the new pagesize
  Returns:
    `true` if the page size was set

### setHeader

    public void setHeader(HeaderFooter header)

  Changes the header of this document.

  Specified by:
    `setHeader` in interface `DocListener`
  Overrides:
    `setHeader` in class `Document`
  Parameters:
    `header` - the new header

### resetHeader

    public void resetHeader()

  Resets the header of this document.

  Specified by:
    `resetHeader` in interface `DocListener`
  Overrides:
    `resetHeader` in class `Document`

### setFooter

    public void setFooter(HeaderFooter footer)

  Changes the footer of this document.

  Specified by:
    `setFooter` in interface `DocListener`
  Overrides:
    `setFooter` in class `Document`
  Parameters:
    `footer` - the new footer

### resetFooter

    public void resetFooter()

  Resets the footer of this document.

  Specified by:
    `resetFooter` in interface `DocListener`
  Overrides:
    `resetFooter` in class `Document`

### resetPageCount

    public void resetPageCount()

  Sets the page number to 0.

  Specified by:
    `resetPageCount` in interface `DocListener`
  Overrides:
    `resetPageCount` in class `Document`

### setPageCount

    public void setPageCount(int pageN)

  Sets the page number.

  Specified by:
    `setPageCount` in interface `DocListener`
  Overrides:
    `setPageCount` in class `Document`
  Parameters:
    `pageN` - the new page number

### add

    public boolean add(Watermark watermark)

  Sets the `Watermark`.

  Specified by:
    `add` in interface `DocListener`
  Overrides:
    `add` in class `Document`
  Parameters:
    `watermark` - the watermark to add
  Returns:
    `true` if the element was added, `false` if not.

### removeWatermark

    public void removeWatermark()

  Removes the `Watermark`.

  Specified by:
    `removeWatermark` in interface `DocListener`
  Overrides:
    `removeWatermark` in class `Document`

### setMargins

    public boolean setMargins(float marginLeft,
                              float marginRight,
                              float marginTop,
                              float marginBottom)

  Sets the margins.

  Specified by:
    `setMargins` in interface `DocListener`
  Overrides:
    `setMargins` in class `Document`
  Parameters:
    `marginLeft` - the margin on the left
    `marginRight` - the margin on the right
    `marginTop` - the margin on the top
    `marginBottom` - the margin on the bottom
  Returns:
    a `boolean`

### rotateAnnotations

    protected PdfArray rotateAnnotations()

### newPage

    public boolean newPage()
                    throws DocumentException

  Makes a new page and sends it to the `PdfWriter`.

  Specified by:
    `newPage` in interface `DocListener`
  Overrides:
    `newPage` in class `Document`
  Returns:
    a `boolean`
  Throws:
    `DocumentException` - on error

### open

    public void open()

  Opens the document.

  You have to open the document before you can begin to add content to the body of the document.

  Specified by:
    `open` in interface `DocListener`
  Overrides:
    `open` in class `Document`

### outlineTree

    void outlineTree(PdfOutline outline)
               throws java.io.IOException

  Throws:
    `java.io.IOException`

### writeOutlines

    void writeOutlines()
                 throws java.io.IOException

  Throws:
    `java.io.IOException`

### traverseOutlineCount

    void traverseOutlineCount(PdfOutline outline)

### calculateOutlineCount

    void calculateOutlineCount()

### close

    public void close()

  Closes the document. Once all the content has been written in the body, you have to close the body. After that nothing can be written to the body anymore.

  Specified by:
    `close` in interface `DocListener`
  Overrides:
    `close` in class `Document`

### getPageResources

    PageResources getPageResources()

### addPTable

    void addPTable(PdfPTable ptable)
             throws DocumentException

  Adds a `PdfPTable` to the document.

  Parameters:
    `ptable` - the `PdfPTable` to be added to the document.
  Throws:
    `DocumentException` - on error

### getPdfTable

    PdfTable getPdfTable(Table table,
                         boolean supportRowAdditions)

  Gets a PdfTable object (contributed by dperezcar@fcc.es)

  Parameters:
    `table` - a high level table object
    `supportRowAdditions` -
  Returns:
    returns a PdfTable object
  See Also:
    `PdfWriter.getPdfTable(Table)`

### breakTableIfDoesntFit

    boolean breakTableIfDoesntFit(PdfTable table)
                            throws DocumentException

  Parameters:
    `table` - Table to add
  Returns:
    true if the table will be broken
  Throws:
    `DocumentException`
  See Also:
    `(contributed by dperezcar@fcc.es)`

### analyzeRow

    private void analyzeRow(java.util.ArrayList rows,
                            PdfDocument.RenderingContext ctx)

### add

    private void add(PdfTable table,
                     boolean onlyFirstPage)
              throws DocumentException

  Adds a new table to

  Parameters:
    `table` - Table to add. Rendered rows will be deleted after processing.
    `onlyFirstPage` - Render only the first full page
  Throws:
    `DocumentException`

### mayBeRemoved

    private boolean mayBeRemoved(java.util.ArrayList row)

### consumeRowspan

    private void consumeRowspan(java.util.ArrayList row,
                                PdfDocument.RenderingContext ctx)

### extractRows

    private java.util.ArrayList extractRows(java.util.ArrayList cells,
                                            PdfDocument.RenderingContext ctx)

### renderCells

    private void renderCells(PdfDocument.RenderingContext ctx,
                             java.util.List cells,
                             boolean hasToFit)
                      throws DocumentException

  Throws:
    `DocumentException`

### add

    public boolean add(Element element)
                throws DocumentException

  Signals that an `Element` was added to the `Document`.

  Specified by:
    `add` in interface `ElementListener`
  Overrides:
    `add` in class `Document`
  Parameters:
    `element` - the element to add
  Returns:
    `true` if the element was added, `false` if not.
  Throws:
    `DocumentException` - when a document isn't open yet, or has been closed

### add

    private void add(Image image)
              throws PdfException,
                     DocumentException

  Adds an image to the document.

  Parameters:
    `image` - the `Image` to add
  Throws:
    `PdfException` - on error
    `DocumentException` - on error

### initPage

    private void initPage()
                   throws DocumentException

  Initializes a page.

  If the footer/header is set, it is printed.

  Throws:
    `DocumentException` - on error

### carriageReturn

    private void carriageReturn()
                         throws DocumentException

  If the current line is not empty or null, it is added to the arraylist of lines and a new empty line is added.

  Throws:
    `DocumentException` - on error

### newLine

    private void newLine()
                  throws DocumentException

  Adds the current line to the list of lines and also adds an empty line.

  Throws:
    `DocumentException` - on error

### flushLines

    private float flushLines()
                      throws DocumentException

  Writes all the lines to the text-object.

  Returns:
    the displacement that was caused
  Throws:
    `DocumentException` - on error

### getInfo

    PdfDocument.PdfInfo getInfo()

  Gets the `PdfInfo`-object.

  Returns:
    `PdfInfo</COPE>`

### getCatalog

    PdfDocument.PdfCatalog getCatalog(PdfIndirectReference pages)

  Gets the `PdfCatalog`-object.

  Parameters:
    `pages` - an indirect reference to this document pages
  Returns:
    `PdfCatalog`

### bottom

    float bottom(Table table)

  Returns the bottomvalue of a `Table` if it were added to this document.

  Parameters:
    `table` - the table that may or may not be added to this document
  Returns:
    a bottom value

### fitsPage

    boolean fitsPage(PdfPTable table,
                     float margin)

  Checks if a `PdfPTable` fits the current page of the `PdfDocument`.

  Parameters:
    `table` - the table that has to be checked
    `margin` - a certain margin
  Returns:
    `true` if the `PdfPTable` fits the page, `false` otherwise.

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

### ensureNewLine

    private void ensureNewLine()

  Ensures that a new line has been started.

### indentLeft

    private float indentLeft()

  Gets the indentation on the left side.

  Returns:
    a margin

### indentRight

    private float indentRight()

  Gets the indentation on the right side.

  Returns:
    a margin

### indentTop

    private float indentTop()

  Gets the indentation on the top side.

  Returns:
    a margin

### indentBottom

    float indentBottom()

  Gets the indentation on the bottom side.

  Returns:
    a margin

### addOutline

    void addOutline(PdfOutline outline,
                    java.lang.String name)

  Adds a named outline to the document .

  Parameters:
    `outline` - the outline to be added
    `name` - the name of this local destination

### getAcroForm

    public PdfAcroForm getAcroForm()

  Gets the AcroForm object.

  Returns:
    the PdfAcroform object of the PdfDocument

### getRootOutline

    public PdfOutline getRootOutline()

  Gets the root outline. All the outlines must be created with a parent. The first level is created with this outline.

  Returns:
    the root outline

### writeLineToContent

    void writeLineToContent(PdfLine line,
                            PdfContentByte text,
                            PdfContentByte graphics,
                            java.lang.Object[] currentValues,
                            float ratio)
                      throws DocumentException

  Writes a text line to the document. It takes care of all the attributes.

  Before entering the line position must have been established and the `text` argument must be in text object scope (`beginText()`).

  Parameters:
    `line` - the line to be written
    `text` - the `PdfContentByte` where the text will be written to
    `graphics` - the `PdfContentByte` where the graphics will be written to
    `currentValues` - the current font and extra spacing values
    `ratio` -
  Throws:
    `DocumentException` - on error

### localGoto

    void localGoto(java.lang.String name,
                   float llx,
                   float lly,
                   float urx,
                   float ury)

  Implements a link to other part of the document. The jump will be made to a local destination with the same name, that must exist.

  Parameters:
    `name` - the name for this link
    `llx` - the lower left x corner of the activation area
    `lly` - the lower left y corner of the activation area
    `urx` - the upper right x corner of the activation area
    `ury` - the upper right y corner of the activation area

### getLocalGotoAction

    PdfAction getLocalGotoAction(java.lang.String name)

### localDestination

    boolean localDestination(java.lang.String name,
                             PdfDestination destination)

  The local destination to where a local goto with the same name will jump to.

  Parameters:
    `name` - the name of this local destination
    `destination` - the `PdfDestination` with the jump coordinates
  Returns:
    `true` if the local destination was added, `false` if a local destination with the same name already existed

### remoteGoto

    void remoteGoto(java.lang.String filename,
                    java.lang.String name,
                    float llx,
                    float lly,
                    float urx,
                    float ury)

  Implements a link to another document.

  Parameters:
    `filename` - the filename for the remote document
    `name` - the name to jump to
    `llx` - the lower left x corner of the activation area
    `lly` - the lower left y corner of the activation area
    `urx` - the upper right x corner of the activation area
    `ury` - the upper right y corner of the activation area

### remoteGoto

    void remoteGoto(java.lang.String filename,
                    int page,
                    float llx,
                    float lly,
                    float urx,
                    float ury)

  Implements a link to another document.

  Parameters:
    `filename` - the filename for the remote document
    `page` - the page to jump to
    `llx` - the lower left x corner of the activation area
    `lly` - the lower left y corner of the activation area
    `urx` - the upper right x corner of the activation area
    `ury` - the upper right y corner of the activation area

### setViewerPreferences

    public void setViewerPreferences(int preferences)

  Sets the viewer preferences as the sum of several constants.

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

### setAction

    void setAction(PdfAction action,
                   float llx,
                   float lly,
                   float urx,
                   float ury)

  Implements an action in an area.

  Parameters:
    `action` - the `PdfAction`
    `llx` - the lower left x corner of the activation area
    `lly` - the lower left y corner of the activation area
    `urx` - the upper right x corner of the activation area
    `ury` - the upper right y corner of the activation area

### setOpenAction

    void setOpenAction(java.lang.String name)

### setOpenAction

    void setOpenAction(PdfAction action)

### addAdditionalAction

    void addAdditionalAction(PdfName actionType,
                             PdfAction action)

### setPageLabels

    void setPageLabels(PdfPageLabels pageLabels)

### addJavaScript

    void addJavaScript(PdfAction js)

### setCropBoxSize

    void setCropBoxSize(Rectangle crop)

### setBoxSize

    void setBoxSize(java.lang.String boxName,
                    Rectangle size)

### addCalculationOrder

    void addCalculationOrder(PdfFormField formField)

### getBoxSize

    Rectangle getBoxSize(java.lang.String boxName)

  Gives the size of a trim, art, crop or bleed box, or null if not defined.

  Parameters:
    `boxName` - crop, trim, art or bleed

### setSigFlags

    void setSigFlags(int f)

### addFormFieldRaw

    void addFormFieldRaw(PdfFormField field)

### addAnnotation

    void addAnnotation(PdfAnnotation annot)

### setDuration

    void setDuration(int seconds)

  Sets the display duration for the page (for presentations)

  Parameters:
    `seconds` - the number of seconds to display the page

### setTransition

    void setTransition(PdfTransition transition)

  Sets the transition for the page

  Parameters:
    `transition` - the PdfTransition object

### setPageAction

    void setPageAction(PdfName actionType,
                       PdfAction action)

### isStrictImageSequence

    boolean isStrictImageSequence()

  Getter for property strictImageSequence.

  Returns:
    Value of property strictImageSequence.

### setStrictImageSequence

    void setStrictImageSequence(boolean strictImageSequence)

  Setter for property strictImageSequence.

  Parameters:
    `strictImageSequence` - New value of property strictImageSequence.

### setPageEmpty

    void setPageEmpty(boolean pageEmpty)

### clearTextWrap

    public void clearTextWrap()
                       throws DocumentException

  Method added by Pelikan Stephan

  Specified by:
    `clearTextWrap` in interface `DocListener`
  Overrides:
    `clearTextWrap` in class `Document`
  Throws:
    `DocumentException`
  See Also:
    `DocListener.clearTextWrap()`

### getDocumentJavaScript

    java.util.ArrayList getDocumentJavaScript()

### setMarginMirroring

    public boolean setMarginMirroring(boolean MarginMirroring)

  Description copied from class: `Document`
  Set the margin mirroring. It will mirror margins for odd/even pages.

  Note: it will not work with `Table`.

  Specified by:
    `setMarginMirroring` in interface `DocListener`
  Overrides:
    `setMarginMirroring` in class `Document`
  Parameters:
    `MarginMirroring` - `true` to mirror the margins
  Returns:
    always `true`
  See Also:
    `DocListener.setMarginMirroring(boolean)`

### setThumbnail

    void setThumbnail(Image image)
                throws PdfException,
                       DocumentException

  Throws:
    `PdfException`
    `DocumentException`

### addFileAttachment

    void addFileAttachment(java.lang.String description,
                           PdfFileSpecification fs)
                     throws java.io.IOException

  Throws:
    `java.io.IOException`

### getDocumentFileAttachment

    java.util.HashMap getDocumentFileAttachment()

### convertAnnotation

    static PdfAnnotation convertAnnotation(PdfWriter writer,
                                           Annotation annot)
                                    throws java.io.IOException

  Throws:
    `java.io.IOException`

### createXmpMetadata

    public byte[] createXmpMetadata()

  Returns:
    an XmpMetadata byte array

### getMarkPoint

    int getMarkPoint()

### incMarkPoint

    void incMarkPoint()