Soy desarrollador de PHP y en uno de mis proyectos necesito convertir algunos documentos HTML (de 30 a 50 páginas) en documentos PDF.Conversión de HTML a PDF (no PDF a HTML) usando PHP
Mi búsqueda ha encontrado las siguientes soluciones posibles. Entre ellos se encuentran algunas bibliotecas de PHP y algunas aplicaciones de línea de comandos. Cada uno tiene sus propias ventajas y desventajas.
bibliotecas PHP:
- FPDF (se necesita más esfuerzo para convertir)
- TCPDF (se necesita más esfuerzo para convertir)
- html2fpdf http://html2fpdf.sourceforge.net
- html2pdf http://html2pdf.fr/
- DOMPDF http://code.google.com/p/dompdf/ (comparado con otro, funciona bien)
Para cada biblioteca, tengo problemas como:
- tarda mucho tiempo (más de cinco minutos para convertir 30 páginas HTML)
Requiere demasiados recursos (memoria y tiempo)
(I establecer los siguientes parámetros en php.ini:
max_execution_time = 600
memory_limit = 250M
pero las cosas aún no funcionan.)
Necesita que las páginas HTML estén bien formateadas (p. no faltan cerca tags)
Todos estos trabajos cuando intento para convertir documentos HTML simples (cinco o menos páginas con poca CSS)
aplicaciones de línea de comandos
Todos los comandos las aplicaciones de línea funcionan perfectamente y muy rápido en comparación con las bibliotecas anteriores, pero solo cuando las ejecuto directamente en la consola. Cuando trato de usarlos en PHP con exec()
o system()
, me dan errores.
Las siguientes son las aplicaciones de línea de comandos y sus errores cuando los ejecute en PHP:
html2pdf (http://www.tufat.com/s_html2ps_html2pdf.htm)
html2pdf: 11380): Gtk-ADVERTENCIA **: no puede pantalla abierta:: 0.0
No protocolo especificadowkhtmltopdf
Cargando página: 10%
Cargando página: 33%
Cargando la página: 100%
espera de redireccionamiento
páginas salida
QPainter :: begin(): devuelto falso
QPainter :: begin(): devuelto f alse
QPainter :: save: Pintor no está activo
QPainter :: escala: Pintor no está activo
QPainter :: setRenderHint: Pintor debe estar activa para establecer consejos representación
QPainter :: setBrush: Pintor no está activo
QPainter: : pluma: El pintor no está activo
QPainter :: setPen: Pintor no está activoHtmlToPdf (http://www.ultrashareware.com/html-to-pdf.htm)
Así que ahora estoy buscando ayuda. ¿Alguien puede responder:
¿Qué biblioteca PHP funcionaría bien en mi caso?
¿Por qué ocurren estos errores en las aplicaciones de línea de comandos?
El error "Gtk-WARNING **: no se puede abrir la pantalla:: 0.0" es porque la aplicación utiliza el sistema de ventanas. Supongo que el error se produce porque la aplicación intenta abrir el PDF después de su generación. – rogeriopvl
no, no abre pdf después de la generación. Pero abre una pequeña ventana mientras la usa en la consola. –
Debido a que hay muchas preguntas similares a esta, pero no exactamente iguales, decidí intentar recopilar una lista completa de convertidores de HTML a PDF en una pregunta wiki de la comunidad http://stackoverflow.com/questions/3178448/list- of-html-to-pdf-converters – rjmunro