0

我想将 Sql 数据导出到 PDF 文件。我使用了以下代码。我收到错误为HtmlParser.Parse(Doc, xmlReader); 当前上下文中不存在名称“HtmlParser”

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using System.IO;
using System.Collections;
using System.Net;
using System.Data.SqlClient;
using System.Windows.Forms;


protected void btnPdf_Click(object sender, EventArgs e)
        {
            HtmlForm form = new HtmlForm();
            form.Controls.Add(StdA_grid);
            StringWriter sw = new StringWriter();
            HtmlTextWriter hTextWriter = new HtmlTextWriter(sw);
            form.Controls[0].RenderControl(hTextWriter);
            string html = sw.ToString();
            Document Doc = new Document();

            //PdfWriter.GetInstance
            //(Doc, new FileStream(Request.PhysicalApplicationPath 
            //+ "\\AmitJain.pdf", FileMode.Create));

            PdfWriter.GetInstance
            (Doc, new FileStream(Environment.GetFolderPath
            (Environment.SpecialFolder.Desktop)
            + "\\AmitJain.pdf", FileMode.Create));
            Doc.Open();

            Chunk c = new Chunk
            ("Export GridView to PDF Using iTextSharp \n",
            FontFactory.GetFont("Verdana", 15));
            Paragraph p = new Paragraph();
            p.Alignment = Element.ALIGN_CENTER;
            p.Add(c);
            Chunk chunk1 = new Chunk
            ("By Amit Jain, amit_jain_online@yahoo.com \n",
            FontFactory.GetFont("Verdana", 8));
            Paragraph p1 = new Paragraph();
            p1.Alignment = Element.ALIGN_RIGHT;
            p1.Add(chunk1);

            Doc.Add(p);
            Doc.Add(p1);

            System.Xml.XmlTextReader xmlReader =
            new System.Xml.XmlTextReader(new StringReader(html));
            HtmlParser.Parse(Doc, xmlReader); // error shown on this line

            Doc.Close();
            string Path = Environment.GetFolderPath
            (Environment.SpecialFolder.Desktop)
            + "\\AmitJain.pdf";


            ShowPdf(Path);


        }

        private void ShowPdf(string strS)
        {
            Response.ClearContent();
            Response.ClearHeaders();
            Response.ContentType = "application/pdf";
            Response.AddHeader
            ("Content-Disposition", "attachment; filename=" + strS);
            Response.TransmitFile(strS);
            Response.End();
            //Response.WriteFile(strS);
            Response.Flush();
            Response.Clear();

        }

请为此提供一些解决方案,或者您可以建议我任何其他更好的程序。

4

1 回答 1

0

HtmlParser尝试在您的设置中搜索课程。根据快速谷歌搜索,HtmlParser新版本的 iTextSharp 中不存在。请参阅并搜索有关使用 iTextSharp 的任何帮助。在第二个链接中,这里有一些可能有帮助的代码:

//make an arraylist ....with STRINGREADER since its no IO reading file...

            List<IElement> htmlarraylist = iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(new StringReader(htmlText), null);

            //add the collection to the document
            for (int k = 0; k < htmlarraylist.Count; k++)
            {
                document.Add((IElement)htmlarraylist[k]);
            }
于 2012-08-09T20:43:53.550 回答