تخطَّ إلى المحتوى

أدلة الترحيل

⁨NextPDF⁩ محرك لتنسيق المستندات المحمولة (⁨PDF⁩) 2.0 مخصَّص للغة ⁨PHP.⁩ إذا كنت تولِّد ملفات ⁨PDF⁩ بالفعل باستخدام مكتبة أخرى، فإن دليل الترحيل يربط واجهة برمجة التطبيقات (⁨API⁩) الخاصة بتلك المكتبة بـ ⁨NextPDF⁩ ويوثِّق الاختلافات السلوكية التي ستتعامل معها. يبيِّن هذا الفهرس عبر المستودعات الدليل الذي ينقلك من كل مكتبة، والمستودع المالك لكل دليل، والنموذج المشترك الذي يعتمده كل دليل.

لأن هذه الصفحة فهرس، فهي لا تقدِّم أي ادعاء سلوكي بشأن أي دليل. ينتمي كل دليل إلى مستودعه الخاص. يسحب المُجمِّع الدليل إلى هذا الموقع، وإلى أن يصل الدليل يشير رابطه إلى عنصر نائب. يوجد كل ادعاء سلوكي في الدليل نفسه، ويكون مدعومًا باختبار داخل المستودع أو ببند مثبَّت من ⁨ISO 32000-2⁩ / مجموعة عمل أوراق الأنماط المتتالية (⁨CSS WG⁩)، وليس هنا.

يستخدم كل دليل ترحيل في ⁨NextPDF⁩ النموذج الصادق نفسه. اقرأ كل دليل مع استحضار هذا النموذج:

  • متوافق مع، وليس مطابقًا على مستوى البايت. ⁨NextPDF⁩ والمكتبة التي تنتقل منها تطبيقان مستقلان. يحافظ المستند المُرحَّل على القصد الوظيفي، لا على التطابق على مستوى البكسل أو البايت. لا يدَّعي أي دليل أنه بديل جاهز للاستبدال المباشر أو أنه متوافق بنسبة 100%.
  • التغطية عدد مقيس، وليست تأكيدًا. عندما يذكر دليل رقم تغطية، مثل رقم محوِّل ⁨TCPDF⁩، فهذا الرقم مقياس اكتمال وظيفي مستمد من مصفوفة داخل المستودع، بالمعنى الوارد في البند 43 من ⁨ISO/IEC 25023.⁩ إنه عدد مقيس للدوال المغطاة، وليس ضمانًا شاملًا.
  • يذكر كل دليل اختلافاته السلوكية بصراحة. يتضمن كل دليل جدول اختلافات واضحًا وقسمًا بعنوان “غير مدعوم / لا يوجد مكافئ مباشر”. الاختلاف خاصية موثَّقة للمحرك، وليس عيبًا.
  • تغيير محرك العرض يتطلب إعادة مراجعة. يغيِّر الترحيل الشيفرة ويتطلب خط أساس جديدًا للمخرجات. يصف كل دليل كيفية اختبار الترحيل؛ أما القبول البصري فيجري لكل مستند على حدة، ويظل مسؤولية القائم بالدمج.

تنقسم الأدلة إلى نمطين. يوضح كل نمط مقدار ما سيتغير في الشيفرة.

  • عمليات الترحيل بإعادة كتابة ⁨API⁩ لا تملك طبقة توافق وسيطة: أعد كتابة كل موضع استدعاء باستخدام ربط الأفعال وخريطة الخيارات في الدليل. تستخدم عمليات ترحيل مكتبات لغة ترميز النص التشعبي (⁨HTML⁩) إلى ⁨PDF⁩ (dompdf، mpdf) هذا النمط؛ فهي تستهدف خط معالجة ⁨Html⁩ في ⁨NextPDF⁩ مباشرةً.
  • عمليات الترحيل بالاستبدال المباشر ثم الترحيل تأتي مع محوِّل شبه متوافق مع المصدر، بحيث تكون النقلة الأولية مجرد تبديل محدود للتبعيات. ومن هناك انقل مواضع الاستدعاء إلى الـ ⁨API⁩ الحديثة تدريجيًا، ثم تخلَّص من المحوِّل. يستخدم ترحيل ⁨TCPDF⁩ هذا النمط، عبر محوِّل nextpdf/compat-legacy.

مرجع الأدلة والمستودع المالك

قسم بعنوان «مرجع الأدلة والمستودع المالك»

يوجد كل دليل أدناه داخل docs/public/ في المستودع المالك، ويسحبه المُجمِّع إلى هذا الموقع. المستودع المالك هو المرجع المعتمد للادعاءات السلوكية في ذلك الدليل؛ أما هذا الفهرس فيسجِّل التوجيه فقط.

