property Destination[Index: Integer]: TDestination; // read only
Nazwany cel to symboliczna nazwa (na przykład "chap5.fig3") zapisana w katalogu dokumentu PDF, która rozwiązuje się do konkretnej krotki strona-pozycja-powiększenie. Pozwalają one konspektom, adnotacjom linków i dokumentom zewnętrznym odwoływać się do celu przez stabilną nazwę zamiast zakodowanych na stałe współrzędnych strony, dzięki czemu dokument można ponownie paginować bez psucia przychodzących odnośników
PDFium Delphi Component spłaszcza zarówno starsze słowniki /Dests, jak i nowoczesne drzewa nazw /Names /Dests do jednej listy liczonej od zera. Destination[Index] zwraca rekord TDestination przenoszący nazwę celu, stronę docelową liczona od jedynki, zdekodowany ViewMode, surowe ViewParameters, współrzędne widoku, współczynnik powiększenia i flagi obecności
Użyj DestinationCount, aby uzyskać łączną liczbę nazwanych celów, iteruj przez Destination[I] i użyj DestinationByName, gdy znasz już nazwę celu
| Index | Integer. Pozycja liczona od zera w spłaszczonej liście nazwanych celów. Musi mieścić się w [0, DestinationCount - 1]. Indeks spoza zakresu zwraca rekord wypełniony zerami z Handle = nil |
HasX, HasY i HasZoom odróżniają cele typu "fit page" / "fit width" (gdzie te składowe są nieobecne) od jawnych celów XYZ. Stosuj tylko składowe oznaczone jako obecneViewMode odróżnia cele XYZ, Fit, FitH, FitV, FitR, FitB, FitBH i FitBV bez wymagania od wywołujących dekodowania stałych PDFiumViewParameterCount podaje liczbę poprawnych wpisów w stałej czteroelementowej tablicy ViewParametersHandle przed nawigacją
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;