|
THotPDF Loaded Form Field Methods
Składnia
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;
procedure FlattenFormFields;
procedure SaveLoadedDocument(const TargetFile: TFileName);
Opis
Te metody sprawdzają i aktualizują pola AcroForm, które już istnieją w PDF załadowanym przez LoadFromFile albo BeginIncrementalUpdate. Obsługują pola tekstowe (/FT /Tx), pola przycisków (/FT /Btn), pola wyboru (/FT /Ch), pola podpisu (/FT /Sig) oraz nieznane typy pól
GetLoadedAcroForm zwraca rozwiązany załadowany słownik /AcroForm do bezpośredniej inspekcji przed użyciem metod pól wyższego poziomu
GetFormFieldDescription odczytuje alternatywną nazwę pola /TU załadowanego pola, często używaną przez przeglądarki PDF jako tooltip pola. Zwraca pusty ciąg, gdy pole nie ma opisu
GetFormFieldOptionCount i GetFormFieldOptionValue odczytują tablicę /Opt w załadowanych polach wyboru. Proste wpisy string są zwracane bezpośrednio; dwuelementowe tablice opcji zwracają pierwszą wartość eksportu
IsFormFieldReadOnly odczytuje bit 1 flagi /Ff załadowanego pola. RenameFormField aktualizuje lokalną nazwę /T załadowanego pola i odrzuca zduplikowane w pełni kwalifikowane nazwy w tym samym załadowanym drzewie formularza
RemoveFormField usuwa załadowane pole formularza z drzewa pól AcroForm i usuwa pasujące adnotacje widget ze stron. FlattenFormFields maluje bieżące widoczne wartości załadowanych pól do statycznej treści strony, a następnie usuwa wpis katalogu AcroForm i adnotacje widget, aby zapisany PDF nie ujawniał już pól interaktywnych
Użyj SaveLoadedDocument, aby zapisać w pełni zapisaną kopię załadowanego grafu obiektów po bezpośrednich edycjach pól. Dla przepływów append-only, takich jak podpisane PDF, załaduj przez BeginIncrementalUpdate, edytuj pola, a następnie wywołaj SaveIncrementalUpdate
Przykład
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');
PDF.FlattenFormFields;
PDF.SaveLoadedDocument('FlattenedForm.pdf');
Zobacz też
|