Class: NameTree

Core.PDFNet. NameTree


new NameTree()

A NameTree is a common data structure in PDF. See section 3.8.5 'Name Trees' in PDF Reference Manual for more details. A name tree serves a similar purpose to a dictionary - associating keys and values - but by different means. NameTrees allow efficient storage of very large association collections (string/Obj* maps). A NameTree can have many more entries than a SDF/Cos dictionary can. NameTree-s use SDF/Cos-style strings (not null-terminated C strings), which may use Unicode encoding etc.
  PDFDoc doc("../Data/PDFReference.pdf");
  NameTree dests = NameTree::Find(*doc.GetSDFDoc(), "Dests");
  if (dests.IsValid()) {
    // Traversing the NameTree
    UString key;
    for (DictIterator i = dests.GetIterator(); i.HasNext(); i.Next())
       i.Key().GetAsPDFText(key); // ...
  }

Methods


<static> create(doc, name)

Retrieves the NameTree inside the '/Root/Names' dictionary with the specified key name, or creates it if it does not exist.
Parameters:
Name Type Description
doc Core.PDFNet.PDFDoc | Core.PDFNet.SDFDoc | Core.PDFNet.FDFDoc The document in which the name tree is created.
name string The name of the NameTree to create.
Returns:
A promise that resolves to the newly created NameTree for the doc or an existing tree with the same key name. Note: although it is possible to create a name tree anywhere in the document the convention is that all trees are located under '/Root/Names' dictionary.
Type
Promise.<Core.PDFNet.NameTree>

<static> createFromObj(name_tree)

Create a high level NameTree wrapper around an existing SDF/Cos NameTree. This does not copy the object.
Parameters:
Name Type Description
name_tree Core.PDFNet.Obj SDF/Cos root of the NameTree object.
Returns:
A promise that resolves to an object of type: "PDFNet.NameTree"
Type
Promise.<Core.PDFNet.NameTree>

<static> find(doc, name)

Retrieves a name tree, with the given key name, from the '/Root/Names' dictionary of the doc.
Parameters:
Name Type Description
doc Core.PDFNet.PDFDoc | Core.PDFNet.SDFDoc | Core.PDFNet.FDFDoc The document in which to search for the name.
name string The name of the name tree to find.
Returns:
A promise that resolves to the requested NameTree. If the requested NameTree exists NameTree.IsValid() will return true, and false otherwise.
Type
Promise.<Core.PDFNet.NameTree>

copy()

Copy Constructor
Returns:
A promise that resolves to an object of type: "PDFNet.NameTree"
Type
Promise.<Core.PDFNet.NameTree>

erase(pos)

Removes the NameTree entry pointed by the iterator.
Parameters:
Name Type Description
pos Core.PDFNet.DictIterator ditionary iterator object that points to the NameTree entry to be removed.
Returns:
Type
Promise.<void>

eraseKey(key)

Parameters:
Name Type Description
key string
Returns:
Type
Promise.<void>

getIterator(key)

Parameters:
Name Type Description
key string
Returns:
A promise that resolves to an object of type: "PDFNet.DictIterator"
Type
Promise.<Core.PDFNet.DictIterator>

getIteratorBegin()

Returns:
A promise that resolves to an iterator that addresses the first element in the NameTree. The iterator can be used to traverse all entries stored in the NameTree.
 UString key;
 for (NameTreeIterator i = dests.GetIterator(); i.HasNext(); i.Next()) {
   i.GetKey().GetAsPDFText(key); // ...
 }
Type
Promise.<Core.PDFNet.DictIterator>

getSDFObj()

Returns:
A promise that resolves to the object to the underlying SDF/Cos object. If the NameTree.IsValid() returns false the SDF/Cos object is NULL.
Type
Promise.<Core.PDFNet.Obj>

getValue(key)

Parameters:
Name Type Description
key string
Returns:
A promise that resolves to an object of type: "PDFNet.Obj"
Type
Promise.<Core.PDFNet.Obj>

isValid()

Returns:
A promise that resolves to whether this is a valid (non-null) NameTree. If the function returns false the underlying SDF/Cos object is null and the NameTree object should be treated as null as well.
Type
Promise.<boolean>

put(key, value)

Parameters:
Name Type Description
key string
value Core.PDFNet.Obj
Returns:
Type
Promise.<void>