Class PdfStream

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 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 Details

    • DEFAULT_COMPRESSION

      public static final int DEFAULT_COMPRESSION
      A possible compression level.
      Since:
      2.1.3
      See Also:
    • NO_COMPRESSION

      public static final int NO_COMPRESSION
      A possible compression level.
      Since:
      2.1.3
      See Also:
    • BEST_SPEED

      public static final int BEST_SPEED
      A possible compression level.
      Since:
      2.1.3
      See Also:
    • BEST_COMPRESSION

      public static final int BEST_COMPRESSION
      A possible compression level.
      Since:
      2.1.3
      See Also:
    • STARTSTREAM

      static final byte[] STARTSTREAM
    • ENDSTREAM

      static final byte[] ENDSTREAM
    • SIZESTREAM

      static final int SIZESTREAM
    • compressed

      protected boolean compressed
      is the stream compressed?
    • compressionLevel

      protected int compressionLevel
      The level of compression.
      Since:
      2.1.3
    • streamBytes

      protected ByteArrayOutputStream streamBytes
    • inputStream

      protected InputStream inputStream
    • ref

      protected PdfIndirectReference ref
    • inputStreamLength

      protected long inputStreamLength
    • writer

      protected PdfWriter writer
    • rawLength

      protected long rawLength
  • Constructor Details

    • 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 Details

    • 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 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

      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
      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:
      IOException - on error
      See Also:
    • 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
    • toString

      public 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: