توليد تقارير PDF باستخدام PHP: اختيار المكتبة
إنشاء مستندات PDF هو أحد أكثر المهام شيوعًا في تطوير الويب. الفواتير، العقود، التقارير الإحصائية، قوائم الأسعار - كل هذه غالبًا ما تحتاج إلى إنشائها ديناميكيًا على جانب الخادم. تقدم PHP عدة مكتبات ناضجة لتوليد PDF. في هذه المقالة، سنستعرض ثلاث أدوات شائعة: FPDF، TCPDF و Dompdf، وسنقدم أمثلة عملية على الكود.
1. FPDF — كلاسيكية خفيفة وسريعة
FPDF هي مكتبة بسيطة لا تتطلب تبعيات خارجية. إنها مثالية للتقارير الأساسية: النصوص، الجداول، الصور البسيطة. الميزات الرئيسية:
- تعمل دون الحاجة إلى تثبيت إضافات إضافية (باستثناء GD القياسي للصور).
- تدعم UTF-8 من خلال إضافة منفصلة (tFPDF) أو تحويل الخطوط يدويًا.
- أداء ممتاز على المستندات البسيطة.
مثال لإنشاء تقرير PDF بسيط مع جدول:
<?phprequire('fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'تقرير المبيعات', 0, 1);$pdf->SetFont('Arial', '', 12);
// رؤوس الجدول$pdf->Cell(40, 10, 'المنتج', 1);$pdf->Cell(30, 10, 'الكمية', 1);$pdf->Cell(40, 10, 'السعر', 1);$pdf->Ln();
// البيانات$pdf->Cell(40, 10, 'لابتوب', 1);$pdf->Cell(30, 10, '5', 1);$pdf->Cell(40, 10, '45000 روبل', 1);$pdf->Ln();$pdf->Cell(40, 10, 'فأرة', 1);$pdf->Cell(30, 10, '10', 1);$pdf->Cell(40, 10, '1200 روبل', 1);
$pdf->Output('D', 'report.pdf');?>2. TCPDF — أداة قوية للتقارير المعقدة
TCPDF هي نسخة مطورة من FPDF مع دعم UTF-8، CSS، وسوم HTML، رموز QR، التوقيعات الرقمية، وأكثر من ذلك بكثير. يوصى بها من أجل:
- المستندات التي تحتوي على السيريلية وخطوط غير لاتينية أخرى.
- التقارير ذات التنسيق المتداخل (رؤوس وتذييلات، جداول متعددة الصفحات).
- توليد PDF/A للأرشفة.
مثال لاستخدام ترميز HTML في TCPDF:
<?phprequire_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator('PythonLib');$pdf->SetAuthor('المطور');$pdf->SetTitle('تقرير معقد');
$pdf->AddPage();$html = '<h2>إحصائيات الشهر</h2><table border="1" cellpadding="5"><tr><th>المعامل</th><th>القيمة</th></tr><tr><td>الزوار</td><td>12,450</td></tr><tr><td>الطلبات</td><td>342</td></tr></table><p>تم إنشاؤه <strong>تلقائيًا</strong>.</p>';
$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('stat.pdf', 'I');?>3. Dompdf — التوليد من HTML/CSS
Dompdf هي مكتبة فريدة تقوم بعرض PDF من HTML وCSS عاديين. هذا هو الخيار المثالي إذا كان لديك بالفعل تنسيق التقرير (على سبيل المثال، للطباعة من المتصفح). تدعم:
- CSS 2.1 وجزئيًا CSS 3 (float, position, border-radius).
- تضمين الصور (base64 أو عبر URL).
- الجداول، القوائم، المستندات متعددة الصفحات.
مثال لتحويل قالب HTML إلى PDF:
<?phprequire 'vendor/autoload.php';
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<html><head>