Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 1.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.fop.pdf
Class PDFDocument

    java.lang.Object
      org.apache.fop.pdf.PDFDocument

public class PDFDocument
extends java.lang.Object

Class representing a PDF document. The document is built up by calling various methods and then finally output to given filehandle using output method. A PDF document consists of a series of numbered objects preceded by a header and followed by an xref table and trailer. The xref table allows for quick access to objects by listing their character positions within the document. For this reason the PDF document must keep track of the character position of each object. The document also keeps direct track of the /Root, /Info and /Resources objects. Modified by Mark Lillywhite, mark-fop@inomial.com. The changes involve: ability to output pages one-at-a-time in a streaming fashion (rather than storing them all for output at the end); ability to write the /Pages object after writing the rest of the document; ability to write to a stream and flush the object list; enhanced trailer output; cleanups.

Field Summary
`static java.lang.String` | `ENCODING` the encoding to use when converting strings to PDF commands
`protected int` | `objectcount` the counter for object numbering
`static int` | `PDF_VERSION_1_3` Integer constant to represent PDF 1.3
`static int` | `PDF_VERSION_1_4` Integer constant to represent PDF 1.4

Constructor Summary
`PDFDocument(java.lang.String prod)` Creates an empty PDF document.

Method Summary
`void` | `addDestination(PDFDestination destination)` Adds a destination to the document.
`PDFFormXObject` | `addFormXObject(PDFResourceContext res, PDFStream cont, PDFReference formres, java.lang.String key)` Add a form XObject to the PDF document.
`PDFImageXObject` | `addImage(PDFResourceContext res, PDFImage img)` Add an image to the PDF document.
`void` | `addObject(PDFObject obj)` Adds a `PDFObject` to this document.
`void` | `addTrailerObject(PDFObject obj)` Add trailer object.
`void` | `applyEncryption(AbstractPDFStream stream)` Apply the encryption filter to a PDFStream if encryption is enabled.
`void` | `assignObjectNumber(PDFObject obj)` Assigns the `PDFObject` an object number, and sets the parent of the `PDFObject` to this document.
`static byte[]` | `encode(java.lang.String text)` Converts text to a byte array for writing to a PDF file.
`void` | `enforceLanguageOnRoot()` Makes sure a Lang entry has been set on the document catalog, setting it to a default value if necessary.
`protected PDFDestination` | `findDestination(PDFDestination compare)` Finds a named destination.
`protected PDFFileSpec` | `findFileSpec(PDFFileSpec compare)` Finds a file spec.
`protected PDFFont` | `findFont(java.lang.String fontname)` Finds a font.
`protected PDFFunction` | `findFunction(PDFFunction compare)` Looks through the registered functions to see if one that is equal to a reference object exists
`protected PDFGoTo` | `findGoTo(PDFGoTo compare)` Finds a goto.
`protected PDFGoToRemote` | `findGoToRemote(PDFGoToRemote compare)` Finds a goto remote.
`protected PDFGState` | `findGState(PDFGState wanted, PDFGState current)` Looks for an existing GState to use
`protected PDFLaunch` | `findLaunch(PDFLaunch compare)` Finds a launch.
`protected PDFLink` | `findLink(PDFLink compare)` Finds a link.
`protected PDFPattern` | `findPattern(PDFPattern compare)` Find a previous pattern.
`protected PDFShading` | `findShading(PDFShading compare)` Looks through the registered shadings to see if one that is equal to a reference object exists
`int` | `getColorSpace()` Returns the color space.
`java.util.List` | `getDestinationList()` Gets the list of named destinations.
`PDFDests` | `getDests()` Gets the PDFDests object (which represents the /Dests entry).
`PDFEncryption` | `getEncryption()` Returns the active Encryption object.
`PDFFactory` | `getFactory()` Returns the factory for PDF objects.
`java.util.Map` | `getFilterMap()` Returns the `PDFFilter`s map used for filters in this document.
`java.util.Map` | `getFontMap()` Returns the font map for this document.
`protected java.lang.String` | `getIDEntry()`
`PDFImageXObject` | `getImage(java.lang.String key)` Deprecated. Use getXObject instead (so forms are treated in the same way)
`PDFInfo` | `getInfo()` Get the `PDFInfo` object for this document.
`PDFOutline` | `getOutlineRoot()` Get the root Outlines object.
`PDFPages` | `getPages()` Returns the `PDFPages` object associated with the root object.
`PDFDeviceColorSpace` | `getPDFColorSpace()` Returns the PDF color space object.
`int` | `getPDFVersion()`
`java.lang.String` | `getPDFVersionString()`
`PDFProfile` | `getProfile()`
`PDFResources` | `getResources()` Get the /Resources object for the document
`PDFRoot` | `getRoot()` Get the `PDFRoot` object for this document.
`static java.io.Writer` | `getWriterFor(java.io.OutputStream out)` Creates and returns a Writer object wrapping the given OutputStream.
`PDFXObject` | `getXObject(java.lang.String key)` Get an XObject from the image map.
`boolean` | `hasDestinations()` Gets whether the document has named destinations.
`boolean` | `isEncodingOnTheFly()` Indicates whether stream encoding on-the-fly is enabled.
`boolean` | `isEncryptionActive()` Indicates whether encryption is active for this PDF or not.
`void` | `output(java.io.OutputStream stream)` Writes out the entire document
`void` | `outputHeader(java.io.OutputStream stream)` Write the PDF header.
`void` | `outputTrailer(java.io.OutputStream stream)` Write the trailer
`PDFObject` | `registerObject(PDFObject obj)` Registers a `PDFObject` in this PDF document.
`protected java.io.InputStream` | `resolveURI(java.lang.String uri)` Resolve a URI.
`void` | `setColorSpace(int theColorspace)` Set the color space.
`void` | `setCreationDate(java.util.Date date)` Sets the creation date of the document.
`void` | `setCreator(java.lang.String creator)` Sets the creator of the document.
`void` | `setEncryption(PDFEncryptionParams params)` Enables PDF encryption.
`void` | `setFilterMap(java.util.Map map)` Sets the filter map to use for filters in this document.
`void` | `setProducer(java.lang.String producer)` Sets the producer of the document.

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

