THotPDF metode za naložena polja obrazcev

Syntax

function GetLoadedAcroForm: THPDFDictionaryObject;
function HasFormFields: Boolean;
function FormFieldExists(const FieldName: AnsiString): Boolean;
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;
function FlattenFormFields: Integer;
procedure SaveLoadedDocument(const TargetFile: TFileName);

Description

Te metode pregledujejo in posodabljajo polja AcroForm, ki že obstajajo v PDF, naloženem z LoadFromFile ali BeginIncrementalUpdate. Podpirajo besedilna polja (/FT /Tx), gumbna polja (/FT /Btn), izbirna polja (/FT /Ch), podpisna polja (/FT /Sig) in neznane vrste polj

GetLoadedAcroForm vrne razrešeni naloženi slovar /AcroForm za klicatelje, ki pred uporabo višjenivojskih metod polj potrebujejo neposreden vpogled v slovar

HasFormFields poroča, ali ima naložen PDF ali trenutno nastajajoči dokument polja AcroForm. FormFieldExists preveri naloženo drevo polj ali seznam avtorsko ustvarjenih polj po imenu polja brez izjeme, kadar polje ni prisotno

GetFormFieldDescription prebere nadomestno ime /TU naloženega polja, ki ga pregledovalniki PDF pogosto uporabljajo kot namig polja. Vrne prazen niz, kadar polje nima opisa

GetFormFieldOptionCount in GetFormFieldOptionValue prebereta polje /Opt na naloženih izbirnih poljih. Preprosti nizi se vrnejo neposredno; dvodelna polja možnosti vrnejo prvo izvozno vrednost

IsFormFieldReadOnly prebere bit 1 zastavice /Ff naloženega polja. RenameFormField posodobi lokalno ime /T naloženega polja in zavrne podvojena polna imena v istem naloženem drevesu obrazca

RemoveFormField izbriše naloženo polje obrazca iz drevesa polj AcroForm in odstrani ujemajoče se gradnike opomb s njihovih strani. FlattenFormFields trenutne vidne vrednosti naloženih ali nastajajočih polj izriše v statično vsebino strani, nato pa odstrani vnos kataloga AcroForm in gradnike opomb, tako da shranjeni PDF ne izpostavlja več interaktivnih polj. Vrne število sploščenih polj ali nič, kadar polja obrazca niso bila prisotna

Uporabite SaveLoadedDocument za zapis popolnoma shranjene kopije naloženega grafa objektov po neposrednih popravkih polj. Za poteke samo dodajanja, kot so podpisani PDF, naložite z BeginIncrementalUpdate, uredite polja in nato pokličite SaveIncrementalUpdate

Primer

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');
if PDF.HasFormFields then
  Writeln('Plan exists: ', PDF.FormFieldExists('Plan'));
FlattenedCount := PDF.FlattenFormFields;
PDF.SaveLoadedDocument('FlattenedForm.pdf');

Glejte tudi

  • Podpora AcroForm
  • LoadFromFile
  • SaveIncrementalUpdate