Foxit PDF SDK
foxit::pdf::objects::PDFNameTree类 参考
类 foxit::pdf::objects::PDFNameTree 继承关系图:
foxit::Base

Public 类型

enum  Type {
  e_Dests = 1, e_JavaScript = 2, e_EmbeddedFiles = 3, e_Pages = 4,
  e_Templates = 5
}
 名称树类型的枚举。 更多...
 

Public 成员函数

 PDFNameTree (const PDFDoc &document, Type type)
 带参数的构造函数。 更多...
 
 PDFNameTree ()
 构造函数。
 
 PDFNameTree (const PDFNameTree &other)
 拷贝构造函数。 更多...
 
 ~PDFNameTree ()
 析构函数。
 
bool Add (const WString &name, objects::PDFObject *pdf_object)
 添加一个新的键名及其PDF对象作为值。 更多...
 
int GetCount ()
 获取当前名称树中元素的数量。 更多...
 
WString GetName (int index)
 通过索引获取名称树中的键名。 更多...
 
objects::PDFObjectGetObj (const WString &name)
 获取指定键名的值(作为PDF对象)。 更多...
 
Type GetType ()
 获取当前名称树的类型。 更多...
 
bool HasName (const WString &name)
 检查指定的键名是否存在于当前名称树中。 更多...
 
bool IsEmpty () const
 检查当前对象是否为空。 更多...
 
bool operator != (const PDFNameTree &other) const
 不等操作符。 更多...
 
PDFNameTreeoperator= (const PDFNameTree &other)
 赋值操作符。 更多...
 
bool operator== (const PDFNameTree &other) const
 相等操作符。 更多...
 
bool RemoveAllObjs ()
 从当前名称树中删除所有键名及其值(作为PDF对象)。 更多...
 
bool RemoveObj (const WString &name)
 从当前名称树中删除一个键名及其值(作为PDF对象)。 更多...
 
bool Rename (const WString &old_name, const WString &new_name)
 将现有键名重命名为新键名。 更多...
 
bool SetObj (const WString &name, objects::PDFObject *pdf_object)
 设置指定键名的值(作为PDF对象)。 更多...
 
- Public 成员函数 继承自 foxit::Base
FS_HANDLE Handle () const
 获取当前对象的句柄。 更多...
 

详细描述

名称树是PDF中的一种常见数据结构。名称树与PDF字典的目的相似

  • 关联键和值 - 但通过不同的方式:在名称树中,键名被视为 其值对象的别名。这意味着,可以通过键名而不是 通过引用对象来引用值对象。
    名称树具有以下特点:
    • 名称树中的键名是有序的,同一名称树中的每个键名都是唯一的;
    • 与键名关联的值可以是任何类型的对象,具体取决于名称树的用途;
    • 名称树可以表示任意大的键值对集合,可以高效查找 而无需从PDF文件中读取整个数据结构。
    PDFNameTree用于与指定类型的现有名称树关联或创建一个。 它提供了在名称树中获取键值对以及设置/添加/删除任何键值对的函数。 目前,类PDFNameTree可以与PDF文档中定义的以下名称树关联:
    • 目标名称树(类型为PDFNameTree::e_Dests), 将名称字符串映射到目标。此名称树中的值应该是目标数组 (或对目标数组的引用对象)。
    • JavaScript名称树(类型为PDFNameTree::e_JavaScript), 将名称字符串映射到文档级JavaScript操作。此名称树中的值应该是 JavaScript操作字典(或对JavaScript操作字典的引用对象)。
    • 嵌入文件名称树,类型为PDFNameTree::e_EmbeddedFiles,将名称字符串映射到 嵌入文件流的文件规范。此名称树中的值应该是 文件规范字典(或对文件规范字典的引用对象), 其中包含嵌入文件流。
    • 页面名称树,类型为PDFNameTree::e_Pages,将名称字符串映射到 页面。此名称树中的值应该是对页面字典的引用对象。
    • 模板名称树,类型为PDFNameTree::e_Templates,将名称字符串映射到 隐藏页面。此名称树中的值应该是对隐藏页面字典的引用对象。 请使用函数pdf::PDFDoc::HidePageTemplate来隐藏页面。
    为了方便使用PDF文档中的嵌入文件(也称为附件), 请参考类pdf::Attachments
参见
pdf::Attachments

成员枚举类型说明

◆ Type

名称树类型的枚举。

此枚举的值应单独使用。

枚举值
e_Dests 

"Dests"名称树。

e_JavaScript 

"JavaScript"名称树。

e_EmbeddedFiles 

"EmbeddedFiles"名称树。

e_Pages 

"Pages"名称树。

e_Templates 

"Templates"名称树。

构造及析构函数说明

◆ PDFNameTree() [1/2]

foxit::pdf::objects::PDFNameTree::PDFNameTree ( const PDFDoc document,
Type  type 
)

带参数的构造函数。

