Class PDFObject

java.lang.Object
com.datalogics.PDFL.PDFObject
Direct Known Subclasses:
PDFArray, PDFBoolean, PDFDict, PDFInteger, PDFName, PDFReal, PDFStream, PDFString

public class PDFObject extends Object
Represents the underlying simple data element of an object in a PDF document. All objects in a PDF document are built from a collection of simpler objects that represent fundamental datatypes like numbers, strings and arrays. PDFObject and its subclasses allow direct access and manipulation of these simple objects. Some subclasses represent single data elements. For example, PDFInteger represents a single integer value. Others represent a collection of PDFObjects, such as PDFArray, an indexed array of data elements.

PDFObject is the superclass of these simple objects. A PDFObject cannot be directly instantiated, but any of its subclasses may.

Any PDFObject may be either direct or indirect. A direct object exists within its collection object (such as a PDFArray) and can be referenced only within that collection object. An indirect object exists outside of any collection object and can be referenced by many collection objects.

  • Method Summary

    Modifier and Type
    Method
    Description
    Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject.
    Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject.
    clone(Document doc, boolean indirect)
    Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting.
    Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject.
    clone(PDFObject obj, boolean indirect)
    Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting.
    Compares this object to another object.
    void
     
    void
    Destroys this object.
    boolean
    Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object.
    boolean
     
    The Document of which this object is a member.
    int
    The generation number for this object.
    int
    The ID number for this object.
    boolean
    Indicates if this object is indirect or direct.
    int
    The 32-bit hash value for this object.
     

    Methods inherited from class java.lang.Object

    getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Method Details

    • delete

      public void delete()
    • equals

      public boolean equals(Object rhs)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getIndirect

      public boolean getIndirect()
      Indicates if this object is indirect or direct.

    • getGeneration

      public int getGeneration()
      The generation number for this object. Only indirect objects have a generation number.

    • getID

      public int getID()
      The ID number for this object. Only indirect objects have an ID number.

    • clone

      public PDFObject clone()
      Makes a new copy of this PDFObject in memory, in the same document and using same direct/indirect setting as this PDFObject.

    • clone

      public PDFObject clone(Document doc)
      Makes a new copy of this PDFObject in memory, in the supplied document, using the same direct/indirect setting as this PDFObject.

    • clone

      public PDFObject clone(Document doc, boolean indirect)
      Makes a new copy of this PDFObject in memory, in the supplied document, using supplied direct/indirect setting.

    • clone

      public PDFObject clone(PDFObject obj)
      Makes a new copy of this PDFObject in memory, in the same document as another object, using the same direct/indirect setting as this PDFObject.

    • clone

      public PDFObject clone(PDFObject obj, boolean indirect)
      Makes a new copy of this PDFObject in memory, in the same document as another object, using supplied direct/indirect setting.

    • destroy

      public void destroy()
      Destroys this object.

      This method does nothing if this object is a direct scalar object.

      If a composite object (an array, dictionary or stream) is destroyed:

      • All the direct objects in it are automatically destroyed.

      • The indirect objects in it are not destroyed.

    • compareTo

      public PDFObjectComparison compareTo(PDFObject rhs)
      Compares this object to another object. The result is useful for ordering or sorting PDFObjects. No other significance should be attached to the result. In particular, an unequal result indicates nothing about the type of either object.

      The result is valid only within a single instance of the document.

      Parameters:
      rhs - the other PDFObject to compare.
      Returns:
      A PDFObjectComparison value that relates this object to the rhs object
    • getPDFHashValue

      public int getPDFHashValue()
      The 32-bit hash value for this object. The hash value is used internally to quickly access the object, and is not generally useful for PDFObject users. Note that two PDFObjects with equal hash values are not necessarily equal; use Equals() to check for equality.

    • getDocument

      public Document getDocument()
      The Document of which this object is a member.

      Returns null if the Document is not known by PDFL, or if it is a temporary document.

      If the Document is not null, then it shares the same internal data with other Document objects that refer to the same file. Document objects returned this way do not contribute to the internal count that keeps the Document open, and will become invalid if the main reference to the document is disposed.

      Returns:
      the Document in which the object resides.
    • enumPDFObjects

      public boolean enumPDFObjects(PDFObjectEnumProc enumProc)
      Enumerates the elements of a PDFObject by calling a user-supplied procedure for each component of the object.
      • For scalars or strings, the proc is not called, and CosObjEnum() returns true.

      • For dictionaries, proc is called for each key-value pair. The order in which the key-value pairs are enumerated is undefined.

      • For arrays, proc is called with each element as the first paramater to proc, and the NULL object as the second parameter. Array elements are enumerated in ascending order of index.

      • For streams, proc is called once, with the stream's dictionary as the first parameter to the proc and the NULL object as the second parameter.

      Parameters:
      enumProc - A user-supplied callback to call for each element of the object. of obj. Neither proc nor any routine called by proc may modify the object. Doing so can produce undefined results or errors. For example, if the object is an array, enumProc must not call Remove(); if the object is a dictionary, enumProc must not call Put().
      Returns:
      Returns true if every call to enumProc returned true. As soon as any call to enumProc returns false, the enumeration stops and EnumPDFObject() returns false.