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 PDFObject

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

All Implemented Interfaces:
  PDFWritable

Direct Known Subclasses:
  PDFAction, PDFAnnotList, PDFArray, PDFCharProcs, PDFCIDFont, PDFCIDSystemInfo, PDFDestination, PDFDictionary, PDFEncryptionJCE, PDFFileSpec, PDFFunction, PDFGState, PDFICCBasedColorSpace, PDFInfo, PDFLink, PDFName, PDFNumber, PDFNumsArray, PDFOutline, PDFOutputIntent, PDFPages, PDFPathPaint, PDFResources, PDFShading, PDFText

public abstract class PDFObject
extends java.lang.Object
implements PDFWritable

generic PDF object. A PDF Document is essentially a collection of these objects. A PDF Object has a number and a generation (although the generation will always be 0 in new documents).

Field Summary
`protected static java.text.SimpleDateFormat` | `DATE_FORMAT` Formatting pattern for PDF date
`protected static org.apache.commons.logging.Log` | `log` logger for all PDFObjects (and descendants)

Constructor Summary
`PDFObject()` Default constructor.
`PDFObject(PDFObject parent)` Constructor for direct objects.

Method Summary
`protected boolean` | `contentEquals(PDFObject o)` Check if the other PDFObject has the same content as the current object.
`static byte[]` | `encode(java.lang.String text)` Converts text to a byte array for writing to a PDF file.
`protected void` | `encodeBinaryToHexString(byte[] data, java.io.OutputStream out)` Encodes binary data as hexadecimal string object.
`protected byte[]` | `encodeString(java.lang.String string)` Encodes a String (3.2.3 in PDF 1.4 specs)
`protected byte[]` | `encodeText(java.lang.String text)` Encodes a Text String (3.8.1 in PDF 1.4 specs)
`protected java.lang.String` | `formatDateTime(java.util.Date time)` Formats a date/time according to the PDF specification.
`protected java.lang.String` | `formatDateTime(java.util.Date time, java.util.TimeZone tz)` Formats a date/time according to the PDF specification (D:YYYYMMDDHHmmSSOHH'mm').
`protected void` | `formatObject(java.lang.Object obj, java.io.OutputStream out, java.io.Writer writer)` Formats an object for serialization to PDF.
`PDFDocument` | `getDocument()` Returns the parent PDFDocument if assigned.
`PDFDocument` | `getDocumentSafely()` Returns the parent PDFDocument, but unlike `getDocument()` it throws an informative Exception if the parent document is unavailable instead of having a NullPointerException somewhere without a message.
`int` | `getGeneration()` Returns the object's generation.
`java.lang.String` | `getObjectID()` Returns the PDF representation of the Object ID.
`int` | `getObjectNumber()` Returns the object's number.
`PDFObject` | `getParent()` Returns this objects's parent.
`boolean` | `hasObjectNumber()` Indicates whether this PDFObject has already been assigned an object number.
`PDFReference` | `makeReference()` Creates and returns a reference to this object.
`protected int` | `output(java.io.OutputStream stream)` Write the PDF represention of this object
`void` | `outputInline(java.io.OutputStream out, java.io.Writer writer)` Writes a "direct object" (inline object) representation to the stream. A Writer is given for optimized encoding of text content. Since the Writer is buffered, make sure `flush()` is called before any direct calls to `out` are made.
`java.lang.String` | `referencePDF()` Returns the PDF representation of a reference to this object.
`void` | `setDocument(PDFDocument doc)` Sets the parent PDFDocument.
`void` | `setObjectNumber(int objnum)` Sets the object number
`void` | `setParent(PDFObject parent)` Sets the direct parent object.
`protected byte[]` | `toPDF()` Encodes the object as a byte array for output to a PDF file.
`protected java.lang.String` | `toPDFString()` This method returns a String representation of the PDF object.

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

Field Detail

### log

    protected static org.apache.commons.logging.Log log

  logger for all PDFObjects (and descendants)

### DATE_FORMAT

    protected static final java.text.SimpleDateFormat DATE_FORMAT

  Formatting pattern for PDF date

Constructor Detail

### PDFObject

    public PDFObject()

  Default constructor.

### PDFObject

    public PDFObject(PDFObject parent)

  Constructor for direct objects.

Parameters:
  `parent` - the containing PDFObject instance

Method Detail

### getObjectNumber

    public int getObjectNumber()

  Returns the object's number.

  Returns:
    the PDF Object number

### hasObjectNumber

    public boolean hasObjectNumber()

  Indicates whether this PDFObject has already been assigned an object number.

  Returns:
    True if it has an object number

### setObjectNumber

    public void setObjectNumber(int objnum)

  Sets the object number

  Parameters:
    `objnum` - the object number

### getGeneration

    public int getGeneration()

  Returns the object's generation.

  Returns:
    the PDF Object generation

### getDocument

    public final PDFDocument getDocument()

  Returns the parent PDFDocument if assigned.

  Returns:
    the parent PDFDocument (May be null if the parent PDFDocument has not been assigned)

