Necesito generar automáticamente un archivo PDF a partir de un documento HTML (X) existente. Los archivos de entrada (informes) usan un diseño bastante simple, basado en tablas, por lo que probablemente no sea necesario el soporte para cosas realmente sofisticadas de JavaScript / CSS.
Como estoy acostumbrado a trabajar en Java, es preferible una solución que pueda usarse fácilmente en un proyecto java. Sin embargo, solo necesita trabajar en sistemas Windows.
Una forma de hacerlo que sea factible, pero que no produzca resultados de buena calidad (al menos listos para usar) es usar CSS2XSLFO y Apache FOP para crear los archivos PDF. El problema que encontré fue que, si bien los atributos CSS se convierten muy bien, el diseño de la tabla está bastante desordenado y el texto sale de la celda de la tabla.
También eché un vistazo rápido a Jrex, una API de Java para usar el motor de renderizado Gecko.
¿Hay alguna manera de tomar la página renderizada del motor de renderizado de Internet Explorer y enviarla automáticamente a una herramienta de impresora PDF? No tengo experiencia en programación OLE en Windows, así que no tengo idea de qué es posible y qué no.
¿Tienes una idea?
fuente
Respuestas:
El proyecto de renderizador Flying Saucer XHTML es compatible con la salida de XHTML a PDF. Echa un vistazo a un ejemplo aquí .
fuente
¿Intentaste con WKHTMLTOPDF? ?
Es una sencilla utilidad de shell, una implementación de código abierto de WebKit. Ambos son gratis.
Hemos establecido un pequeño tutorial aquí.
EDITAR (2017):
Si fuera para construir algo hoy, ya no seguiría esa ruta.
Pero usaría http://pdfkit.org/ en su lugar.
Probablemente despojándolo de todas sus dependencias de nodejs, para ejecutar en el navegador.
fuente
Echa un vistazo a iText ; Es un kit de herramientas PDF de Java puro que tiene soporte para leer datos de HTML. Lo usé recientemente en un proyecto cuando necesitaba extraer contenido de nuestro CMS y exportarlo como archivos PDF, y todo fue bastante sencillo. El soporte para CSS y etiquetas de estilo es bastante limitado, pero representa tablas sin ningún problema (aunque nunca logré establecer el ancho de columna).
Crear un PDF a partir de HTML es algo como esto:
fuente
Si tienes la financiación, nada supera a Prince XML como muestra este video
fuente
Así es como ActivePDF funciona , lo cual es bueno significa que sabe lo que obtendrá, y en realidad tiene un soporte de estilo razonable.
También es uno de los pocos paquetes que encontré (cuando busqué hace unos años) que realmente admite los diversos comandos CSS de salto de página.
Desafortunadamente, el software ActivePDF es muy frustrante, ya que tiene que iniciar el navegador IE en segundo plano para las conversiones, puede ser bastante lento y tampoco es particularmente estable.
Actualmente hay una nueva versión en Beta que se supone que es mucho mejor, pero en realidad no he tenido la oportunidad de probarla, así que no sé cuánto mejora.
fuente
Puede usar un Firefox sin cabeza con una extensión. Es bastante molesto comenzar a correr, pero produce buenos resultados.
Mira esta respuesta para más información.
fuente
Si observa la barra lateral de su pregunta, verá muchas preguntas relacionadas ...
En su contexto, el método más simple podría ser instalar un controlador de impresión PDF como PDFCreator e imprimir la página a esta salida.
fuente
Amyuni WebkitPDF podría usarse con JNI para una solución exclusiva de Windows. Esta es una biblioteca de conversión de HTML a PDF / XAML, gratuita para uso comercial y no comercial.
Si los archivos de salida no se necesitan de inmediato, para una mejor escalabilidad puede ser mejor tener una cola y algunos procesos en segundo plano que toman elementos de allí, los convierten y almacenan en la base de datos o el sistema de archivos.
se aplica el descargo de responsabilidad habitual
fuente