Génération de rapports PDF en PHP : aperçu des bibliothèques et outils
La création de documents PDF est l'une des tâches courantes en développement web avec PHP. Qu'il s'agisse de générer des factures, des rapports, des certificats ou simplement d'exporter des données dans un format prêt à imprimer, PHP propose plusieurs solutions matures. Dans cet article, nous examinerons quatre bibliothèques principales : TCPDF, FPDF, Dompdf et mPDF. Vous découvrirez leurs caractéristiques, leurs points forts et obtiendrez des exemples de code pour chacune.
1. FPDF — un classique léger et rapide
FPDF est sans doute la bibliothèque la plus connue pour générer des PDF en PHP. Elle ne nécessite aucune extension externe, fonctionne « prête à l'emploi » et se distingue par sa grande vitesse. Son principal inconvénient est le support limité des styles CSS complexes et du HTML.
Exemple de création d'un rapport PDF simple avec un tableau :
<?phprequire_once('fpdf.php');
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 16);$pdf->Cell(40, 10, 'Rapport de ventes');$pdf->Ln(20);
$pdf->SetFont('Arial', '', 12);// En-têtes du tableau$pdf->Cell(60, 7, 'Produit', 1);$pdf->Cell(30, 7, 'Quantité', 1);$pdf->Cell(40, 7, 'Prix', 1);$pdf->Ln();
// Données$items = [ ['Ordinateur portable', 5, 45000], ['Souris', 10, 1200], ['Clavier', 7, 2500]];
foreach ($items as $item) { $pdf->Cell(60, 7, $item[0], 1); $pdf->Cell(30, 7, $item[1], 1); $pdf->Cell(40, 7, $item[2] . ' roubles', 1); $pdf->Ln();}
$pdf->Output();?>Quand l'utiliser : pour des rapports simples où une mise en page complexe n'est pas nécessaire, mais où la vitesse et la taille réduite du fichier sont importantes.
2. TCPDF — un outil puissant pour les PDF complexes
TCPDF est un fork de FPDF avec des fonctionnalités étendues. Il prend en charge Unicode, JPEG2000, les codes QR, SVG, ainsi que le travail avec HTML et CSS (de manière limitée). La bibliothèque est activement développée et utilisée dans des systèmes comme Drupal et Moodle.
Exemple de génération d'un rapport utilisant le balisage HTML :
<?phprequire_once('tcpdf/tcpdf.php');
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator(PDF_CREATOR);$pdf->SetAuthor('Votre entreprise');$pdf->SetTitle('Rapport mensuel');
$pdf->AddPage();$html = '<h2>Rapport mensuel</h2><table border="1" cellpadding="5"> <tr style="background-color:#cccccc;"> <th>Indicateur</th><th>Valeur</th> </tr> <tr> <td>Chiffre d'affaires</td><td>1 200 000 roubles</td> </tr> <tr> <td>Dépenses</td><td>850 000 roubles</td> </tr> <tr> <td>Bénéfice</td><td><strong>350 000 roubles</strong></td> </tr></table><p>Date de génération : ' . date('d.m.Y') . '</p>';
$pdf->writeHTML($html, true, false, true, false, '');$pdf->Output('report.pdf', 'I');?>Quand l'utiliser : pour des documents complexes avec des tableaux, des images, des polices non standard et la prise en charge du cyrillique.
3. Dompdf — transformer le HTML en PDF
Dompdf est une bibliothèque qui rend une page HTML en PDF. Elle prend en charge CSS2.1 et partiellement CSS3, ce qui permet de créer des rapports en utilisant une mise en page familière. Idéale pour convertir des modèles HTML existants.
Exemple de création d'un rapport à partir d'un modèle HTML :
<?phprequire_once 'dompdf/autoload.inc.php';use Dompdf\\Dompdf;
$dompdf = new Aussi dans la bibliothèque
Traitement Markdown en Swift pour iOS et macOS : bibliothèques et exemples
Travailler avec CSV en JavaScript (Node.js) : bibliothèques, parsing et génération de données
Validation des données en PHP : Guide complet des outils et bibliothèques
tsyringe pour TypeScript : guide complet avec exemples