Foxit PDF SDK

Public 类型 | Public 成员函数 | 所有成员列表
foxit::pdf::Bookmark类 参考
类 foxit::pdf::Bookmark 继承关系图:

## Public 类型
enum | Position { e_PosFirstChild = 0, e_PosLastChild = 1, e_PosPrevSibling = 2, e_PosNextSibling = 3, e_PosFirstSibling = 4, e_PosLastSibling = 5 }
| 书签位置的枚举。 更多...
enum | Style { e_StyleNormal = 0x00, e_StyleItalic = 0x01, e_StyleBold = 0x02 }
| 书签样式类型的枚举。 更多...

## Public 成员函数
| Bookmark (const PDFDoc &pdf_doc, objects::PDFDictionary *bookmark_dict)
| 构造函数，带参数。 更多...
| Bookmark (const Bookmark &other)
| 构造函数，使用另一个书签对象。 更多...
| ~Bookmark ()
| 析构函数。
actions::Action | GetAction ()
| 获取动作。 更多...
uint32 | GetColor ()
| 获取用于显示标题的颜色。 更多...
Destination | GetDestination ()
| 获取目标。 更多...
objects::PDFDictionary * | GetDict () const
| 获取当前书签的PDF字典。 更多...
Bookmark | GetFirstChild ()
| 获取第一个子书签。 更多...
Bookmark | GetNextSibling ()
| 获取下一个兄弟书签。 更多...
Bookmark | GetParent ()
| 获取父书签。 更多...
uint32 | GetStyle ()
| 获取用于显示标题的样式。 更多...
WString | GetTitle () const
| 获取标题。 更多...
bool | HasChild ()
| 检查当前书签是否有子书签。 更多...
Bookmark | Insert (const WString &title, Position position)
| 根据与当前书签的关系位置插入新书签。 更多...
bool | IsEmpty () const
| 检查当前对象是否为空。 更多...
bool | IsFirstChild ()
| 检查当前书签是否为其父书签的第一个子书签。 更多...
bool | IsLastChild ()
| 检查当前书签是否为其父书签的最后一个子书签。 更多...
bool | IsRoot ()
| 检查当前书签是否为根书签。 更多...
bool | MoveTo (const Bookmark &dest_bookmark, Position position)
| 将当前书签移动为另一个书签的子书签或兄弟书签。 更多...
bool | operator != (const Bookmark &other) const
| 不相等操作符。 更多...
Bookmark & | operator= (const Bookmark &other)
| 赋值操作符。 更多...
bool | operator== (const Bookmark &other) const
| 相等操作符。 更多...
bool | RemoveAction ()
| 删除动作。 更多...
void | SetAction (const actions::Action &action)
| 设置动作。 更多...
void | SetColor (uint32 color)
| 设置用于显示标题的颜色。 更多...
void | SetDestination (const Destination &destination)
| 设置目标。 更多...
void | SetStyle (uint32 style)
| 设置用于显示标题的样式。 更多...
void | SetTitle (const WString &title)
| 设置标题。 更多...
Public 成员函数 继承自 foxit::Base
FS_HANDLE | Handle () const
| 获取当前对象的句柄。 更多...

## 详细描述

PDF书签也被称为"大纲"。它是一个树状结构的层次结构。它允许用户通过选择书签轻松地浏览PDF文档。 一个书签包含一个目标或动作，用来指示当用户选择它时如何响应。
为了获取/设置书签树，必须首先调用函数 PDFDoc::GetRootBookmark 来 获取整个书签树的根。如果"根书签"不存在，可以调用函数 PDFDoc::CreateRootBookmark 来创建一个新的"根书签"。 在这里，"根书签"是一个抽象对象。它代表PDF文档的"大纲"。 有关"大纲"的更多详细信息，请参阅PDF参考文档1.7的第8.2.3节。 "根书签"只能有一些子书签，但没有父书签， 没有下一个兄弟书签或任何数据（包括书签数据、目标数据和动作数据）。 并且"根书签"不能在应用程序UI上显示，因为它没有数据。因此，对于根书签， 只能使用函数 Bookmark::GetFirstChild。
从根书签开始，可以遍历书签树并访问每个书签节点。
此类提供了几个函数来从当前书签获取/设置其他书签。例如：

- 要访问父书签，请使用函数 Bookmark::GetParent。
- 要访问第一个子书签，请使用函数 Bookmark::GetFirstChild。
- 要访问下一个兄弟书签，请使用函数 Bookmark::GetNextSibling。
- 要插入新书签，请使用函数 Bookmark::Insert。
- 要移动书签，请使用函数 Bookmark::MoveTo。

此类还提供了获取/设置PDF书签数据的函数。

参见
  PDFDoc

## 成员枚举类型说明

## ◆ Position

enum foxit::pdf::Bookmark::Position

书签位置的枚举。

此枚举的值应单独使用。
实际上，"书签位置"是指一个书签与另一个书签之间的关系。