Field Detail

### PDF_VERSION_1_3

    public static final int PDF_VERSION_1_3

  Integer constant to represent PDF 1.3

  See Also:
    Constant Field Values

### PDF_VERSION_1_4

    public static final int PDF_VERSION_1_4

  Integer constant to represent PDF 1.4

  See Also:
    Constant Field Values

### ENCODING

    public static final java.lang.String ENCODING

  the encoding to use when converting strings to PDF commands

  See Also:
    Constant Field Values

### objectcount

    protected int objectcount

  the counter for object numbering

Constructor Detail

### PDFDocument

    public PDFDocument(java.lang.String prod)

  Creates an empty PDF document. The constructor creates a /Root and /Pages object to track the document but does not write these objects until the trailer is written. Note that the object ID of the pages object is determined now, and the xref table is updated later. This allows Pages to refer to their Parent before we write it out.

Parameters:
  `prod` - the name of the producer of this pdf document

Method Detail

### getPDFVersion

    public int getPDFVersion()

  Returns:
    the integer representing the active PDF version (one of PDFDocument.PDF_VERSION_*)

### getPDFVersionString

    public java.lang.String getPDFVersionString()

  Returns:
    the String representing the active PDF version

### getProfile

    public PDFProfile getProfile()

  Returns:
    the PDF profile currently active.

### getFactory

    public PDFFactory getFactory()

  Returns the factory for PDF objects.

  Returns:
    the `PDFFactory` object

### isEncodingOnTheFly

    public boolean isEncodingOnTheFly()

  Indicates whether stream encoding on-the-fly is enabled. If enabled stream can be serialized without the need for a buffer to merely calculate the stream length.

  Returns:
    `true` if on-the-fly encoding is enabled

### encode

    public static byte[] encode(java.lang.String text)

  Converts text to a byte array for writing to a PDF file.

  Parameters:
    `text` - text to convert/encode
  Returns:
    the resulting `byte` array

### getWriterFor

    public static java.io.Writer getWriterFor(java.io.OutputStream out)

  Creates and returns a Writer object wrapping the given OutputStream. The Writer is buffered to reduce the number of calls to the encoding converter so don't forget to `flush()` the Writer after use or before writing directly to the underlying OutputStream.

  Parameters:
    `out` - the OutputStream to write to
  Returns:
    the requested Writer

### setProducer

    public void setProducer(java.lang.String producer)

  Sets the producer of the document.

  Parameters:
    `producer` - string indicating application producing the PDF

### setCreationDate

    public void setCreationDate(java.util.Date date)

  Sets the creation date of the document.

  Parameters:
    `date` - Date to be stored as creation date in the PDF.

### setCreator

    public void setCreator(java.lang.String creator)

  Sets the creator of the document.

  Parameters:
    `creator` - string indicating application creating the document

### setFilterMap

    public void setFilterMap(java.util.Map map)

  Sets the filter map to use for filters in this document.

  Parameters:
    `map` - the map of filter lists for each stream type

