|
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);
Описание
Тези методи преглеждат и обновяват AcroForm полета, които вече
съществуват в PDF, зареден с LoadFromFile или
BeginIncrementalUpdate Те поддържат текстови полета
(/FT /Tx), button полета (/FT /Btn), choice
полета (/FT /Ch), signature полета
(/FT /Sig) и неизвестни типове полета
GetLoadedAcroForm връща разрешения зареден
/AcroForm речник за извикващ код, който се нуждае от
директна проверка на речника преди да използва методите за полета от по-
високо ниво
HasFormFields отчита дали зареденият PDF или текущият
документ в процес на създаване има AcroForm полета FormFieldExists
проверява заредено дърво на полета или списъка с authoring полета по име
на поле, без да хвърля изключение, когато полето липсва
GetFormFieldDescription чете алтернативното име на
зареденото поле /TU, което обикновено се използва от PDF
viewer-и като подсказка за полето Връща празен низ, когато полето няма
описание
GetFormFieldOptionCount и
GetFormFieldOptionValue четат масива /Opt
при заредени choice полета Простите низови записи се връщат директно;
двуелементните option масиви връщат първата export стойност
IsFormFieldReadOnly чете бит 1 на флага /Ff
на зареденото поле RenameFormField обновява локалното
име /T на зареденото поле и отхвърля дублирани напълно
квалифицирани имена в същото заредено form дърво
RemoveFormField изтрива заредено form поле от
AcroForm дървото на полетата и премахва съответните widget анотации от
страниците им FlattenFormFields изрисува текущите видими
стойности на заредени или in-progress полета в статично page content,
след което премахва AcroForm catalog записа и widget анотациите, така че
записаният PDF вече да не излага интерактивни полета Връща броя на
изравнените полета или нула, когато не са били налице form полета
Използвайте SaveLoadedDocument, за да запишете напълно
записано копие на заредения object graph след директни редакции на
полетата За append-only работни потоци като подписани PDF файлове,
заредете с BeginIncrementalUpdate, редактирайте полетата и
след това извикайте 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
|