2008-10-25 52 views
40

¿Alguien sabe si es posible convertir una página HTML (url) a un PDF usando iText?Usando iText para convertir HTML a PDF

Si la respuesta es 'no' de lo que está bien así ya que voy a dejar de perder el tiempo tratando de trabajar hacia fuera y simplemente pasar un poco de dinero en uno de una serie de componentes que sé que puede :)

¡Gracias de antemano por sus respuestas!

+5

ACTUALIZACIÓN: iText hace convertir HTML a PDF, pero es el apoyo de estilos es irregular. 5.0.6 fue lanzado en febrero de 2011, e incluyó una revisión del código relacionado con poco cambio de comportamiento visible. El próximo lanzamiento está programado para incluir mejoras significativas en la funcionalidad HTML-> PDF. –

+1

de hecho compruebe: [xmlworker] (https://sourceforge.net/projects/xmlworker/) una adición a iText, es compatible con más CSS. – Redlab

+0

ACTUALIZACIÓN: Encontré este hilo más reciente que resume muy bien las opciones actuales http://stackoverflow.com/questions/4055838/best-commercial-html-to-pdf-c-component – Mark

Respuesta

7

He terminado usando ABCPdf desde webSupergoo. Funciona muy bien y por alrededor de $ 350 me ha ahorrado horas y horas según sus comentarios anteriores. Gracias de nuevo Daniel y Bratch por sus comentarios.

-1

Cuando necesité la conversión de HTML a PDF a principios de este año, probé la versión de prueba del convertidor Winnovative de HTML a PDF (creo que ExpertPDF también es el mismo producto). Funcionó muy bien, así que compramos una licencia en esa compañía. No profundizo en eso después de eso.

29

creo que esto es exactamente lo que estabas buscando

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

http://code.google.com/p/flying-saucer

propósito principal

vuelo del platillo es render spec-compli Ant XHTML y CSS 2.1 a la pantalla como un componente Swing. A pesar de que originalmente estaba destinado a incrustación de marcas en aplicaciones de escritorio (cosas como iTunes Music Store), Flying Saucer también se ha ampliado con iText. Esto hace que sea muy fácil renderizar XHTML a archivos PDF, así como a imágenes y a la pantalla. Flying Saucer requiere Java 1.4 o superior.

+3

El enlace a flying saucer (xhtmlrenderer) debería ser ahora: http: // code .google.com/p/flying-saucer/ –

+0

¿Alguien sabe cómo mejorar la calidad de imagen en los archivos PDF generados? – user584397

+0

@ user584397 utiliza una imagen más grande y la reduce, la imagen está incrustada en el PDF. –

0

HTMLWorker de Uso iText

Example

+1

'HTMLWorker' está en desuso. Su sucesor, 'XMLWorker', está en el ocaso. El estado actual de la tecnología es iText 7 + pdfHTML. –

1

La respuesta a su pregunta es en realidad doble. En primer lugar, debe especificar qué pretende hacer con el HTML representado: guárdelo en un nuevo archivo PDF o úselo en otro contexto de representación (es decir, agréguelo a otro documento que esté generando).

El primero se lleva a cabo con relativa facilidad utilizando el marco de platillo volante, que se puede encontrar aquí: https://github.com/flyingsaucerproject/flyingsaucer

Este último es en realidad un problema mucho más amplio que necesita ser categorizado aún más. Al usar iText no podrá (trivialmente, al menos) combinar elementos iText (es decir, Paragraph, Phrase, Chunk, etc.) con el código HTML generado. Puede hackear su salida de esto utilizando el método ContentByte de addTemplate y generando el HTML para esta plantilla.

Si, por otro lado, desea imprimir el código HTML generado con algo así como filigranas, fechas o similares, puede hacerlo utilizando iText.

Así que fondo: No se puede integrar trivialmente el HTML representado en otros contextos de generación de PDF, pero se puede procesar HTML directamente en un documento PDF en blanco.

+0

con iText PDFHTML, en realidad hay un método 'renderElements' que hace exactamente lo que usted dice que es imposible. Presta sintaxis HTML a bloques de elementos iText como Paragraph, Table, etc. –

3

La manera más fácil de hacerlo es usando pdfHTML. Es un complemento iText7 que convierte HTML5 (+ CSS3) en sintaxis pdf.

El código es bastante sencillo:

HtmlConverter.convertToPdf(
     "<b>This text should be written in bold.</b>",  // html to be converted 
     new PdfWriter(
      new File("C://users/mark/documents/output.pdf") // destination file 
     ) 
    ); 

Para más información, vaya a http://itextpdf.com/itext7/pdfHTML