Sign In| Join
Get Help:Ask a Question in our Forums|Report a Bug|More Help Resources
Last post Apr 17, 2012 05:02 AM by Bhavik Solucky
Member
6 Points
59 Posts
Apr 17, 2012 04:31 AM|LINK
I am currently trying to convert GridView that is generated into a pdf file. Unfortunately, I am constantly getting this error:
"Unable to cast object of type 'ITextSharp.text.html.simpleparser.CellWrapper' to type 'iTextSharp.text.Paragraph'.
I will include the code for reference and I really hope any of u guys can point ou the cause of the error.
.cs:
protected void GenerateReport(object sender, EventArgs e)
{
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); HtmlForm frm = new HtmlForm(); GridView1.AllowPaging = false; GridView1.Parent.Controls.Add(frm); frm.Attributes["runat"] = "server"; frm.Controls.Add(GridView1); frm.RenderControl(hw); 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(); pdfDoc.Close(); Response.Write(pdfDoc); Response.End();
}
.aspx:
Report Format:<asp:DropDownList ID="ddlReportFormat" runat="server"> <asp:ListItem Text="Please Select A Format" Value="default"></asp:ListItem> <asp:ListItem Text="Excel" Value="1"></asp:ListItem> <asp:ListItem Text="Word" Value="2"></asp:ListItem> <asp:ListItem Text="PDF" Value="3"></asp:ListItem> </asp:DropDownList> <asp:Button ID="repSel" runat="server" Text="Generate Report" OnClick="GenerateReport"/>
Thanks in advance!
gridview
746 Points
159 Posts
Apr 17, 2012 05:02 AM|LINK
Hi,
Basically, the problem is not your code. It's the HTML that you are passing to iTextSharp. There is most likely something it doesn't lik in the HTML
check code in below
protected void btnExportPDF_Click(object sender, EventArgs e) { 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.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(); }
Link
http://www.aspsnippets.com/Articles/Export-GridView-To-Word-Excel-PDF-CSV-Formats-in-ASP.Net.aspx
http://am22tech.com/s/22/Blogs/post/2011/09/28/HTML-To-PDF-using-iTextSharp.aspx
NIthya Natha...
Member
6 Points
59 Posts
Error on converting GridView to .pdf file.
Apr 17, 2012 04:31 AM|LINK
I am currently trying to convert GridView that is generated into a pdf file. Unfortunately, I am constantly getting this error:
"Unable to cast object of type 'ITextSharp.text.html.simpleparser.CellWrapper' to type 'iTextSharp.text.Paragraph'.
I will include the code for reference and I really hope any of u guys can point ou the cause of the error.
{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); HtmlForm frm = new HtmlForm(); GridView1.AllowPaging = false; GridView1.Parent.Controls.Add(frm); frm.Attributes["runat"] = "server"; frm.Controls.Add(GridView1); frm.RenderControl(hw); 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(); pdfDoc.Close(); Response.Write(pdfDoc); Response.End();Report Format:<asp:DropDownList ID="ddlReportFormat" runat="server"> <asp:ListItem Text="Please Select A Format" Value="default"></asp:ListItem> <asp:ListItem Text="Excel" Value="1"></asp:ListItem> <asp:ListItem Text="Word" Value="2"></asp:ListItem> <asp:ListItem Text="PDF" Value="3"></asp:ListItem> </asp:DropDownList> <asp:Button ID="repSel" runat="server" Text="Generate Report" OnClick="GenerateReport"/>Thanks in advance!
gridview
Bhavik Solu...
Member
746 Points
159 Posts
Re: Error on converting GridView to .pdf file.
Apr 17, 2012 05:02 AM|LINK
Hi,
Basically, the problem is not your code. It's the HTML that you are passing to iTextSharp. There is most likely something it doesn't lik in the HTML
check code in below
protected void btnExportPDF_Click(object sender, EventArgs e) { 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.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(); }Link
http://www.aspsnippets.com/Articles/Export-GridView-To-Word-Excel-PDF-CSV-Formats-in-ASP.Net.aspx
http://am22tech.com/s/22/Blogs/post/2011/09/28/HTML-To-PDF-using-iTextSharp.aspx
gridview