Skip to content
Gérits Aurélien edited this page Feb 18, 2026 · 2 revisions

PdfTool est un wrapper optimisé pour dompdf v3. Son rôle unique est de convertir un flux HTML/CSS en un document PDF. Bien qu'il soit souvent utilisé avec un moteur de template, il accepte n'importe quelle source de données HTML brute.

Namespace : Magepattern\Component\Tool\PdfTool

Exemples d'utilisation

  1. Utilisation avec du HTML brut (Variable) Parfait pour des documents simples ou générés dynamiquement sans fichiers externes.
use Magepattern\Component\Tool\PdfTool;

$html = "<h1>Rapport Express</h1><p>Généré le " . date('d/m/Y') . "</p>";

// Génération directe
PdfTool::generate($html, 'rapport-simple.pdf');
  1. Utilisation avec un moteur de template (ex: Smarty) Recommandé pour les documents à mise en page complexe (factures, diplômes).
use Magepattern\Component\Tool\SmartyTool;
use Magepattern\Component\Tool\PdfTool;

// On récupère le rendu du template sous forme de string
$html = SmartyTool::getInstance('admin')->fetch('pdf/invoice.tpl');

// On passe la string à PdfTool
PdfTool::generate($html, 'Facture-2026.pdf');

Gestion des ressources (Images & CSS) Comme dompdf s'exécute côté serveur, il ne peut pas deviner l'emplacement de vos fichiers s'ils sont renseignés en chemins relatifs.

Images : Utilisez des chemins absolus sur le disque.

HTML Pur : <img src="/var/www/html/public/img/logo.png">

Magepattern : <img src="<?= _DIR_ROOT ?>/public/img/logo.png">

CSS : Privilégiez l'inclusion des styles directement dans une balise <style> à l'intérieur de votre HTML pour éviter les requêtes de fichiers externes.

Signature de la méthode generate

Argument Type Par défaut Description
$html string - Le code HTML complet (obligatoire).
$filename string document.pdf' Nom du fichier pour l'utilisateur.
$stream bool TRUE true : Affiche dans le navigateur. false : Retourne le binaire.
$paper string A4' Format (A4, A5, Letter, etc.).
$orient string portrait' Orientation (portrait ou landscape).

Configuration & Sécurité

La classe PdfTool configure automatiquement l'environnement pour vous :

chroot : Défini sur la racine du projet pour autoriser la lecture sécurisée des images locales.

isRemoteEnabled : Activé pour supporter les images provenant d'URL distantes (via HTTP).

Font Cache : Les polices système sont mises en cache dans /var/pdf/fonts/ pour optimiser la vitesse de génération.

Cas d'usage : Récupérer le PDF pour un envoi Mail

Si vous ne voulez pas afficher le PDF mais l'envoyer en pièce jointe :

$pdfContent = PdfTool::generate($html, 'document.pdf', false);

// $pdfContent contient maintenant le binaire du PDF prêt à être utilisé
$mailer->sendWithAttachment($pdfContent);

Clone this wiki locally