【问题标题】:iTextSharp generating InvalidCastException on htmlWorker.ParseiTextSharp 在 htmlWorker.Parse 上生成 InvalidCastException
【发布时间】:2014-04-01 21:56:08
【问题描述】:

当尝试将 GridView 转换为 PDF 时,在使用 iTextSharp 时遇到 InvalidCastException

htmlWorker.Parse(stringReader)

我做错了什么?我搜索了,每个人似乎都以同样的方式这样做。 这是错误。

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

这是我对 iTextSharp 的包含

using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;

这是我的代码。

public override void VerifyRenderingInServerForm(Control control)
{
}

protected void LinkButton2_Click(object sender, EventArgs e)
{
        Response.ClearContent();
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment; filename=PDFDoc.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);

        StringWriter stringWriter = new StringWriter();
        HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);

        GridView1.RenderControl(htmlTextWriter);

        StringReader stringReader = new StringReader(stringWriter.ToString());
        Document pdfDoc = new Document(PageSize.LETTER, 10f, 10f, 10f, 0f);
        HTMLWorker htmlWorker = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

        pdfDoc.Open();

        htmlWorker.Parse(stringReader);
        pdfDoc.Close();

        Response.Write(pdfDoc);
        Response.End();
}

【问题讨论】:

  • 如果没有 HTML 本身,很难告诉您要修复什么。尝试通过GridView1.RenderControl(htmlTextWriter); 再次渲染GridView1(不要只查看源代码),将输出保存到文件中,然后将其烘焙到代码中。然后开始从 HTML 中删除内容,直到您获得仍然导致该错误的最小数量,我们也许可以为您提供更多帮助。此外,HTMLWorker 长期以来一直被弃用,取而代之的是 XMLWorker,我真的建议您先试一试。

标签: c# asp.net pdf itextsharp .net


【解决方案1】:

GridView1.RenderControl(htmlTextWriter) 之前我必须输入以下代码。

GridView1.AllowPaging = false;    
GridView1.AllowSorting = false;
GridView1.DataBind();

然后它就像一个魅力。

【讨论】:

    猜你喜欢
    • 2012-08-28
    • 2017-09-26
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 2012-05-14
    • 2011-03-24
    相关资源
    最近更新 更多