توليد PDF في PHP: مراجعة المكتبات والأدوات
إنشاء مستندات PDF هي إحدى المهام الشائعة في تطوير الويب. تقدم PHP عدة مكتبات ناضجة تسمح بتوليد PDF من HTML، أو بيانات ديناميكية، أو مباشرة عبر الرسم. في هذه المقالة، سنستعرض أربع مكتبات رئيسية: TCPDF، FPDF، Dompdf و mPDF، وميزاتها، وأمثلة استخدامها، وتوصيات للاختيار للموقع التعليمي.
1. TCPDF — المعيار الصناعي
TCPDF هي واحدة من أقوى مكتبات توليد PDF في PHP. تدعم Unicode، وخطوط TrueType، وOpenType، والحماية بكلمة مرور، والعلامات المائية، ورموز QR، وغيرها الكثير. مثالية لإنشاء التقارير المعقدة، والفواتير، والشهادات.
التثبيت: عبر Composer: composer require tecnickcom/tcpdf
مثال لإنشاء PDF بسيط:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('PythonLib.ru');$pdf->SetAuthor('المؤلف');$pdf->SetTitle('مثال TCPDF');$pdf->SetSubject('توليد PDF');
$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, 'مرحباً بالعالم! هذا PDF من TCPDF.', 0, 1);
$pdf->Output('example_tcpdf.pdf', 'I');?>2. FPDF — خفيفة وسريعة
FPDF هي مكتبة كلاسيكية لمستندات PDF البسيطة. لا تتطلب تثبيت إضافات إضافية، وسهلة جداً في التعلم. مناسبة لإنشاء الجداول، والتقارير البسيطة، والفواتير.
التثبيت: تحميل من fpdf.org أو عبر Composer: composer require setasign/fpdf
مثال مع جدول:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 12);
// رؤوس الجدول$pdf->Cell(40, 10, 'الاسم', 1);$pdf->Cell(40, 10, 'اللقب', 1);$pdf->Cell(40, 10, 'العمر', 1);$pdf->Ln();
$pdf->SetFont('Arial', '', 10);$pdf->Cell(40, 10, 'إيفان', 1);$pdf->Cell(40, 10, 'بيتروف', 1);$pdf->Cell(40, 10, '25', 1);
$pdf->Output('example_fpdf.pdf', 'I');?>3. Dompdf — من HTML إلى PDF
Dompdf يتيح تحويل HTML+CSS إلى PDF. هذا مفيد إذا كان لديك بالفعل تخطيط صفحات (مثل فاتورة أو مقال). يدعم CSS 2.1 وجزئياً CSS 3، والخطوط، والصور.
التثبيت: composer require dompdf/dompdf
مثال لتحويل HTML:
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<h1 style="color: #3498db;">عنوان PDF</h1><p>هذا المستند تم إنشاؤه من HTML باستخدام Dompdf.</p><table border="1" cellpadding="5"> <tr><th>العمود 1</th><th>العمود 2</th></tr> <tr><td>بيانات 1</td><td>بيانات 2</td></tr></table>';
$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('example_dompdf.pdf', ['Attachment' => 0]);?>4. mPDF — محول HTML قوي
mPDF هي مكتبة أخرى لتحويل HTML إلى PDF. تدعم CSS بشكل أفضل من Dompdf، وUnicode، والخطوط الشرقية، وإنشاء جدول المحتويات، والترويسة والتذييل. مناسبة تماماً للكتب، والمجلات، والمستندات المعقدة.
التثبيت: composer require mpdf/mpdf
مثال مع الترويسة والتذييل:
<?