PDFium Delphi Component Docs

AnnotationCount Свойство

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

Syntax

property AnnotationCount: Integer; // read only

Description

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

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

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

Remarks

Example

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;

See Also

Annotation, LinkAnnotationCount, FormFieldCount, PageNumber