Write to PDF con iTextSharp.dll
Per creare un PDF a partire dal contenuto di una pagina HTML, il metodo più semplice è quello di usare la libreria iTextSharp.dll
Aggiungere alla pagina un controllo di tipo Panel chiamato pdfPanel
Inserire nel Panel tutti gli oggetti che vogliamo vengano poi inviati al PDF, esattamente nella posizione che ci piace
Aggiungere un Button fuori dal Panel pdfPanel e all'evento click inserire il codice seguente
E' importante anche aggiungere l'override dell'evento VerifyRenderingInServerForm e inserire nella direttiva @Page l'attributo EnableEventValidation="false"
protected void btnSave_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=print.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
pdfPanel.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
}