|
THotPDF Loaded Form Field Methods
Sintaksa
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);
Opis
Ove metode pregledaju i ažuriraju AcroForm polja koja već postoje u PDF-u učitanom pomoću LoadFromFile ili BeginIncrementalUpdate. Podržavaju tekstualna polja (/FT /Tx), dugmad (/FT /Btn), izborna polja (/FT /Ch), potpisna polja (/FT /Sig) i nepoznate tipove polja
GetLoadedAcroForm vraća razrešeni učitani /AcroForm rečnik za pozivaoce kojima je potrebna direktna inspekcija rečnika pre korišćenja metoda višeg nivoa za polja
HasFormFields prijavljuje da li učitani PDF ili trenutni dokument u toku ima AcroForm polja FormFieldExists proverava učitano stablo polja ili listu polja za izradu po imenu polja bez bacanja izuzetka kada polje ne postoji
GetFormFieldDescription čita /TU alternativno ime učitanog polja, koje PDF pregledači obično koriste kao tooltip polja Vraća prazan string kada polje nema opis
GetFormFieldOptionCount i GetFormFieldOptionValue čitaju /Opt niz na učitanim choice poljima Jednostavni string unosi vraćaju se direktno; option nizovi od dva elementa vraćaju prvi export value
IsFormFieldReadOnly čita bit 1 učitane /Ff zastavice RenameFormField ažurira lokalno /T ime učitanog polja i odbacuje duplirana potpuno kvalifikovana imena u istom učitanom stablu forme
RemoveFormField briše učitano form polje iz AcroForm stabla polja i uklanja odgovarajuće widget anotacije sa njihovih stranica FlattenFormFields iscrtava trenutne vidljive vrednosti učitanih ili polja u toku u statički sadržaj stranice, a zatim uklanja AcroForm catalog unos i widget anotacije tako da sačuvani PDF više ne izlaže interaktivna polja Vraća broj spljoštenih polja ili nulu kada polja nisu bila prisutna
Koristite SaveLoadedDocument da biste upisali potpuno sačuvanu kopiju učitanog grafa objekata nakon direktnih izmena polja. Za tokove rada samo za dodavanje, kao što su potpisani PDF-ovi, učitajte dokument sa BeginIncrementalUpdate, izmenite polja, a zatim pozovite 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');
Vidi i
- AcroForm podrška
- LoadFromFile
- SaveIncrementalUpdate
|