توليد تقارير PDF باستخدام PHP: نظرة على المكتبات والأدوات
إنشاء مستندات PDF هي إحدى المهام الشائعة في تطوير الويب باستخدام PHP. سواء كان ذلك لإنشاء فواتير، تقارير، شهادات، أو مجرد تصدير البيانات إلى تنسيق مناسب للطباعة، تقدم PHP عدة حلول ناضجة. في هذه المقالة، سنستعرض أربع مكتبات رئيسية: TCPDF، FPDF، Dompdf و mPDF. ستتعرف على مميزاتها، نقاط قوتها، وستحصل على أمثلة كود لكل منها.
1. FPDF — الكلاسيكية الخفيفة والسريعة
FPDF هي أشهر مكتبة لتوليد PDF باستخدام PHP. لا تتطلب إضافات خارجية، تعمل "فوراً" وتتميز بالسرعة العالية. العيب الرئيسي هو الدعم المحدود لـ CSS المعقدة و HTML.
مثال لإنشاء تقرير PDF بسيط مع جدول:
<?phprequire_once('fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'تقرير المبيعات');$pdf->Ln(20);
$pdf->SetFont('Arial', '', 12);// رؤوس الجدول$pdf->Cell(60, 7, 'المنتج', 1);$pdf->Cell(30, 7, 'الكمية', 1);$pdf->Cell(40, 7, 'السعر', 1);$pdf->Ln();
// البيانات$items = [ ['لابتوب', 5, 45000], ['فأرة', 10, 1200], ['لوحة مفاتيح', 7, 2500]];
foreach ($items as $item) { $pdf->Cell(60, 7, $item[0], 1); $pdf->Cell(30, 7, $item[1], 1); $pdf->Cell(40, 7, $item[2] . ' روبل', 1); $pdf->Ln();}
$pdf->Output();?>متى تستخدم: للتقارير البسيطة التي لا تحتاج إلى تنسيق معقد، حيث تكون السرعة وصغر حجم الملف مهمين.
2. TCPDF — أداة قوية للـ PDF المعقدة
TCPDF هو فرع من FPDF مع إمكانيات موسعة. يدعم Unicode، JPEG2000، رموز QR، SVG، بالإضافة إلى العمل مع HTML و CSS (بشكل محدود). المكتبة قيد التطوير النشط وتستخدم في أنظمة مثل Drupal و Moodle.
مثال لتوليد تقرير باستخدام ترميز HTML:
<?phprequire_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator(PDF_CREATOR);$pdf->SetAuthor('شركتك');$pdf->SetTitle('التقرير الشهري');
$pdf->AddPage();$html = '<h2>التقرير الشهري</h2><table border="1" cellpadding="5"> <tr style="background-color:#cccccc;"> <th>المؤشر</th><th>القيمة</th> </tr> <tr> <td>الإيرادات</td><td>1,200,000 روبل</td> </tr> <tr> <td>المصروفات</td><td>850,000 روبل</td> </tr> <tr> <td>الأرباح</td><td><strong>350,000 روبل</strong></td> </tr></table><p>تاريخ الإنشاء: ' . date('d.m.Y') . '</p>';
$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('report.pdf', 'I');?>متى تستخدم: للمستندات المعقدة التي تحتوي على جداول، صور، خطوط غير قياسية ودعم للغة السيريلية.
3. Dompdf — تحويل HTML إلى PDF
Dompdf هي مكتبة تقوم بعرض صفحة HTML إلى PDF. تدعم CSS2.1 وجزئياً CSS3، مما يسمح بإنشاء تقارير باستخدام التنسيق المألوف. مثالية لتحويل قوالب HTML الجاهزة.
مثال لإنشاء تقرير من قالب HTML:
<?phprequire_once 'dompdf/autoload.inc.php';use Dompdf\\Dompdf;
$dompdf = new