Introduction à DomPDF : qu'est-ce que c'est et pourquoi l'utiliser
DomPDF est une bibliothèque PHP puissante et populaire conçue pour générer des documents PDF à partir de balises HTML. L'idée principale de cette bibliothèque est de permettre aux développeurs de créer des fichiers PDF en utilisant des technologies de développement web familières : HTML, CSS et JavaScript (de manière limitée). Au lieu d'apprendre des API complexes de bas niveau pour travailler avec les PDF (comme avec FPDF ou TCPDF), vous pouvez simplement écrire un modèle HTML, le styliser avec CSS et le transmettre à DomPDF pour conversion.
La bibliothèque utilise un moteur de rendu basé sur DOMPDF (d'où son nom), qui analyse le HTML et le CSS, crée une représentation visuelle de la page, puis l'exporte au format PDF. DomPDF prend en charge la plupart des propriétés CSS standard, y compris le positionnement, le float, le flexbox (partiellement), la gestion des polices, des images et des tableaux.
Pourquoi utiliser cette bibliothèque ?
- Automatisation des rapports : Création de factures, de relevés, de bons de livraison, de devis à partir de données issues d'une base de données.
- Génération de certificats et diplômes : Export rapide de documents personnalisés avec des données uniques (nom, date, cours).
- Création de livres électroniques et manuels : Conversion de contenu HTML en PDF bien formaté pour le téléchargement.
- Sauvegarde de pages web : Fonctionnalité "Enregistrer au format PDF" pour tout contenu sur un site.
- Intégration avec les CMS : WordPress, Laravel, Symfony et d'autres frameworks utilisent activement DomPDF pour la génération de documents.
Le principal avantage de DomPDF par rapport à ses concurrents est sa simplicité d'utilisation. Si vous connaissez HTML et CSS, vous savez déjà utiliser DomPDF à 80 %.
Installation de DomPDF
L'installation de DomPDF dans un projet PHP moderne se fait via le gestionnaire de dépendances Composer. C'est la méthode standard pour les bibliothèques PHP.
Assurez-vous d'avoir Composer installé. Exécutez ensuite la commande suivante à la racine de votre projet :
composer require dompdf/dompdf
Après une installation réussie, un dossier vendor apparaîtra dans votre projet, et une ligne de dépendance sera ajoutée au fichier composer.json. Si vous utilisez un framework (Laravel, Symfony), l'installation peut légèrement différer (par exemple via des fournisseurs de services), mais la commande de base reste la même.
Important : DomPDF nécessite PHP version 7.1 ou supérieure. Il est également recommandé d'installer l'extension PHP mbstring pour un fonctionnement correct avec les encodages multioctets (UTF-8).
Pour vérifier l'installation, créez un fichier test.php et ajoutez-y le code suivant :
<?php
require_once 'vendor/autoload.php'; // Charge l'autoloader de Composer
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>Hello World</h1>');
$dompdf->render();
$dompdf->stream("test.pdf");
?>
Si, en ouvrant le fichier dans votre navigateur, vous téléchargez un PDF avec le texte "Hello World", l'installation a réussi.
Démarrage rapide : votre premier document PDF
Créons un exemple simple mais complet. Nous allons générer un fichier PDF avec un tableau et des styles.
<?php
require_once 'vendor/autoload.php';
use Dompdf\Dompdf;
use Dompdf\Options;
// 1. Configuration des options (facultatif)
$options = new Options();
$options->set('defaultFont', 'DejaVu Sans'); // Police avec support des caractères accentués
$options->set('isRemoteEnabled', true); // Autoriser le chargement d'images externes
// 2. Création d'une instance Dompdf
$dompdf = new Dompdf($options);
// 3. Contenu HTML
$html = '
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: DejaVu Sans, sans-serif; }
h1 { color: #2c3e50; text-align: center; }
tabl