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

      • PDMemoryStream

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

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

        public java.io.OutputStream createOutputStream()
                                                throws java.io.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:
        java.io.IOException - If an IO error occurs during writing.
      • createInputStream

        public java.io.InputStream createInputStream()
                                              throws java.io.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:
        java.io.IOException - If an IO error occurs during reading.
      • getPartiallyFilteredStream

        public java.io.InputStream getPartiallyFilteredStream​(java.util.List stopFilters)
                                                       throws java.io.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:
        java.io.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 java.util.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​(java.util.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 java.util.List getDecodeParams()
                                       throws java.io.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:
        java.io.IOException - if there is an error retrieving the parameters.
      • setDecodeParams

        public void setDecodeParams​(java.util.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.
      • getFileFilters

        public java.util.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​(java.util.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 java.util.List getFileDecodeParams()
                                           throws java.io.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:
        java.io.IOException - if there is an error retrieving the parameters.
      • setFileDecodeParams

        public void setFileDecodeParams​(java.util.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 java.io.IOException
        This will copy the stream into a byte array.
        Overrides:
        getByteArray in class PDStream
        Returns:
        The byte array of the filteredStream
        Throws:
        java.io.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.