Как конвертировать PDF из HTML с помощью C #? - PullRequest
2 голосов
/ 15 августа 2010

Может кто-нибудь сказать мне, как конвертировать PDF-документ из HTML-кода с помощью C #? Я использую Itextsharp 5.0.2 DLL. Я наткнулся на этот форум. Я не нашел никакого решения до сих пор. И некоторые из них упоминали iTextSharp.HtmlParser, но я не могу найти такой класс в моей версии DLL. В какой версии мне нужно использовать для достижения моей задачи.

Я пытался с этим кодом ... я не знаю, что я сделал не так? Я не получаю файл PDF.

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=TestResult.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);

StringBuilder htmlText =
            new StringBuilder("<table style='color:red;' border='1'>");
htmlText.Append("<tr><th>Karunagara Pandi</th><tr><td> Software Engineer</td></tr></table>");

StringReader stringReader = new StringReader(htmlText.ToString());
Document doc = new Document(PageSize.A4);
List<iTextSharp.text.IElement> elements = 
        iTextSharp.text.html.simpleparser.HTMLWorker.ParseToList(stringReader, null);
doc.Open();
foreach (object item in elements)
{
    doc.Add((IElement)item);
}

// Response Output
PdfWriter.GetInstance(doc, Response.OutputStream);
doc.Open();

//doc.Close();

Response.Write("PDF is created");

Этот код также взят только с этого сайта .... Мне нужно ваше правильное решение. Я тоже попробую достать .....

Спасибо.

1 Ответ

2 голосов
/ 15 августа 2010

У вас есть два doc.Open заявления без вмешательства doc.Close(). Второй эффективно перезапишет только что добавленное вами содержимое.

doc.Open();  // ONE
foreach (object item in elements)
{
    doc.Add((IElement)item);
}

// Response Output
PdfWriter.GetInstance(doc, Response.OutputStream);
doc.Open();  // TWO
...