|
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
|