توليد PDF في PHP: أفضل المكتبات وأمثلة الكود

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

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

ابدأ الدورة

توليد PDF في PHP: مراجعة المكتبات وأمثلة عملية



إنشاء مستندات PDF من المهام الشائعة في تطوير الويب. من الفواتير والتقارير إلى الشهادات والكتب، يظل PDF تنسيقًا عالميًا لتبادل المستندات. في PHP، توجد عدة مكتبات قوية تسمح بتوليد PDF من HTML أو برمجيًا. في هذه المقالة، سنستعرض أربع أدوات شائعة: TCPDF وFPDF وDompdf وmPDF.



1. FPDF — كلاسيكي خفيف وسريع



FPDF هي واحدة من أقدم وأبسط المكتبات. لا تتطلب تثبيت إضافات إضافية (باستثناء GD). الميزة الرئيسية هي البساطة والسرعة. تعمل FPDF مباشرة مع الإحداثيات، مما يمنح تحكمًا كاملاً في موقع العناصر.



مثال لإنشاء PDF بسيط:

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'مرحبًا بالعالم!');$pdf->Output();?>


الإيجابيات:

  • حجم صغير جدًا (حوالي 100 كيلوبايت)
  • لا يتطلب تبعيات خارجية
  • دعم UTF-8 عبر خطوط منفصلة


السلبيات:

  • عمل معقد مع HTML
  • دعم محدود لـ CSS


2. TCPDF — قوي ووظيفي



TCPDF هي نسخة مطورة من FPDF مع دعم UTF-8 وHTML وCSS والصور ورموز QR والتوقيعات الرقمية وغيرها الكثير. إنه الخيار القياسي للمستندات المعقدة.



مثال مع HTML:

<?phprequire_once('tcpdf/tcpdf.php');

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->AddPage();$pdf->writeHTML('<h1>عنوان</h1><p>هذه فقرة تحتوي على نص <b>عريض</b>.</p>');$pdf->Output('example.pdf', 'I');?>


الميزات:

  • دعم كامل لـ Unicode و RTL (العربية، العبرية)
  • خطوط مدمجة (DejaVu، FreeSerif)
  • دعم SVG وJavaScript والنماذج


3. Dompdf — التوليد من HTML/CSS



Dompdf يحول HTML وCSS إلى PDF. هذا هو الخيار المثالي إذا كان لديك بالفعل تخطيط صفحة أو قالب. يدعم Dompdf معظم خصائص CSS، ولكن ليس كلها (على سبيل المثال، Flexbox و Grid قد لا يعملان بشكل صحيح).



مثال:

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h2 style="color:red;">عنوان أحمر</h2><p>نص مع هوامش.</p>';$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream("document.pdf");?>


الإيجابيات:

  • بساطة: تكتب HTML، تحصل على PDF
  • دعم جيد للجداول والصور


السلبيات:

  • يتطلب PHP 7.1+ وإضافات mbstring، dom
  • تخطيطات CSS المعقدة قد تتعطل


4. mPDF — نهج هجين



mPDF هي مكتبة تجمع بين إمكانيات TCPDF و Dompdf. تعمل بشكل ممتاز مع HTML وCSS، وتدعم Unicode والجداول والرؤوس والتذييلات والعلامات المائية. mPDF جيدة بشكل خاص لإنشاء الكتب والمجلات.



مثال مع CSS:

<?phprequire_once __DIR__ . '/vendor/autoload.php';

$mpdf = new \\Mpdf\\Mpdf();$html = '<div style="border:1px solid #000; padding:10px;">محتوى الكتلة</div>';$mpdf->WriteHTML($html);$mpdf->Output('output.pdf', 'I');?>


المزايا:

  • دعم ممتاز لـ CSS 2.1 وجزئيًا CSS3
  • <

توصيات