如何使用C#从HTML转换PDF?

时间:2010-08-15 10:45:58

标签: c# pdf itextsharp

有谁能告诉我如何使用C#从HTML代码转换PDF文档?我正在使用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 个答案:

答案 0 :(得分:2)

您有两个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