Class AbstractPDFStream
java.lang.Object
org.apache.fop.pdf.PDFObject
org.apache.fop.pdf.AbstractPDFStream
- All Implemented Interfaces:
CompressedObject, PDFWritable
- Direct Known Subclasses:
AbstractPDFFontStream, PDFStream, PDFXObject
This is an abstract base class for PDF streams.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final PDFDictionaryprivate booleanprivate PDFFilterListThe filters that should be appliedprivate PDFNumber -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotectedAbstractPDFStream(boolean encodeOnTheFly) protectedAbstractPDFStream(PDFDictionary dictionary) protectedAbstractPDFStream(PDFDictionary dictionary, boolean encodeOnTheFly) -
Method Summary
Modifier and TypeMethodDescriptionprotected intencodeAndWriteStream(OutputStream out, PDFNumber refLength) Encodes and writes a stream directly to an OutputStream.protected StreamCacheEncodes the raw data stream for output to a PDF file.voidgetChildren(Set<PDFObject> children) protected StringReturns the name of a suitable filter for this PDF object.protected final PDFDictionaryReturns the associated filter list.protected abstract intReturns a value that hints at the size of the encoded stream.protected booleanWhether multiple filters can be applied.intoutput(OutputStream stream) Overload the base object method so we don't have to copy byte arrays around so much Write the PDF represention of this objectprotected abstract voidSends the raw stream data to the target OutputStream.protected intoutputStreamData(StreamCache encodedStream, OutputStream out) Output just the stream data enclosed by stream/endstream markersprotected voidpopulateStreamDict(Object lengthEntry) Populates the dictionary with all necessary entries for the stream.protected voidPrepares implicit filters (such as the DCTFilter for JPEG images).voidPuts the given object in the dictionary associated to this stream.voidvoidsetDocument(PDFDocument doc) Sets the parent PDFDocument.protected voidSets up the default filters for this stream if they haven't been set from outside.booleanMethods inherited from class PDFObject
contentEquals, encode, encodeBinaryToHexString, encodeString, encodeText, formatObject, getDocument, getDocumentSafely, getGeneration, getObjectID, getObjectNumber, getParent, hasObjectNumber, makeReference, outputInline, referencePDF, setObjectNumber, setObjectNumber, setObjectNumber, setParent, toPDF, toPDFString
-
Field Details
-
dictionary
-
filters
The filters that should be applied -
encodeOnTheFly
private boolean encodeOnTheFly -
refLength
-
-
Constructor Details
-
AbstractPDFStream
protected AbstractPDFStream() -
AbstractPDFStream
-
AbstractPDFStream
protected AbstractPDFStream(boolean encodeOnTheFly) -
AbstractPDFStream
-
-
Method Details
-
getDictionary
-
get
-
put
-
setupFilterList
protected void setupFilterList()Sets up the default filters for this stream if they haven't been set from outside. -
getDefaultFilterName
Returns the name of a suitable filter for this PDF object.- Returns:
- the default filter
- See Also:
-
getFilterList
-
getSizeHint
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.- Returns:
- an estimated size (0 if no hint can be given)
- Throws:
IOException- in case of an I/O problem
-
outputRawStreamData
Sends the raw stream data to the target OutputStream.- Parameters:
out- OutputStream to write to- Throws:
IOException- In case of an I/O problem
-
outputStreamData
Output just the stream data enclosed by stream/endstream markers- Parameters:
encodedStream- already encoded/filtered stream to writeout- OutputStream to write to- Returns:
- int number of bytes written
- Throws:
IOException- in case of an I/O problem
-
encodeStream
Encodes the raw data stream for output to a PDF file.- Returns:
- the encoded stream
- Throws:
IOException- in case of an I/O problem
-
encodeAndWriteStream
Encodes and writes a stream directly to an OutputStream. The length of the stream, in this case, is set on a PDFNumber object that has to be prepared beforehand.- Parameters:
out- OutputStream to write torefLength- PDFNumber object to receive the stream length- Returns:
- number of bytes written (header and trailer included)
- Throws:
IOException- in case of an I/O problem
-
output
Overload the base object method so we don't have to copy byte arrays around so much Write the PDF represention of this object- Specified by:
outputin interfaceCompressedObject- Overrides:
outputin classPDFObject- Parameters:
stream- the stream to write the PDF to- Returns:
- the number of bytes written
- Throws:
IOException- if there is an error writing to the stream
-
setDocument
Description copied from class:PDFObjectSets the parent PDFDocument.- Overrides:
setDocumentin classPDFObject- Parameters:
doc- the PDFDocument.
-
populateStreamDict
Populates the dictionary with all necessary entries for the stream. Override this method if you need additional entries.- Parameters:
lengthEntry- value for the /Length entry
-
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. -
multipleFiltersAllowed
protected boolean multipleFiltersAllowed()Whether multiple filters can be applied.- Returns:
- true if multiple filters allowed
-
getChildren
- Overrides:
getChildrenin classPDFObject
-
registerChildren
public void registerChildren() -
supportsObjectStream
public boolean supportsObjectStream()- Overrides:
supportsObjectStreamin classPDFObject
-