Je suis un développeur PHP et dans un de mes projets, j'ai besoin de convertir des documents HTML (environ 30 à 50 pages) en documents PDF.Conversion HTML en PDF (pas PDF en HTML) en utilisant PHP
Ma recherche a révélé les solutions possibles suivantes. Parmi eux, certaines bibliothèques PHP et certaines applications en ligne de commande. Chacun a ses propres avantages et inconvénients.
bibliothèques PHP:
- fpdf (il faut plus d'efforts pour convertir)
- tcpdf (il faut plus d'efforts pour convertir)
- html2fpdf http://html2fpdf.sourceforge.net
- html2pdf http://html2pdf.fr/
- dompdf http://code.google.com/p/dompdf/ (comparé aux autres, fonctionne bien)
Pour chaque bibliothèque, j'ai des problèmes tels que:
- prend beaucoup de temps (plus de cinq minutes pour convertir 30 pages HTML)
demande trop de ressources (mémoire et temps)
(I définir les paramètres suivants dans php.ini:
max_execution_time = 600
memory_limit = 250M
mais les choses ne fonctionnent toujours pas.)
Les pages HTML doivent être bien formatées (par ex. Pas de tags proches manquantes)
Tous ces travaux lorsque je tente de convertir documents HTML simples (cinq ou moins de pages avec peu de CSS)
applications en ligne de commande
Toutes les commandes Les applications de ligne fonctionnent parfaitement et très rapidement comparées aux bibliothèques ci-dessus, mais seulement quand je les lance directement sur la console. Quand j'essaie de les utiliser en PHP avec exec()
ou system()
, ils me donnent des erreurs.
Voici les applications en ligne de commande et leurs erreurs quand je les exécuter en PHP:
html2pdf (http://www.tufat.com/s_html2ps_html2pdf.htm)
html2pdf: 11380): Gtk-AVERTISSEMENT **: ne peut pas affichage ouvert:: 0.0
Aucun protocole spécifiéwkhtmltopdf
page Chargement: 10%
page Chargement: 33%
page Chargement: 100%
En attente de redirect
pages IMPRESSION
QPainter :: begin(): Renvoyé false
QPainter :: begin(): retourné f ALSE
QPainter :: save: Peintre pas actif
QPainter :: Echelle: Peintre pas actif
QPainter :: setRenderHint: Peintre doit être actif pour définir le rendu des notes
QPainter :: SetBrush: Peintre pas actif
QPainter: : stylo: Peintre pas actif
QPainter :: SetPen: Peintre pas actifHtmlToPdf (http://www.ultrashareware.com/html-to-pdf.htm)
Alors maintenant je cherche de l'aide. Quelqu'un peut-il répondre:
Quelle bibliothèque PHP fonctionnerait bien dans mon cas?
Pourquoi ces erreurs se produisent-elles dans les applications de ligne de commande?
L'erreur "Gtk-WARNING **: Impossible d'ouvrir l'affichage:: 0.0" est parce que l'application utilise le système de fenêtrage. Je suppose que l'erreur se produit parce que l'application essaie d'ouvrir le fichier PDF après sa génération? – rogeriopvl
non, il ne pas ouvrir pdf après génération. Mais il ouvre une petite fenêtre en l'utilisant dans la console. –
Parce qu'il y a tellement de questions similaires à celle-ci mais pas tout à fait pareil, j'ai décidé d'essayer de rassembler une liste complète de convertisseurs HTML en PDF en une question wiki communautaire http://stackoverflow.com/questions/3178448/list- of-html-to-pdf-convertisseurs – rjmunro