وثائق PDFiumPas

Attachment الخاصية

يحافظ إدخال API هذا على المعرّفات والتواقيع وكتل الكود ومصطلحات PDF بصيغتها الأصلية.
المكون: TPdf  ·  الوحدة: PDFium
يقرأ أو يستبدل الحمولة الخام بالبايتات للملف المضمَّن على مستوى المستند عند الفهرس الصفري المحدد. يقابل كل موضع مدخلا واحدا في شجرة الأسماء EmbeddedFiles في PDF، كما هي معرفة في القسم 7.11 من مواصفة PDF 1.7

الصياغة

property Attachment[Index: Integer]: TBytes;

الوصف

يمكن لمستندات PDF أن تحمل ملفات مساعدة عشوائية، مثل جداول البيانات المصدرية أو مستندات Word الأصلية أو الفواتير المرفقة أو حمولات XML الموقعة أو حِزم ZIP أو حتى ملفات PDF أخرى، داخل حاوية على مستوى المستند تسمى شجرة الأسماء EmbeddedFiles. كل مدخل هو قاموس مواصفات ملف PDF يحمل تدفقه البايتات الفعلية للملف المرفق. يعرض PDFiumPas هذه الشجرة كفهرس صفري مسطح من 0 إلى AttachmentCount - 1

تعيد قراءة Attachment[Index] المحتوى البايتـي المفكوك للملف المرفق على شكل مصفوفة TBytes، أي البايتات نفسها التي سيستخرجها أي قارئ PDF آخر عندما ينقر المستخدم أيقونة مشبك الورق ويحفظ المرفق. البايتات المعادة مفكوكة الضغط بالفعل؛ ويمكنك كتابتها مباشرة إلى القرص أو دفعها إلى تدفق أو تمريرها إلى مثيل TPdf آخر إذا كان المرفق نفسه ملف PDF

الكتابة تستبدل تدفق الملف للموضع المرفق الموجود في مكانه. يجب أن يكون الموضع موجودا مسبقا؛ فاستخدم CreateAttachment أولا إذا كنت تحتاج إلى إضافة مدخل جديد. تُخزَّن الكتابات مؤقتا في الذاكرة ولا تصبح دائمة إلا بعد حفظ المستند باستخدام SaveAs

المعلمات

IndexInteger. الموضع الصفري في شجرة الأسماء EmbeddedFiles. يجب أن يحقق 0 <= Index < AttachmentCount. تتطابق الفهارس مع تلك التي تعيدها AttachmentName وAttachmentType، لذا فإن التكرار على 0..AttachmentCount - 1 يزور كل مرفق مرة واحدة فقط

ملاحظات

مثال

var
  I: Integer;
  Data: TBytes;
  OutPath: string;
begin
  Pdf1.LoadFromFile('with-attachments.pdf');
  for I := 0 to Pdf1.AttachmentCount - 1 do
  begin
    Data := Pdf1.Attachment[I];
    OutPath := 'extracted\' + Pdf1.AttachmentName[I];
    TFile.WriteAllBytes(OutPath, Data);
    Memo1.Lines.Add(Format('%s (%s, %d bytes)',
      [Pdf1.AttachmentName[I], Pdf1.AttachmentType[I], Length(Data)]));
  end;
end;

انظر أيضا

AttachmentCount, AttachmentName, AttachmentType, CreateAttachment, DeleteAttachment