如果PDF文档中存在指定类型的名称树, 此函数只是构造一个PDF名称树对象以与该名称树关联。 如果PDF文档中没有此类名称树,则可以使用构造的PDF名称树对象 在PDF文档中创建此类名称树并向名称树添加项。

参数
[in]document有效的PDF文档对象。
[in]type名称树的类型。请参考从PDFNameTree::e_Dests开始的值, 这应该是这些值中的一个。

◆ PDFNameTree() [2/2]

foxit::pdf::objects::PDFNameTree::PDFNameTree ( const PDFNameTree other)

拷贝构造函数。

参数
[in]other另一个PDF名称树对象。

成员函数说明

◆ Add()

bool foxit::pdf::objects::PDFNameTree::Add ( const WString name,
objects::PDFObject pdf_object 
)

添加一个新的键名及其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 ( )

获取当前名称树中元素的数量。

返回
元素数量。

◆ GetName()

WString foxit::pdf::objects::PDFNameTree::GetName ( int  index)

通过索引获取名称树中的键名。

参数
[in]index要检索的键名的索引。有效范围:从0到(count-1)。 count由函数PDFNameTree::GetCount返回。
返回
表示键名的字符串。

◆ GetObj()

objects::PDFObject* foxit::pdf::objects::PDFNameTree::GetObj ( const WString name)

获取指定键名的值(作为PDF对象)。

参数
[in]name键名的字符串。它不应该是空字符串。
返回
一个PDFObject对象。返回的PDF对象的类型取决于当前名称树的用途。 请参考类PDFNameTree的注释以获取更多详细信息。 如果未找到,此函数将返回NULL

◆ GetType()

Type foxit::pdf::objects::PDFNameTree::GetType ( )

获取当前名称树的类型。

返回
当前名称树的类型。请参考从PDFNameTree::e_Dests开始的值, 这将是这些值中的一个。

◆ HasName()

bool foxit::pdf::objects::PDFNameTree::HasName ( const WString name)

检查指定的键名是否存在于当前名称树中。

参数
[in]name表示要检查的键名的字符串。它不应该是空字符串。
返回
true表示指定的名称存在于当前名称树中, false表示指定的名称不存在于当前名称树中。

◆ IsEmpty()

bool foxit::pdf::objects::PDFNameTree::IsEmpty ( ) const

检查当前对象是否为空。

当当前对象为空时,这意味着当前对象无用。

返回
true表示当前对象为空,而false表示不为空。

◆ operator !=()

bool foxit::pdf::objects::PDFNameTree::operator != ( const PDFNameTree other) const

不等操作符。

参数
[in]other另一个PDF名称树对象。此函数将检查当前对象是否不等于此对象。
返回
true表示不相等,而false表示相等。

◆ operator=()

PDFNameTree& foxit::pdf::objects::PDFNameTree::operator= ( const PDFNameTree other)

赋值操作符。

参数
[in]other另一个PDF名称树对象,其值将被赋给当前对象。
返回
当前对象本身的引用。

◆ operator==()

bool foxit::pdf::objects::PDFNameTree::operator== ( const PDFNameTree other) const

相等操作符。

参数
[in]other另一个PDF名称树对象。此函数将检查当前对象是否等于此对象。
返回
true表示相等,而false表示不相等。

◆ RemoveAllObjs()

bool foxit::pdf::objects::PDFNameTree::RemoveAllObjs ( )

从当前名称树中删除所有键名及其值(作为PDF对象)。

返回
true表示成功,而false表示失败。

◆ RemoveObj()

bool foxit::pdf::objects::PDFNameTree::RemoveObj ( const WString name)

从当前名称树中删除一个键名及其值(作为PDF对象)。

如果输入的名称在当前名称树中不存在,此函数将直接返回true

参数
[in]name要删除的键名的字符串。这不应该是空字符串。
返回
true表示成功,而false表示失败。

◆ Rename()

bool foxit::pdf::objects::PDFNameTree::Rename ( const WString old_name,
const WString new_name 
)

将现有键名重命名为新键名。

参数
[in]old_name要重命名的旧键名的字符串。这不应该是空字符串。 此名称应该已存在于当前名称树中。
[in]new_name新键名的字符串。这不应该是空字符串。 此新名称不应该已存在于当前名称树中。
返回
true表示成功,而false表示失败。

◆ SetObj()

bool foxit::pdf::objects::PDFNameTree::SetObj ( const WString name,
objects::PDFObject pdf_object 
)

设置指定键名的值(作为PDF对象)。

参数
[in]name键名的字符串。它不应该是空字符串。 此名称应该已存在于当前名称树中。
[in]pdf_object要设置为名称值的PDF对象。它不应该是NULL。 此PDF对象的类型应该与当前名称树匹配;否则, 输入的PDF对象无效。请参考类PDFNameTree 的注释以获取更多详细信息。
此函数成功后,用户不应释放此PDF对象。
返回
true表示成功,而false表示失败。