J'ai un document HTML (pas XHTML) qui s'affiche correctement dans Firefox 3 et IE 7. Il utilise un CSS assez basique pour le styliser et s'affiche correctement en HTML.
Je cherche maintenant un moyen de le convertir en PDF. J'ai essayé :
- DOMPDF Il avait de gros problèmes avec les tableaux. J'ai supprimé mes grandes tables imbriquées et cela a aidé (avant, il consommait jusqu'à 128M de mémoire puis mourait - c'est ma limite de mémoire dans php.ini) mais il fait un désordre complet des tables et ne semble pas obtenir les images. Les tables étaient juste des trucs basiques avec quelques styles de bordure pour ajouter des lignes à différents endroits ;
- HTML2PDF et HTML2PS : J'ai en fait eu plus de chance avec ceci. Il a rendu certaines des images (toutes les images sont des URL de Google Chart) et le formatage des tableaux était bien meilleur, mais il semblait avoir un problème de complexité que je n'ai pas encore résolu et il continuait à mourir avec des erreurs de type de nœud inconnu(). Je ne sais pas trop où aller à partir de là
- Htmldoc Il semble que cela fonctionne bien avec le HTML de base, mais il n'y a pratiquement aucun support pour les CSS, ce qui fait que vous devez tout faire en HTML (je n'avais pas réalisé que c'était encore 2001 au pays du Htmldoc...), ce qui me rend inutile.
J'ai essayé une application Windows appelée Html2Pdf Pilot qui a fait un travail plutôt correct, mais j'ai besoin de quelque chose qui fonctionne au minimum sous Linux et idéalement à la demande via PHP sur le serveur Web.
Qu'est-ce que je rate, ou comment puis-je résoudre ce problème ?
9 votes
Html2Pdf utilise en fait une instance intégrée d'IE pour rendre la page, puis la convertit en PDF - probablement par le biais du mécanisme d'impression d'IE.
57 votes
puisque c'est une question de 2008, dompdf est beaucoup plus mature maintenant ;-)
5 votes
dompdf prend désormais en charge la norme CSS 2.1 et peut traiter les éléments suivants
@import
,@media
et@screen
et chargera des feuilles de style externes. Il est également fourni avec tout ce qui est nécessaire à son fonctionnement, bien que vous puissiez installer certaines choses pour obtenir de meilleures performances que les librairies par défaut. code.google.com/p/dompdf0 votes
Je pense que la bonne chose à faire est de faire en sorte que les navigateurs produisent le pdf parce qu'ils sont les seuls à effectuer un rendu correct. voir cette question stackoverflow.com/q/25574082/39998
6 votes
Mise à jour 2015 : Après avoir recherché beaucoup d'options nous avons décidé d'aller avec wkhtmltopdf c'est un bel utilitaire nous avons du mal avec le CSS parce que nous avons un fichier CSS externe mais alors nous avons appliqué l'astuce de mettre un lien factice de CSS sur notre élément HTML que nous voulons convertir et de définir le bon chemin il fonctionne comme MAGIQUE ! !!!
0 votes
Autres suggestions dans ce post SO
0 votes
Il existe deux versions de HTML2PDF. La très ancienne (2009) dont le lien figure ici et la plus récente, la version française, dont je parle dans ma réponse.
0 votes
Voir aussi stackoverflow.com/q/10641667/287948
0 votes
@HendraUzia Malheureusement, dompdf a toujours de gros problèmes avec le rendu des tableaux. Il ajoute des pages blanches dans le document
0 votes
Voici un tutoriel sur DOMPDF. advancetechtutorial.blogspot.com/2015/09/
0 votes
vous pouvez convertir vos styles html w/ en un canevas en utilisant html2canvas, puis convertir le canevas en une image en utilisant canvasObj.toDataURL("image/jpeg"), ajouter l'image au DOM et la passer à votre générateur PHP.
0 votes
Et si vous utilisiez Google Chrome, vous aurez l'option de sauvegarder en pdf à partir de l'option "Imprimer".
0 votes
Vérifiez cette bibliothèque php5 github.com/KnpLabs/snappy facile d'utilisation et il utilise "wkhtmltopdf
11 votes
Je crois que bientôt tout le monde trouvera Chrome/Chromium sans tête.
chrome --headless --print-to-pdf="path/to/pdf" https://your_url
comme l'outil de génération html à pdf le plus riche, le plus rapide et le plus simple crbug.com/603559 car il prend en charge la plupart des fonctionnalités html dont les développeurs se servent pour le développement web et ne nécessite pas de scripts complexes comme le font la plupart des autres bibliothèques et outils.0 votes
Vous avez raison, Chrome headless devrait avoir un bon rendu, mais il fonctionnerait sur node, pas sur php.
1 votes
Cette question est hors sujet à SO, mais on-topic à softwarerecs.SE. Voir Comment puis-je convertir du HTML avec CSS en PDF ? .
0 votes
Cette question me rappelle mes souvenirs de 2010 avec PHP et DOMPDF. :)
0 votes
Dompdf est une autre option. github.com/dompdf/dompdf
0 votes
@Hendra Uzia Pas assez mature... DOM PDF est absolument le pire... je viens de faire un test rapide - Tableau 100% avec 2x 50% cols... avec IMG dans chaque avec 100% de largeur... échec complet... et sortie d'images miniatures
0 votes
J'utilise TCPDF. Il est bon, mais il lui manque la fonction CSS.
0 votes
Nous sommes en 2020 et j'ai beaucoup de mal à créer quelque chose avec dompdf. Et je ne parle pas de devoir utiliser CSS2. Des choses basiques comme le rendu des tables, les flottants ne fonctionnent pas, tout est bogué et vous devez vous demander pourquoi les bordures vont trop à gauche, ou pourquoi le premier élément n'a pas de bordure. J'essaie de contourner les blocs en ligne et les tableaux de divisions pour que cela fonctionne.