property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only
FormFieldInfo повертає запис-знімок TPdfFormFieldInfo для анотації
віджета поля форми з нульовим індексом Index на поточній активній
сторінці. Запис надає строго типізоване подання одного віджета поля AcroForm без
необхідності розбирати базовий дескриптор FPDF_ANNOTATION. Специфікація
PDF 1.7, розділ 12.7, визначає базові типи полів і прапорці
Запис містить Name поля (повністю кваліфікований шлях через будь-які
батьківські групи полів, наприклад "order.shipto.address"),
AlternateName, що використовується для доступних підказок, перелік
FieldType (fiPushButton, fiCheckBox,
fiRadioButton, fiTextField, fiListBox,
fiComboBox, fiSignature або fiUnknown),
бітову множину Flags (ffReadOnly, ffRequired,
ffNoExport, …), ExportValue у тому вигляді, в якому
вона записується в експорт FormData, прапорець Checked для булевих
полів, FontSize, що використовується для відтворення, та масиви наборів
варіантів OptionLabels / OptionSelected, які використовують
комбіновані списки й списки. Віджети-перемикачі, що належать до групи, додатково
заповнюють GroupCount і GroupIndex
Чинні індекси — 0 .. FormFieldCount - 1. Запис є типом-значенням;
зміна його полів не записується назад у документ. Щоб змінити значення поля,
виконайте призначення через FormField[Index]; щоб змінити бітову маску
прапорців, викличте SetFormFieldFlagsAt. Читання ліниве — PDFium
декодує назви полів Unicode, мітки варіантів і значення експорту за потреби —
тож кешуйте результат, коли ви багато разів перебираєте багато полів
| Index | Індекс віджета з нульовою базою на поточній сторінці (0 .. FormFieldCount - 1) |
Name
для дедуплікації між сторінкамиfiSignature) відкривають Name
і прямокутник, але не байти підпису; використовуйте Signature[I]
рівня документа, щоб отримати вміст PKCS#7GroupCount /
GroupIndex, щоб їх розрізнитиFormFieldCount дорівнює 0
і цей індексатор ніколи не викликається
var I, J: Integer;
var Info: TPdfFormFieldInfo;
for I := 0 to Pdf1.FormFieldCount - 1 do
begin
Info := Pdf1.FormFieldInfo[I];
Memo1.Lines.Add(Format('%s [%d] export=%s checked=%s',
[Info.Name, Ord(Info.FieldType), Info.ExportValue, BoolToStr(Info.Checked, True)]));
for J := 0 to High(Info.OptionLabels) do
Memo1.Lines.Add(' ' + Info.OptionLabels[J]);
end;