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
`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
`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.
`boolean` `supportsObjectStream()`

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

#### supportsObjectStream

    public boolean supportsObjectStream()

Overrides:
  `supportsObjectStream` in class `PDFObject`