### getDocumentSafely

    public final PDFDocument getDocumentSafely()

  Returns the parent PDFDocument, but unlike `getDocument()` it throws an informative Exception if the parent document is unavailable instead of having a NullPointerException somewhere without a message.

  Returns:
    the parent PDFDocument

### setDocument

    public void setDocument(PDFDocument doc)

  Sets the parent PDFDocument.

  Parameters:
    `doc` - the PDFDocument.

### getParent

    public PDFObject getParent()

  Returns this objects's parent. The parent is null if it is a "direct object".

  Returns:
    the parent or null if there's no parent (or it hasn't been set)

### setParent

    public void setParent(PDFObject parent)

  Sets the direct parent object.

  Parameters:
    `parent` - the direct parent

### getObjectID

    public java.lang.String getObjectID()

  Returns the PDF representation of the Object ID.

  Returns:
    the Object ID

### referencePDF

    public java.lang.String referencePDF()

  Returns the PDF representation of a reference to this object.

  Returns:
    the reference string

### makeReference

    public PDFReference makeReference()

  Creates and returns a reference to this object.

  Returns:
    the object reference

### output

    protected int output(java.io.OutputStream stream)
                  throws java.io.IOException

  Write the PDF represention of this object

  Parameters:
    `stream` - the stream to write the PDF to
  Returns:
    the number of bytes written
  Throws:
    `java.io.IOException` - if there is an error writing to the stream

### outputInline

    public void outputInline(java.io.OutputStream out,
                             java.io.Writer writer)
                      throws java.io.IOException

  Writes a "direct object" (inline object) representation to the stream. A Writer is given for optimized encoding of text content. Since the Writer is buffered, make sure `flush()` is called before any direct calls to `out` are made.

  Specified by:
    `outputInline` in interface `PDFWritable`
  Parameters:
    `out` - the OutputStream (for binary content)
    `writer` - the Writer (for text content, wraps the above OutputStream)
  Throws:
    `java.io.IOException` - if an I/O error occurs

### toPDF

    protected byte[] toPDF()

  Encodes the object as a byte array for output to a PDF file.

  Returns:
    PDF string

### toPDFString

    protected java.lang.String toPDFString()

  This method returns a String representation of the PDF object. The result is normally converted/encoded to a byte array by toPDF(). Only use this method to implement the serialization if the object can be fully represented as text. If the PDF representation of the object contains binary content use toPDF() or output(OutputStream) instead. This applies to any object potentially containing a string object because string object are encrypted and therefore need to be binary.

  Returns:
    String the String representation

### encode

    public static final 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:
    byte[] the resulting byte array

### encodeText

    protected byte[] encodeText(java.lang.String text)

  Encodes a Text String (3.8.1 in PDF 1.4 specs)

  Parameters:
    `text` - the text to encode
  Returns:
    byte[] the encoded text

### encodeString

    protected byte[] encodeString(java.lang.String string)

  Encodes a String (3.2.3 in PDF 1.4 specs)

  Parameters:
    `string` - the string to encode
  Returns:
    byte[] the encoded string

### encodeBinaryToHexString

    protected void encodeBinaryToHexString(byte[] data,
                                           java.io.OutputStream out)
                                    throws java.io.IOException

  Encodes binary data as hexadecimal string object.

  Parameters:
    `data` - the binary data
    `out` - the OutputStream to write the encoded object to
  Throws:
    `java.io.IOException` - if an I/O error occurs

### formatObject

    protected void formatObject(java.lang.Object obj,
                                java.io.OutputStream out,
                                java.io.Writer writer)
                         throws java.io.IOException

  Formats an object for serialization to PDF.

  Parameters:
    `obj` - the object
    `out` - the OutputStream to write to
    `writer` - a Writer for text content (will always be a wrapper around the above OutputStream. Make sure `flush` is called when mixing calls)
  Throws:
    `java.io.IOException` - If an I/O error occurs

### formatDateTime

    protected java.lang.String formatDateTime(java.util.Date time,
                                              java.util.TimeZone tz)

  Formats a date/time according to the PDF specification (D:YYYYMMDDHHmmSSOHH'mm').

  Parameters:
    `time` - date/time value to format
    `tz` - the time zone
  Returns:
    the requested String representation

### formatDateTime

    protected java.lang.String formatDateTime(java.util.Date time)

  Formats a date/time according to the PDF specification. (D:YYYYMMDDHHmmSSOHH'mm').

  Parameters:
    `time` - date/time value to format
  Returns:
    the requested String representation

### contentEquals

    protected boolean contentEquals(PDFObject o)

  Check if the other PDFObject has the same content as the current object.

  Note: This function has a contract which is less binding than `Object.equals(Object)`. Whereas equals would require all values to be identical, this method is not required to check everything. In the case of PDFObjects, this means that the overriding function does not have to check for `getObjectID()`.

  Parameters:
    `o` - object to compare to.
  Returns:
    true if the other object has the same content.

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.