com.lowagie.text.pdf
Class PdfStream

java.lang.Object
  extended by com.lowagie.text.pdf.PdfObject
      extended by com.lowagie.text.pdf.PdfDictionary
          extended by com.lowagie.text.pdf.PdfStream
Direct Known Subclasses:
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 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:
PdfObject, PdfDictionary

Field Summary
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.
protected  java.io.InputStream inputStream
           
protected  int inputStreamLength
           
static int NO_COMPRESSION
          A possible compression level.
protected  int rawLength
           
protected  PdfIndirectReference ref
           
protected  java.io.ByteArrayOutputStream streamBytes
           
protected  PdfWriter writer
           
 
Fields inherited from class com.lowagie.text.pdf.PdfDictionary
CATALOG, FONT, hashMap, OUTLINES, PAGE, PAGES
 
Fields inherited from class com.lowagie.text.pdf.PdfObject
ARRAY, BOOLEAN, bytes, DICTIONARY, INDIRECT, indRef, NAME, NOTHING, NULL, NUMBER, STREAM, STRING, TEXT_PDFDOCENCODING, TEXT_UNICODE, type
 
Constructor Summary
protected PdfStream()
          Constructs a PdfStream-object.
  PdfStream(byte[] bytes)
          Constructs a PdfStream-object.
  PdfStream(java.io.InputStream inputStream, PdfWriter writer)
          Creates an efficient stream.
 
Method Summary
 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 this PdfDictionary as an array of byte to the given OutputStream.
 java.lang.String toString()
          Returns a string representation of this PdfDictionary.
 void writeContent(java.io.OutputStream os)
          Writes the data content to an OutputStream.
 void writeLength()
          Writes the stream length to the PdfWriter.
 
Methods inherited from class com.lowagie.text.pdf.PdfDictionary
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.lowagie.text.pdf.PdfObject
canBeInObjStm, getBytes, getIndRef, isArray, isBoolean, isDictionary, isIndirect, isName, isNull, isNumber, isStream, isString, length, setContent, setIndRef, type
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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
Constructor Detail

PdfStream

public PdfStream(byte[] bytes)
Constructs a PdfStream-object.

Parameters:
bytes - content of the new PdfObject as an array of byte.

PdfStream

public PdfStream(java.io.InputStream inputStream,
                 PdfWriter writer)
Creates an efficient stream. No temporary array is ever created. The InputStream 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 stream
writer - the PdfWriter for this stream

PdfStream

protected PdfStream()
Constructs a PdfStream-object.

Method Detail

writeLength

public void writeLength()
                 throws java.io.IOException
Writes the stream length to the PdfWriter.

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 this PdfDictionary as an array of byte to the given OutputStream.

Overrides:
toPdf in class PdfDictionary
Parameters:
writer - for backwards compatibility
os - the OutputStream to write the bytes to.
Throws:
java.io.IOException
See Also:
PdfDictionary.toPdf(com.lowagie.text.pdf.PdfWriter, java.io.OutputStream)

writeContent

public void writeContent(java.io.OutputStream os)
                  throws java.io.IOException
Writes the data content to an OutputStream.

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 this PdfDictionary. 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:
toString in class PdfDictionary
Returns:
the string representation of this PdfDictionary
See Also:
PdfObject.toString()


iText 2.1.7