property Bookmark[const Title: WString]: TBookmark; // read only
Die PDF-Outline (in Viewern wie Acrobat auch Document Outline oder "Lesezeichen" genannt) ist ein hierarchischer Baum benannter Einträge, den der Nutzer über das Seitenpanel navigiert. Jeder Eintrag hat einen Titel, ein optionales Ziel oder eine Aktion sowie beliebig viele Kinder. PDFium Delphi Component glättet den Baum zu einer Folge von TBookmark-Records, die das zugrunde liegende FPDF_BOOKMARK-Handle plus vor-aufgelösten Titel, Zielseitennummer, Aktionstyp und Aktionsziel mitführen
Die string-indizierte Bookmark-Variante durchsucht den gesamten Outline-Baum case-sensitiv (depth-first) und liefert den ersten Treffer. Der zurückgegebene Record hat Handle = nil und PageNumber = 0, wenn es keinen Eintrag mit diesem Titel gibt — prüfen Sie Handle, bevor Sie navigieren
Verwenden Sie Bookmarks, um alle Knoten in Dokumentreihenfolge aufzuzählen, BookmarkChildren, um eine Verschachtelungsebene zu durchlaufen, und BookmarkFrom, um ein rohes Handle (etwa aus einem klick-Event im Viewer) zurück in einen gefüllten Record zu überführen
| Title | WString. Der vollständige Lesezeichen-Titel, der getroffen werden soll. Der Vergleich ist case-sensitiv und exakt (keine Teilstring- oder Wildcard-Suche). Leer- und Satzzeichen im Titel müssen exakt so reproduziert werden, wie sie in der PDF-Outline gespeichert sind |
Action-Feld des zurückgegebenen Records sagt, wie sich das Lesezeichen bei Aktivierung verhält — acGoto springt zu ActionPageNumber im Dokument, acGotoRemote zielt auf eine andere PDF-Datei, acUri öffnet eine URL, acLaunch startet eine externe Datei, und acUnsupported heißt, PDFium konnte das Ziel nicht interpretieren0 gemeldet
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;