THotPDF Loaded Form Field Methods

الصياغة

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

الوصف

تفحص هذه الطرق وتحدث حقول AcroForm الموجودة مسبقًا في PDF محمل بواسطة LoadFromFile أو BeginIncrementalUpdate. وهي تدعم text fields (/FT /Tx)، وbutton fields (/FT /Btn)، وchoice fields (/FT /Ch)، وsignature fields (/FT /Sig)، والأنواع غير المعروفة

GetLoadedAcroForm يعيد قاموس /AcroForm المحمل والمحلول للفحص المباشر قبل استخدام طرق الحقول الأعلى مستوى

يقرأ GetFormFieldDescription اسم الحقل البديل /TU للحقل المحمل، وهو يستخدم عادة كـ tooltip للحقل في عارضات PDF. يعيد سلسلة فارغة عندما لا يملك الحقل وصفًا

يقرأ GetFormFieldOptionCount وGetFormFieldOptionValue مصفوفة /Opt في حقول الاختيار المحملة. تعاد مداخل السلاسل البسيطة مباشرة، أما option arrays ثنائية العناصر فتعيد أول export value

يقرأ IsFormFieldReadOnly ‏bit 1 من علم /Ff للحقل المحمل. يحدث RenameFormField اسم /T المحلي للحقل ويرفض الأسماء fully qualified المكررة في شجرة النموذج المحملة نفسها

يحذف RemoveFormField حقل نموذج محملًا من شجرة حقول AcroForm ويزيل تعليقات widget المطابقة من صفحاتها. يرسم FlattenFormFields القيم المرئية الحالية للحقول المحملة في محتوى صفحات ثابت، ثم يزيل مدخل AcroForm من Catalog وتعليقات widget حتى لا يكشف PDF المحفوظ حقولًا تفاعلية

استخدم SaveLoadedDocument لكتابة نسخة محفوظة بالكامل من مخطط الكائنات المحمل بعد تعديلات الحقول المباشرة. لمسارات append-only مثل ملفات PDF الموقعة، حمل باستخدام BeginIncrementalUpdate، وعدل الحقول، ثم استدع SaveIncrementalUpdate

مثال

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

انظر أيضا