function ExportXFDF(const FileName: string): Integer; overload;
function ExportXFDF(Stream: TStream): Integer; overload;
function ExportXFDFToStream(Stream: TStream): Integer;
يتنقل ExportXFDF عبر كل صفحة من المستند المحمَّل وينتج مستند XFDF مطابقًا لـ ISO 19444-1 متجذرًا في فضاء الأسماء http://ns.adobe.com/xfdf/. يتكون الإخراج من قسم <fields> وقسم <annots>، يصدر كلاهما كـ XML بترميز UTF-8.
بالنسبة لحقول النموذج، تعد الطريقة تعليقات الأدوات في كل صفحة، وتقرأ قيمة كل حقل، وتكتب عنصر <field>. تُقسم أسماء الحقول الهرمية (المؤهلة) عند فاصل النقطة وتُصدر كعناصر <field> متداخلة بحيث تنتقل بنية الأب/الابن ذهابًا وإيابًا. تصدِّر مربعات الاختيار وأزرار الاختيار قيمة التصدير الخاصة بها (اسم حالة المظهر الذي يمثل حالة التشغيل) كقيمة الحقل. تُدرج حقول التوقيع لكن قيمتها لا تُصدَّر أبدًا.
تُبقي علامات وجود القيمة قيمة الحقل الفارغة صراحةً مميزة عن القيمة المهملة، بما في ذلك الحقول المتداخلة لأكثر من مستويين عمقًا
بالنسبة للتعليقات، يُسلسَل كل تعليق غير أداة وغير منبثق في كل صفحة. يتعرف المصدر على 18 قيمة /Subtype: نص، وتمييز، وتسطير، وشطب، وتشويش، وخط، ودائرة، ومربع، ومؤشر إدخال، ومضلع، وخط متعدد، وختم، وحبر، ونص حر، ومرفق ملف، وصوت، ورابط، وحجب. يُكتب كل منها كعنصر تحت <annots> يحمل فهرس صفحته، ومستطيله المحيط، ومحتوياته، وعنوانه (المؤلف)، واسمه (NM)، وموضوعه، وتاريخي التعديل والإنشاء، وعلاماته، ولونه.
تتبع اصطلاحات الترميز ISO 19444-1: تُكتب الألوان كسلاسل سداسية عشرية #RRGGBB؛ وقوائم الإحداثيات (المستطيل، ونقاط نهاية الخط، ورؤوس المضلع/الخط المتعدد، وقوائم الحبر) أرقام مفصولة بفواصل؛ وتُصدر علامات التعليق كقائمة أسماء علامات مفصولة بفواصل بدلًا من قناع بتات خام.
بالنسبة لتعليقات التمييز متعددة الأسطر، تتضمن سمة coords كل رباعي بترتيب المستند بدلًا من السطر الأول فقط
Annotation content uses the same presence semantics, so an explicit empty contents element survives export without turning an absent element into an empty one
PDFium itself exposes no XFDF API. ExportXFDF is implemented entirely in Pascal by PDFium Delphi Component on top of its own annotation and form-field data model, querying PDFium only for the per-annotation attribute values.
Returns the number of UTF-8 bytes written. The Stream
overload accepts a TStream to write into; the
FileName overload accepts a file path and creates/truncates
that file. ExportXFDFToStream is an alias for the
Stream overload.
CA) والبيانات الهندسية (نقاط نهاية الخط، ورؤوس المضلع/الخط المتعدد، وقوائم الحبر) عبر سجلات عالية المستوى للقراءة فقط من جهة PDFium، لأن PDFium لا يملك معيِّن SetNumberValue لقواميس التعليقات. تُحفظ هذه السمات كما هي أثناء التصدير، لذا تنتقل ذهابًا وإيابًا عبر XFDF رغم عدم إمكانية تحريرها.ImportXFDF أو استهلاكه بواسطة Acrobat، والعكس صحيح.
// Export all fields and annotations to an .xfdf file
BytesWritten := Pdf1.ExportXFDF('C:\Data\form.xfdf');
// Or to a stream
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('C:\Data\form.xfdf', fmCreate);
try
Pdf1.ExportXFDF(Stream);
finally
Stream.Free;
end;
end;