PDFium Delphi Component Docs

FormFieldInfo Propriété

Composant: TPdf  ·  Unit: PDFium
Enregistrement complet décrivant un champ de formulaire à un index donné sur la page active

Syntax

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

Description

FormFieldInfo renvoie un enregistrement instantané TPdfFormFieldInfo pour l’annotation de widget de champ de formulaire à l’Index de base 0 sur la page actuellement active. L’enregistrement fournit une vue fortement typée d’un widget de champ AcroForm sans avoir à casser le handle FPDF_ANNOTATION sous-jacent. La section 12.7 de la spec PDF 1.7 définit les types et drapeaux de champ sous-jacents

L’enregistrement porte le Name du champ (chemin entièrement qualifié à travers tout groupe de champ parent, par ex. "order.shipto.address"), l’AlternateName utilisé pour les infobulles accessibles, l’énumération FieldType (fiPushButton, fiCheckBox, fiRadioButton, fiTextField, fiListBox, fiComboBox, fiSignature ou fiUnknown), le Flags sous forme de bits (ffReadOnly, ffRequired, ffNoExport, …), l’ExportValue tel qu’écrit dans un export FormData, le drapeau Checked pour les champs booléens, le FontSize utilisé pour le rendu, et les tableaux d’ensemble d’options OptionLabels / OptionSelected employés par les zones combinées et les zones de liste. Les widgets de bouton radio appartenant à un groupe remplissent en outre GroupCount et GroupIndex

Les indices valides vont de 0 .. FormFieldCount - 1. L’enregistrement est un type valeur ; la modification de ses champs ne réécrit pas le document. Pour changer la valeur d’un champ, affectez via FormField[Index] ; pour modifier le masque de bits de drapeaux, appelez SetFormFieldFlagsAt. La lecture est paresseuse — PDFium décode les noms de champs Unicode, les étiquettes d’option et les valeurs d’export à la demande — donc mettez le résultat en cache quand vous itérez plusieurs fois sur de nombreux champs

Parameters

IndexIndex de widget de base 0 sur la page courante (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