Quels sont les "nouveaux" outils pour générer du PDF ?

Petit nouveau ! | 3 Messages

31 mai 2026, 08:15

Bonjour à tous,

Je travaille actuellement sur un petit projet local pour ma communauté de communes. L'une des fonctionnalités à mettre en place est la génération de documents PDF en PHP.

La dernière fois que j'ai eu à gérer ce type de besoin remonte à 2007-2008. À l'époque, j'utilisais FPDF sous PHP 3... autant dire que cela commence à dater sérieusement. J'imagine que cette bibliothèque est aujourd'hui largement dépassée, même si elle semble toujours maintenue et fonctionnelle.

Dans l'idéal, j'aimerais pouvoir générer un PDF à partir d'une page web côté serveur. J'ai commencé à regarder ce qui existe actuellement, mais la conversion HTML/CSS (et notamment CSS3) vers PDF reste un sujet complexe, les deux univers n'étant pas toujours parfaitement compatibles.

Si je me permets de solliciter vos avis, c'est parce que mes recherches m'ont fait découvrir plusieurs solutions : DOMPDF, TCPDF, mPDF, entre autres. N'ayant plus suivi ce domaine depuis longtemps, je ne sais pas vraiment vers quelle bibliothèque m'orienter.

Pour préciser le contexte, l'application récupère des métadonnées normalisées (Schema.org) depuis des pages web. Les données sources peuvent être encodées en UTF-8 ou en ISO-8859-1, ce qui a peut-être son importance.

À partir de ces données, plusieurs types de documents doivent être générés, dont des PDF. J'aimerais pouvoir m'appuyer sur un système de templates, les champs étant normalisés et donc connus à l'avance. Les documents générés devront respecter les différentes chartes graphiques des utilisateurs, d'où l'importance de disposer d'un mécanisme de templating suffisamment souple.

Il faudra également pouvoir intégrer des images dans les PDF, notamment parce qu'un QR Code devra être ajouté à terme.

Enfin, les utilisateurs devront pouvoir récupérer ces fichiers PDF pour les transmettre à des tiers, généralement des partenaires de communication.

Au vu de ce besoin, vers quelle type de bibliothèque me conseilleriez-vous de m'orienter aujourd'hui ? Y'a t il une solution simple pour générer les PDF à partir de HTML+CSS ? (je n'ai jamais trouvé de choses bien compatibles à ce jour)

Je vous remercie

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 mai 2026, 17:32

Si tu veux utiliser du pur PHP, aucune librairie ne gère correctement le CSS3 car il y a besoin d'un moteur de rendu avancé pour le faire.

Donc pour un rendu parfait il faut utiliser une librairie PHP qui va appeler un navigateur headless qui fera le rendu.
Le seul problème c'est que ce n'est pas du pur PHP, il faut installer quelques binaires sur ton serveur pour que ça fonctionne donc c'est impossible sur un hébergement mutualisé mais faisable sur un hébergement VPS/dédié.
Quelques exemples opensource :
https://github.com/spatie/browsershot
https://github.com/chrome-php/chrome

Ou alors, tu as la possibilité de déployer un outil de conversion multiformat au format Docker, par exemple : https://gotenberg.dev/
Et cela te mettra à disposition une API que tu pourras utiliser alors très facilement en PHP surtout qu'il y a des lib dédiée :
- en pur PHP : https://github.com/gotenberg/gotenberg-php
- pour Symfony : https://github.com/sensiolabs/GotenbergBundle


Et enfin, dernière option pour avoir un rendu parfait, tu utilises un service payant qui va te le faire pour 2 centimes la conversion :
https://cloudconvert.com/apis/html-to-pdf
https://www.convertapi.com/html-to-pdf
https://openapi.com/products/html-to-pdf



A noter l'existence d'un projet opensource assez avancé : WeasyPrint https://weasyprint.org/
C'est fait par des français à Villeurbanne (Cocorico !), mais c'est du Python (si tu as du Python sur ton serveur).
Il existe un wrapper PHP pour l'appeler https://github.com/pontedilana/php-weasyprint
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

31 mai 2026, 18:46

Merci @rthur pour ta réponse, qui colle donc parfaitement (malheureusement) à ce que j'avais déduit de mes recherches.
Et comme c'est impossible sur un mutu, ca va limiter mon projet, mais la partie génération de PDF n'est qu'une étape du projet parmi tellement d'autres actions... Ce qui me rassure toutefois, c'est que les conclusions que j'ai tiré de mes lectures correspondent grosso modo à tes explications.
En revanche, j'ai pensé aussi dans la journée à une autre option à creuser et vos idées sont les bienvenue. En effet, J'ai aussi découvert ce service (et oui je connais un peu latex) : https://latexonline.cc/ mais surtout sa doc https://github.com/aslushnikov/latex-online#compile-url qui explique que l'on peut passer en URL un fichier latex.
Et comme le fichier LATEX reste un fichier texte, il y a peut être quelque chose à creuser... Alors oui, on sort un peu de HTML/PHP pur mais c'est aussi une possibilité qui me conviendrait.

A noter que mon projet reste un projet tout petit à l'échelle de la commune, alors les projets "payants", j'ose même pas y penser. "Dépenser" du temps, ca o en a ce n'est pas un problème, mais financer un projet, je n'y crois absolument pas. Donc les outils de conversions, de plus assez onéreux, je n'y compte même pas (je les avais vu aussi)

Petit nouveau ! | 3 Messages

31 mai 2026, 19:13

Suite à vos réponses et à une idée à la lecture du message d'@rthur, j'ai eu une idée. J'ai découvert qu'il existait un service "web" (enfin je dis pas que c'est un web service, au sens "noble" du terme !) qui permet de compiler un fichier LATEX directement en ligne, pour peu que ce fichier latex soit déposé sur un serveur accessible. Il s'agit de latex.cc. Ce service sait prendre une URL d'un fichier tex en paramètre https://github.com/aslushnikov/latex-on ... compile-it
Alors à ce jour, je n'ai pas détaillé ma recherche en détail mais j'ai testé ceci : si l'on colle un fichier latex sur un serveur digne de ce nom (je l'ai mis chez un hébergeur "pro") et que l'on lance la compil via l'URL, le PDF se créer et le téléchargement s'effectue automatiquement.
Au départ, ce n'est pas ce que j'ai posté comme demande à ce fil de discussion, mais le résultat correspond exactement à mon besoin !
Et l'énorme intérêt que je vois (moi, connaissant un peu Latex) à cette manière de faire, que la précision qu'offre LATEX dans la disposition des éléments sur une page, sans compter sur la "beauté" du résultat. Sans compter que c'est un simple fichier texte, un fichier tex, à disposer sur un serveur.
A creuser en détail mais ça peut être intéressant

Merci à @rthur pour sa réponse