Génération de 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. PHP propose plusieurs bibliothèques matures qui permettent de générer des PDF à partir de HTML, de données dynamiques ou directement via le dessin. Dans cet article, nous examinerons quatre bibliothèques principales : TCPDF, FPDF, Dompdf et mPDF, leurs caractéristiques, des exemples d'utilisation et des recommandations pour le choix sur un site éducatif.
1. TCPDF — le standard industriel
TCPDF est l'une des bibliothèques les plus puissantes pour la génération de PDF en PHP. Elle prend en charge Unicode, les polices TrueType, OpenType, la protection par mot de passe, les filigranes, les codes QR et bien plus encore. Idéale pour créer des rapports complexes, des factures, des certificats.
Installation : via Composer : composer require tecnickcom/tcpdf
Exemple de création d'un PDF simple :
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetCreator('PythonLib.ru');$pdf->SetAuthor('Auteur');$pdf->SetTitle('Exemple TCPDF');$pdf->SetSubject('Génération PDF');
$pdf->AddPage();$pdf->SetFont('dejavusans', '', 14);$pdf->Cell(0, 10, 'Bonjour le monde ! Ceci est un PDF depuis TCPDF.', 0, 1);
$pdf->Output('example_tcpdf.pdf', 'I');?>2. FPDF — léger et rapide
FPDF est une bibliothèque classique pour les documents PDF simples. Elle ne nécessite pas l'installation d'extensions supplémentaires et est très simple à apprendre. Convient pour créer des tableaux, des rapports simples, des factures.
Installation : télécharger depuis fpdf.org ou via Composer : composer require setasign/fpdf
Exemple avec un tableau :
<?phprequire_once __DIR__ . '/vendor/autoload.php';
$pdf = new FPDF();$pdf->AddPage();$pdf->SetFont('Arial', 'B', 12);
// En-têtes du tableau$pdf->Cell(40, 10, 'Prénom', 1);$pdf->Cell(40, 10, 'Nom', 1);$pdf->Cell(40, 10, 'Âge', 1);$pdf->Ln();
$pdf->SetFont('Arial', '', 10);$pdf->Cell(40, 10, 'Ivan', 1);$pdf->Cell(40, 10, 'Petrov', 1);$pdf->Cell(40, 10, '25', 1);
$pdf->Output('example_fpdf.pdf', 'I');?>3. Dompdf — du HTML au PDF
Dompdf permet de convertir du HTML+CSS en PDF. C'est pratique si vous avez déjà une mise en page de pages (par exemple, une facture ou un article). Il prend en charge CSS 2.1 et partiellement CSS 3, les polices, les images.
Installation : composer require dompdf/dompdf
Exemple de conversion HTML :
<?phprequire_once __DIR__ . '/vendor/autoload.php';
use Dompdf\\Dompdf;
$dompdf = new Dompdf();$html = '<h1 style="color: #3498db;">Titre du PDF</h1><p>Ce document a été créé à partir de HTML avec Dompdf.</p><table border="1" cellpadding="5"> <tr><th>Colonne 1</th><th>Colonne 2</th></tr> <tr><td>Données 1</td><td>Données 2</td></tr></table>';
$dompdf->loadHtml($html);$dompdf->setPaper('A4', 'portrait');$dompdf->render();$dompdf->stream('example_dompdf.pdf', ['Attachment' => 0]);?>4. mPDF — puissant convertisseur HTML
mPDF est une autre bibliothèque pour la conversion de HTML en PDF. Elle prend mieux en charge CSS, Unicode, les polices orientales, la création de tables des matières, d'en-têtes et de pieds de page que Dompdf. Idéale pour les livres, les magazines, les documents complexes.
Installation : composer require mpdf/mpdf
Exemple avec en-têtes et pieds de page :
<? Aussi dans la bibliothèque
Parsing HTML en C# (.NET) : aperçu des bibliothèques et exemples de code
Travailler avec les archives ZIP en Go (Golang) : création, lecture et extraction de fichiers
config Rust : guide complet avec exemples pratiques