org.apache.fop.pdf

## Class PDFRoot

- java.lang.Object
- - org.apache.fop.pdf.PDFObject
  - - org.apache.fop.pdf.PDFDictionary
    - - org.apache.fop.pdf.PDFRoot

- All Implemented Interfaces:
    PDFWritable

      public class PDFRoot
      extends PDFDictionary

  Class representing a Root (/Catalog) object.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `PAGEMODE_FULLSCREEN` Full screen page mode
    `static int` | `PAGEMODE_USENONE` Use no page mode setting, default
    `static int` | `PAGEMODE_USEOUTLINES` Use outlines page mode to show bookmarks
    `static int` | `PAGEMODE_USETHUMBS` Use thumbs page mode to show thumbnail images

    - ### Fields inherited from class org.apache.fop.pdf.PDFDictionary

      `entries, order`

    - ### Fields inherited from class org.apache.fop.pdf.PDFObject

      `log`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PDFRoot(PDFDocument document, PDFPages pages)` create a Root (/Catalog) object.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAF(PDFFileSpec fileSpec)`
    `void` | `addOutputIntent(PDFOutputIntent outputIntent)` Adds an OutputIntent to the PDF
    `void` | `addPage(PDFPage page)` add a /Page object to the root /Pages object
    `PDFDPartRoot` | `getDPartRoot()`
    `String` | `getLanguage()` Returns the language identifier of the document.
    `PDFDictionary` | `getMarkInfo()` Returns the MarkInfo dictionary.
    `PDFMetadata` | `getMetadata()` Returns the /Metadata object
    `PDFNames` | `getNames()` Returns the /Names object.
    `PDFArray` | `getOutputIntents()` Returns the /OutputIntents array.
    `PDFPageLabels` | `getPageLabels()` Returns the /PageLabels object.
    `int` | `getPageMode()` Returns the currently active /PageMode.
    `PDFOutline` | `getRootOutline()` Get the root PDF outline for the document.
    `PDFPages` | `getRootPages()` Returns the /PageLabels object.
    `PDFStructTreeRoot` | `getStructTreeRoot()` Returns the StructTreeRoot object.
    `void` | `makeTagged()` Marks this document as conforming to the Tagged PDF conventions.
    `int` | `output(OutputStream stream)` Write the PDF represention of this object
    `void` | `setLanguage(Locale locale)` Sets the locale of the document.
    `void` | `setMetadata(PDFMetadata meta)` Set the optional Metadata object.
    `void` | `setNames(PDFNames names)` Set the /Names object.
    `void` | `setPageLabels(PDFPageLabels pageLabels)` Sets the /PageLabels object.
    `void` | `setPageMode(int mode)` Set the page mode for the PDF document.
    `void` | `setRootOutline(PDFOutline out)` Set the root outline for the PDF document.
    `void` | `setRootPages(PDFPages pages)` set the root /Pages object
    `void` | `setStructTreeRoot(PDFStructTreeRoot structTreeRoot)` Sets the StructTreeRoot object.

    - ### Methods inherited from class org.apache.fop.pdf.PDFDictionary

      `containsKey, get, getChildren, getChildren, keySet, put, put, remove, writeDictionary`

    - ### Methods inherited from class org.apache.fop.pdf.PDFObject

      `contentEquals, encode, encodeBinaryToHexString, encodeString, encodeText, formatObject, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, outputInline, referencePDF, setDocument, setObjectNumber, setObjectNumber, setObjectNumber, setParent, toPDF, toPDFString`

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

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