### getFilterMap

    public java.util.Map getFilterMap()

  Returns the `PDFFilter`s map used for filters in this document.

  Returns:
    the map of filters being used

### getPages

    public PDFPages getPages()

  Returns the `PDFPages` object associated with the root object.

  Returns:
    the `PDFPages` object

### getRoot

    public PDFRoot getRoot()

  Get the `PDFRoot` object for this document.

  Returns:
    the `PDFRoot` object

### enforceLanguageOnRoot

    public void enforceLanguageOnRoot()

  Makes sure a Lang entry has been set on the document catalog, setting it to a default value if necessary. When accessibility is enabled the language must be specified for any text element in the document.

### getInfo

    public PDFInfo getInfo()

  Get the `PDFInfo` object for this document.

  Returns:
    the `PDFInfo` object

### registerObject

    public PDFObject registerObject(PDFObject obj)

  Registers a `PDFObject` in this PDF document. The object is assigned a new object number.

  Parameters:
    `obj` - `PDFObject` to add
  Returns:
    the added `PDFObject` added (with its object number set)

### assignObjectNumber

    public void assignObjectNumber(PDFObject obj)

  Assigns the `PDFObject` an object number, and sets the parent of the `PDFObject` to this document.

  Parameters:
    `obj` - `PDFObject` to assign a number to

### addObject

    public void addObject(PDFObject obj)

  Adds a `PDFObject` to this document. The object MUST have an object number assigned.

  Parameters:
    `obj` - `PDFObject` to add

### addTrailerObject

    public void addTrailerObject(PDFObject obj)

  Add trailer object. Adds an object to the list of trailer objects.

  Parameters:
    `obj` - the PDF object to add

### applyEncryption

    public void applyEncryption(AbstractPDFStream stream)

  Apply the encryption filter to a PDFStream if encryption is enabled.

  Parameters:
    `stream` - PDFStream to encrypt

### setEncryption

    public void setEncryption(PDFEncryptionParams params)

  Enables PDF encryption.

  Parameters:
    `params` - The encryption parameters for the pdf file

### isEncryptionActive

    public boolean isEncryptionActive()

  Indicates whether encryption is active for this PDF or not.

  Returns:
    boolean True if encryption is active

### getEncryption

    public PDFEncryption getEncryption()

  Returns the active Encryption object.

  Returns:
    the Encryption object

### findFunction

    protected PDFFunction findFunction(PDFFunction compare)

  Looks through the registered functions to see if one that is equal to a reference object exists

  Parameters:
    `compare` - reference object
  Returns:
    the function if it was found, null otherwise

### findShading

    protected PDFShading findShading(PDFShading compare)

  Looks through the registered shadings to see if one that is equal to a reference object exists

  Parameters:
    `compare` - reference object
  Returns:
    the shading if it was found, null otherwise

### findPattern

    protected PDFPattern findPattern(PDFPattern compare)

  Find a previous pattern. The problem with this is for tiling patterns the pattern data stream is stored and may use up memory, usually this would only be a small amount of data.

  Parameters:
    `compare` - reference object
  Returns:
    the shading if it was found, null otherwise

### findFont

    protected PDFFont findFont(java.lang.String fontname)

  Finds a font.

  Parameters:
    `fontname` - name of the font
  Returns:
    PDFFont the requested font, null if it wasn't found

### findDestination

    protected PDFDestination findDestination(PDFDestination compare)

  Finds a named destination.

  Parameters:
    `compare` - reference object to use as search template
  Returns:
    the link if found, null otherwise

### findLink

    protected PDFLink findLink(PDFLink compare)

  Finds a link.

  Parameters:
    `compare` - reference object to use as search template
  Returns:
    the link if found, null otherwise

### findFileSpec

    protected PDFFileSpec findFileSpec(PDFFileSpec compare)

  Finds a file spec.

  Parameters:
    `compare` - reference object to use as search template
  Returns:
    the file spec if found, null otherwise

### findGoToRemote

    protected PDFGoToRemote findGoToRemote(PDFGoToRemote compare)

  Finds a goto remote.

  Parameters:
    `compare` - reference object to use as search template
  Returns:
    the goto remote if found, null otherwise

### findGoTo

    protected PDFGoTo findGoTo(PDFGoTo compare)

  Finds a goto.

  Parameters:
    `compare` - reference object to use as search template
  Returns:
    the goto if found, null otherwise

### findLaunch

    protected PDFLaunch findLaunch(PDFLaunch compare)

  Finds a launch.

  Parameters:
    `compare` - reference object to use as search template
  Returns:
    the launch if found, null otherwise

