org.apache.fop.pdf

## Class PDFXObject

- java.lang.Object
- - org.apache.fop.pdf.PDFObject
  - - org.apache.fop.pdf.AbstractPDFStream
    - - org.apache.fop.pdf.PDFXObject

- All Implemented Interfaces:
    PDFWritable
  Direct Known Subclasses:
    PDFFormXObject, PDFImageXObject

      public abstract class PDFXObject
      extends AbstractPDFStream

  Abstract base class of PDF XObjects. A derivative of the PDF Object, is a PDF Stream that has not only a dictionary but a stream of image data. The dictionary just provides information like the stream length. This outputs the image dictionary and the image data. This is used as a reference for inserting the same image in the document in another place.

- - ### Field Summary

    - ### Fields inherited from class org.apache.fop.pdf.PDFObject

      `log`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `PDFXObject()` Create an XObject with the given number.
    `protected` | `PDFXObject(PDFDictionary dictionary)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `PDFName` | `getName()` Returns the XObject's name.
    `protected int` | `getSizeHint()` Returns a value that hints at the size of the encoded stream.
    `protected void` | `populateStreamDict(Object lengthEntry)` Populates the dictionary with all necessary entries for the stream.

    - ### Methods inherited from class org.apache.fop.pdf.AbstractPDFStream

      `encodeAndWriteStream, encodeStream, get, getChildren, getDefaultFilterName, getDictionary, getFilterList, multipleFiltersAllowed, output, outputRawStreamData, outputStreamData, prepareImplicitFilters, put, registerChildren, setDocument, setupFilterList`

    - ### 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, setObjectNumber, setObjectNumber, setObjectNumber, setParent, toPDF, toPDFString`

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

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

- - ### Constructor Detail

    - #### PDFXObject

          public PDFXObject()

      Create an XObject with the given number.

    - #### PDFXObject

          protected PDFXObject(PDFDictionary dictionary)

  - ### Method Detail

    - #### getName

          public PDFName getName()

      Returns the XObject's name.
      Returns:
        the name of the XObject

    - #### populateStreamDict

          protected void populateStreamDict(Object lengthEntry)

      Populates the dictionary with all necessary entries for the stream. Override this method if you need additional entries.
      Overrides:
        `populateStreamDict` in class `AbstractPDFStream`
      Parameters:
        `lengthEntry` - value for the /Length entry

    - #### getSizeHint

          protected int getSizeHint()
                             throws IOException

      Returns a value that hints at the size of the encoded stream. This is used to optimize buffer allocation so fewer buffer reallocations are necessary.
      Specified by:
        `getSizeHint` in class `AbstractPDFStream`
      Returns:
        an estimated size (0 if no hint can be given)
      Throws:
        `IOException` - in case of an I/O problem

Copyright © 2023 Apache Software Foundation. All rights reserved.