library - Usando iText para convertir HTML a PDF
pdfsharp html to pdf c# (7)
¿Alguien sabe si es posible convertir una página HTML (url) a un PDF usando iText?
Si la respuesta es ''no'', también está bien, ya que dejaré de perder el tiempo intentando resolverlo y solo gastaré dinero en uno de los componentes que sé que pueden :)
Gracias de antemano por sus respuestas!
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
El objetivo principal de Flying Saucer es hacer que XHTML y CSS 2.1 cumplan con las especificaciones 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.
Cuando necesité la conversión HTML a PDF a principios de este año, probé la versión de prueba del convertidor Winnovative HTML to 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.
La forma más fácil de hacerlo es usando pdfHTML. Es un add-on 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 obtener más información, vaya a http://itextpdf.com/itext7/pdfHTML
La respuesta a tu 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 logra de manera relativamente fácil utilizando el marco Flying Saucer, que se puede encontrar aquí: https://github.com/flyingsaucerproject/flyingsaucer
Este último es en realidad un problema mucho más amplio que debe categorizarse más. Al usar iText no podrá (trivialmente, al menos) combinar elementos iText (es decir, Paragraph
, Phrase
, Chunk
, etc.) con el HTML generado. Puedes hackear tu salida de esto usando el método addTemplate
ContentByte
y generando el HTML para esta plantilla.
Si, por otro lado, desea imprimir el HTML generado con algo así como marcas de agua, fechas o similares, puede hacerlo utilizando iText.
Así que en resumen: 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.
Tal vez podrías intentar:
Terminé 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 tus comentarios.
Utilice el HTMLWorker de iText