- - ### Field Detail

    - #### PAGEMODE_USENONE

          public static final int PAGEMODE_USENONE

      Use no page mode setting, default
      See Also:
        Constant Field Values

    - #### PAGEMODE_USEOUTLINES

          public static final int PAGEMODE_USEOUTLINES

      Use outlines page mode to show bookmarks
      See Also:
        Constant Field Values

    - #### PAGEMODE_USETHUMBS

          public static final int PAGEMODE_USETHUMBS

      Use thumbs page mode to show thumbnail images
      See Also:
        Constant Field Values

    - #### PAGEMODE_FULLSCREEN

          public static final int PAGEMODE_FULLSCREEN

      Full screen page mode
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PDFRoot

          public PDFRoot(PDFDocument document,
                         PDFPages pages)

      create a Root (/Catalog) object. NOTE: The PDFRoot object must be created before the PDF document is generated, but it is not assigned an object ID until it is about to be written (immediately before the xref table as part of the trailer). (mark-fop@inomial.com)
      Parameters:
        `document` - TODO
        `pages` - the PDFPages object

  - ### Method Detail

    - #### output

          public int output(OutputStream stream)
                     throws IOException

      Write the PDF represention of this object
      Overrides:
        `output` in class `PDFDictionary`
      Parameters:
        `stream` - the stream to write the PDF to
      Returns:
        the number of bytes written
      Throws:
        `IOException` - if there is an error writing to the stream

    - #### setPageMode

          public void setPageMode(int mode)

      Set the page mode for the PDF document.
      Parameters:
        `mode` - the page mode (one of PAGEMODE_*)

    - #### getPageMode

          public int getPageMode()

      Returns the currently active /PageMode.
      Returns:
        the /PageMode (one of PAGEMODE_*)

    - #### addPage

          public void addPage(PDFPage page)

      add a /Page object to the root /Pages object
      Parameters:
        `page` - the /Page object to add

    - #### setRootPages

          public void setRootPages(PDFPages pages)

      set the root /Pages object
      Parameters:
        `pages` - the /Pages object to set as root

    - #### getRootPages

          public PDFPages getRootPages()

      Returns the /PageLabels object.
      Returns:
        the /PageLabels object if set, null otherwise.
      Since:
        PDF 1.3

    - #### setPageLabels

          public void setPageLabels(PDFPageLabels pageLabels)

      Sets the /PageLabels object.
      Parameters:
        `pageLabels` - the /PageLabels object

    - #### getPageLabels

          public PDFPageLabels getPageLabels()

      Returns the /PageLabels object.
      Returns:
        the /PageLabels object if set, null otherwise.
      Since:
        PDF 1.3

    - #### setRootOutline

          public void setRootOutline(PDFOutline out)

      Set the root outline for the PDF document.
      Parameters:
        `out` - the root PDF Outline

    - #### getRootOutline

          public PDFOutline getRootOutline()

      Get the root PDF outline for the document.
      Returns:
        the root PDF Outline

    - #### setNames

          public void setNames(PDFNames names)

      Set the /Names object.
      Parameters:
        `names` - the Names object
      Since:
        PDF 1.2

    - #### getNames

          public PDFNames getNames()

      Returns the /Names object.
      Returns:
        the Names object if set, null otherwise.
      Since:
        PDF 1.2

    - #### setMetadata

          public void setMetadata(PDFMetadata meta)

      Set the optional Metadata object.
      Parameters:
        `meta` - the Metadata object
      Since:
        PDF 1.4

    - #### getMetadata

          public PDFMetadata getMetadata()

      Returns the /Metadata object
      Returns:
        the /Metadata object if set, null otherwise.
      Since:
        PDF 1.4

    - #### getOutputIntents

          public PDFArray getOutputIntents()

      Returns the /OutputIntents array.
      Returns:
        the /OutputIntents array or null if it doesn't exist
      Since:
        PDF 1.4

    - #### addOutputIntent

          public void addOutputIntent(PDFOutputIntent outputIntent)

      Adds an OutputIntent to the PDF
      Parameters:
        `outputIntent` - the OutputIntent dictionary
      Since:
        PDF 1.4

    - #### getLanguage

          public String getLanguage()

      Returns the language identifier of the document.
      Returns:
        the language identifier of the document (or null if not set or undefined)
      Since:
        PDF 1.4

    - #### setLanguage

          public void setLanguage(Locale locale)

      Sets the locale of the document.
      Parameters:
        `locale` - the locale of the document.

    - #### setStructTreeRoot

          public void setStructTreeRoot(PDFStructTreeRoot structTreeRoot)

      Sets the StructTreeRoot object. Used for accessibility.
      Parameters:
        `structTreeRoot` - of this document

    - #### getStructTreeRoot

          public PDFStructTreeRoot getStructTreeRoot()

      Returns the StructTreeRoot object.
      Returns:
        the structure tree root (or null if accessibility is not enabled)

    - #### makeTagged

          public void makeTagged()

      Marks this document as conforming to the Tagged PDF conventions.

    - #### getMarkInfo

          public PDFDictionary getMarkInfo()

      Returns the MarkInfo dictionary.
      Returns:
        the MarkInfo dictionary (or null if it's not present)

    - #### getDPartRoot

          public PDFDPartRoot getDPartRoot()

    - #### addAF

          public void addAF(PDFFileSpec fileSpec)

Copyright © 2023 Apache Software Foundation. All rights reserved.