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

AnnotationCount Свойство

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

Синтаксис

property AnnotationCount: Integer; // read only

Описание

AnnotationCount возвращает длину массива /Annots текущей страницы (раздел 12.5 спецификации PDF 1.7). Учитываются все подтипы аннотаций — текстовые заметки, выделения, подчёркивания, свободный текст, рукописные пометки, штампы, многоугольники и ломаные, аннотации ссылок, всплывающие окна и аннотации виджетов форм. Сложите значения со всех страниц, чтобы получить общее количество аннотаций в документе

Свойство требует, чтобы Active было равно True, и читает данные со страницы, указанной в PageNumber. Когда на странице нет аннотаций или документ не загружен, значение равно 0. Используйте Annotation[Index] с индексами от 0 до AnnotationCount - 1, чтобы получить запись TPdfAnnotation, описывающую подтип, ограничивающий прямоугольник, цвет, битовую маску флагов и текст содержимого каждой записи

Перебор аннотаций имеет сложность O(n), но каждый вызов Annotation[Index] открывает новый дескриптор PDFium и декодирует содержимое Unicode по требованию; кэшируйте результат, если он нужен несколько раз. Изменение аннотаций страницы, например вставки или удаления, делает индексы недействительными — перезапустите цикл или перечитайте AnnotationCount после изменения

Примечания

Пример

var I: Integer;
var A: TPdfAnnotation;
for I := 0 to Pdf1.AnnotationCount - 1 do
begin
  A := Pdf1.Annotation[I];
  Memo1.Lines.Add(Format('%d: subtype=%d text=%s',
    [I, Ord(A.Subtype), A.ContentsText]));
end;

См. также

Annotation, LinkAnnotationCount, FormFieldCount, PageNumber