منالدليلالنمطالمستودع المالكالصفحة
⁨Dompdf⁩⁨Dompdf⁩ → خط معالجة ⁨Html⁩ في ⁨NextPDF⁩إعادة كتابة ⁨API⁩nextpdf (النواة)دليل ⁨Dompdf⁩ باسم dompdf (مخطَّط له في المصدر الأصلي)
⁨mPDF⁩⁨mPDF⁩ → نواة ⁨NextPDF⁩إعادة كتابة ⁨API⁩nextpdf (النواة)دليل ⁨mPDF⁩ باسم mpdf (مخطَّط له في المصدر الأصلي)
⁨TCPDF 6.x⁩⁨TCPDF⁩ → ⁨NextPDF⁩ عبر محوِّل ⁨compat-legacy⁩الاستبدال المباشر ثم الترحيلمستودع nextpdf-compat-tcpdf، الحزمة nextpdf/compat-legacyدليل ⁨TCPDF⁩ باسم tcpdf-compat (مخطَّط له في المصدر الأصلي)

يوجد دليلا dompdf وmpdf في مستودع النواة لأنهما يستهدفان واجهات ⁨API⁩ لمحرك النواة، وتدعمهما أمثلة النواة في examples/. ويوجد دليل tcpdf-compat في مستودع ⁨compat-tcpdf⁩ لأن حزمة nextpdf/compat-legacy تملك السطح السلوكي لـ ⁨TCPDF⁩ واختبارات المحوِّل التي تدعم الدليل. هذا الفهرس أصلي في مستودع التوثيق لأنه يمتد عبر المستودعات، ولا يقدِّم أي ادعاء سلوكي بشأن أي دليل بمفرده.

  • ⁨Dompdf⁩ → ⁨NextPDF⁩ (dompdf (مخطَّط له في المصدر الأصلي)) — لقواعد الشيفرة التي تستخدم dompdf/dompdf من جانب الخادم. يربط loadHtml/render/output ومفاتيح Options بخط معالجة ⁨Html⁩ في ⁨NextPDF⁩، ويحيل توقعات خصائص ⁨CSS⁩ إلى مصفوفة دعم ⁨CSS⁩ المقتصرة على ما تم التحقق منه. لا توجد طبقة توافق وسيطة لفئة ⁨Dompdf⁩؛ أعد كتابة كل موضع استدعاء.
  • ⁨mPDF⁩ → ⁨NextPDF⁩ (mpdf (مخطَّط له في المصدر الأصلي)) — لقواعد الشيفرة التي تستخدم mpdf/mpdf. يربط WriteHTML/Output/AddPage ومصفوفة إعدادات المُنشئ بالـ ⁨API⁩ الخاصة بالنواة، مع اختلاف واحد في معالجة الخطوط: يحل ⁨NextPDF⁩ الخطوط عبر دليل خطوط واحد بالإضافة إلى مطابقة ⁨CSS⁩، ويُجزِّئ الخطوط دائمًا. لا توجد طبقة توافق وسيطة لفئة ⁨Mpdf.⁩
  • ⁨TCPDF⁩ → ⁨NextPDF⁩ (⁨compat-legacy⁩) (tcpdf-compat (مخطَّط له في المصدر الأصلي)) — لقواعد شيفرة ⁨TCPDF 6.x⁩ التي تريد أصغر تغيير أولي. ثبِّت المحوِّل، ودقِّق سطحك الفعلي بالوضع الصارم في مقابل مصفوفة التغطية داخل المستودع، ورحِّل مواضع الاستدعاء بعيدًا عن المحوِّل، ثم أضِف فوق ذلك بنية موسومة وفق ⁨PDF/⁩إمكانية الوصول الشامل (⁨PDF/UA-2⁩)، وهي قدرة لم يمتلكها ⁨TCPDF⁩ قط. المحوِّل سقالة، وليس الوجهة النهائية، وليس ضمانًا للاستبدال المباشر.

يشير كل عنصر نائب [[…]] أعلاه إلى صفحة توجد في المستودع المالك ضمن docs/public/migration/، ويسحب المُجمِّع تلك الصفحة إلى هذا الموقع. تتبع مُعرِّفات الوجهة (⁨slugs⁩) اصطلاحًا واحدًا:

/migration/<source>/

الرمز <source> هو الاسم المختصر للمكتبة التي تُرحِّل منها: أحد dompdf أو mpdf أو tcpdf-compat، كما هو مدرَج في جدول مرجع الأدلة أعلاه. إلى أن تُجمَّع صفحة الوجهة، يظل رابطها عنصرًا نائبًا ولا يُحَل. لا يقدِّم هذا الفهرس أي ادعاء سلوكي بشأن أي دليل وجهة؛ بل يسجِّل التوجيه ونموذج الترحيل المشترك فقط.

  • مصفوفة دعم ⁨CSS⁩ — المرجع المعتمد والمقتصر على ما تم التحقق منه لتوقعات خصائص ⁨CSS⁩ في دليلَي dompdf وmpdf.
  • كتاب وصفات التكامل — فهرس حِزم تكامل المنظومة عبر المستودعات. يتناول شأنًا مختلفًا: توصيل المحرك، وليس الترحيل إليه.