Convertir une page html en PDF

Novembre 2012

Le format PDF est un format d'échange de document "universel". Ça n'est pas un format d'édition (comme les documents Word ou .PSD), les PDF sont destinés à être diffusés (sur un site internet, par mail en pièce jointe...).

En général, un PDF est généré par une application de création de contenu texte ou multimédia, comme un traitement de texte, Photoshop, Illustrator, qui proposent tous une fonction d'exportation PDF. On peut aussi utiliser une imprimante virtuelle (comme PDFCreator) pour générer un PDF à partir d'une application qui ne propose pas ce format d'export.

Mais ça n'est pas le cas pour un site web.

Donc ici nous allons voir les différents outils PHP qui permettent de convertir une page web HTML en PDF. Il ne s'agit pas d'un tutoriel, il s'agit juste d'une présentation des différentes solutions, de leur avantage et de leurs inconvénients.

Générer un PDF en PHP

Voilà une liste des principaux outils disponibles en PHP pour la génération de PDF. Certains sont assez bas niveau, c'est-à-dire qu'ils permettent de créer un document PDF "from scratch" en ajoutant ses différents composants (bloc de texte, image...), et d'autres sont plus simples à utiliser : ce sont de simples convertisseurs html vers PDF.

HTMLDOC

C'est l'une des références dans ce domaine. HTMLDOC est un programme en ligne de commande, que l'on peut donc appeler très facilement en PHP via exec(). Il s'agit d'un convertisseur HTML en PDF.

Par contre cela peut aussi être un inconvénient, on ne peut pas l'utiliser sur un hébergement mutualisé, puisqu'il faut être en mesure d'installer ce programme sur le serveur.

[lien]

FPDF

FPDF est une bibliothèque de fonctions permettant de manipuler des PDF. Il ne s'agit pas d'un convertisseur comme HTMLDOC, il permet de générer des PDF en le composant un à un en utilisant les méthodes de la classe. C'est assez bas niveau et très technique.

[lien]

Pdflib

Tout comme FPDF, il s'agit d'une bibliothèque bas niveau. Il s'agit d'une extension PHP PECL, cela signifie qu'il faut pouvoir l'installer sur le serveur PHP, ce qui n'est pas possible en mutualisé.

[lien]

TCPDF

Bibliothèque de fonctions bas niveau (similaire à FPDF et PDFLIB). Peut s'utiliser sur un hébergement mutualisé.

[lien]

Html2pdf

Basé sur FPDF et TCPDF, cet outil permet de convertir un document HTML (page web) en PDF, et fournit une surcouche plus haut niveau, simplifiant le développement. Cela fonctionne bien pour les pages simples, mais pas pour les pages élaborées contenant des tableaux (<table>) par exemple.

[lien]

Dompdf

Solution bien documentée et permettant la conversion HTML > PDF.

[lien]

wkhtmltopdf

Cet outil est le plus récent de tous les outils mentionnés sur cette page.

Il est très prometteur, en fait il utilise le moteur de rendu HTML Webkit (le moteur utilisé par les navigateurs Google Chrome et Safari) pour générer les PDF, et permet en théorie d'obtenir un résultat d'excellente qualité.

Voici un billet similaire qui vous permettera d'en savoir plus sur partager un classeur excel via le réseau.

Il s'afit d'un convertisseur HTML > PDF, programme en ligne de commande (comme HTMLDOC).

[lien]

Zend Pdf

Ce composant fait partie du Zend Framework. Il faut être assez à l'aise en programmation orientée objet et ne pas être allergique à Zend (qui ressemble un peu à Java par moment, une vraie usine à gaz).

[lien]

Lequel choisir ?

En ce qui me concerne, j'ai déjà utilisé DomPDF. La qualité de la conversion n'est pas géniale, mais ça reste parfaitement exploitable. C'est facile à utiliser et rapide çà mettre en place.

Mais si vous avez la possibilité d'installer wkhtmltopdf, je vous recommande de l'utiliser à la place de dompdf.

Comment fonctionne le format PDF ?

Le PDF a été inventé par la société Adobe, il est basé sur Postscript qui est également un produit d'Adobe.

En gros, un fichier PDF contient du texte, des données vectorielles (comme des graphiques), des polices de caractère embarquées, et aussi des images bitmap qui ne peuvent pas être vectorisées.

Allez donc jeter un oeil sur cette page : de la macro pour moins d'1€ !.

1 commentaire :
commentaire n°3484 par Callysta
Callysta jeudi 30 mars 2017, 10:16
Convertir une pièce jointe HTML en PDF
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré