property Destination[Index: Integer]: TDestination; // read only
Een named destination is een symbolische naam (bijvoorbeeld "chap5.fig3") in de documentcatalog van de PDF die uitkomt bij een concrete combinatie van pagina, positie en zoom. Outline-items, link-annotaties en externe documenten kunnen zo een doel bij naam addresseren in plaats van met hardgecodeerde paginacoördinaten, waardoor het document opnieuw ingedeeld kan worden zonder dat binnenkomende koppelingen breken
PDFium Delphi Component verenigt zowel de klassieke /Dests-woordenboeken als de modernere /Names /Dests-naamboom in één zero-based lijst. Destination[Index] geeft een TDestination-record terug met de naam van de destination, het doelpaginanummer (1-based), de weergavecoördinaten (X, Y), de zoomfactor en Boolean-vlaggen die aangeven of de auteur elk onderdeel expliciet heeft ingesteld
Gebruik DestinationCount voor het totale aantal named destinations, itereer met Destination[I] en gebruik DestinationByName als de doelnaam al bekend is
| Index | Integer. Zero-based positie in de samengevoegde lijst met named destinations. Moet in [0, DestinationCount - 1] liggen. Een index buiten bereik geeft een met nullen gevuld record terug met Handle = nil |
HasX, HasY en HasZoom onderscheiden "fit page"- / "fit width"-bestemmingen (waar deze componenten afwezig zijn) van expliciete XYZ-bestemmingen. Pas alleen de componenten toe die als aanwezig zijn gemarkeerdViewMode onderscheidt XYZ-, Fit-, FitH-, FitV-, FitR-, FitB-, FitBH- en FitBV-bestemmingen zonder dat aanroepers PDFium-constanten hoeven te decoderenViewParameterCount geeft het aantal geldige items in de vaste array ViewParameters van vier elementenHandle voordat u navigeert
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;