Ошибка в коде C # при использовании ITextSharp - PullRequest
1 голос
/ 26 ноября 2010

Я использую код из другого вопроса , и я получаю сообщение об ошибке как

Ошибка 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();

}

Пожалуйста, помогите мне исправить ошибку. Я пытаюсь получить содержимое (не HTML) от htmleditor и отобразить в PDF-файл. пожалуйста, подтвердите, правильно ли я пытаюсь или нет.

Ответы [ 2 ]

3 голосов
/ 26 ноября 2010

1.Префиксируйте ваш список как

System.Collections.Generics.List<IElement> htmlarraylist

2. Похоже, что вы не импортировали пространство имен HTMLWorker

РЕДАКТИРОВАТЬ : я гуглил дляВы, пространство имен может быть любым из этих трех. Я сомневаюсь, что это может быть последним, но я не уверен.

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
3 голосов
/ 26 ноября 2010

В этом коде конфликт имен - вы 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);

Третье решение - использовать псевдонимы .

И для второй ошибки вам нужно импортировать HTMLWorker пространство имен. Помещенный

using iTextSharp.text.html.simpleparser;

вверху.

...