|
THotPDF Loaded Form Field Methods
Sintaxis
function GetFormFieldCount: Integer;
function GetFormFieldName(FieldIndex: Integer): AnsiString;
function GetFormFieldValue(FieldIndex: Integer): AnsiString; overload;
function GetFormFieldValue(const FieldName: AnsiString): AnsiString; overload;
function GetFormFieldType(FieldIndex: Integer): THPDFLoadedFormFieldType; overload;
function GetFormFieldType(const FieldName: AnsiString): THPDFLoadedFormFieldType; overload;
function GetFormFieldDescription(FieldIndex: Integer): AnsiString; overload;
function GetFormFieldDescription(const FieldName: AnsiString): AnsiString; overload;
function GetFormFieldOptionCount(FieldIndex: Integer): Integer; overload;
function GetFormFieldOptionCount(const FieldName: AnsiString): Integer; overload;
function GetFormFieldOptionValue(FieldIndex, OptionIndex: Integer): AnsiString; overload;
function GetFormFieldOptionValue(const FieldName: AnsiString; OptionIndex: Integer): AnsiString; overload;
function IsFormFieldReadOnly(FieldIndex: Integer): Boolean; overload;
function IsFormFieldReadOnly(const FieldName: AnsiString): Boolean; overload;
procedure SetFormFieldValue(FieldIndex: Integer; const Value: AnsiString); overload;
procedure SetFormFieldValue(const FieldName, Value: AnsiString); overload;
procedure SetFormFieldReadOnly(FieldIndex: Integer; ReadOnly: Boolean); overload;
procedure SetFormFieldReadOnly(const FieldName: AnsiString; ReadOnly: Boolean); overload;
procedure RenameFormField(FieldIndex: Integer; const NewName: AnsiString); overload;
procedure RenameFormField(const FieldName, NewName: AnsiString); overload;
procedure RemoveFormField(FieldIndex: Integer); overload;
procedure RemoveFormField(const FieldName: AnsiString); overload;
procedure FlattenFormFields;
procedure SaveLoadedDocument(const TargetFile: TFileName);
Descripción
Estos métodos inspeccionan y actualizan campos AcroForm que ya existen en
un PDF cargado con LoadFromFile o
BeginIncrementalUpdate. Admiten campos de texto
(/FT /Tx), campos de botón (/FT /Btn), campos de opción
(/FT /Ch), campos de firma
(/FT /Sig) y tipos de campo desconocidos
GetLoadedAcroForm devuelve el diccionario /AcroForm cargado y resuelto para inspección directa antes de usar los métodos de campo de nivel superior
GetFormFieldDescription lee el nombre de campo alternativo
/TU cargado, que los visores PDF usan habitualmente como tooltip
del campo. Devuelve una cadena vacía cuando el campo no tiene
descripción
GetFormFieldOptionCount y
GetFormFieldOptionValue leen el array /Opt
en campos de opción cargados. Las entradas de string simples se devuelven directamente;
los arrays de opción de dos elementos devuelven el primer valor de exportación
IsFormFieldReadOnly lee el bit 1 de la bandera
/Ff del campo cargado. RenameFormField actualiza el nombre local
/T del campo cargado y rechaza nombres totalmente cualificados duplicados
en el mismo árbol de formulario cargado
RemoveFormField elimina un campo de formulario cargado del
árbol de campos AcroForm y quita de sus páginas las anotaciones widget correspondientes
FlattenFormFields pinta los valores visibles actuales de los campos cargados
en contenido de página estático, luego elimina la entrada AcroForm del catálogo
y las anotaciones widget para que el PDF guardado ya no
exponga campos interactivos
Utilice SaveLoadedDocument para escribir una copia completamente guardada del
grafo de objetos cargado después de ediciones directas de campos. Para flujos append-only
como PDFs firmados, cargue con BeginIncrementalUpdate, edite
campos y luego llame a SaveIncrementalUpdate
Ejemplo
PDF.LoadFromFile('InputForm.pdf');
for I := 0 to PDF.GetFormFieldCount - 1 do
Writeln(PDF.GetFormFieldName(I), ' = ', PDF.GetFormFieldValue(I));
for I := 0 to PDF.GetFormFieldOptionCount('Plan') - 1 do
Writeln('Plan option ', I, ': ', PDF.GetFormFieldOptionValue('Plan', I));
Writeln('Customer description: ', PDF.GetFormFieldDescription('CustomerName'));
PDF.SetFormFieldValue('CustomerName', 'Bob');
PDF.SetFormFieldReadOnly('CustomerName', True);
PDF.RenameFormField('CustomerName', 'ClientName');
PDF.RemoveFormField('Approved');
PDF.SaveLoadedDocument('UpdatedForm.pdf');
PDF.LoadFromFile('UpdatedForm.pdf');
PDF.FlattenFormFields;
PDF.SaveLoadedDocument('FlattenedForm.pdf');
Véase también
|