2010-08-15 1 views
2

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

Я пробовал с этим кодом ... я не знаю, что я сделал неправильно? Я не получаю 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"); 

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

Спасибо.

ответ

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