property FormFieldInfo[Index: Integer]: TPdfFormFieldInfo;// solo lectura
FormFieldInfo devuelve un registro de instantánea TPdfFormFieldInfo para la anotación de widget de campo de formulario en el Index basado en cero de la página actualmente activa. El registro proporciona una vista fuertemente tipada de un widget de campo AcroForm sin tener que descifrar el manejador FPDF_ANNOTATION subyacente. La especificación PDF 1.7, sección 12.7, define los tipos y marcas de campo subyacentes
El registro lleva el Name del campo (ruta totalmente calificada a través de cualquier grupo de campos padre, p. ej. "order.shipto.address"), el AlternateName usado para las informaciones sobre herramientas accesibles, la enumeración FieldType (fiPushButton, fiCheckBox, fiRadioButton, fiTextField, fiListBox, fiComboBox, fiSignature o fiUnknown), el conjunto de bits Flags (ffReadOnly, ffRequired, ffNoExport, …), el ExportValue tal como se escribe en una exportación FormData, la marca Checked para campos booleanos, el FontSize usado para renderizar y las matrices de conjuntos de opciones OptionLabels / OptionSelected usadas por cuadros combinados y de lista Los widgets de botón de radio que pertenecen a un grupo rellenan además GroupCount y GroupIndex
Los índices válidos son 0 .. FormFieldCount - 1. El registro es un tipo por valor; modificar sus campos no escribe de vuelta al documento. Para cambiar el valor de un campo, asigne mediante FormField[Index]; para alterar la máscara de bits de marcas llame a SetFormFieldFlagsAt. La lectura es perezosa — PDFium decodifica los nombres de campo Unicode, las etiquetas de opción y los valores de exportación bajo demanda — así que cachee el resultado cuando itere muchos campos varias veces
| Index | Índice de widget basado en cero en la página actual (0 .. FormFieldCount - 1) |
Name para desduplicar entre páginasfiSignature) exponen Name y el rect pero no los bytes de firma; use Signature[I] a nivel de documento para obtener el contenido PKCS#7GroupCount / GroupIndex para distinguirlosFormFieldCount es 0 y este indexador nunca es invocable
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;