property Destination[Index: Integer]: TDestination; // read only
A named destination is a symbolic name (for example "chap5.fig3") PDF belge kataloğunda saklanan ve somut bir page-position-zoom üçlüsüne çözümlenen hedeflerdir. Ana hatların, bağlantı ek açıklamalarının ve dış belgelerin hedefe sabit sayfa koordinatları yerine kararlı bir adla başvurmasına izin verirler; böylece belge, gelen bağlantıları bozmadan yeniden sayfalanabilir.
PDFiumPas flattens both legacy /Dests dictionaries and modern /Names /Dests name trees into a single zero-based list. Destination[Index] returns a TDestination record carrying the destination name, target page number (1-based), view coordinates (X, Y), zoom factor, and Boolean flags indicating whether each component was explicitly set by the author.
Use DestinationCount to obtain the total number of named destinations, iterate with Destination[I], and use DestinationByName when you already know the target name.
| Index | Integer. Zero-based position in the flattened named-destinations list. Must be in [0, DestinationCount - 1]. An out-of-range index returns a zero-filled record with Handle = nil. |
HasX, HasY, and HasZoom "fit page" / "fit width" hedeflerini (bu bileşenlerin bulunmadığı durumlar) açık XYZ hedeflerinden ayırın. Yalnızca var olarak işaretlenen bileşenleri uygulayın.Handle before navigating.
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;