property Destination[Index: Integer]: TDestination; // read only
Une destination nommée est un nom symbolique (par exemple "chap5.fig3") stocké dans le catalogue du document PDF qui se résout en un tuple concret page-position-zoom. Elles permettent aux plans, aux annotations de lien et aux documents externes de référencer une cible par nom stable plutôt que par des coordonnées de page codées en dur, afin que le document puisse être re-paginé sans casser les liens entrants
PDFium Delphi Component aplatit à la fois les dictionnaires hérités /Dests et les arbres de noms modernes /Names /Dests en une seule liste de base 0. Destination[Index] renvoie un enregistrement TDestination portant le nom de destination, la page cible de base 1, le ViewMode décodé, les ViewParameters bruts, les coordonnées de vue, le facteur de zoom et les drapeaux de présence
Utilisez DestinationCount pour obtenir le nombre total de destinations nommées, itérez avec Destination[I], et utilisez DestinationByName lorsque vous connaissez déjà le nom cible
| Index | Integer. Position de base 0 dans la liste aplatie de destinations nommées. Doit être dans [0, DestinationCount - 1]. Un index hors plage renvoie un enregistrement rempli de zéros avec Handle = nil |
HasX, HasY et HasZoom distinguent les destinations « fit page » / « fit width » (où ces composants sont absents) des destinations XYZ explicites. N’appliquez que les composants marqués comme présentsViewMode distingue les destinations XYZ, Fit, FitH, FitV, FitR, FitB, FitBH et FitBV sans obliger les appelants à décoder les constantes PDFiumViewParameterCount donne le nombre d’entrées valides dans le tableau ViewParameters fixe à quatre élémentsHandle avant de naviguer
var
I: Integer;
Dest: TDestination;
begin
Pdf1.LoadFromFile('manual.pdf');
Memo1.Lines.Add(Format('%d named destinations:', [Pdf1.DestinationCount]));
for I := 0 to Pdf1.DestinationCount - 1 do
begin
Dest := Pdf1.Destination[I];
Memo1.Lines.Add(Format('%s -> page %d (X=%.1f Y=%.1f Zoom=%.2f)',
[Dest.Name, Dest.PageNumber, Dest.X, Dest.Y, Dest.Zoom]));
end;
// Navigate to the first destination
if Pdf1.DestinationCount > 0 then
Pdf1.PageNumber := Pdf1.Destination[0].PageNumber;
end;