Conversión automática razonable de HTML a PDF (en entorno UNIX / Linux) [cerrado]


16

¿Hay alguna manera de generar documentos PDF a partir de archivos HTML automáticamente en Linux donde el PDF ofrece algún tipo de semejanza razonable con el archivo de entrada?

Una herramienta de línea de comandos, a diferencia de una GUI interactiva de algún tipo, es clave.

Yo he tratado htmldoc y algunos primos relacionados, por supuesto. Pero estas herramientas son irremediablemente de la edad de piedra; htmldocno es compatible con CSS en absoluto. No encontrará muchos documentos HTML en estos días que no tengan al menos un estilo CSS. Realmente no me importan los efectos estúpidos o los pequeños adornos, pero el problema es que CSS es el núcleo de la mayoría de los diseños en estos días; ya no mucha gente usa 6 capas de tablas anidadas. Por lo tanto, si la herramienta de conversión no comprende CSS en absoluto, no se trata solo de que "el documento no se vea bien"; es probable que no cumpla con el estándar mínimo de usabilidad en absoluto.

Algunas personas me han sugerido que intente usar el motor de renderizado Gecko para generar imágenes que se puedan convertir a PDF, pero no tengo idea de cómo se podría hacer esto, y mucho menos fácilmente.

No tengo problemas para creer que existen buenas herramientas comerciales que hacen esto, pero realmente estoy buscando un paquete de código abierto si es posible, ya que el esfuerzo en sí es de código abierto y no paga.

¡Gracias por adelantado!

Respuestas:


7

¿Has visto wkhtmltopdf ? No puedo decir qué tan bien funciona personalmente, pero parece exactamente lo que necesita. El único problema puede ser, con esta y con cualquier solución de 'automatización del navegador', que recogerá la hoja de estilo de impresión en lugar de la pantalla, por lo que el PDF puede no ser exactamente lo que ve en la pantalla.


¿Qué es una hoja de estilo de impresión? Debo estar fuera de contacto con las últimas y mejores novedades del universo CSS.
Alex Balashov

No es nada nuevo, solo se volvió práctico para la mayoría de los sitios web una vez que cambiaron a CSS para el diseño en lugar de tablas. Pruebe alistapart.com/articles/goingtoprint o webcredible.co.uk/user-friendly-resources/css/… para obtener una introducción.
robertc

2

Prueba chm2pdf con python-beautifulsoup.


2

XHTML2PDF es un conjunto de herramientas de Python que incluye scripts de línea de comandos y una biblioteca de Python (en caso de que desee incrustar esto en algo más grande sin desglosar el script). Admite HTML / XHTML y CSS, con estilos CSS adicionales específicos del proveedor para ajustar la salida formateada (por ejemplo, números de página, flujo de párrafo, etc.)

Solo lo he usado un poco para procesar por lotes algunos documentos HTML, pero funcionó bien y su conjunto de características me parece completo. El manual está oculto en la página de demostración, pero es, en sí mismo, un buen ejemplo de la conversión de un documento HTML a un PDF.

Tenía un buen conjunto de enlaces a ejemplos de "antes" y "después", pero acabo de crear mi cuenta y, aparentemente, solo los spammers ponen más de un enlace en su primera publicación :-p


1

Quería generar algunos PNG a partir de páginas HTML desde la línea de comandos. En algún lugar encontré este script de ruby que usa mozembed para generar una captura de pantalla. Puede eliminar la línea de escala si no desea que se escale.

El único problema que veo es que la página aparece en la pantalla por un momento ...


Hm, si. La última parte parece ser un poco asesina. Esto debe integrarse en un backend puramente del lado del servidor; sin cabeza de pantalla ni nada. ¿Alguna forma de lograr eso?
Alex Balashov

0

pruebe dompdf, funciona bien desde la línea de comandos y, por sus ejemplos, funciona con cualquier tipo de html


0

PrinceXML. Puede manejar CSS muy bien. Versiones de Linux, Windows, Mac OS X disponibles. AFAICS, esta también es la tecnología detrás de la salida de PDF de Google Docs. Pero nota: esto es payware.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.