DomPdfService
in package
Enveloppe le moteur Dompdf pour produire des documents PDF à partir de HTML.
Utilisé pour les documents imprimables de l'application (factures, bons de commande, exports). L'instance Dompdf est créée une fois dans le constructeur et réutilisée : le service ne doit pas être considéré comme sans état, deux générations successives partageant le même moteur.
Table of Contents
Properties
- $domPdf : Dompdf
Methods
- __construct() : mixed
- Initialise le moteur Dompdf avec sa configuration par défaut.
- generateBinaryPdf() : void
- Rend le HTML en PDF et l'écrit directement sur la sortie standard.
- generatePdfFile() : Response
- Convertit du HTML en PDF et le renvoie dans une réponse HTTP affichée dans le navigateur.
Properties
$domPdf
private
Dompdf
$domPdf
Instance du moteur de rendu, partagée par toutes les générations.
Methods
__construct()
Initialise le moteur Dompdf avec sa configuration par défaut.
public
__construct() : mixed
Aucune dépendance n'est injectée : l'objet Dompdf est instancié directement.
generateBinaryPdf()
Rend le HTML en PDF et l'écrit directement sur la sortie standard.
public
generateBinaryPdf(string $html, string $filename) : void
Charge le HTML, effectue le rendu puis appelle Dompdf::stream() avec Attachment à 0, ce
qui pousse immédiatement les en-têtes et le corps du PDF vers le client pour un affichage
dans le navigateur, en court-circuitant la réponse Symfony.
Effets de bord : émission d'en-têtes HTTP et écriture sur la sortie ; le nom de fichier
transmis à stream() est une chaîne vide, le paramètre $filename n'étant pas utilisé.
Parameters
- $html : string
-
Document HTML complet à convertir.
- $filename : string
-
Paramètre conservé pour la signature mais ignoré par l'implémentation.
generatePdfFile()
Convertit du HTML en PDF et le renvoie dans une réponse HTTP affichée dans le navigateur.
public
generatePdfFile(string $html, string $filename) : Response
Charge le HTML, applique un format A4 portrait, effectue le rendu et retourne le binaire
produit dans une Response avec l'en-tête Content-Type: application/pdf et une
disposition inline portant le nom de fichier fourni. Le cache est désactivé
(max-age=0).
Attention : un objet Options est construit et renseigné (chargement des ressources distantes, parseur HTML5, police par défaut Arial, marges de 10 mm) mais n'est jamais transmis à l'instance Dompdf — ces réglages restent donc sans effet sur le rendu.
Effets de bord : le chargement du HTML peut déclencher des requêtes réseau vers les ressources externes référencées si l'option correspondante est active côté Dompdf.
Parameters
- $html : string
-
Document HTML complet à convertir.
- $filename : string
-
Nom de fichier proposé dans l'en-tête
Content-Disposition.
Return values
Response —Réponse HTTP contenant le PDF généré.