|
THotPDF-methoden voor geladen formuliervelden
Syntaxis
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 GetFormFieldBeschrijving(FieldIndex: Integer): AnsiString; overload;
function GetFormFieldBeschrijving(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);
Beschrijving
Deze methoden inspecteren en actualiseren AcroForm-velden die al bestaan in
een PDF die is geladen met LoadFromFile of
BeginIncrementalUpdate. Ze ondersteunen tekstvelden
(/FT /Tx), knopvelden (/FT /Btn), keuzevelden
(/FT /Ch), handtekeningvelden
(/FT /Sig) en onbekende veldtypen
GetLoadedAcroForm geeft het opgeloste geladen /AcroForm-woordenboek terug voor directe inspectie vóór de hogere veldmethoden
GetFormFieldBeschrijving leest de alternatieve veldnaam
/TU van het geladen veld, die PDF-viewers vaak als
veldtooltip gebruiken. De methode geeft een lege tekenreeks terug wanneer
het veld geen beschrijving heeft
GetFormFieldOptionCount en
GetFormFieldOptionValue lezen de /Opt-array
op geladen keuzevelden. Eenvoudige tekenreeksvermeldingen worden direct
teruggegeven; optie-arrays met twee elementen geven de eerste exportwaarde terug
IsFormFieldReadOnly leest bit 1 van de /Ff-vlag
van het geladen veld. RenameFormField werkt de lokale
/T-naam van het geladen veld bij en weigert dubbele volledig
gekwalificeerde namen in dezelfde geladen formulierboom
RemoveFormField verwijdert een geladen formulierveld uit de
AcroForm-veldboom en verwijdert de bijbehorende widgetannotaties van
hun pagina's. FlattenFormFields tekent de huidige zichtbare
waarden van geladen velden in statische pagina-inhoud en verwijdert daarna de
AcroForm-catalogusinvoer en widgetannotaties zodat de opgeslagen PDF geen
interactieve velden meer blootstelt
Gebruik SaveLoadedDocument om een volledig opgeslagen kopie van de
geladen objectgrafiek weg te schrijven na directe veldwijzigingen. Voor append-only workflows
zoals ondertekende PDF's, laad met BeginIncrementalUpdate, bewerk
velden en roep daarna SaveIncrementalUpdate aan
Voorbeeld
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.GetFormFieldBeschrijving('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');
Zie ook
|