Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

PoDoFo::PdfVecObjects Class Reference

#include <PdfVecObjects.h>

List of all members.

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, bool bDoGarbageCollection=false)
void push_back (PdfObject *pObj)
void insert_sorted (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 ()
void CollectGarbage (PdfObject *pTrailer)
std::string GetNextSubsetPrefix ()


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.

TCIVecObjects PoDoFo::PdfVecObjects::begin  )  const [inline]
 

Iterator pointing at the begining of the vector

Returns:
beginning iterator

TIVecObjects PoDoFo::PdfVecObjects::begin  )  [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

void PoDoFo::PdfVecObjects::CollectGarbage PdfObject pTrailer  ) 
 

Deletes all objects that are not references by other objects besides the trailer (which references the root dictionary, which in turn should reference all other objects).

Parameters:
pTrailer trailer object of the PDF
Warning this might be slow!

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 const PdfStream rhs  ) 
 

Creates a stream object by copying an existing stream

Parameters:
rhs copy this stream
Returns:
a new stream object

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

void PoDoFo::PdfVecObjects::Detach Observer pObserver  ) 
 

Detach an observer.

Parameters:
pObserver observer to detach

TCIVecObjects PoDoFo::PdfVecObjects::end  )  const [inline]
 

Iterator pointing at the end of the vector

Returns:
ending iterator

TIVecObjects PoDoFo::PdfVecObjects::end  )  [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.

std::string PoDoFo::PdfVecObjects::GetNextSubsetPrefix  ) 
 

Get next unique subset-prefix

Returns:
a string to use as subset-prefix.

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::insert_sorted PdfObject pObj  ) 
 

Insert an object into this vector so that the vector remains sorted w.r.t. the ordering based on object and generation numbers m_bObjectCount will be increased for the object.

Note: Assumes the vector is sorted, otherwise equivalent to push_back

Parameters:
pObj pointer to the object you want to insert

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

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.

void PoDoFo::PdfVecObjects::RenumberObjects PdfObject pTrailer,
TPdfReferenceSet *  pNotDelete = NULL,
bool  bDoGarbageCollection = false
 

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
bDoGarbageCollection enable garbage collection, which deletes all objects that are not reachable from the trailer. This might be slow!
See also:
CollectGarbage

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.


Generated on Sun Feb 12 13:19:28 2012 for PoDoFo by  doxygen 1.3.9.1