property LinkAnnotationCount[PageNumber: Integer]: Integer; // read only
LinkAnnotationCount zwraca liczbę wpisów podtypu /Link na stronie określonej przez 1-based argument PageNumber (sekcja 12.5.6.5 specyfikacji PDF 1.7) W przeciwieństwie do AnnotationCount, który jest ograniczony do aktualnie aktywnej strony i liczy każdy podtyp adnotacji, ta indeksowana właściwość celuje bezpośrednio w dowolną stronę i filtruje wyłącznie adnotacje linków — wpisy, które otaczają klikalny obszar wokół tekstu albo grafiki i wskazują destynację, URI, akcję uruchomienia albo akcję nazwaną
Przekaż PageNumber w zakresie 1 .. PageCount Wartość wynosi 0, gdy Active ma wartość False, gdy indeks strony jest nieprawidłowy albo gdy strona po prostu nie zawiera adnotacji linków PDFiumPas udostępnia też „automatycznie wykryte” adresy URL oddzielnie przez WebLinkCount — pochodzą one ze skanowania wzorców tekstu i nie są częścią LinkAnnotationCount
Użyj LinkAnnotation[PageNumber, Index] z indeksami od 0 do LinkAnnotationCount[PageNumber] - 1, aby pobrać rekord TLinkAnnotation — prostokąt ograniczający, docelowy numer strony, typ akcji, punkty wieloboku dla linków wielowierszowych oraz rozwiązany ładunek akcji Ładowanie metadanych linków ma złożoność O(n) na stronę; buforuj wynik przy iterowaniu po wielu stronach
PageNumber jest 1-based, aby odpowiadał sposobowi, w jaki użytkownicy opisują numery stron; różni się od 0-based Index w większości indeksatorów w stylu tablicowymWebLinkCount podczas implementacji ujednoliconej nakładki „klikalnych hotspotów” w niestandardowej przeglądarce0 zamiast zgłaszać wyjątek — można bezpiecznie używać wewnątrz sond wątkowych bez otaczania bloku try / except
var P, I: Integer;
var Link: TLinkAnnotation;
for P := 1 to Pdf1.PageCount do
for I := 0 to Pdf1.LinkAnnotationCount[P] - 1 do
begin
Link := Pdf1.LinkAnnotation[P, I];
Memo1.Lines.Add(Format('p%d link → page %d', [P, Link.PageNumber]));
end;