PDFium Delphi Component Docs

AttachmentCount الخاصية

Component: TPdf  ·  Unit: PDFium
عدد مرفقات الملفات المضمنة المعلنة في المستند

Syntax

property AttachmentCount: Integer; // read only

Description

تستعرض الخاصية AttachmentCount مسارات الملفات المضمّنة التي يمكن الوصول إليها عبر شجرة الأسماء /Names /EmbeddedFiles في الكتالوج (القسم 7.11 من مواصفة PDF 1.7). وهذه ملفات عشوائية (XML أو جداول بيانات أو ملفات CAD مصدرية أو XML موقعة أو أرشيفات ZIP…) معبأة داخل ملف PDF وتعرضها البرامج في الشريط الجانبي “Attachments”. ويشترط PDF/A-3 تحديدًا تضمين كل مكوّن مصدر ذي صلة بهذه الطريقة لضمان إمكانية إعادة الإنتاج على المدى الطويل

تكون القيمة 0 عندما تكون Active تساوي False وعندما لا يحمل المستند أي ملفات مضمّنة. أما تعليقات إرفاق الملفات (النوع الفرعي /FileAttachment) فلا تُحتسب هنا إطلاقًا — فهي تعليقات على مستوى الصفحة وتظهر عبر AnnotationCount بدلًا من ذلك. ويكشف PDFium Delphi Component المسارات المضمّنة على هيئة TBytes عبر Attachment[Index]؛ أما اسم الملف المقروء والنوع بأسلوب MIME فيتاحان عبر AttachmentName[Index] و AttachmentType[Index]

الحلقة المعتادة هي for I := 0 to Pdf.AttachmentCount - 1 do. وكل وصول إلى Attachment[I] يفك ضغط مسار الملف المضمّن في الذاكرة، لذا خزّن TBytes مؤقتًا إذا احتجت إلى كتابته على القرص وتمريره إلى محلل. كما أن إضافة مرفق أو إزالته يبطل الفهارس — فأعد قراءة AttachmentCount بعد أي تغيير

لا يُعدَّد سوى شجرة الأسماء /EmbeddedFiles. فالملف المرافق في PDF 2.0 (ISO 32000-2 §7.11.4) المُشار إليه من مصفوفة /AF وحدها — على الـ catalog أو صفحة أو تعليق أو أي كائن آخر — وغير المسجَّل كذلك في شجرة الأسماء لا يُحتسب ولا فهرس له في Attachment أو AttachmentName أو AttachmentRelationship. ويشمل ذلك الملفات التي تكتبها SaveAsWithAssociateFiles لأنها تضيف مدخلات /AF فقط. أما معظم منتجي PDF/A-3، بما في ذلك أدوات Factur-X و ZUGFeRD، فيسجلون كل ملف مرافق في الموضعين، لذا تُدرَج تلك الملفات كالمعتاد

Remarks

Example

var I: Integer;
var Data: TBytes;
for I := 0 to Pdf1.AttachmentCount - 1 do
begin
  Data := Pdf1.Attachment[I];
  TFile.WriteAllBytes(Pdf1.AttachmentName[I], Data);
end;

See Also

Attachment, AttachmentName, AttachmentType, AnnotationCount