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
`` `PDFXObject()` Create an XObject with the given number.
`protected` `PDFXObject(PDFDictionary dictionary)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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, supportsObjectStream`

### 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