property Destination[Index: Integer]: TDestination; // read only
Ein benanntes Ziel ist ein symbolischer Name (zum Beispiel "chap5.fig3"), der im PDF-Dokumentkatalog gespeichert ist und sich zu einem konkreten Tupel aus Seite, Position und Zoom auflöst. Benannte Ziele erlauben Outlines, Link-Anmerkungen und externen Dokumenten, ein Ziel über einen stabilen Namen statt über fest kodierte Seitenkoordinaten zu referenzieren, sodass das Dokument neu paginiert werden kann, ohne eingehende Links zu brechen
PDFium Delphi Component führt sowohl die älteren /Dests-Wörterbücher als auch die modernen /Names /Dests-Namensbäume zu einer einzigen nullbasierten Liste zusammen. Destination[Index] gibt einen TDestination-Record zurück, der den Zielnamen, die 1-basierte Zielseite, den dekodierten ViewMode, die rohen ViewParameters, Ansichtskoordinaten, den Zoomfaktor und Präsenz-Flags trägt
Verwenden Sie DestinationCount, um die Gesamtanzahl der benannten Ziele zu erhalten, iterieren Sie mit Destination[I] und verwenden Sie DestinationByName, wenn Sie den Zielnamen bereits kennen
| Index | Integer. Nullbasierte Position in der zusammengeführten Liste der benannten Ziele. Muss in [0, DestinationCount - 1] liegen. Ein Index außerhalb des Bereichs liefert einen nullgefüllten Record mit Handle = nil |
HasX, HasY und HasZoom unterscheiden Ziele vom Typ "Auf Seite passen" / "Auf Breite passen" (bei denen diese Komponenten fehlen) von expliziten XYZ-Zielen. Wenden Sie nur die Komponenten an, die als vorhanden markiert sindViewMode unterscheidet XYZ-, Fit-, FitH-, FitV-, FitR-, FitB-, FitBH- und FitBV-Ziele, ohne dass Aufrufer PDFium-Konstanten dekodieren müssenViewParameterCount liefert die Anzahl der gültigen Einträge im festen ViewParameters-Array mit vier ElementenHandle, bevor Sie navigieren
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;