名称树是PDF中的一种常见数据结构。名称树与PDF字典的目的相似
-
关联键和值 - 但通过不同的方式:在名称树中,键名被视为 其值对象的别名。这意味着,可以通过键名而不是 通过引用对象来引用值对象。
名称树具有以下特点:
-
名称树中的键名是有序的,同一名称树中的每个键名都是唯一的;
-
与键名关联的值可以是任何类型的对象,具体取决于名称树的用途;
-
名称树可以表示任意大的键值对集合,可以高效查找 而无需从PDF文件中读取整个数据结构。
类PDFNameTree 用于与指定类型的现有名称树关联或创建一个。 它提供了在名称树中获取键值对以及设置/添加/删除任何键值对的函数。 目前,类PDFNameTree 可以与PDF文档中定义的以下名称树关联:
为了方便使用PDF文档中的嵌入文件(也称为附件), 请参考类foxit.pdf.Attachments 。
- 参见
- foxit.pdf.Attachments
◆ Type
名称树类型的枚举。
此枚举的值应单独使用。
| 枚举值 |
|---|
| e_Dests | "Dests"名称树。
|
| e_JavaScript | "JavaScript"名称树。
|
| e_EmbeddedFiles | "EmbeddedFiles"名称树。
|
| e_Pages | "Pages"名称树。
|
| e_Templates | "Templates"名称树。
|
◆ PDFNameTree() [1/2]
带参数的构造函数。
如果PDF文档中存在指定类型的名称树, 此函数只是构造一个PDF名称树对象以与该名称树关联。 如果PDF文档中没有此类名称树,则可以使用构造的PDF名称树对象 在PDF文档中创建此类名称树并向名称树添加项。
- 参数
-
◆ PDFNameTree() [2/2]
| foxit.pdf.objects.PDFNameTree.PDFNameTree |
( |
PDFNameTree |
other | ) |
|
|
inline |
◆ Add()
| bool foxit.pdf.objects.PDFNameTree.Add |
( |
string |
name, |
|
|
PDFObject |
pdf_object |
|
) |
| |
|
inline |
添加一个新的键名及其PDF对象作为值。
名称树中的所有PDF对象都按其名称排序。添加新的PDF对象时, Foxit PDF SDK将在名称树中找到合适的位置来添加它。成功添加后, 一些旧键的索引可能会改变。
- 参数
-
| [in] | name | 新键名的字符串。这不应该是空字符串。 此新名称不应该已存在于当前名称树中。 |
| [in] | pdf_object | 要使用新名称设置的PDF对象。此PDF对象的类型应该 与当前名称树匹配;否则,输入的PDF对象无效。 请参考类PDFNameTree 的注释以获取更多详细信息。
此函数成功后,用户不应释放此PDF对象。 |
- 返回
- true表示成功,而false表示失败。
◆ GetCount()
| int foxit.pdf.objects.PDFNameTree.GetCount |
( |
| ) |
|
|
inline |
◆ GetName()
| string foxit.pdf.objects.PDFNameTree.GetName |
( |
int |
index | ) |
|
|
inline |
通过索引获取名称树中的键名。
- 参数
-
- 返回
- 表示键名的字符串。
◆ GetObj()
| PDFObject foxit.pdf.objects.PDFNameTree.GetObj |
( |
string |
name | ) |
|
|
inline |
获取指定键名的值(作为PDF对象)。
- 参数
-
| [in] | name | 键名的字符串。它不应该是空字符串。 |
- 返回
- 一个PDFObject 对象。返回的PDF对象的类型取决于当前名称树的用途。 请参考类PDFNameTree 的注释以获取更多详细信息。 如果未找到,此函数将返回null。
◆ GetType()
◆ HasName()
| bool foxit.pdf.objects.PDFNameTree.HasName |
( |
string |
name | ) |
|
|
inline |
检查指定的键名是否存在于当前名称树中。
- 参数
-
| [in] | name | 表示要检查的键名的字符串。它不应该是空字符串。 |
- 返回
- true表示指定的名称存在于当前名称树中, false表示指定的名称不存在于当前名称树中。
◆ IsEmpty()
| bool foxit.pdf.objects.PDFNameTree.IsEmpty |
( |
| ) |
|
|
inline |
检查当前对象是否为空。
当当前对象为空时,这意味着当前对象无用。
- 返回
- true表示当前对象为空,而false表示不为空。
◆ RemoveAllObjs()
| bool foxit.pdf.objects.PDFNameTree.RemoveAllObjs |
( |
| ) |
|
|
inline |
从当前名称树中删除所有键名及其值(作为PDF对象)。
- 返回
- true表示成功,而false表示失败。
◆ RemoveObj()
| bool foxit.pdf.objects.PDFNameTree.RemoveObj |
( |
string |
name | ) |
|
|
inline |
从当前名称树中删除一个键名及其值(作为PDF对象)。
如果输入的名称在当前名称树中不存在,此函数将直接返回true。
- 参数
-
| [in] | name | 要删除的键名的字符串。这不应该是空字符串。 |
- 返回
- true表示成功,而false表示失败。
◆ Rename()
| bool foxit.pdf.objects.PDFNameTree.Rename |
( |
string |
old_name, |
|
|
string |
new_name |
|
) |
| |
|
inline |
将现有键名重命名为新键名。
- 参数
-
| [in] | old_name | 要重命名的旧键名的字符串。这不应该是空字符串。 此名称应该已存在于当前名称树中。 |
| [in] | new_name | 新键名的字符串。这不应该是空字符串。 此新名称不应该已存在于当前名称树中。 |
- 返回
- true表示成功,而false表示失败。
◆ SetObj()
| bool foxit.pdf.objects.PDFNameTree.SetObj |
( |
string |
name, |
|
|
PDFObject |
pdf_object |
|
) |
| |
|
inline |
设置指定键名的值(作为PDF对象)。
- 参数
-
| [in] | name | 键名的字符串。它不应该是空字符串。 此名称应该已存在于当前名称树中。 |
| [in] | pdf_object | 要设置为名称值的PDF对象。它不应该是null。 此PDF对象的类型应该与当前名称树匹配;否则, 输入的PDF对象无效。请参考类PDFNameTree 的注释以获取更多详细信息。
此函数成功后,用户不应释放此PDF对象。 |
- 返回
- true表示成功,而false表示失败。