Документация PDFiumPas

LinkAnnotationCount Свойство

Эта запись API сохраняет идентификаторы, сигнатуры, блоки кода и термины PDF в исходном виде.
Компонент: TPdf  ·  Модуль: PDFium
Количество записей аннотаций /Link на конкретной странице

Синтаксис

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

Описание

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

Передавайте PageNumber в диапазоне 1 .. PageCount. Значение равно 0, когда Active равно False, когда индекс страницы недопустим или когда на странице просто нет link annotations. PDFiumPas также показывает «auto-detected» web URLs отдельно через WebLinkCount — они приходят из text-pattern scanning и не входят в LinkAnnotationCount

Используйте LinkAnnotation[PageNumber, Index] с индексами от 0 до LinkAnnotationCount[PageNumber] - 1, чтобы получить запись TLinkAnnotation — bounding rectangle, target page number, action type, quadrilateral points для multi-line links и resolved action payload. Загрузка link metadata имеет сложность O(n) на страницу; кэшируйте ее при обходе многих страниц

Примечания

Пример

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;

См. также

LinkAnnotation, WebLinkCount, AnnotationCount, PageCount