Génération de PDF en PHP : meilleures bibliothèques et exemples de code

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Génération de PDF en PHP : aperçu des bibliothèques et exemples pratiques



La création de documents PDF est l'une des tâches fréquentes en développement web. Des factures et rapports aux certificats et livres, le PDF reste un format universel pour l'échange de documents. En PHP, il existe plusieurs bibliothèques puissantes qui permettent de générer des PDF à partir de HTML ou par programmation. Dans cet article, nous analyserons quatre outils populaires : TCPDF, FPDF, Dompdf et mPDF.



1. FPDF — un classique léger et rapide



FPDF est l'une des bibliothèques les plus anciennes et les plus simples. Elle ne nécessite pas l'installation d'extensions supplémentaires (sauf GD). Son principal avantage est le minimalisme et la rapidité. FPDF travaille directement avec les coordonnées, ce qui offre un contrôle total sur le positionnement des éléments.



Exemple de création d'un PDF simple :

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Bonjour le monde !');$pdf->Output();?>


Avantages :

  • Taille très réduite (environ 100 Ko)
  • Aucune dépendance externe requise
  • Support UTF-8 via des polices séparées


Inconvénients :

  • Travail complexe avec HTML
  • Support CSS limité


2. TCPDF — puissant et fonctionnel



TCPDF est une version étendue de FPDF avec le support UTF-8, HTML, CSS, images, codes QR, signatures numériques et bien plus encore. C'est le choix standard pour les documents complexes.



Exemple avec 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>Titre</h1><p>Ceci est un paragraphe avec du texte en <b>gras</b>.</p>');$pdf->Output('example.pdf', 'I');?>


Caractéristiques :

  • Support complet d'Unicode et RTL (arabe, hébreu)
  • Polices intégrées (DejaVu, FreeSerif)
  • Support SVG, JavaScript, formulaires


3. Dompdf — génération à partir de HTML/CSS



Dompdf convertit HTML et CSS en PDF. C'est le choix idéal si vous avez déjà une mise en page ou un modèle de page. Dompdf prend en charge la plupart des propriétés CSS, mais pas toutes (par exemple, Flexbox et Grid peuvent fonctionner incorrectement).



Exemple :

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<h2 style="color:red;">Titre rouge</h2><p>Texte avec marges.</p>';$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream("document.pdf");?>


Avantages :

  • Simplicité : écrivez du HTML, obtenez un PDF
  • Bon support des tableaux et des images


Inconvénients :

  • Nécessite PHP 7.1+ et les extensions mbstring, dom
  • Les mises en page CSS complexes peuvent se casser


4. mPDF — approche hybride



mPDF est une bibliothèque qui combine les capacités de TCPDF et Dompdf. Elle fonctionne très bien avec HTML et CSS, supporte Unicode, les tableaux, les en-têtes et pieds de page, les filigranes. mPDF est particulièrement adapté à la création de livres et de magazines.



Exemple avec CSS :

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

$mpdf = new \\Mpdf\\Mpdf();$html = '<div style="border:1px solid #000; padding:10px;">Contenu du bloc</div>';$mpdf->WriteHTML($html);$mpdf->Output('output.pdf', 'I');?>


Avantages :

  • Excellent support CSS 2.1 et partiellement CSS3
  • <

Recommendations