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;