Class PdfStream
- java.lang.Object
-
- com.itextpdf.text.pdf.PdfObject
-
- com.itextpdf.text.pdf.PdfDictionary
-
- com.itextpdf.text.pdf.PdfStream
-
- All Implemented Interfaces:
java.io.Serializable
- Direct Known Subclasses:
BaseFont.StreamFont
,PdfContents
,PdfEFStream
,PdfFormXObject
,PdfICCBased
,PdfImage
,PdfPattern
,PRStream
public class PdfStream extends PdfDictionary
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 bePdfIndirectObject
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:
PdfObject
,PdfDictionary
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
BEST_COMPRESSION
A possible compression level.static int
BEST_SPEED
A possible compression level.protected boolean
compressed
is the stream compressed?protected int
compressionLevel
The level of compression.static int
DEFAULT_COMPRESSION
A possible compression level.(package private) static byte[]
ENDSTREAM
protected java.io.InputStream
inputStream
protected int
inputStreamLength
static int
NO_COMPRESSION
A possible compression level.protected int
rawLength
protected PdfIndirectReference
ref
(package private) static int
SIZESTREAM
(package private) static byte[]
STARTSTREAM
protected java.io.ByteArrayOutputStream
streamBytes
protected PdfWriter
writer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
flateCompress()
Compresses the stream.void
flateCompress(int compressionLevel)
Compresses the stream.int
getRawLength()
Gets the raw length of the stream.protected void
superToPdf(PdfWriter writer, java.io.OutputStream os)
void
toPdf(PdfWriter writer, java.io.OutputStream os)
Writes the PDF representation of thisPdfDictionary
as an array ofbyte
to the givenOutputStream
.java.lang.String
toString()
Returns a string representation of thisPdfDictionary
.void
writeContent(java.io.OutputStream os)
Writes the data content to anOutputStream
.void
writeLength()
Writes the stream length to thePdfWriter
.-
Methods inherited from class com.itextpdf.text.pdf.PdfDictionary
checkType, clear, contains, get, getAsArray, getAsBoolean, getAsDict, getAsIndirectObject, getAsName, getAsNumber, getAsStream, getAsString, getDirectObject, getKeys, isCatalog, isFont, isOutlineTree, isPage, isPages, merge, mergeDifferent, put, putAll, putEx, remove, size
-
Methods inherited from class com.itextpdf.text.pdf.PdfObject
canBeInObjStm, getBytes, getIndRef, isArray, isBoolean, isDictionary, isIndirect, isName, isNull, isNumber, isStream, isString, length, setContent, setIndRef, type
-
-
-
-
Field Detail
-
DEFAULT_COMPRESSION
public static final int DEFAULT_COMPRESSION
A possible compression level.- Since:
- 2.1.3
- See Also:
- Constant Field Values
-
NO_COMPRESSION
public static final int NO_COMPRESSION
A possible compression level.- Since:
- 2.1.3
- See Also:
- Constant Field Values
-
BEST_SPEED
public static final int BEST_SPEED
A possible compression level.- Since:
- 2.1.3
- See Also:
- Constant Field Values
-
BEST_COMPRESSION
public static final int BEST_COMPRESSION
A possible compression level.- Since:
- 2.1.3
- See Also:
- Constant Field Values
-
compressed
protected boolean compressed
is the stream compressed?
-
compressionLevel
protected int compressionLevel
The level of compression.- Since:
- 2.1.3
-
streamBytes
protected java.io.ByteArrayOutputStream streamBytes
-
inputStream
protected java.io.InputStream inputStream
-
ref
protected PdfIndirectReference ref
-
inputStreamLength
protected int inputStreamLength
-
writer
protected PdfWriter writer
-
rawLength
protected int rawLength
-
STARTSTREAM
static final byte[] STARTSTREAM
-
ENDSTREAM
static final byte[] ENDSTREAM
-
SIZESTREAM
static final int SIZESTREAM
-
-
Constructor Detail
-
PdfStream
public PdfStream(byte[] bytes)
Constructs aPdfStream
-object.- Parameters:
bytes
- content of the newPdfObject
as an array ofbyte
.
-
PdfStream
public PdfStream(java.io.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 Detail
-
writeLength
public void writeLength() throws java.io.IOException
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:
java.io.IOException
- on error- See Also:
PdfStream(InputStream,PdfWriter)
-
getRawLength
public int 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
protected void superToPdf(PdfWriter writer, java.io.OutputStream os) throws java.io.IOException
- Throws:
java.io.IOException
-
toPdf
public void toPdf(PdfWriter writer, java.io.OutputStream os) throws java.io.IOException
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:
java.io.IOException
- See Also:
PdfDictionary.toPdf(com.itextpdf.text.pdf.PdfWriter, java.io.OutputStream)
-
writeContent
public void writeContent(java.io.OutputStream os) throws java.io.IOException
Writes the data content to anOutputStream
.- Parameters:
os
- the destination to write to- Throws:
java.io.IOException
- on error
-
toString
public java.lang.String 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:
PdfObject.toString()
-
-