Classes | Public Member Functions

PoDoFo::PdfVecObjects Class Reference

#include <PdfVecObjects.h>

List of all members.

Classes

class  Observer
class  StreamFactory

Public Member Functions

 PdfVecObjects ()
PdfDocumentGetParentDocument () const
void SetParentDocument (PdfDocument *pDocument)
void SetAutoDelete (bool bAutoDelete)
bool AutoDelete () const
void Clear ()
size_t GetSize () const
size_t GetObjectCount () const
PdfObjectGetObject (const PdfReference &ref) const
size_t GetIndex (const PdfReference &ref) const
PdfObjectRemoveObject (const PdfReference &ref, bool bMarkAsFree=true)
PdfObjectRemoveObject (const TIVecObjects &it)
PdfObjectCreateObject (const char *pszType=NULL)
PdfObjectCreateObject (const PdfVariant &rVariant)
void AddFreeObject (const PdfReference &rReference)
const TPdfReferenceList & GetFreeObjects () const
void RenumberObjects (PdfObject *pTrailer, TPdfReferenceSet *pNotDelete=NULL)
void push_back (PdfObject *pObj)
void Sort ()
void Reserve (size_t size)
void GetObjectDependencies (const PdfObject *pObj, TPdfReferenceList *pList) const
void Attach (Observer *pObserver)
void Detach (Observer *pObserver)
void SetStreamFactory (StreamFactory *pFactory)
PdfStreamCreateStream (PdfObject *pParent)
PdfStreamCreateStream (const PdfStream &rhs)
void WriteObject (PdfObject *pObject)
void Finish ()
void BeginAppendStream (const PdfStream *pStream)
void EndAppendStream (const PdfStream *pStream)
TIVecObjects begin ()
TCIVecObjects begin () const
TIVecObjects end ()
TCIVecObjects end () const
PdfObjectGetBack ()

Detailed Description

A STL vector of PdfObjects. I.e. a list of PdfObject classes. The PdfParser will read the PdfFile into memory and create a PdfVecObjects of all dictionaries found in the PDF file.

The PdfWriter class contrary creates a PdfVecObjects internally and writes it to a PDF file later with an appropriate table of contents.

These class contains also advanced funtions for searching of PdfObject's in a PdfVecObject.


Constructor & Destructor Documentation

PoDoFo::PdfVecObjects::PdfVecObjects (  ) 

Default constuctor


Member Function Documentation

void PoDoFo::PdfVecObjects::AddFreeObject ( const PdfReference rReference  ) 

Mark a reference as unused so that it can be reused for new objects.

Parameters:
rReference the reference to reuse
void PoDoFo::PdfVecObjects::Attach ( Observer pObserver  )  [inline]

Attach a new observer

Parameters:
pObserver to attach
bool PoDoFo::PdfVecObjects::AutoDelete (  )  const [inline]
Returns:
if autodeletion is enabled and all objects will be deleted when the PdfVecObjects is deleted.
TIVecObjects PoDoFo::PdfVecObjects::begin (  )  [inline]

Iterator pointing at the begining of the vector

Returns:
beginning iterator
TCIVecObjects PoDoFo::PdfVecObjects::begin (  )  const [inline]

Iterator pointing at the begining of the vector

Returns:
beginning iterator
void PoDoFo::PdfVecObjects::BeginAppendStream ( const PdfStream pStream  ) 

Every stream implementation has to call this in BeginAppend

Parameters:
pStream the stream object that is calling
void PoDoFo::PdfVecObjects::Clear (  ) 

Removes all objects from the vector and resets it to the default state.

If SetAutoDelete is true all objects are deleted. All observers are removed from the vector.

See also:
SetAutoDelete
AutoDelete
PdfObject * PoDoFo::PdfVecObjects::CreateObject ( const PdfVariant rVariant  ) 

Creates a new object (of type rVariants) and inserts it into the vector. This function assigns the next free object number to the PdfObject.

Parameters:
rVariant value of the PdfObject
Returns:
PdfObject pointer to the new PdfObject
PdfObject * PoDoFo::PdfVecObjects::CreateObject ( const char *  pszType = NULL  ) 

Creates a new object and inserts it into the vector. This function assigns the next free object number to the PdfObject.

Parameters:
pszType optionall value of the /Type key of the object
Returns:
PdfObject pointer to the new PdfObject
PdfStream * PoDoFo::PdfVecObjects::CreateStream ( PdfObject pParent  ) 

Creates a stream object This method is a factory for PdfStream objects.

Parameters:
pParent parent object
Returns:
a new stream object
PdfStream * PoDoFo::PdfVecObjects::CreateStream ( const PdfStream rhs  ) 

Creates a stream object by copying an existing stream

Parameters:
rhs copy this stream
Returns:
a new stream object
void PoDoFo::PdfVecObjects::Detach ( Observer pObserver  ) 

