- Direct Known Subclasses:
PdfEFStream,PdfFormXObject,PdfICCBased,PdfImage,PdfPattern,PRStream
PdfStream is the Pdf stream object.
A stream, like a string, is a sequence of characters. However, an application can read a small portion of a stream at
a time, while a string must be read in its entirety. For this reason, objects with potentially large amounts of data,
such as images and page descriptions, are represented as streams.
A stream consists of a dictionary that
describes a sequence of characters, followed by the keyword stream, followed by zero or more lines of
characters, followed by the keyword endstream.
All streams must be PdfIndirectObjects. The
stream dictionary must be a direct object. The keyword stream that follows the stream dictionary should be
followed by a carriage return and linefeed or just a linefeed.
Remark: In this version only the
FLATEDECODE-filter is supported.
This object is described in the 'Portable Document Format Reference Manual
version 1.7' section 3.2.7 (page 60-63).
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intA possible compression level.static final intA possible compression level.protected booleanis the stream compressed?protected intThe level of compression.static final intA possible compression level.protected InputStreamprotected longstatic final intA possible compression level.protected longprotected PdfIndirectReferenceprotected ByteArrayOutputStreamprotected PdfWriter -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedConstructs aPdfStream-object.PdfStream(byte[] bytes) Constructs aPdfStream-object.PdfStream(InputStream inputStream, PdfWriter writer) Creates an efficient stream. -
Method Summary
Modifier and TypeMethodDescriptionvoidCompresses the stream.voidflateCompress(int compressionLevel) Compresses the stream.longGets the raw length of the stream.protected voidsuperToPdf(PdfWriter writer, OutputStream os) voidtoPdf(PdfWriter writer, OutputStream os) Writes the PDF representation of thisPdfDictionaryas an array ofbyteto the givenOutputStream.toString()Returns a string representation of thisPdfDictionary.voidWrites the data content to anOutputStream.voidWrites the stream length to thePdfWriter.Methods inherited from class org.openpdf.text.pdf.PdfDictionary
clear, contains, get, getAsArray, getAsBoolean, getAsDict, getAsIndirectObject, getAsName, getAsNumber, getAsStream, getAsString, getDirectObject, getKeys, getKeysAndValues, isCatalog, isFont, isOutlineTree, isPage, isPages, merge, mergeDifferent, put, putAll, putEx, remove, sizeMethods inherited from class org.openpdf.text.pdf.PdfObject
canBeInObjStm, getBytes, getIndRef, isArray, isBoolean, isDictionary, isIndirect, isName, isNull, isNumber, isStream, isString, length, setContent, setIndRef, type
-
Field Details
-
DEFAULT_COMPRESSION
public static final int DEFAULT_COMPRESSIONA possible compression level.- Since:
- 2.1.3
- See Also:
-
NO_COMPRESSION
public static final int NO_COMPRESSIONA possible compression level.- Since:
- 2.1.3
- See Also:
-
BEST_SPEED
public static final int BEST_SPEEDA possible compression level.- Since:
- 2.1.3
- See Also:
-
BEST_COMPRESSION
public static final int BEST_COMPRESSIONA possible compression level.- Since:
- 2.1.3
- See Also:
-
compressed
protected boolean compressedis the stream compressed? -
compressionLevel
protected int compressionLevelThe level of compression.- Since:
- 2.1.3
-
streamBytes
-
inputStream
-
ref
-
inputStreamLength
protected long inputStreamLength -
writer
-
rawLength
protected long rawLength
-
-
Constructor Details
-
PdfStream
public PdfStream(byte[] bytes) Constructs aPdfStream-object.- Parameters:
bytes- content of the newPdfObjectas an array ofbyte.
-
PdfStream
Creates an efficient stream. No temporary array is ever created. TheInputStreamis totally consumed but is not closed. The general usage is:InputStream in = ...; PdfStream stream = new PdfStream(in, writer); stream.flateCompress(); writer.addToBody(stream); stream.writeLength(); in.close();
- Parameters:
inputStream- the data to write to this streamwriter- thePdfWriterfor this stream
-
PdfStream
protected PdfStream()Constructs aPdfStream-object.
-
-
Method Details
-
writeLength
Writes the stream length to thePdfWriter.This method must be called and can only be called if the constructor
PdfStream(InputStream, PdfWriter)is used to create the stream.- Throws:
IOException- on error- See Also:
-
getRawLength
public long getRawLength()Gets the raw length of the stream.- Returns:
- the raw length of the stream
-
flateCompress
public void flateCompress()Compresses the stream. -
flateCompress
public void flateCompress(int compressionLevel) Compresses the stream.- Parameters:
compressionLevel- the compression level (0 = best speed, 9 = best compression, -1 is default)- Since:
- 2.1.3
-
superToPdf
- Throws:
IOException
-
toPdf
Description copied from class:PdfDictionaryWrites the PDF representation of thisPdfDictionaryas an array ofbyteto the givenOutputStream.- Overrides:
toPdfin classPdfDictionary- Parameters:
writer- for backwards compatibilityos- theOutputStreamto write the bytes to.- Throws:
IOException- on error- See Also:
-
writeContent
Writes the data content to anOutputStream.- Parameters:
os- the destination to write to- Throws:
IOException- on error
-
toString
Description copied from class:PdfDictionaryReturns a string representation of thisPdfDictionary.The string doesn't contain any of the content of this dictionary. Rather the string "dictionary" is returned, possibly followed by the type of this
PdfDictionary, if set.- Overrides:
toStringin classPdfDictionary- Returns:
- the string representation of this
PdfDictionary - See Also:
-