PoDoFo  0.9.4
Public Member Functions | Protected Member Functions | List of all members
PoDoFo::PdfMemStream Class Reference

#include <PdfMemStream.h>

Inheritance diagram for PoDoFo::PdfMemStream:

Public Member Functions

 PdfMemStream (PdfObject *pParent)
 PdfMemStream (const PdfMemStream &rhs)
virtual void Write (PdfOutputDevice *pDevice, PdfEncrypt *pEncrypt=NULL)
virtual void GetCopy (char **pBuffer, pdf_long *lLen) const
virtual void GetCopy (PdfOutputStream *pStream) const
const char * Get () const
virtual pdf_long GetLength () const
void FlateCompress ()
void Uncompress ()
void Empty ()
const PdfStreamoperator= (const PdfStream &rhs)
- Public Member Functions inherited from PoDoFo::PdfStream
 PdfStream (PdfObject *pParent)
void Set (const char *szBuffer, pdf_long lLen, const TVecFilters &vecFilters)
void Set (const char *szBuffer, pdf_long lLen)
void Set (PdfInputStream *pStream)
void Set (PdfInputStream *pStream, const TVecFilters &vecFilters)
void Set (const char *pszString)
void SetRawData (PdfInputStream *pStream, pdf_long lLen=-1)
void BeginAppend (bool bClearExisting=true)
void BeginAppend (const TVecFilters &vecFilters, bool bClearExisting=true, bool bDeleteFilters=true)
void Append (const char *pszString, size_t lLen)
void Append (const char *pszString)
void Append (const std::string &sString)
void EndAppend ()
bool IsAppending () const
void GetFilteredCopy (char **pBuffer, pdf_long *lLen) const
void GetFilteredCopy (PdfOutputStream *pStream) const
const PdfStreamoperator= (const PdfStream &rhs)

Protected Member Functions

virtual const char * GetInternalBuffer () const
virtual pdf_long GetInternalBufferSize () const
virtual void BeginAppendImpl (const TVecFilters &vecFilters)
virtual void AppendImpl (const char *pszString, size_t lLen)
virtual void EndAppendImpl ()

Detailed Description

A PDF stream can be appended to any PdfObject and can contain abitrary data.

A PDF memory stream is held completely in memory.

Most of the time it will contain either drawing commands to draw onto a page or binary data like a font or an image.

A PdfMemStream is implicitly shared and can therefore be copied very quickly.

Constructor & Destructor Documentation

PoDoFo::PdfMemStream::PdfMemStream ( PdfObject pParent)

Create a new PdfStream object which has a parent PdfObject. The stream will be deleted along with the parent. This constructor will be called by PdfObject::Stream() for you.

pParentparent object
PoDoFo::PdfMemStream::PdfMemStream ( const PdfMemStream rhs)

Create a shallow copy of a PdfStream object

rhsthe object to clone

Member Function Documentation

void PoDoFo::PdfMemStream::AppendImpl ( const char *  pszString,
size_t  lLen 

Append a binary buffer to the current stream contents.

pszStringa buffer
lLenlength of the buffer
See also

Implements PoDoFo::PdfStream.

void PoDoFo::PdfMemStream::BeginAppendImpl ( const TVecFilters &  vecFilters)

Begin appending data to this stream. Clears the current stream contents.

vecFiltersuse this filters to encode any data written to the stream.

Implements PoDoFo::PdfStream.

void PoDoFo::PdfMemStream::Empty ( )

Empty's the stream and set the streams buffer size to 0

void PoDoFo::PdfMemStream::EndAppendImpl ( )

Finish appending data to the stream

Implements PoDoFo::PdfStream.

void PoDoFo::PdfMemStream::FlateCompress ( )

This function compresses any currently set stream using the FlateDecode(ZIP) algorithm. JPEG compressed streams will not be compressed again using this function. Entries to the filter dictionary will be added if necessary.

const char * PoDoFo::PdfMemStream::Get ( ) const

Get a read-only handle to the current stream data. The data will not be filtered before being returned, so (eg) calling Get() on a Flate compressed stream will return a pointer to the Flate-compressed buffer.

Do not retain pointers to the stream's internal buffer, as it may be reallocated with any non-const operation.
a read-only handle to the streams data
void PoDoFo::PdfMemStream::GetCopy ( char **  pBuffer,
pdf_long *  lLen 
) const

Get a malloced buffer of the current stream. No filters will be applied to the buffer, so if the stream is Flate compressed the compressed copy will be returned.

The caller has to podofo_free() the buffer.

pBufferpointer to where the buffer's address will be stored
lLenpointer to the buffer length (output parameter)

Implements PoDoFo::PdfStream.

void PoDoFo::PdfMemStream::GetCopy ( PdfOutputStream pStream) const

Get a copy of a the stream and write it to a PdfOutputStream

pStreamdata is written to this stream.

Implements PoDoFo::PdfStream.

const char * PoDoFo::PdfMemStream::GetInternalBuffer ( ) const

Required for the GetFilteredCopy implementation

a handle to the internal buffer

Implements PoDoFo::PdfStream.

pdf_long PoDoFo::PdfMemStream::GetInternalBufferSize ( ) const

Required for the GetFilteredCopy implementation

the size of the internal buffer

Implements PoDoFo::PdfStream.

pdf_long PoDoFo::PdfMemStream::GetLength ( ) const

Get the stream's length. The length is that of the internal stream buffer, so (eg) for a Flate-compressed stream it will be the length of the compressed data.

the length of the internal buffer
See also

Implements PoDoFo::PdfStream.

const PdfStream & PoDoFo::PdfMemStream::operator= ( const PdfStream rhs)

Create a copy of a PdfStream object

rhsthe object to clone
a reference to this object
void PoDoFo::PdfMemStream::Uncompress ( )

This method removes all filters from the stream

void PoDoFo::PdfMemStream::Write ( PdfOutputDevice pDevice,
PdfEncrypt pEncrypt = NULL 

Write the stream to an output device

pDevicewrite to this outputdevice.
pEncryptencrypt stream data using this object

Implements PoDoFo::PdfStream.