### findGState

    protected PDFGState findGState(PDFGState wanted,
                                   PDFGState current)

  Looks for an existing GState to use

  Parameters:
    `wanted` - requested features
    `current` - currently active features
  Returns:
    the GState if found, null otherwise

### getPDFColorSpace

    public PDFDeviceColorSpace getPDFColorSpace()

  Returns the PDF color space object.

  Returns:
    the color space

### getColorSpace

    public int getColorSpace()

  Returns the color space.

  Returns:
    the color space

### setColorSpace

    public void setColorSpace(int theColorspace)

  Set the color space. This is used when creating gradients.

  Parameters:
    `theColorspace` - the new color space

### getFontMap

    public java.util.Map getFontMap()

  Returns the font map for this document.

  Returns:
    the map of fonts used in this document

### resolveURI

    protected java.io.InputStream resolveURI(java.lang.String uri)
                                      throws java.io.FileNotFoundException

  Resolve a URI.

  Parameters:
    `uri` - the uri to resolve
  Returns:
    the InputStream from the URI.
  Throws:
    `java.io.FileNotFoundException` - if the URI could not be resolved

### getImage

    public PDFImageXObject getImage(java.lang.String key)

  Deprecated. Use getXObject instead (so forms are treated in the same way)

  Get an image from the image map.

  Parameters:
    `key` - the image key to look for
  Returns:
    the image or PDFXObject for the key if found

### getXObject

    public PDFXObject getXObject(java.lang.String key)

  Get an XObject from the image map.

  Parameters:
    `key` - the XObject key to look for
  Returns:
    the PDFXObject for the key if found

### getDests

    public PDFDests getDests()

  Gets the PDFDests object (which represents the /Dests entry).

  Returns:
    the PDFDests object (which represents the /Dests entry).

### addDestination

    public void addDestination(PDFDestination destination)

  Adds a destination to the document.

  Parameters:
    `destination` - the destination object

### getDestinationList

    public java.util.List getDestinationList()

  Gets the list of named destinations.

  Returns:
    the list of named destinations.

### hasDestinations

    public boolean hasDestinations()

  Gets whether the document has named destinations.

  Returns:
    whether the document has named destinations.

### addImage

    public PDFImageXObject addImage(PDFResourceContext res,
                                    PDFImage img)

  Add an image to the PDF document. This adds an image to the PDF objects. If an image with the same key already exists it will return the old `PDFXObject`.

  Parameters:
    `res` - the PDF resource context to add to, may be null
    `img` - the PDF image to add
  Returns:
    the PDF XObject that references the PDF image data

### addFormXObject

    public PDFFormXObject addFormXObject(PDFResourceContext res,
                                         PDFStream cont,
                                         PDFReference formres,
                                         java.lang.String key)

  Add a form XObject to the PDF document. This adds a Form XObject to the PDF objects. If a Form XObject with the same key already exists it will return the old `PDFFormXObject`.

  Parameters:
    `res` - the PDF resource context to add to, may be null
    `cont` - the PDF Stream contents of the Form XObject
    `formres` - a reference to the PDF Resources for the Form XObject data
    `key` - the key for the object
  Returns:
    the PDF Form XObject that references the PDF data

### getOutlineRoot

    public PDFOutline getOutlineRoot()

  Get the root Outlines object. This method does not write the outline to the PDF document, it simply creates a reference for later.

  Returns:
    the PDF Outline root object

### getResources

    public PDFResources getResources()

  Get the /Resources object for the document

  Returns:
    the /Resources object

### output

    public void output(java.io.OutputStream stream)
                throws java.io.IOException

  Writes out the entire document

  Parameters:
    `stream` - the OutputStream to output the document to
  Throws:
    `java.io.IOException` - if there is an exception writing to the output stream

### outputHeader

    public void outputHeader(java.io.OutputStream stream)
                      throws java.io.IOException

  Write the PDF header. This method must be called prior to formatting and outputting AreaTrees.

  Parameters:
    `stream` - the OutputStream to write the header to
  Throws:
    `java.io.IOException` - if there is an exception writing to the output stream

### getIDEntry

    protected java.lang.String getIDEntry()

  Returns:
    the "ID" entry for the file trailer

### outputTrailer

    public void outputTrailer(java.io.OutputStream stream)
                       throws java.io.IOException

  Write the trailer

  Parameters:
    `stream` - the OutputStream to write the trailer to
  Throws:
    `java.io.IOException` - if there is an exception writing to the output stream

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| fop 1.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright 1999-2010 The Apache Software Foundation. All Rights Reserved.