PDFium Delphi Component Docs

LinkAnnotationCount Свойство

Компонент: TPdf  ·  Модуль: PDFium
Количество записей аннотаций /Link на конкретной странице

Syntax

property LinkAnnotationCount[PageNumber: Integer]: Integer; // read only

Description

LinkAnnotationCount возвращает count записей подтипа /Link на странице, заданной аргументом PageNumber с единицы (раздел 12.5.6.5 спецификации PDF 1.7). В отличие от AnnotationCount, которая привязана к текущей активной странице и считает все подтипы аннотаций, это индексированное свойство бьёт прямо в любую страницу и фильтрует только link-аннотации — записи, оборачивающие кликабельную область вокруг текста или графики и указывающие на destination, URI, launch действие или именованное действие

Передавайте PageNumber в диапазоне 1 .. PageCount. Значение равно 0, когда Active равно False, когда индекс страницы невалиден или когда на странице просто нет link-аннотаций. PDFium Delphi Component также отдаёт “автоопределённые” веб-URL отдельно через WebLinkCount — те приходят из сканирования текстовых паттернов и в LinkAnnotationCount не входят

Через LinkAnnotation[PageNumber, Index] с индексами от 0 до LinkAnnotationCount[PageNumber] - 1 достаётся запись TLinkAnnotation — габаритный прямоугольник, номер целевой страницы, тип действия, точки четырёхугольника для многострочных ссылок и разрешённая нагрузка действия. Загрузка метаданных ссылок стоит O(n) на страницу; при обходе многих страниц кэшируйте

Remarks

Example

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;

See Also

LinkAnnotation, WebLinkCount, AnnotationCount, PageCount