Class: NumberTree

PDFNet. NumberTree


new NumberTree()

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

Methods


<static> create(number_tree)

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

Parameters:
Name Type Description
number_tree PDFNet.Obj

SDF/Cos root of the NumberTree object.

Returns:

A promise that resolves to an object of type: "NumberTree"

Type
PDFNet.NumberTree

copy()

Assignment operator

Returns:

A promise that resolves to an object of type: "NumberTree"

Type
PDFNet.NumberTree

erase(pos)

Removes the NumberTree entry pointed by the iterator.

Parameters:
Name Type Description
pos PDFNet.DictIterator

dictionary iterator object that points to the NumberTree entry to be removed


eraseKey(key)

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

Parameters:
Name Type Description
key number

A number representing the key of the entry to be removed.


getIterator(key)

Search for the specified key in the NumberTree.

Parameters:
Name Type Description
key number

the 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; }

Returns:

A promise that resolves to 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.

Type
PDFNet.DictIterator

getIteratorBegin()

Returns:

A promise that resolves to 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;

Type
PDFNet.DictIterator

getSDFObj()

Returns:

A promise that resolves to the object to the underlying SDF/Cos object. If the NumberTree.IsValid() returns false the SDF/Cos object is NULL.

Type
PDFNet.Obj

getValue(key)

Parameters:
Name Type Description
key number
Returns:

A promise that resolves to an object of type: "Obj"

Type
PDFNet.Obj

isValid()

Returns:

A promise that resolves to 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.

Type
boolean

put(key, value)

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

Parameters:
Name Type Description
key number

A number representing the key of the new entry.

value PDFNet.Obj

the value associated with the key. It can be any SDF::Obj.