将包含HTML的字符串写入PDF

时间:2014-07-08 02:50:03

标签: c# asp.net pdf itextsharp

在我的应用程序中我需要以特定方式构造数据,所以我在页面上放置了一个标签,然后在我的代码后面生成一个包含HTML标签的字符串以及要显示的数据。然后我的代码将label.Text设置为等于包含所有HTML的字符串,以便在生成数据后正确显示在页面上。

这部分工作正常,但我试图使用itext库将显示的数据导出为PDF。我目前的代码如下:

        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=IssuedItems.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);
        lblResults.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();

这与我用于在另一个项目中导出gridview控件的代码相同,我只是在此代码中用lblResults替换了Gridview名称。当我运行这个时,我在行htmlparser.Parse(sr)中得到一个错误,说该对象引用未设置为对象的实例。我假设lblResults.RenderControl没有产生任何东西。

有没有人知道我可以将标签文本写入PDF文件的方式,实际上使用HTML标签而不是仅仅将它们显示为文本?我能够使用仅添加段落的方法将其转换为PDF文件,但它显示了所有HTML标记。

0 个答案:

没有答案