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: "PDFNet.NumberTree"- Type
- Promise.<PDFNet.NumberTree>
-
copy()
-
Copy Constructor
Returns:
A promise that resolves to an object of type: "PDFNet.NumberTree"- Type
- Promise.<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 Returns:
- Type
- Promise.<void>
-
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. Returns:
- Type
- Promise.<void>
-
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
- Promise.<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
- Promise.<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
- Promise.<PDFNet.Obj>
-
getValue(key)
-
Parameters:
Name Type Description key
number Returns:
A promise that resolves to an object of type: "PDFNet.Obj"- Type
- Promise.<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
- Promise.<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. Returns:
- Type
- Promise.<void>