Class PdfStream
- Direct Known Subclasses:
BaseFont.StreamFont
,PdfContents
,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 PdfIndirectObject
s. 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 int
A possible compression level.protected boolean
is the stream compressed?protected int
The level of compression.static final int
A possible compression level.(package private) static final byte[]
protected InputStream
protected int
static final int
A possible compression level.protected int
private PdfIndirectReference
(package private) static final byte[]
protected ByteArrayOutputStream
private PdfWriter
Fields inherited from class com.aowagie.text.pdf.PdfDictionary
CATALOG, hashMap, OUTLINES, PAGE
Fields inherited from class com.aowagie.text.pdf.PdfObject
ARRAY, BOOLEAN, bytes, DICTIONARY, INDIRECT, NAME, NOTHING, NULL, NUMBER, STREAM, STRING, TEXT_PDFDOCENCODING, TEXT_UNICODE, type
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Constructs aPdfStream
-object.PdfStream
(byte[] bytes) Constructs aPdfStream
-object.(package private)
PdfStream
(InputStream inputStream, PdfWriter writer) Creates an efficient stream. -
Method Summary
Modifier and TypeMethodDescription(package private) void
flateCompress
(int compressionLevel) Compresses the stream.int
Gets the raw length of the stream.protected void
superToPdf
(PdfWriter writer, OutputStream os) void
toPdf
(PdfWriter writer, OutputStream os) Writes the PDF representation of thisPdfDictionary
as an array ofbyte
to the givenOutputStream
.toString()
Returns a string representation of thisPdfDictionary
.(package private) void
Writes the data content to anOutputStream
.(package private) void
Writes the stream length to thePdfWriter
.Methods inherited from class com.aowagie.text.pdf.PdfDictionary
contains, get, getAsArray, getAsBoolean, getAsDict, getAsIndirectObject, getAsName, getAsNumber, getAsString, getDirectObject, getKeys, isCatalog, isFont, isOutlineTree, isPage, isPages, merge, mergeDifferent, put, putAll, remove, size
Methods inherited from class com.aowagie.text.pdf.PdfObject
canBeInObjStm, getBytes, getIndRef, isArray, isBoolean, isDictionary, isIndirect, isName, isNull, isNumber, isStream, isString, 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_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 int inputStreamLength -
writer
-
rawLength
protected int rawLength -
STARTSTREAM
static final byte[] STARTSTREAM -
ENDSTREAM
static final byte[] ENDSTREAM
-
-
Constructor Details
-
PdfStream
public PdfStream(byte[] bytes) Constructs aPdfStream
-object.- Parameters:
bytes
- content of the newPdfObject
as an array ofbyte
.
-
PdfStream
PdfStream(InputStream inputStream, PdfWriter writer) Creates an efficient stream. No temporary array is ever created. TheInputStream
is 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
- thePdfWriter
for 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 int getRawLength()Gets the raw length of the stream.- Returns:
- the raw length of the stream
-
flateCompress
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:PdfDictionary
Writes the PDF representation of thisPdfDictionary
as an array ofbyte
to the givenOutputStream
.- Overrides:
toPdf
in classPdfDictionary
- Parameters:
writer
- for backwards compatibilityos
- theOutputStream
to write the bytes to.- Throws:
IOException
- Exception with a I/O 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:PdfDictionary
Returns 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 thisPdfDictionary
, if set.- Overrides:
toString
in classPdfDictionary
- Returns:
- the string representation of this
PdfDictionary
- See Also:
-