property LinkAnnotationCount[PageNumber: Integer]: Integer; // read only
LinkAnnotationCount는 1 기반 PageNumber 인자가 가리키는 페이지의
/Link 서브타입 항목 개수를 반환합니다(PDF 1.7 스펙
12.5.6.5절). 현재 활성 페이지에만 적용되고 모든 주석 서브타입을 세는 AnnotationCount와 달리 이 indexed 프로퍼티는 어떤
페이지든 직접 지정할 수 있고 링크 주석만 걸러 냅니다 — 텍스트나 그래픽 주위의
클릭 가능한 영역을 감싸고 destination, URI, launch
action, named action을 가리키는 항목들입니다
PageNumber는 1 .. PageCount 범위로 넘기세요. Active가 False이거나 페이지 인덱스가
잘못되었거나 페이지에 링크 주석이 아예 없으면 값은
0입니다. PDFium Delphi Component는 “자동 감지된” 웹 URL도 WebLinkCount로 따로 노출합니다
— 이것들은 텍스트 패턴 스캔에서 나온 것이며 LinkAnnotationCount에는 포함되지 않습니다
0부터 LinkAnnotationCount[PageNumber] - 1까지의 인덱스로
LinkAnnotation[PageNumber, Index]를 호출하면
TLinkAnnotation 레코드를 얻습니다 — 바운딩 사각형, 대상 페이지 번호,
action 타입, 여러 줄 링크의 사변형 점들, 해석된 action
페이로드가 담깁니다. 링크 메타데이터 로딩은 페이지당 O(n)이므로 여러
페이지를 순회할 때는 캐싱하세요
Index와 다릅니다WebLinkCount와 조합하세요0을 반환하므로 — 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;