Estoy tratando de extraer un PDF de una página HTML. El CMS que estoy usando es EPiServer.Necesito ayuda para crear PDF a partir de HTML utilizando itextsharp
Este es mi código hasta ahora:
protected void Button1_Click(object sender, EventArgs e)
{
naaflib.pdfDocument(CurrentPage);
}
public static void pdfDocument(PageData pd)
{
//Extract data from Page (pd).
string intro = pd["MainIntro"].ToString(); // Attribute
string mainBody = pd["MainBody"].ToString(); // Attribute
// makae ready HttpContext
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ContentType = "application/pdf";
// Create PDF document
Document pdfDocument = new Document(PageSize.A4, 80, 50, 30, 65);
//PdfWriter pw = PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
pdfDocument.Open();
pdfDocument.Add(new Paragraph(pd.PageName));
pdfDocument.Add(new Paragraph(intro));
pdfDocument.Add(new Paragraph(mainBody));
pdfDocument.Close();
HttpContext.Current.Response.End();
}
Emite el contenido del nombre del artículo, introducción de texto y el cuerpo principal. Pero no analiza HTML que está en el texto del artículo y no hay diseño.
He intentado echar un vistazo a http://itextsharp.sourceforge.net/tutorial/index.html sin volverme más prudente.
Cualquier punteros a la dirección correcta es muy apreciada :)
Genial. Gracias. ¿Puede 'YourHtmlDocument.html' ser la URL de la página? – Steven
PD. No creo que la versión más reciente de iTextSharp tenga HtmlParser. Lo más cerca que lo entiendo 'iTextSharp.text.html.simpleparser.HTMLWorker' Pero usando eso, requiere un TextReader para el análisis ... – Steven
@Steven - ¡Tienes razón! Lo siento, cargué un viejo programa de prueba (con una versión anterior de iTextSharp) cuando respondí tu pregunta. Sin embargo, tienes razón, HTMLWorker es la forma en que te gustaría hacer. Edité mi respuesta en base a pruebas (limitadas) que hice con HTMLWorker e iTextSharp 5.0. –