property Bookmark[const Title: WString]: TBookmark; // read only
PDF 大纲(也称为文档大纲,或在 Acrobat 等查看器中称为"书签")是一棵命名条目的层次树,用户可从侧面板导航。每个条目都有一个标题、一个可选的目标或动作,以及零个或多个子节点。PDFium Delphi Component 将该树扁平化为一系列 TBookmark 记录,这些记录保留底层 FPDF_BOOKMARK 句柄以及预先解析的标题、目标页码、动作类型和动作目标
字符串索引的 Bookmark 形式会在整个大纲树(深度优先)上执行区分大小写的搜索,并返回第一个匹配节点。当不存在具有该标题的条目时,返回的记录 Handle = nil 且 PageNumber = 0 — 导航前请检查 Handle
使用 Bookmarks 按文档顺序枚举每个节点,使用 BookmarkChildren 遍历一层嵌套,使用 BookmarkFrom 将原始句柄(例如来自查看器侧点击事件)转换回填充完整的记录
| Title | WString。要匹配的完整书签标题。比较是区分大小写且精确的(没有子串或通配符匹配)。标题中的空白和标点必须与 PDF 大纲中存储的完全一致 |
Action 字段指示书签激活时的行为 — acGoto 跳转到文档内的 ActionPageNumber,acGotoRemote 指向另一个 PDF 文件,acUri 打开 URL,acLaunch 运行外部文件,acUnsupported 表示 PDFium 无法解释该目标0
var
Bm: TBookmark;
begin
Pdf1.LoadFromFile('specification.pdf');
Bm := Pdf1.Bookmark['Chapter 5: Annotations'];
if Bm.Handle <> nil then
begin
case Bm.Action of
acGoto: Pdf1.PageNumber := Bm.ActionPageNumber;
acUri: ShowMessage('URL bookmark');
acGotoRemote: ShowMessage('External PDF target');
end;
end
else
ShowMessage('No bookmark with that title.');
end;