无法强制转换类型为';的对象;iTextSharp.text.html.simpleparser.CellWrap

本文关键字:对象 iTextSharp html CellWrap simpleparser text 转换 类型 | 更新日期: 2023-09-27 18:25:57

在将GridView数据转换为PDF时,我收到此错误。请帮帮我。我的密码在下面。

Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
HtmlForm frm = new HtmlForm();
gv.Parent.Controls.Add(frm);
frm.Attributes["runat"] = "server";
frm.Controls.Add(gv);
frm.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 30f, 30f, 30f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();

无法强制转换类型为';的对象;iTextSharp.text.html.simpleparser.CellWrap

您的html需要完美,否则将收到异常。因此,如果您缺少一个结束标记,则会抛出异常

如果表单中有GridView,并且其"AllowSorting"属性为true,则在parse之前应编程设置false,然后根据需要将其更改为true。

我在尝试将面板转换为PDF时也遇到了类似的情况。问题是这个面板有一个链接按钮,而且这个方法Parse()似乎不能很好地处理链接按钮。

我的解决方案是在转换前使链接按钮不可见,并在转换后使其再次可见。

您的页面可能包含链接按钮或任何其他与Parse()不兼容的控件。

我认为如果你的代码运行得很好,那么只有一个问题是使用itextsharp.dll版本创建的,

你应该查看这个链接并下载版本。然后在任何代码完美工作后,

访问此链接

我在尝试将此Gridview转换为PDF时遇到了类似的问题。这个Gridview有一个自动格式模板和许多列,包括链接按钮。使用此代码时,链接按钮肯定会导致错误。

我的解决方案是,我创建了另一个Gridview,只显示我需要的数据,并将其保留。(完全没有样式)。将Gridview默认可见性设置为false。在你的代码隐藏中,确保在数据绑定之前显示Grivdiew,然后在它写入PDF后再次隐藏它。

似乎是这个问题:http://am22tech.com/s/22/Blogs/post/2011/09/28/HTML-To-PDF-using-iTextSharp.aspx