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セットアップでクラスを検索してみてください。簡単な Google 検索によると、HtmlParser新しいバージョンの iTextSharp には存在しません。thisthisを参照して、 iTextSharp の使用に関するヘルプを検索してください。2番目のリンクから、役立つコードを次に示します。

//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 に答える