Class PDMemoryStream

java.lang.Object
org.apache.pdfbox.pdmodel.common.PDStream
org.apache.pdfbox.pdmodel.common.PDMemoryStream
All Implemented Interfaces:
COSObjectable

public class PDMemoryStream extends PDStream
A PDStream represents a stream in a PDF document. Streams are tied to a single PDF document.
Version:
$Revision: 1.2 $
Author:
Ben Litchfield
  • Constructor Details

    • PDMemoryStream

      public PDMemoryStream(byte[] buffer)
      This will create a new PDStream object.
      Parameters:
      buffer - The data for this in memory stream.
  • Method Details

    • addCompression

      public void addCompression()
      If there are not compression filters on the current stream then this will add a compression filter, flate compression for example.
      Overrides:
      addCompression in class PDStream
    • getCOSObject

      public COSBase getCOSObject()
      Convert this standard java object to a COS object.
      Specified by:
      getCOSObject in interface COSObjectable
      Overrides:
      getCOSObject in class PDStream
      Returns:
      The cos object that matches this Java object.
    • createOutputStream

      public OutputStream createOutputStream() throws IOException
      This will get a stream that can be written to.
      Overrides:
      createOutputStream in class PDStream
      Returns:
      An output stream to write data to.
      Throws:
      IOException - If an IO error occurs during writing.
    • createInputStream

      public InputStream createInputStream() throws IOException
      This will get a stream that can be read from.
      Overrides:
      createInputStream in class PDStream
      Returns:
      An input stream that can be read from.
      Throws:
      IOException - If an IO error occurs during reading.
    • getPartiallyFilteredStream

      public InputStream getPartiallyFilteredStream(List stopFilters) throws IOException
      This will get a stream with some filters applied but not others. This is useful when doing images, ie filters = [flate,dct], we want to remove flate but leave dct
      Overrides:
      getPartiallyFilteredStream in class PDStream
      Parameters:
      stopFilters - A list of filters to stop decoding at.
      Returns:
      A stream with decoded data.
      Throws:
      IOException - If there is an error processing the stream.
    • getStream

      public COSStream getStream()
      Get the cos stream associated with this object.
      Overrides:
      getStream in class PDStream
      Returns:
      The cos object that matches this Java object.
    • getLength

      public int getLength()
      This will get the length of the filtered/compressed stream. This is readonly in the PD Model and will be managed by this class.
      Overrides:
      getLength in class PDStream
      Returns:
      The length of the filtered stream.
    • getFilters

      public List getFilters()
      This will get the list of filters that are associated with this stream. Or null if there are none.
      Overrides:
      getFilters in class PDStream
      Returns:
      A list of all encoding filters to apply to this stream.
    • setFilters

      public void setFilters(List filters)
      This will set the filters that are part of this stream.
      Overrides:
      setFilters in class PDStream
      Parameters:
      filters - The filters that are part of this stream.
    • getDecodeParams

      public List getDecodeParams() throws IOException
      Get the list of decode parameters. Each entry in the list will refer to an entry in the filters list.
      Returns:
      The list of decode parameters.
      Throws:
      IOException - if there is an error retrieving the parameters.
    • setDecodeParams

      public void setDecodeParams(List decodeParams)
      This will set the list of decode params.
      Parameters:
      decodeParams - The list of decode params.
    • getFile

      public PDFileSpecification getFile()
      This will get the file specification for this stream. This is only required for external files.
      Overrides:
      getFile in class PDStream
      Returns:
      The file specification.
    • setFile

      public void setFile(PDFileSpecification f)
      Set the file specification.
      Overrides:
      setFile in class PDStream
      Parameters:
      f - The file specification.
    • getFileFilters

      public List getFileFilters()
      This will get the list of filters that are associated with this stream. Or null if there are none.
      Overrides:
      getFileFilters in class PDStream
      Returns:
      A list of all encoding filters to apply to this stream.
    • setFileFilters

      public void setFileFilters(List filters)
      This will set the filters that are part of this stream.
      Overrides:
      setFileFilters in class PDStream
      Parameters:
      filters - The filters that are part of this stream.
    • getFileDecodeParams

      public List getFileDecodeParams() throws IOException
      Get the list of decode parameters. Each entry in the list will refer to an entry in the filters list.
      Overrides:
      getFileDecodeParams in class PDStream
      Returns:
      The list of decode parameters.
      Throws:
      IOException - if there is an error retrieving the parameters.
    • setFileDecodeParams

      public void setFileDecodeParams(List decodeParams)
      This will set the list of decode params.
      Overrides:
      setFileDecodeParams in class PDStream
      Parameters:
      decodeParams - The list of decode params.
    • getByteArray

      public byte[] getByteArray() throws IOException
      This will copy the stream into a byte array.
      Overrides:
      getByteArray in class PDStream
      Returns:
      The byte array of the filteredStream
      Throws:
      IOException - When getFilteredStream did not work
    • getMetadata

      public PDMetadata getMetadata()
      Get the metadata that is part of the document catalog. This will return null if there is no meta data for this object.
      Overrides:
      getMetadata in class PDStream
      Returns:
      The metadata for this object.
    • setMetadata

      public void setMetadata(PDMetadata meta)
      Set the metadata for this object. This can be null.
      Overrides:
      setMetadata in class PDStream
      Parameters:
      meta - The meta data for this object.