com.lowagie.text.pdf

## Class PdfObject

- java.lang.Object
- - com.lowagie.text.pdf.PdfObject

- Direct Known Subclasses:
    PdfArray, PdfBoolean, PdfDictionary, PdfIndirectReference, PdfLiteral, PdfName, PdfNull, PdfNumber, PdfString

      public abstract class PdfObject
      extends java.lang.Object

  `PdfObject` is the abstract superclass of all PDF objects.

  PDF supports seven basic types of objects: Booleans, numbers, strings, names, arrays, dictionaries and streams. In addition, PDF provides a null object. Objects may be labeled so that they can be referred to by other objects.
  All these basic PDF objects are described in the 'Portable Document Format Reference Manual version 1.3' Chapter 4 (pages 37-54).

  See Also:
    `PdfNull`, `PdfBoolean`, `PdfNumber`, `PdfString`, `PdfName`, `PdfArray`, `PdfDictionary`, `PdfStream`, `PdfIndirectReference`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ARRAY` A possible type of `PdfObject`
    `static int` | `BOOLEAN` A possible type of `PdfObject`
    `protected byte[]` | `bytes` The content of this `PdfObject`
    `static int` | `DICTIONARY` A possible type of `PdfObject`
    `static int` | `INDIRECT` A possible type of `PdfObject`
    `protected PRIndirectReference` | `indRef` Holds the indirect reference.
    `static int` | `NAME` A possible type of `PdfObject`
    `static java.lang.String` | `NOTHING` An empty string used for the `PdfNull`-object and for an empty `PdfString`-object.
    `static int` | `NULL` A possible type of `PdfObject`
    `static int` | `NUMBER` A possible type of `PdfObject`
    `static int` | `STREAM` A possible type of `PdfObject`
    `static int` | `STRING` A possible type of `PdfObject`
    `static java.lang.String` | `TEXT_PDFDOCENCODING` This is the default encoding to be used for converting Strings into bytes and vice versa.
    `static java.lang.String` | `TEXT_UNICODE` This is the encoding to be used to output text in Unicode.
    `protected int` | `type` The type of this `PdfObject`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `PdfObject(int type)` Constructs a `PdfObject` of a certain type without any content.
    `protected` | `PdfObject(int type, byte[] bytes)` Constructs a `PdfObject` of a certain type with a certain content.
    `protected` | `PdfObject(int type, java.lang.String content)` Constructs a `PdfObject` of a certain type with a certain content.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `canBeInObjStm()` Whether this object can be contained in an object stream.
    `byte[]` | `getBytes()` Gets the presentation of this object in a byte array
    `PRIndirectReference` | `getIndRef()` Get the indirect reference
    `boolean` | `isArray()` Checks if this `PdfObject` is of the type `PdfArray`.
    `boolean` | `isBoolean()` Checks if this `PdfObject` is of the type `PdfBoolean`.
    `boolean` | `isDictionary()` Checks if this `PdfObject` is of the type `PdfDictionary`.
    `boolean` | `isIndirect()` Checks if this `PdfObject` is of the type `PdfIndirectObject`.
    `boolean` | `isName()` Checks if this `PdfObject` is of the type `PdfName`.
    `boolean` | `isNull()` Checks if this `PdfObject` is of the type `PdfNull`.
    `boolean` | `isNumber()` Checks if this `PdfObject` is of the type `PdfNumber`.
    `boolean` | `isStream()` Checks if this `PdfObject` is of the type `PdfStream`.
    `boolean` | `isString()` Checks if this `PdfObject` is of the type `PdfString`.
    `int` | `length()` Returns the length of the actual content of the `PdfObject`.
    `protected void` | `setContent(java.lang.String content)` Changes the content of this `PdfObject`.
    `void` | `setIndRef(PRIndirectReference indRef)` Set the indirect reference
    `void` | `toPdf(PdfWriter writer, java.io.OutputStream os)` Writes the PDF representation of this `PdfObject` as an array of `byte`s to the writer.
    `java.lang.String` | `toString()` Returns the `String`-representation of this `PdfObject`.
    `int` | `type()` Returns the type of this `PdfObject`.

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

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

- - ### Field Detail

    - #### BOOLEAN

          public static final int BOOLEAN

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### NUMBER

          public static final int NUMBER

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### STRING

          public static final int STRING

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### NAME

          public static final int NAME

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### ARRAY

          public static final int ARRAY

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### DICTIONARY

          public static final int DICTIONARY

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### STREAM

          public static final int STREAM

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### NULL

          public static final int NULL

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### INDIRECT

          public static final int INDIRECT

      A possible type of `PdfObject`
      See Also:
        Constant Field Values

    - #### NOTHING

          public static final java.lang.String NOTHING

      An empty string used for the `PdfNull`-object and for an empty `PdfString`-object.
      See Also:
        Constant Field Values

    - #### TEXT_PDFDOCENCODING

          public static final java.lang.String TEXT_PDFDOCENCODING

      This is the default encoding to be used for converting Strings into bytes and vice versa. The default encoding is PdfDocEncoding.
      See Also:
        Constant Field Values

    - #### TEXT_UNICODE

          public static final java.lang.String TEXT_UNICODE

      This is the encoding to be used to output text in Unicode.
      See Also:
        Constant Field Values

    - #### bytes

          protected byte[] bytes

      The content of this `PdfObject`

    - #### type

          protected int type

      The type of this `PdfObject`

    - #### indRef

          protected PRIndirectReference indRef

      Holds the indirect reference.

  - ### Constructor Detail

    - #### PdfObject

          protected PdfObject(int type)

      Constructs a `PdfObject` of a certain type without any content.
      Parameters:
        `type` - type of the new `PdfObject`

    - #### PdfObject

          protected PdfObject(int type,
                   java.lang.String content)

      Constructs a `PdfObject` of a certain type with a certain content.
      Parameters:
        `type` - type of the new `PdfObject`
        `content` - content of the new `PdfObject` as a `String`.

    - #### PdfObject

          protected PdfObject(int type,
                   byte[] bytes)

      Constructs a `PdfObject` of a certain type with a certain content.
      Parameters:
        `type` - type of the new `PdfObject`
        `bytes` - content of the new `PdfObject` as an array of `byte`.

  - ### Method Detail

    - #### toPdf

          public void toPdf(PdfWriter writer,
                   java.io.OutputStream os)
                     throws java.io.IOException

      Writes the PDF representation of this `PdfObject` as an array of `byte`s to the writer.
      Parameters:
        `writer` - for backwards compatibility
        `os` - The `OutputStream` to write the bytes to.
      Throws:
        `java.io.IOException`

    - #### toString

          public java.lang.String toString()

      Returns the `String`-representation of this `PdfObject`.
      Overrides:
        `toString` in class `java.lang.Object`
      Returns:
        a `String`

    - #### getBytes

          public byte[] getBytes()

      Gets the presentation of this object in a byte array
      Returns:
        a byte array

    - #### canBeInObjStm

          public boolean canBeInObjStm()

      Whether this object can be contained in an object stream. PdfObjects of type STREAM OR INDIRECT can not be contained in an object stream.
      Returns:
        `true` if this object can be in an object stream. Otherwise `false`

    - #### length

          public int length()

      Returns the length of the actual content of the `PdfObject`.

      In some cases, namely for `PdfString` and `PdfStream`, this method differs from the method `pdfLength` because `pdfLength` returns the length of the PDF representation of the object, not of the actual content as does the method `length`.

      Remark: the actual content of an object is in some cases identical to its representation. The following statement is always true: length() >= pdfLength().

      Returns:
        The length as `int`

    - #### setContent

          protected void setContent(java.lang.String content)

      Changes the content of this `PdfObject`.
      Parameters:
        `content` - the new content of this `PdfObject`

    - #### type

          public int type()

      Returns the type of this `PdfObject`. May be either of: - NULL: A `PdfNull` - BOOLEAN: A `PdfBoolean` - NUMBER: A `PdfNumber` - STRING: A `PdfString` - NAME: A `PdfName` - ARRAY: A `PdfArray` - DICTIONARY: A `PdfDictionary` - STREAM: A `PdfStream` - INDIRECT: >`PdfIndirectObject`
      Returns:
        The type

    - #### isNull

          public boolean isNull()

      Checks if this `PdfObject` is of the type `PdfNull`.
      Returns:
        `true` or `false`

    - #### isBoolean

          public boolean isBoolean()

      Checks if this `PdfObject` is of the type `PdfBoolean`.
      Returns:
        `true` or `false`

    - #### isNumber

          public boolean isNumber()

      Checks if this `PdfObject` is of the type `PdfNumber`.
      Returns:
        `true` or `false`

    - #### isString

          public boolean isString()

      Checks if this `PdfObject` is of the type `PdfString`.
      Returns:
        `true` or `false`

    - #### isName

          public boolean isName()

      Checks if this `PdfObject` is of the type `PdfName`.
      Returns:
        `true` or `false`

    - #### isArray

          public boolean isArray()

      Checks if this `PdfObject` is of the type `PdfArray`.
      Returns:
        `true` or `false`

    - #### isDictionary

          public boolean isDictionary()

      Checks if this `PdfObject` is of the type `PdfDictionary`.
      Returns:
        `true` or `false`

    - #### isStream

          public boolean isStream()

      Checks if this `PdfObject` is of the type `PdfStream`.
      Returns:
        `true` or `false`

    - #### isIndirect

          public boolean isIndirect()

      Checks if this `PdfObject` is of the type `PdfIndirectObject`.
      Returns:
        `true` if this is an indirect object, otherwise `false`

    - #### getIndRef

          public PRIndirectReference getIndRef()

      Get the indirect reference
      Returns:
        A `PdfIndirectReference`

    - #### setIndRef

          public void setIndRef(PRIndirectReference indRef)

      Set the indirect reference
      Parameters:
        `indRef` - New value as a `PdfIndirectReference`