#include <PdfVecObjects.h>
Public Member Functions | |
PdfVecObjects () | |
PdfDocument * | GetParentDocument () const |
void | SetParentDocument (PdfDocument *pDocument) |
void | SetAutoDelete (bool bAutoDelete) |
bool | AutoDelete () const |
void | Clear () |
size_t | GetSize () const |
size_t | GetObjectCount () const |
PdfObject * | GetObject (const PdfReference &ref) const |
size_t | GetIndex (const PdfReference &ref) const |
PdfObject * | RemoveObject (const PdfReference &ref, bool bMarkAsFree=true) |
PdfObject * | RemoveObject (const TIVecObjects &it) |
PdfObject * | CreateObject (const char *pszType=NULL) |
PdfObject * | CreateObject (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) |
PdfStream * | CreateStream (PdfObject *pParent) |
PdfStream * | CreateStream (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 |
PdfObject * | GetBack () |
void | CollectGarbage (PdfObject *pTrailer) |
std::string | GetNextSubsetPrefix () |
Classes | |
class | Observer |
class | StreamFactory |
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.
PoDoFo::PdfVecObjects::PdfVecObjects | ( | ) |
Default constuctor
void PoDoFo::PdfVecObjects::AddFreeObject | ( | const PdfReference & | rReference | ) |
Mark a reference as unused so that it can be reused for new objects.
rReference | the reference to reuse |
void PoDoFo::PdfVecObjects::Attach | ( | Observer * | pObserver | ) | [inline] |
Attach a new observer
pObserver | to attach |
bool PoDoFo::PdfVecObjects::AutoDelete | ( | ) | const [inline] |
TCIVecObjects PoDoFo::PdfVecObjects::begin | ( | ) | const [inline] |
Iterator pointing at the begining of the vector
TIVecObjects PoDoFo::PdfVecObjects::begin | ( | ) | [inline] |
Iterator pointing at the begining of the vector
void PoDoFo::PdfVecObjects::BeginAppendStream | ( | const PdfStream * | pStream | ) |
Every stream implementation has to call this in BeginAppend
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.
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).
pTrailer | trailer object of the PDF |
PdfObject * PoDoFo::PdfVecObjects::CreateObject | ( | const PdfVariant & | rVariant | ) |
PdfObject * PoDoFo::PdfVecObjects::CreateObject | ( | const char * | pszType = NULL |
) |
Creates a stream object by copying an existing stream
rhs | copy this stream |
Creates a stream object This method is a factory for PdfStream objects.
pParent | parent object |
void PoDoFo::PdfVecObjects::Detach | ( | Observer * | pObserver | ) |
Detach an observer.
pObserver | observer to detach |
TCIVecObjects PoDoFo::PdfVecObjects::end | ( | ) | const [inline] |
Iterator pointing at the end of the vector
TIVecObjects PoDoFo::PdfVecObjects::end | ( | ) | [inline] |
Iterator pointing at the end of the vector
void PoDoFo::PdfVecObjects::EndAppendStream | ( | const PdfStream * | pStream | ) |
Every stream implementation has to call this in EndAppend
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
const TPdfReferenceList & PoDoFo::PdfVecObjects::GetFreeObjects | ( | ) | const [inline] |
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.
ref | the object to be found |
std::string PoDoFo::PdfVecObjects::GetNextSubsetPrefix | ( | ) |
Get next unique 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.
ref | the object to be found |
size_t PoDoFo::PdfVecObjects::GetObjectCount | ( | ) | const [inline] |
void PoDoFo::PdfVecObjects::GetObjectDependencies | ( | const PdfObject * | pObj, | |
TPdfReferenceList * | pList | |||
) | const |
Get a set with all references of objects that the passed object depends on.
pObj | the object to calculate all dependencies for | |
pList | write the list of dependencies to this list |
PdfDocument * PoDoFo::PdfVecObjects::GetParentDocument | ( | ) | const [inline] |
size_t PoDoFo::PdfVecObjects::GetSize | ( | ) | const [inline] |
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
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.
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
it | the object to remove |
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.
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 |
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.
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! |
void PoDoFo::PdfVecObjects::Reserve | ( | size_t | size | ) | [inline] |
Causes the internal vector to reserve space for size elements.
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.
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
pDocument | the parent of this vector |
void PoDoFo::PdfVecObjects::SetStreamFactory | ( | StreamFactory * | pFactory | ) | [inline] |
Sets a StreamFactory which is used whenever CreateStream is called.
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.
pObject | a PdfObject that should be written to disk. |