将GridView导出为PDF时出现ITextSharp错误

时间:2012-12-12 13:32:28

标签: c# gridview itextsharp export-to-pdf

我尝试将GridView导出为PDF。它给出了错误:

  

无法将类型为'iTextSharp.text.html.simpleparser.CellWrapper'的对象转换为'iTextSharp.text.Paragraph'。

它会抛出错误

htmlparser.Parse(sr);

1 个答案:

答案 0 :(得分:0)

您应该在数据绑定和解析之前禁用排序和分页。

以下是代码:

Response.ContentType = "application/pdf";

Response.AddHeader("content-disposition","attachment;filename=GridViewExport.pdf");

Response.Cache.SetCacheability(HttpCacheability.NoCache);

StringWriter sw = new StringWriter();

HtmlTextWriter hw = new HtmlTextWriter(sw);

GridView1.AllowPaging = false;     <----

GridView1.AllowSorting = false;    <----

GridView1.DataBind();

GridView1.RenderControl(hw);

StringReader sr = new StringReader(sw.ToString());

Document pdfDoc = new Document(PageSize.A4, 10f,10f,10f,0f);

HTMLWorker htmlparser = new HTMLWorker(pdfDoc);

PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

pdfDoc.Open();

htmlparser.Parse(sr);

pdfDoc.Close();

Response.Write(pdfDoc);

Response.End();