property FormFieldCount: Integer; // read only
FormFieldCount возвращает количество аннотаций-виджетов полей AcroForm на текущей активной странице. Каждая запись соответствует одной аннотации-виджету, подтип /Widget с типом поля /FT, например текстовое поле, флажок, переключатель, список, комбинированное поле, кнопка или поле подписи, согласно спецификации PDF 1.7, раздел 12.7
Значение равно 0, когда Active равно False, когда документ не является AcroForm, то есть FormType = ftNone, или когда на странице нет интерактивных виджетов. Это метрика на страницу; страницы могут содержать виджеты, принадлежащие одному и тому же логическому полю, определенному в другом месте дерева документа, а PDF позволяет одному полю иметь несколько размещений виджетов, например подпись, видимую на титульной и последней страницах
Используйте FormFieldInfo[Index] с индексами от 0 до FormFieldCount - 1, чтобы получить запись TPdfFormFieldInfo: тип поля, имя, альтернативное имя, флаги, подписи параметров, текущее значение, экспортируемое значение, состояние отмеченности и размер шрифта. Чтобы получить поле по проверке попадания по координате страницы, используйте вместо этого FormFieldAt[X, Y] или FormFieldInfoAt[X, Y]
FormType = ftXfaFull, хранят свою интерактивную структуру вне дерева AcroForm; FormFieldCount все еще может сообщать виджеты, созданные XFA, но сам рендеринг XFA находится вне области PDFiumPasAnnotationCount частично пересекаются, потому что виджеты являются подмножеством аннотаций. Используйте это свойство, когда нужны только поляSetFormField делают индексы недействительными. После каждой мутации перечитывайте FormFieldCount
var I: Integer;
var Info: TPdfFormFieldInfo;
for I := 0 to Pdf1.FormFieldCount - 1 do
begin
Info := Pdf1.FormFieldInfo[I];
Memo1.Lines.Add(Format('%s = %s', [Info.Name, Info.ExportValue]));
end;