توليد تقارير PDF باستخدام PHP: نظرة على المكتبات وأمثلة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

توليد تقارير 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>

توصيات