使用ITextSharp时C#代码出错

时间:2010-11-26 10:49:09

标签: c# itextsharp

我正在使用其他question的代码,我收到错误

  

错误1非泛型类型   'iTextSharp.text.List'无法使用   带有类型参数

     

错误2“HTMLWorker”这个名称没有   存在于当前背景中

     

错误3类型或命名空间名称   无法找到'HTMLWorker'(是   你错过了使用指令或   装配参考?)

到目前为止我的代码如下:

protected void Button2_Click(object sender, EventArgs e)
{
    //Extract data from Page (pd).
    Label16.Text = Editor1.Content; // Attribute    

    // makae ready HttpContext
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ContentType = "application/pdf";

    // Create PDF document
    Document pdfDocument = new Document(PageSize.A4, 80, 50, 30, 65);
    //PdfWriter pw = PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);
    PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Response.OutputStream);

    pdfDocument.Open();
    //WebClient wc = new WebClient();
    string htmlText = Editor1.Content;

    List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(htmlText), null);
    for (int k = 0; k < htmlarraylist.Count; k++)
    {
        pdfDocument.Add((IElement)htmlarraylist[k]);
    }

    //pdfDocument.Add(new Paragraph(IElement));
    pdfDocument.Close();
    HttpContext.Current.Response.End();

}

请帮我解决错误。我想要的是从htmleditor获取内容(非html)并显示在pdf文件中。请确认我,我想做的是否正确。

2 个答案:

答案 0 :(得分:3)

此代码中存在名称冲突 - 您是using iTextSharp.text命名空间并尝试使用标准System.Collections.Generic.List<T>类。

您需要删除using iTextSharp.text并使用其显式命名空间的类或使用List<T>的显式命名空间。

System.Collections.Generic.List<IElement> htmlarraylist = HTMLWorker.ParseToList(new StringReader(htmlText), null);

第三种解决方案是使用aliases

对于第二个错误,您需要导入HTMLWorker命名空间。放

using iTextSharp.text.html.simpleparser;

在顶部。

答案 1 :(得分:3)

1.像

一样修改你的列表
System.Collections.Generics.List<IElement> htmlarraylist

2.看起来你没有导入HTMLWorker

的命名空间

编辑:我用Google搜索,命名空间可能是这三个中的任何一个。我怀疑它可能是最后一个,但我不确定。

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