PDFium Delphi Component Docs

FormFieldInfo властивість

Component: TPdf  ·  Unit: PDFium
Повний запис з описом поля форми за індексом активної сторінки

Syntax

property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo; // read only

Description

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, мітки варіантів і значення експорту за потреби — тож кешуйте результат, коли ви багато разів перебираєте багато полів

Parameters

IndexІндекс віджета з нульовою базою на поточній сторінці (0 .. FormFieldCount - 1)

Remarks

Example

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;

See Also

FormField, FormFieldCount, FormFieldInfoAt, FormFieldAt, FormType