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

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 rapports PDF en PHP : choisir une bibliothèque

La création de documents PDF est l'une des tâches les plus courantes dans le développement web. Factures, actes, rapports statistiques, listes de prix — tout cela doit souvent être généré dynamiquement côté serveur. PHP propose plusieurs bibliothèques matures pour la génération de PDF. Dans cet article, nous allons examiner trois outils les plus populaires : FPDF, TCPDF et Dompdf, et fournir des exemples pratiques de code.



1. FPDF — un classique léger et rapide

FPDF est une bibliothèque simple qui ne nécessite aucune dépendance externe. Elle est idéale pour les rapports de base : texte, tableaux, images simples. Principales caractéristiques :

  • Fonctionne sans installation d'extensions supplémentaires (sauf GD standard pour les images).
  • Prend en charge l'UTF-8 via un plugin séparé (tFPDF) ou une conversion manuelle des polices.
  • Excellente performance sur les documents simples.

Exemple de création d'un rapport PDF simple avec un tableau :

<?phprequire('fpdf.php');

$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Rapport de ventes', 0, 1);$pdf->SetFont('Arial', '', 12);

// En-têtes du tableau$pdf->Cell(40, 10, 'Produit', 1);$pdf->Cell(30, 10, 'Quantité', 1);$pdf->Cell(40, 10, 'Prix', 1);$pdf->Ln();

// Données$pdf->Cell(40, 10, 'Ordinateur portable', 1);$pdf->Cell(30, 10, '5', 1);$pdf->Cell(40, 10, '45000 RUB', 1);$pdf->Ln();$pdf->Cell(40, 10, 'Souris', 1);$pdf->Cell(30, 10, '10', 1);$pdf->Cell(40, 10, '1200 RUB', 1);

$pdf->Output('D', 'report.pdf');?>


2. TCPDF — un outil puissant pour les rapports complexes

TCPDF est une version étendue de FPDF avec prise en charge de l'UTF-8, du CSS, des balises HTML, des codes QR, des signatures numériques et bien plus encore. Recommandé pour :

  • Documents avec cyrillique et autres polices non latines.
  • Rapports avec mise en page complexe (en-têtes/pieds de page, tableaux multi-pages).
  • Génération de PDF/A pour l'archivage.

Exemple d'utilisation du balisage HTML dans 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('Développeur');$pdf->SetTitle('Rapport complexe');

$pdf->AddPage();$html = '<h2>Statistiques du mois</h2><table border="1" cellpadding="5"><tr><th>Paramètre</th><th>Valeur</th></tr><tr><td>Visiteurs</td><td>12 450</td></tr><tr><td>Commandes</td><td>342</td></tr></table><p>Généré <strong>automatiquement</strong>.</p>';

$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('stat.pdf', 'I');?>


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

Dompdf est une bibliothèque unique qui rend le PDF à partir de HTML et CSS standard. C'est le choix idéal si vous avez déjà une mise en page de rapport (par exemple, pour l'impression depuis un navigateur). Prend en charge :

  • CSS 2.1 et partiellement CSS 3 (float, position, border-radius).
  • Intégration d'images (base64 ou par URL).
  • Tableaux, listes, documents multi-pages.

Exemple de conversion d'un modèle HTML en PDF :

<?phprequire 'vendor/autoload.php';

use Dompdf\\Dompdf;

$dompdf = new Dompdf();$html = '<html><head>

Recommendations