property Destination[Index: Integer]: TDestination; // read only
Een named destination is een symbolische naam, bijvoorbeeld "chap5.fig3", die is opgeslagen in de PDF-documentcatalogus en wordt opgelost naar een concreet pagina-positie-zoom-tuple. Daarmee kunnen outlines, linkannotaties en externe documenten naar een doel verwijzen via een stabiele naam in plaats van via hardgecodeerde paginacoördinaten, zodat het document opnieuw kan worden gezet zonder inkomende links te breken
PDFiumPas vlakt zowel legacy /Dests-woordenboeken als moderne /Names /Dests-naamstructuren af naar één lijst op basis van nul. Destination[Index] geeft een TDestination-record terug met de bestemmingnaam, het doelpaginanummer op basis van één, de weergavecoördinaten (X, Y), de zoomfactor en Booleaanse vlaggen die aangeven of elk onderdeel expliciet door de auteur is ingesteld
Gebruik DestinationCount om het totale aantal benoemde bestemmingen op te vragen, loop met Destination[I] en gebruik DestinationByName wanneer u de doelnaam al kent
| Index | Integer. Positie op basis van nul in de afgevlakte lijst met benoemde bestemmingen. Moet binnen [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, waarbij deze onderdelen ontbreken, van expliciete XYZ-bestemmingen. Pas alleen de onderdelen toe die als aanwezig zijn gemarkeerdHandle 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;