convert - html to pdf c# example
Renderizar PDF en iTextSharp desde HTML con CSS (3)
Alguna idea de cómo renderizar un PDF usando iTextSharp para que represente la página usando CSS. El css se puede incrustar en el HTML o pasar por separado, realmente no me importa, solo quiero que funcione.
Ejemplos de códigos específicos serían muy apreciados.
Además, me gustaría seguir con iTextSharp, aunque si tienes sugerencias para algo más, debe ser gratuito, de código abierto y tener una licencia que permita su uso en software comercial.
No es posible en este momento, pero nada le impide iniciar un proyecto de código abierto que lo hará. De hecho, podría comenzar uno, ¡porque yo también lo necesito!
Básicamente necesitarás un analizador que convertirá las marcas html y css en clases iTextSharp. Entonces <table>
convierte en iTextSharp.SimpleTable
y así sucesivamente.
Sería fácil crear un prototipo que pueda funcionar con un subconjunto limitado de html y css.
Actualización: Hasta el momento en que esto sea posible, así es como lo resolví temporalmente. Solo dos pasos:
- Dile a tus usuarios que descarguen la aplicación de código abierto llamada PDFCreator
Haga que todos sus informes html sean fáciles de imprimir al proporcionar hojas de estilo para imprimir.
Si algunos de sus informes de varias páginas deben tener encabezados en cada página, configúrelos en la etiqueta THEAD html.
Ahora los usuarios podrán imprimir y, si eligen el controlador de impresora PDFCreator, incluso podrán obtener un informe en formato PDF (hay otros controladores de impresora en formato PDF, pero este es gratuito y de código abierto).
También sé que HTML no es tan flexible como PDF, pero podría ser lo suficientemente bueno. Estaba haciendo algunas pruebas con usuarios reales y les gusta porque no solo ahora pueden imprimir nada en PDF (incluso más allá de mi aplicación), también su flujo de trabajo es más rápido porque no tienen que descargar y esperar hasta que se abra su lector de PDF arriba. simplemente imprimen (o exportan a PDF) lo que ven en el sitio web directamente desde su navegador web ... algo tiene sentido.
Pruebe WKHTMLTOPDF.
Es una implementación de código abierto de webkit. Ambos son gratis.
Hemos establecido un pequeño tutorial here
List<DateTime[]> getListWeeks(int annee)
{
List<DateTime[]> weeks = new List<DateTime[]>();
DateTime beginDate = new DateTime(annee, 1, 1);
DateTime endDate = new DateTime(annee, 12, 31);
int nb =(int)beginDate.DayOfWeek;
DateTime monday = beginDate.AddDays(-nb+1); ;
DateTime saturday = monday.AddDays(6);
while (monday < endDate)
{
weeks.Add(new DateTime[] { monday, saturday });
monday = monday.AddDays(7);
saturday = monday.AddDays(6);
}
return weeks;
}