property Bookmark[const Title: WString]: TBookmark; // read only
Le plan PDF (aussi appelé plan du document ou "bookmarks" dans des visionneuses comme Acrobat) est un arbre hiérarchique d’entrées nommées que l’utilisateur parcourt depuis le panneau latéral. Chaque entrée a un titre, une destination ou une action facultative, et zéro ou plusieurs enfants. PDFium Delphi Component aplatit l’arbre en une séquence d’enregistrements TBookmark qui conservent le handle FPDF_BOOKMARK sous-jacent plus le titre pré-résolu, le numéro de page cible, le type d’action et la cible d’action
La forme indexée par chaîne de Bookmark effectue une recherche sensible à la casse dans tout l’arbre du plan (en profondeur d’abord) et renvoie le premier nœud correspondant. L’enregistrement renvoyé a Handle = nil et PageNumber = 0 lorsqu’aucune entrée avec ce titre n’existe — vérifiez Handle avant de naviguer
Utilisez Bookmarks pour énumérer chaque nœud dans l’ordre du document, BookmarkChildren pour descendre d’un niveau d’imbrication, et BookmarkFrom pour reconvertir un handle brut (par exemple issu d’un événement de clic côté visualiseur) en un enregistrement renseigné
| Title | WString. Le titre de signet complet à faire correspondre. La comparaison est sensible à la casse et exacte (pas de correspondance de sous-chaîne ni de joker). Les espaces et la ponctuation dans le titre doivent être reproduits exactement comme stockés dans le plan PDF |
Action sur l’enregistrement renvoyé indique comment le signet se comporte lorsqu’il est activé — acGoto saute à ActionPageNumber dans le document, acGotoRemote cible un autre fichier PDF, acUri ouvre une URL, acLaunch exécute un fichier externe, et acUnsupported signifie que PDFium n’a pas pu interpréter la destination0
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;