THotPDF Loaded Form Field Methods

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

Kuvaus

Nämä metodit tarkastavat ja päivittävät AcroForm-kenttiä, jotka ovat jo olemassa metodilla LoadFromFile tai BeginIncrementalUpdate ladatussa PDF-tiedostossa. Ne tukevat tekstikenttiä (/FT /Tx), painikekenttiä (/FT /Btn), valintakenttiä (/FT /Ch), allekirjoituskenttiä (/FT /Sig) ja tuntemattomia kenttätyyppejä

Metodi GetLoadedAcroForm palauttaa ratkaistun ladatun /AcroForm-sanakirjan käyttäjille, jotka tarvitsevat suoraa sanakirjan tarkastusta ennen korkeamman tason kenttämetodien käyttöä

Metodi HasFormFields raportoi, onko ladatussa PDF-tiedostossa tai nykyisessä työn alla olevassa asiakirjassa AcroForm-kenttiä. Metodi FormFieldExists tarkistaa ladatun kenttäpuun tai luontikenttäluettelon kentän nimen perusteella ilman poikkeuksen nostamista, jos kenttää ei ole olemassa

Metodi GetFormFieldDescription lukee ladatun kentän vaihtoehtoisen nimen /TU, jota PDF-katseluohjelmat yleensä käyttävät kentän työkaluvihjeenä. Se palauttaa tyhjän merkkijonon, jos kentällä ei ole kuvausta

Metodit GetFormFieldOptionCount ja GetFormFieldOptionValue lukevat ladattujen valintakenttien /Opt-taulukkoa. Yksinkertaiset merkkijonot palautetaan suoraan; kaksiosaiset valintataulukot palauttavat ensimmäisen vientiarvon

Metodi IsFormFieldReadOnly lukee bitin 1 ladatun kentän lipusta /Ff. Metodi RenameFormField päivittää ladatun kentän paikallisen nimen /T ja hylkää kaksoiskappaleet samassa ladatussa lomakepuussa

Metodi RemoveFormField poistaa ladatun lomakekentän AcroForm-kenttäpuusta ja poistaa vastaavat merkinnät sivuiltaan. Metodi FlattenFormFields piirtää ladattujen tai työn alla olevien kenttien nykyiset näkyvät arvot staattiseksi sivusisällöksi, minkä jälkeen se poistaa AcroForm-luettelomerkinnän ja merkinnät, jotta tallennettu PDF ei enää sisällä vuorovaikutteisia kenttiä. Se palauttaa litistettyjen kenttien määrän, tai nollan, jos lomakekenttiä ei ollut

Käytä metodia SaveLoadedDocument kirjoittaaksesi täysin tallennetun kopion ladatusta objektikaaviosta kenttien suorien muokkausten jälkeen. Vain lisäystä tukevissa työnkuluissa (kuten allekirjoitetut PDF-tiedostot) lataa tiedosto metodilla BeginIncrementalUpdate, muokkaa kenttiä ja kutsu sitten metodia SaveIncrementalUpdate

Example

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');

See Also