Package org.apache.pdfbox.pdmodel.common
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 Summary
Constructors Constructor Description PDMemoryStream(byte[] buffer)
This will create a new PDStream object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCompression()
If there are not compression filters on the current stream then this will add a compression filter, flate compression for example.java.io.InputStream
createInputStream()
This will get a stream that can be read from.java.io.OutputStream
createOutputStream()
This will get a stream that can be written to.byte[]
getByteArray()
This will copy the stream into a byte array.COSBase
getCOSObject()
Convert this standard java object to a COS object.java.util.List
getDecodeParams()
Get the list of decode parameters.PDFileSpecification
getFile()
This will get the file specification for this stream.java.util.List
getFileDecodeParams()
Get the list of decode parameters.java.util.List
getFileFilters()
This will get the list of filters that are associated with this stream.java.util.List
getFilters()
This will get the list of filters that are associated with this stream.int
getLength()
This will get the length of the filtered/compressed stream.PDMetadata
getMetadata()
Get the metadata that is part of the document catalog.java.io.InputStream
getPartiallyFilteredStream(java.util.List stopFilters)
This will get a stream with some filters applied but not others.COSStream
getStream()
Get the cos stream associated with this object.void
setDecodeParams(java.util.List decodeParams)
This will set the list of decode params.void
setFile(PDFileSpecification f)
Set the file specification.void
setFileDecodeParams(java.util.List decodeParams)
This will set the list of decode params.void
setFileFilters(java.util.List filters)
This will set the filters that are part of this stream.void
setFilters(java.util.List filters)
This will set the filters that are part of this stream.void
setMetadata(PDMetadata meta)
Set the metadata for this object.-
Methods inherited from class org.apache.pdfbox.pdmodel.common.PDStream
createFromCOS, getDecodedStreamLength, getDecodeParms, getInputStreamAsString, setDecodedStreamLength, setDecodeParms
-
-
-
-
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 classPDStream
-
getCOSObject
public COSBase getCOSObject()
Convert this standard java object to a COS object.- Specified by:
getCOSObject
in interfaceCOSObjectable
- Overrides:
getCOSObject
in classPDStream
- Returns:
- The cos object that matches this Java object.
-
createOutputStream
public java.io.OutputStream createOutputStream() throws java.io.IOException
This will get a stream that can be written to.- Overrides:
createOutputStream
in classPDStream
- 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 classPDStream
- 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 classPDStream
- 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.
-
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.
-
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 classPDStream
- 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 classPDStream
- 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.
-
setFile
public void setFile(PDFileSpecification f)
Set 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 classPDStream
- 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 classPDStream
- 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 classPDStream
- 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 classPDStream
- 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 classPDStream
- 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 classPDStream
- 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 classPDStream
- Parameters:
meta
- The meta data for this object.
-
-