Génération de PDF en PHP : aperçu des 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 complet des outils et bibliothèques



La génération de documents PDF côté serveur est l'une des tâches courantes en développement web. Des factures et rapports aux certificats et livres, le format PDF reste la norme pour la gestion documentaire. En PHP, il existe plusieurs bibliothèques matures, chacune avec ses propres points forts. Dans cet article, nous examinerons quatre outils principaux : FPDF, TCPDF, Dompdf et mPDF, avec des exemples de code pour vous aider à choisir la solution adaptée à votre projet.



1. FPDF — une bibliothèque légère et rapide

FPDF est l'une des bibliothèques les plus anciennes et les plus populaires pour la génération de PDF en PHP. Elle ne nécessite aucune dépendance externe, fonctionne rapidement et est idéale pour les documents simples : bons de livraison, reçus, actes.



Installation

composer require setasign/fpdf


Exemple : un PDF simple avec texte et image

<?phprequire_once 'vendor/autoload.php';

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


FPDF prend en charge :

  • Le travail avec différentes polices (TrueType, Type1)
  • La création de tableaux, de cellules multilignes
  • L'insertion d'images (JPEG, PNG, GIF)
  • La numérotation des pages, les en-têtes et pieds de page

Inconvénient : prise en charge limitée du HTML et du CSS — tous les éléments doivent être créés par programmation.



2. TCPDF — un outil puissant pour les documents complexes

TCPDF est une version améliorée de FPDF qui ajoute la prise en charge d'Unicode, des balises HTML, du SVG, des signatures numériques, des codes QR et bien plus encore. Idéal pour créer des factures, certificats, rapports avec tableaux.



Installation

composer require tecnickcom/tcpdf


Exemple : PDF avec contenu HTML et tableau

<?phprequire_once 'vendor/autoload.php';

$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->AddPage();$html = '<h1>Titre</h1><table border="1"><tr><td>Cellule 1</td><td>Cellule 2</td></tr></table>';$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('example.pdf', 'I');?>


Fonctionnalités clés de TCPDF :

  • Prise en charge complète d'Unicode (UTF-8) et du cyrillique
  • Modèles intégrés, numérotation des pages
  • Graphiques vectoriels (SVG, formulaires PDF)
  • Signatures numériques, chiffrement
  • Prise en charge de JavaScript dans les PDF


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

Dompdf permet de créer des PDF à partir de balisage HTML, en traitant le CSS (y compris Flexbox, Grid, les media queries). Idéal si vous avez déjà des modèles web ou si vous souhaitez transformer rapidement une page HTML en PDF.



Installation

composer require dompdf/dompdf


Exemple : PDF à partir d'une chaîne HTML

<?phpuse Dompdf\\Dompdf;

require_once 'vendor/autoload.php';

$dompdf = new Dompdf();$html = '<h2 style="color:blue;">Bonjour de Dompdf !</h2><p>Ceci est un PDF généré à partir de HTML.</p>';$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream("document.pdf");?>


Caractéristiques de Dompdf :

  • Prise en charge de CSS 2.1 et partiellement CSS3
  • Travail avec images, polices (locales et Google Fonts)
  • Prise en charge intégrée du cyrillique avec les polices appropriées
  • Intégration simple avec les frameworks (Laravel, Symfony)

Important : pour les mises en page complexes avec JavaScript ou anima

Recommendations