枚举值
e_PosFirstChild | 书签是另一个指定书签的第一个子书签。
e_PosLastChild | 书签是另一个指定书签的最后一个子书签。
e_PosPrevSibling | 书签是另一个指定书签的前一个兄弟书签。
e_PosNextSibling | 书签是另一个指定书签的后一个兄弟书签。
e_PosFirstSibling | 书签是另一个指定书签的第一个兄弟书签。
e_PosLastSibling | 书签是另一个指定书签的最后一个兄弟书签。

## ◆ Style

enum foxit::pdf::Bookmark::Style

书签样式类型的枚举。

此枚举的值可以单独使用或组合使用。

枚举值
e_StyleNormal | 将书签标题显示为普通文本。
e_StyleItalic | 将书签标题显示为斜体文本。
e_StyleBold | 将书签标题显示为粗体文本。

## 构造及析构函数说明

## ◆ Bookmark() [1/2]

foxit::pdf::Bookmark::Bookmark | ( | const PDFDoc & | pdf_doc,
|  | objects::PDFDictionary * | bookmark_dict
| ) |  |

构造函数，带参数。

参数

  [in] | pdf_doc | 一个有效的PDF文档对象。
  [in] | bookmark_dict | 表示书签的PDF字典。此PDF字典应该已经存在于 参数pdf_doc所表示的PDF文档中。

## ◆ Bookmark() [2/2]

foxit::pdf::Bookmark::Bookmark | ( | const Bookmark & | other | ) |

构造函数，使用另一个书签对象。

参数

  [in] | other | 另一个书签对象。

## 成员函数说明

## ◆ GetAction()

actions::Action foxit::pdf::Bookmark::GetAction | ( |  | ) |

获取动作。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有任何动作信息。在这种情况下，此函数将 返回一个动作对象，其函数 actions::Action::IsEmpty 返回 true。

返回
  一个动作对象。

## ◆ GetColor()

uint32 foxit::pdf::Bookmark::GetColor | ( |  | ) |

获取用于显示标题的颜色。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有颜色信息。在这种情况下，此函数将返回0x000000。

返回
  颜色值。格式：0xRRGGBB。

## ◆ GetDestination()

Destination foxit::pdf::Bookmark::GetDestination | ( |  | ) |

获取目标。

书签的目标是当前文档中书签可以"跳转到"的某个位置。 如果书签不能"跳转到"当前文档中的任何位置，这意味着无法检索目标信息， 此函数将返回一个目标对象，其函数 Destination::IsEmpty 返回 true。
如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有任何目标信息。在这种情况下，此函数将 返回一个目标对象，其函数 Destination::IsEmpty 返回 true。

返回
  目标对象。

## ◆ GetDict()

objects::PDFDictionary* foxit::pdf::Bookmark::GetDict | ( |  | ) | const

获取当前书签的PDF字典。

返回
  PDF字典。如果有任何错误，此函数将返回NULL。

## ◆ GetFirstChild()

Bookmark foxit::pdf::Bookmark::GetFirstChild | ( |  | ) |

获取第一个子书签。

返回
  第一个子书签对象。

## ◆ GetNextSibling()

Bookmark foxit::pdf::Bookmark::GetNextSibling | ( |  | ) |

获取下一个兄弟书签。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有任何兄弟书签。在这种情况下，此函数将 返回一个书签对象，其函数 Bookmark::IsEmpty 返回 true。

返回
  下一个兄弟书签对象。

## ◆ GetParent()

Bookmark foxit::pdf::Bookmark::GetParent | ( |  | ) |

获取父书签。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有父书签。在这种情况下，此函数将 返回一个书签对象，其函数 Bookmark::IsEmpty 返回 true。

返回
  父书签对象。

## ◆ GetStyle()

uint32 foxit::pdf::Bookmark::GetStyle | ( |  | ) |

获取用于显示标题的样式。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有样式信息。在这种情况下，此函数将返回 Bookmark::e_StyleNormal。

返回
  样式值。请参阅从 Bookmark::e_StyleNormal 开始的值， 这可以是这些值中的一个或它们的组合。

## ◆ GetTitle()

WString foxit::pdf::Bookmark::GetTitle | ( |  | ) | const

获取标题。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有标题。在这种情况下，此函数将返回一个空字符串。

返回
  标题字符串。

## ◆ HasChild()

bool foxit::pdf::Bookmark::HasChild | ( |  | ) |

检查当前书签是否有子书签。

返回
  true表示当前书签有子书签，false表示 当前书签没有任何子书签。

## ◆ Insert()

Bookmark foxit::pdf::Bookmark::Insert | ( | const WString & | title,
|  | Position | position
| ) |  |

根据与当前书签的关系位置插入新书签。

对于新书签，颜色默认为0x000000，样式默认为 Bookmark::e_StyleNormal。

参数

  [in] | title | 新书签的标题字符串。它不应该是空字符串。
  [in] | position | 要插入的新书签项目的位置，基于当前书签。 请参阅从 Bookmark::e_PosFirstChild 开始的值， 这应该是这些值中的一个。 如果当前书签只是"根书签"，参数position只能是 Bookmark::e_PosFirstChild 或 Bookmark::e_PosLastChild。

