property FormFieldCount: Integer; // read only
FormFieldCount връща броя на анотациите на уиджетите на AcroForm полета на
текущо активната страница. Всеки запис съответства на една анотация на уиджет (подтип
/Widget с тип на поле /FT) — текстов вход, чек
кутия, радио бутон, list box, combo box, push бутон или поле за подпис (PDF 1.7 спецификация,
раздел 12.7).
Стойността е 0, когато Active е False, когато
документът не е AcroForm (FormType = ftNone) или когато страницата няма
интерактивни уиджети. Това е метрика на страница; страниците може да съдържат уиджети, които принадлежат
на същото логическо поле, определено другаде в дървото на документа — PDF позволява
едно поле да има множество поставяния на уиджети (напр. подпис, видим на корицата
и последната страница).
Използвайте FormFieldInfo[Index] с индекси от 0 до
FormFieldCount - 1, за да получите запис TPdfFormFieldInfo:
тип на полето, име, алтернативно име, флагове, етикети на опциите, текуща стойност, експортна стойност,
състояние на отметка и размер на шрифта. За да получите поле чрез hit тестване на координата на страницата, използвайте
FormFieldAt[X, Y] или FormFieldInfoAt[X, Y].
FormType = ftXfaFull) носят своята интерактивна
структура извън AcroForm дървото; FormFieldCount може все още да отчита уиджети
генерирани от XFA, но самото XFA рендериране е извън обхвата на PDFium Delphi Component.AnnotationCount се припокриват, защото уиджетите са
подмножество на анотациите. Използвайте това свойство, когато искате само полета.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;