Package org.apache.fop.pdf
Class PDFImageXObject
- java.lang.Object
-
- org.apache.fop.pdf.PDFObject
-
- org.apache.fop.pdf.AbstractPDFStream
-
- org.apache.fop.pdf.PDFXObject
-
- org.apache.fop.pdf.PDFImageXObject
-
- All Implemented Interfaces:
PDFWritable
public class PDFImageXObject extends PDFXObject
PDF XObject 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.
-
-
Constructor Summary
Constructors Constructor Description PDFImageXObject(int xnumber, PDFImage img)
create an XObject with the given number and name and load the image in the object
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
getChildren(java.util.Set<PDFObject> children)
protected java.lang.String
getDefaultFilterName()
Returns the name of a suitable filter for this PDF object.protected int
getSizeHint()
Returns a value that hints at the size of the encoded stream.protected boolean
multipleFiltersAllowed()
Whether multiple filters can be applied.int
output(java.io.OutputStream stream)
Output the image as PDF.protected void
outputRawStreamData(java.io.OutputStream out)
Sends the raw stream data to the target OutputStream.private void
populateDictionaryFromImage()
private void
populateDictionaryFromPS()
protected void
populateStreamDict(java.lang.Object lengthEntry)
Populates the dictionary with all necessary entries for the stream.protected void
prepareImplicitFilters()
Prepares implicit filters (such as the DCTFilter for JPEG images).-
Methods inherited from class org.apache.fop.pdf.PDFXObject
getName
-
Methods inherited from class org.apache.fop.pdf.AbstractPDFStream
encodeAndWriteStream, encodeStream, get, getDictionary, getFilterList, outputStreamData, 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
-
-
-
-
Field Detail
-
pdfimage
private PDFImage pdfimage
-
-
Constructor Detail
-
PDFImageXObject
public PDFImageXObject(int xnumber, PDFImage img)
create an XObject with the given number and name and load the image in the object- Parameters:
xnumber
- the pdf object X numberimg
- the pdf image that contains the image data
-
-
Method Detail
-
output
public int output(java.io.OutputStream stream) throws java.io.IOException
Output the image as PDF. This sets up the image dictionary and adds the image data stream.- Overrides:
output
in classAbstractPDFStream
- Parameters:
stream
- the output stream to write the data- Returns:
- the length of the data written
- Throws:
java.io.IOException
- if there is an error writing the data
-
populateStreamDict
protected void populateStreamDict(java.lang.Object lengthEntry)
Populates the dictionary with all necessary entries for the stream. Override this method if you need additional entries.- Overrides:
populateStreamDict
in classPDFXObject
- Parameters:
lengthEntry
- value for the /Length entry
-
populateDictionaryFromPS
private void populateDictionaryFromPS()
-
populateDictionaryFromImage
private void populateDictionaryFromImage()
-
outputRawStreamData
protected void outputRawStreamData(java.io.OutputStream out) throws java.io.IOException
Sends the raw stream data to the target OutputStream.- Specified by:
outputRawStreamData
in classAbstractPDFStream
- Parameters:
out
- OutputStream to write to- Throws:
java.io.IOException
- In case of an I/O problem
-
getSizeHint
protected int getSizeHint() throws java.io.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.- Overrides:
getSizeHint
in classPDFXObject
- Returns:
- an estimated size (0 if no hint can be given)
- Throws:
java.io.IOException
- in case of an I/O problem
-
prepareImplicitFilters
protected void prepareImplicitFilters()
Prepares implicit filters (such as the DCTFilter for JPEG images). You must make sure that the appropriate filters are in the filter list at the right places.- Overrides:
prepareImplicitFilters
in classAbstractPDFStream
-
getDefaultFilterName
protected java.lang.String getDefaultFilterName()
Returns the name of a suitable filter for this PDF object. This class uses the PDFImage instance to determine the default filter.- Overrides:
getDefaultFilterName
in classAbstractPDFStream
- Returns:
- the default filter
- See Also:
PDFFilterList
-
multipleFiltersAllowed
protected boolean multipleFiltersAllowed()
Whether multiple filters can be applied.- Overrides:
multipleFiltersAllowed
in classAbstractPDFStream
- Returns:
- true if multiple filters allowed
-
getChildren
public void getChildren(java.util.Set<PDFObject> children)
- Overrides:
getChildren
in classAbstractPDFStream
-
-