تشير هذه الوثيقة إلى FPDI 2. تم إهمال الإصدار 1 وتوقف التطوير.
FPDI عبارة عن مجموعة من فئات PHP التي تسهل على المطورين قراءة الصفحات من مستندات PDF الموجودة واستخدامها كقوالب في FPDF، والتي تم تطويرها بواسطة Olivier Plathey. وبصرف النظر عن نسخة FPDF، لا يتطلب FPDI أي ملحقات PHP خاصة.
يمكن أيضًا استخدام FPDI كامتداد لـ TCPDF أو tFPDF أيضًا.
نظرًا لأنه يمكن استخدام FPDI مع FPDF، أو TCPDF، أو tFPDF، لم نقم بإضافة تبعية ثابتة في ملف Composer.json الرئيسي. تحتاج إلى إضافة التبعية إلى مكتبة إنشاء PDF التي تختارها بنفسك.
لاستخدام FPDI مع FPDF، قم بتضمين ما يلي في ملف Composer.json الخاص بك:
{"require": {"setasign/fpdf": "1.8.*"،"setasign/fpdi": "^2.5"} }
إذا كنت تريد استخدام TCPDF، فيجب عليك تحديث Composer.json الخاص بك إلى:
{"يتطلب": {"tecnickcom/tcpdf": "6.6.*"،"setasign/fpdi": "^2.5"} }
إذا كنت تريد استخدام tFPDF، فيجب عليك تحديث Composer.json الخاص بك إلى:
{"require": {"setasign/tfpdf": "1.33.*"،"setasign/fpdi": "^2.3"} }
إذا كنت لا تستخدم الملحن، فما عليك سوى طلب ملف autoload.php في المجلد /src:
require_once('src/autoload.php');
إذا كان لديك برنامج التحميل التلقائي PSR-4، فما عليك سوى تسجيل مسار src كما يلي:
$loader = new examplePsr4AutoloaderClass;$loader->register();$loader->addNamespace('setasignFpdi', 'path/to/src/');
الإصدار 2 عبارة عن إعادة كتابة كاملة لـ FPDI من البداية والتي تأتي مع:
رمز مسافة الاسم
قاعدة وأسلوب كود نظيف وحديث
التحميل التلقائي المتوافق مع PSR-4
تحسينات في الأداء بنسبة تصل إلى 100%
استهلاك أقل للذاكرة
دعم أصلي لقراءة ملفات PDF من السلاسل أو موارد التدفق
دعم المستندات التي تحتوي على بيانات "غير صالحة" قبل رأس الملف
الأمثل لحل شجرة الصفحة
استخدام الاستثناءات الفردية
عدة أنواع من الاختبارات (اختبارات الوحدة والوظيفية والبصرية)
لقد حاولنا الحفاظ على الأساليب الرئيسية وسير العمل المنطقي كما هو الحال في الإصدار 1 ولكن يرجى ملاحظة وجود تغييرات غير متوافقة والتي يجب عليك مراعاتها عند التحديث إلى الإصدار 2:
تحتاج إلى تحميل الكود باستخدام ملف src/autoload.php
بدلاً من classes/FPDI.php
.
أصبحت الفئات والسمات ذات مساحة اسمية الآن: setasignFpdi
حدود الصفحة التي تبدأ بشرطة مائلة، مثل /MediaBox
، لم تعد مدعومة بعد الآن. قم بإزالة الشرطة المائلة أو استخدم ثابت PdfReaderPageBoundaries
.
تحتوي المعلمات $x و$y و$width و$height الخاصة بالطريقة useTemplate()
أو getTemplateSize()
على قيم افتراضية صحيحة أكثر منطقية الآن. سيؤدي تمرير 0
كعرض أو ارتفاع إلى ظهور InvalidArgumentException
الآن.
تم تغيير القيمة المرجعة لـ getTemplateSize()
إلى مصفوفة تحتوي على المزيد من المفاتيح الناطقة وقابلية إعادة الاستخدام: استخدم width
بدلاً من w
و height
بدلاً من h
.
إذا كنت تريد استخدام FPDI مع TCPDF، فأنت بحاجة إلى إعادة بناء التعليمات البرمجية الخاصة بك لاستخدام الفئة TcpdfFpdi
(منذ 2.1؛ قبل أن تكون TcpdfFpdi
) بدلاً من FPDI
.
مثال بسيط، يقوم باستيراد صفحة واحدة ووضعها في صفحة جديدة تم إنشاؤها:
AddPage();// تعيين الملف المصدر$pdf->setSourceFile("Fantastic-Speaker.pdf");// استيراد الصفحة 1$tplId = $pdf->importPage(1);// use الصفحة المستوردة ووضعها عند النقطة 10,10 بعرض 100 ملم$pdf->useTemplate($tplId, 10, 10, 100);$pdf->Output();
تتوفر هنا وثائق المستخدم النهائي الكاملة ومرجع واجهة برمجة التطبيقات (API).