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:
BaseFont.StreamFont, PdfContents, 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.3' section 4.8 (page 41-53).

See Also:
PdfObject, PdfDictionary

Field Summary
protected  boolean compressed
          is the stream compressed?
(package private) static byte[] ENDSTREAM
           
protected  InputStream inputStream
           
protected  int inputStreamLength
           
protected  int rawLength
           
protected  PdfIndirectReference ref
           
(package private) static int SIZESTREAM
           
(package private) static byte[] STARTSTREAM
           
protected  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(InputStream inputStream, PdfWriter writer)
          Creates an efficient stream.
 
Method Summary
 void flateCompress()
          Compresses the stream.
 int getRawLength()
          Gets the raw length of the stream.
protected  void superToPdf(PdfWriter writer, OutputStream os)
           
 void toPdf(PdfWriter writer, OutputStream os)
          Returns the PDF representation of this PdfDictionary.
 void writeContent(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, getKeys, isCatalog, isDictionaryType, isFont, isOutlineTree, isPage, isPages, merge, mergeDifferent, put, putAll, putDel, putEx, remove, size, toString
 
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

compressed

protected boolean compressed
is the stream compressed?


streamBytes

protected ByteArrayOutputStream streamBytes

inputStream

protected 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 a PdfStream-object.

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

PdfStream

public PdfStream(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 IOException
Writes the stream length to the PdfWriter.

This method must be called and can only be called if the contructor PdfStream(InputStream,PdfWriter) is used to create the stream.

Throws:
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.


superToPdf

protected void superToPdf(PdfWriter writer,
                          OutputStream os)
                   throws IOException
Throws:
IOException

toPdf

public void toPdf(PdfWriter writer,
                  OutputStream os)
           throws IOException
Description copied from class: PdfDictionary
Returns the PDF representation of this PdfDictionary.

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

writeContent

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

Parameters:
os - the destination to write to
Throws:
IOException - on error