كيفية العمل مع مرفقات PDF في TypeScript
يوضح هذا الدليل كيفية التعامل مع مرفقات الملفات في مستندات PDF باستخدام Aspose.PDF FOSS لـ TypeScript. يقوم Document.AddAttachment() بإدراج ملف على مستوى المستند؛ يضع Page.AddFileAttachment() تعليقة على شكل مشبك ورق قابلة للنقر على الصفحة تفتح الملف المضمن. يتطلب Node.js 22 أو أحدث.
دليل خطوة بخطوة
الخطوة 1: تثبيت الحزمة
git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run buildتحقق من التثبيت عن طريق استيراد الفئة Document في ملف TypeScript جديد — يجب أن يتم حل هذا السطر دون خطأ بمجرد تثبيت الحزمة:
import { Document } from '@asposefoss/pdf';الخطوة 2: استيراد الفئات المطلوبة
استيراد Document لفتح الملف والوصول إلى نقطتي إدخال المرفقات المستخدمة أدناه:
import { Document } from '@asposefoss/pdf';الخطوة 3: فتح المستند الهدف
كلا طريقتي المرفق تُستدعاان على Document المفتوح — مرفقات المستوى Page تحتاج أيضًا إلى الهدف Page:
const doc = Document.OpenFile('input.pdf');
const page = doc.Pages[0];الخطوة 4: تضمين مرفق على مستوى المستند
Document.AddAttachment(name, bytes, opts) -> Attachment يضمّن ملفًا في مجموعة الملفات المضمّنة للمستند، مع مفتاح name. Document.GetAttachments() -> Attachment[] يسرد كل ما تم تضمينه حاليًا، وDocument.RemoveAttachment(name) -> boolean يزيل واحدًا بالاسم.
الخطوة 5: إضافة تعليقة مرفق ملف على مستوى الصفحة
Page.AddFileAttachment(opts) -> FileAttachmentAnnotation يضع أيقونة قابلة للنقر على الصفحة — مشابهة لملاحظات الملاحظة اللاصقة والتعليقات النصية الحرة التي تم تغطيتها في التعليقات التوضيحية الدليل — الذي يفتحه المشاهد لحفظ أو معاينة الملف المضمّن. على عكس Document.AddAttachment()، يتم تثبيتها في موقع صفحة محدد بدلاً من أن تُدرج فقط في مجموعة ملفات المضمنة في المستند.
المشكلات الشائعة والإصلاحات
مرفق يتم إضافته باستخدام Document.AddAttachment() ليس له أيقونة مرئية على أي صفحة. هذا متوقع — المرفق على مستوى المستند يقع في مجموعة ملفات المضمنة، وليس على صفحة. استخدم Page.AddFileAttachment() إضافةً إلى ذلك إذا كان هناك حاجة لأيقونة قابلة للنقر على صفحة محددة.
Document.RemoveAttachment() returns false. يُعيد false عند عدم تسجيل أي مرفق تحت المعطى name — سرد المجموعة الحالية باستخدام Document.GetAttachments() أولاً لتأكيد الاسم الدقيق المستخدم.
تم تضمين مرفقين تحت نفس name. name in Document.AddAttachment() هو المفتاح المستخدم للبحث عن المرفق مرة أخرى باستخدام RemoveAttachment() — إعادة استخدام اسم لاستدعاء ثانٍ يمكن أن يحجب أو يتعارض مع الأول، اعتمادًا على كيفية حل المشاهد للتكرارات. استخدم اسمًا مميزًا لكل ملف مضمّن.
الأسئلة المتكررة
ما الفرق بين المرفق على مستوى الوثيقة والمرفق على مستوى الصفحة؟
المرفق على مستوى الوثيقة (Document.AddAttachment()) يُخزن في مجموعة embedded-files في ملف PDF ولا يرتبط بأي صفحة. المرفق على مستوى الصفحة (Page.AddFileAttachment()) هو توضيح (annotation) مثبت في موقع صفحة محدد، مشابه للملاحظة اللاصقة.
كيف يمكنني رؤية ما تم تضمينه حاليًا في وثيقة؟
استدعِ Document.GetAttachments()، والذي يُعيد كل Attachment المضمنة حاليًا.
هل يمكن إزالة مرفق بعد إضافته؟
نعم — Document.RemoveAttachment(name) يزيل مرفقًا على مستوى المستند بالاسم الذي أُضيف تحته، ويعيد true إذا وجد واحدًا وأزالَه.