Detach an observer.

Parameters:
pObserver observer to detach
TIVecObjects PoDoFo::PdfVecObjects::end (  )  [inline]

Iterator pointing at the end of the vector

Returns:
ending iterator
TCIVecObjects PoDoFo::PdfVecObjects::end (  )  const [inline]

Iterator pointing at the end of the vector

Returns:
ending iterator
void PoDoFo::PdfVecObjects::EndAppendStream ( const PdfStream pStream  ) 

Every stream implementation has to call this in EndAppend

Parameters:
pStream the stream object that is calling
void PoDoFo::PdfVecObjects::Finish (  ) 

Call whenever a document is finished

PdfObject * PoDoFo::PdfVecObjects::GetBack (  )  [inline]

Get the last object in the vector

Returns:
the last object in the vector or NULL if the vector is emtpy.
const TPdfReferenceList & PoDoFo::PdfVecObjects::GetFreeObjects (  )  const [inline]
Returns:
a list of free references in this vector
size_t PoDoFo::PdfVecObjects::GetIndex ( const PdfReference ref  )  const

Finds the object with the given reference in m_vecOffsets and returns the index to it.

Parameters:
ref the object to be found
Returns:
the found object or NULL if no object was found.
PdfObject * PoDoFo::PdfVecObjects::GetObject ( const PdfReference ref  )  const

Finds the object with the given reference in m_vecOffsets and returns a pointer to it if it is found.

Parameters:
ref the object to be found
Returns:
the found object or NULL if no object was found.
size_t PoDoFo::PdfVecObjects::GetObjectCount (  )  const [inline]
Returns:
the highest object number in the vector
void PoDoFo::PdfVecObjects::GetObjectDependencies ( const PdfObject pObj,
TPdfReferenceList *  pList 
) const

Get a set with all references of objects that the passed object depends on.

Parameters:
pObj the object to calculate all dependencies for
pList write the list of dependencies to this list
PdfDocument * PoDoFo::PdfVecObjects::GetParentDocument (  )  const [inline]
Returns:
a pointer to a PdfDocument that is the parent of this vector. Might be NULL if the vector has no parent.
size_t PoDoFo::PdfVecObjects::GetSize (  )  const [inline]
Returns:
the size of the internal vector
void PoDoFo::PdfVecObjects::push_back ( PdfObject pObj  ) 

Insert a object into this vector. Overwritten from std::vector so that m_bObjectCount can be increased for each object.

Parameters:
pObj pointer to the object you want to insert
PdfObject * PoDoFo::PdfVecObjects::RemoveObject ( const PdfReference ref,
bool  bMarkAsFree = true 
)

Remove the object with the given object and generation number from the list of objects. The object is returned if it was found. Otherwise NULL is returned. The caller has to delete the object by hisself.

Parameters:
ref the object to be found
bMarkAsFree if true the removed object reference is marked as free object you will always want to have this true as invalid PDF files can be generated otherwise
Returns:
The removed object.
PdfObject * PoDoFo::PdfVecObjects::RemoveObject ( const TIVecObjects &  it  ) 

Remove the object with the iterator it from the vector and return it

Parameters:
it the object to remove
Returns:
the removed object
void PoDoFo::PdfVecObjects::RenumberObjects ( PdfObject pTrailer,
TPdfReferenceSet *  pNotDelete = NULL 
)

Renumbers all objects according to there current position in the vector. All references remain intact. Warning! This function is _very_ calculation intensive.

Parameters:
pTrailer the trailer object
pNotDelete a list of object which must not be deleted
void PoDoFo::PdfVecObjects::Reserve ( size_t  size  )  [inline]

Causes the internal vector to reserve space for size elements.

Parameters:
size reserve space for that much elements in the internal vector
void PoDoFo::PdfVecObjects::SetAutoDelete ( bool  bAutoDelete  )  [inline]

Enable/disable auto deletion. By default auto deletion is disabled.

Parameters:
bAutoDelete if true all objects will be deleted when the PdfVecObjects is deleted.
void PoDoFo::PdfVecObjects::SetParentDocument ( PdfDocument pDocument  )  [inline]

Sets a parent document of this vector

Parameters:
pDocument the parent of this vector
void PoDoFo::PdfVecObjects::SetStreamFactory ( StreamFactory pFactory  )  [inline]

Sets a StreamFactory which is used whenever CreateStream is called.

Parameters:
pFactory a stream factory or NULL to reset to the default factory
void PoDoFo::PdfVecObjects::Sort (  ) 

Sort the objects in the vector based on their object and generation numbers

void PoDoFo::PdfVecObjects::WriteObject ( PdfObject pObject  ) 

Can be called to force objects to be written to disk.

Parameters:
pObject a PdfObject that should be written to disk.