返回
  一个新的书签对象。

## ◆ IsEmpty()

bool foxit::pdf::Bookmark::IsEmpty | ( |  | ) | const

检查当前对象是否为空。

当当前对象为空时，意味着当前对象是无用的。

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

## ◆ IsFirstChild()

bool foxit::pdf::Bookmark::IsFirstChild | ( |  | ) |

检查当前书签是否为其父书签的第一个子书签。

返回
  true表示当前书签是其父书签的第一个子书签， false表示不是。

## ◆ IsLastChild()

bool foxit::pdf::Bookmark::IsLastChild | ( |  | ) |

检查当前书签是否为其父书签的最后一个子书签。

返回
  true表示当前书签是其父书签的最后一个子书签， false表示不是。

## ◆ IsRoot()

bool foxit::pdf::Bookmark::IsRoot | ( |  | ) |

检查当前书签是否为根书签。

"根书签"是一个抽象对象。它代表PDF文档的"大纲"。 有关"大纲"的更多详细信息，请参阅PDF参考文档1.7的第8.2.3节。 "根书签"只能有一些子书签，但没有父书签， 没有下一个兄弟书签或任何数据（包括书签数据、目标数据和动作数据）。 并且"根书签"不能在应用程序UI上显示，因为它没有数据。

返回
  true表示当前书签是根书签，false表示不是。

## ◆ MoveTo()

bool foxit::pdf::Bookmark::MoveTo | ( | const Bookmark & | dest_bookmark,
|  | Position | position
| ) |  |

将当前书签移动为另一个书签的子书签或兄弟书签。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，不能移动。在这种情况下，此函数将返回false。

参数

  [in] | dest_bookmark | 目标书签，当前书签将移动为其子书签或兄弟书签。
  [in] | position | 当前书签与目标书签的位置关系。 请参阅从 Bookmark::e_PosFirstChild 开始的值， 这应该是这些值中的一个。

返回
  true表示成功，false表示失败。

## ◆ operator !=()

bool foxit::pdf::Bookmark::operator != | ( | const Bookmark & | other | ) | const

不相等操作符。

参数

  [in] | other | 另一个书签对象。此函数将检查当前对象是否不等于这个对象。

返回
  true表示不相等，false表示相等。

## ◆ operator=()

Bookmark& foxit::pdf::Bookmark::operator= | ( | const Bookmark & | other | ) |

赋值操作符。

参数

  [in] | other | 另一个书签对象，其值将被赋值给当前对象。

返回
  对当前对象本身的引用。

## ◆ operator==()

bool foxit::pdf::Bookmark::operator== | ( | const Bookmark & | other | ) | const

相等操作符。

参数

  [in] | other | 另一个书签对象。此函数将检查当前对象是否等于这个对象。

返回
  true表示相等，false表示不相等。

## ◆ RemoveAction()

bool foxit::pdf::Bookmark::RemoveAction | ( |  | ) |

删除动作。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有任何动作信息。在这种情况下，此函数将 直接返回true。

返回
  true表示成功，false表示失败。

## ◆ SetAction()

void foxit::pdf::Bookmark::SetAction | ( | const actions::Action & | action | ) |

设置动作。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有任何动作信息。在这种情况下，此函数将 直接返回而不做任何事情。

参数

  [in] | action | 一个有效的动作对象。

返回
  无。

## ◆ SetColor()

void foxit::pdf::Bookmark::SetColor | ( | uint32 | color | ) |

设置用于显示标题的颜色。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有颜色信息。在这种情况下，此函数将直接返回而不做任何事情。

参数

  [in] | color | 颜色值。格式：0xRRGGBB。

返回
  无。

## ◆ SetDestination()

void foxit::pdf::Bookmark::SetDestination | ( | const Destination & | destination | ) |

设置目标。

书签的目标是当前文档中书签可以"跳转到"的某个位置。
如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有任何目标信息。在这种情况下，此函数将 直接返回而不做任何事情。

参数

  [in] | destination | 一个有效的目标。

返回
  无。

## ◆ SetStyle()

void foxit::pdf::Bookmark::SetStyle | ( | uint32 | style | ) |

设置用于显示标题的样式。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有样式信息。在这种情况下，此函数将直接返回而不做任何事情。

参数

  [in] | style | 样式值。请参阅从 Bookmark::e_StyleNormal 开始的值， 这可以是这些值中的一个或它们的组合。 如果style无效，默认情况下将设置 Bookmark::e_StyleNormal。

返回
  无。

## ◆ SetTitle()

void foxit::pdf::Bookmark::SetTitle | ( | const WString & | title | ) |

设置标题。

如果当前书签由函数 PDFDoc::GetRootBookmark 或 PDFDoc::CreateRootBookmark 返回， 这意味着它是"根书签"，它没有标题。在这种情况下，此函数将直接返回而不做任何事情。

参数

  [in] | title | 新的标题字符串。它不应该是空字符串。

返回
  无。