Loading...
Searching...
No Matches
pdftron::SDF::NumberTree Class Reference

#include <NumberTree.h>

Public Member Functions

 NumberTree (Obj number_tree)
 NumberTree (const NumberTree &d)
NumberTreeoperator= (const NumberTree &d)
bool IsValid ()
NumberTreeIterator GetIterator (Int32 key)
NumberTreeIterator GetIterator ()
Obj GetValue (Int32 key)
void Put (Int32 key, Obj value)
void Erase (Int32 key)
void Erase (DictIterator &pos)
Obj GetSDFObj () const

Protected Attributes

TRN_NumberTree mp_obj

Detailed Description

A NumberTree is a common data structure in PDF. See section 3.8.6 'Number Trees' in PDF Reference Manual for more details.

A number tree serves a similar purpose to a dictionary - associating keys and values - but by different means. NumberTrees allow efficient storage of very large association collections (number/Obj* maps). A NumberTree can have many more entries than a SDF/Cos dictionary can.

Sample code:

PDFDoc doc("../Data/test.pdf");
NumberTree labels(doc.GetRoot().Get("PageLabels").Value());
if (labels.IsValid()) {
// Traversing the NumberTree
for (NumberTreeIterator i = labels.GetIterator(); i.HasNext(); i.Next())
cout << "Key: " << i.Key().GetNumber() << endl;
}
NumberTree(Obj number_tree)
DictIterator NumberTreeIterator
Definition NumberTree.h:20

Definition at line 43 of file NumberTree.h.

Constructor & Destructor Documentation

◆ NumberTree() [1/2]

pdftron::SDF::NumberTree::NumberTree ( Obj number_tree)

Create a high level NumberTree wrapper around an existing SDF/Cos NumberTree. This does not copy the object.

Parameters
number_treeSDF/Cos root of the NumberTree object.

◆ NumberTree() [2/2]

pdftron::SDF::NumberTree::NumberTree ( const NumberTree & d)

Copy constructor

Member Function Documentation

◆ Erase() [1/2]

void pdftron::SDF::NumberTree::Erase ( DictIterator & pos)

Removes the NumberTree entry pointed by the iterator.

Parameters
posdictionary iterator object that points to the NumberTree entry to be removed

◆ Erase() [2/2]

void pdftron::SDF::NumberTree::Erase ( Int32 key)

Removes the specified object from the tree. Does nothing if no object with that number exists.

Parameters
keyA number representing the key of the entry to be removed.

◆ GetIterator() [1/2]

NumberTreeIterator pdftron::SDF::NumberTree::GetIterator ( )
Returns
an iterator to the first key/value pair (i.e. NNTreeData) in the document. You can use the Next method on the returned iterator to traverse all entries stored under the NumberTree.

Sample code: for (NumberTreeIterator i = dests.GetIterator(); i.HasNext(); i.Next()) cout << "Key: " << i.GetKey().GetNumber() << endl;

◆ GetIterator() [2/2]

NumberTreeIterator pdftron::SDF::NumberTree::GetIterator ( Int32 key)

Search for the specified key in the NumberTree.

Returns
If the key is present the function returns a NumberTreeIterator the points to the given Key/Value pair. If the key is not found the function returns End() (a non-valid) iterator.
Parameters
keythe number representing the key to be found.

Sample code: NumberTreeIterator i = dests.Find(5); if (i.HasNext()) { cout << "Key: " << i.GetKey()->GetNumber() << endl; cout << "Value: " << i.GetValue()->GetType() << endl; }

◆ GetSDFObj()

Obj pdftron::SDF::NumberTree::GetSDFObj ( ) const
Returns
the object to the underlying SDF/Cos object. If the NumberTree.IsValid() returns false the SDF/Cos object is NULL.

◆ GetValue()

Obj pdftron::SDF::NumberTree::GetValue ( Int32 key)

◆ IsValid()

bool pdftron::SDF::NumberTree::IsValid ( )
Returns
whether this is a valid (non-null) NumberTree. If the function returns false the underlying SDF/Cos object is null and the NumberTree object should be treated as null as well.

◆ operator=()

NumberTree & pdftron::SDF::NumberTree::operator= ( const NumberTree & d)

Assignment operator

◆ Put()

void pdftron::SDF::NumberTree::Put ( Int32 key,
Obj value )

Puts a new entry in the name tree. If an entry with this number is already in the tree, it is replaced.

Parameters
keyA number representing the key of the new entry.
valuethe value associated with the key. It can be any SDF::Obj.

Member Data Documentation

◆ mp_obj

TRN_NumberTree pdftron::SDF::NumberTree::mp_obj
protected

Definition at line 138 of file NumberTree.h.


The documentation for this class was generated from the following file: