2013-08-28 80 views
0

這是我的代碼:如何使用itextsharp將html頁面轉換爲PDF格式的css文件?

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

StringWriter sw = new StringWriter(); 
HtmlTextWriter hw = new HtmlTextWriter(sw); 

this.Page.RenderControl(hw); 

StringReader sr = new StringReader(sw.ToString()); 

Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); 

HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 

PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 

pdfDoc.Open(); 

**htmlparser.Parse(sr);** //the exception here 

pdfDoc.Close(); 
Response.Write(pdfDoc); 
Response.End(); 

的錯誤是:

無法轉換類型 'iTextSharp.text.html.simpleparser.CellWrapper' 鍵入 「對象iTextSharp.text.Paragraph 」。

這是什麼例外?

+0

您使用的是什麼版本的iTextSharp? –

+0

你有答案嗎? – Velu

+0

請訪問此鏈接並嘗試使用itextsharp的版本...它可能會解決您的錯誤。 –

回答

0

使用可以A4尺寸寬度& html設計的高度。

+0

我不這麼認爲我改變了寬度和高度,但同樣的錯誤 – user2717468

-1

使用此設置的代碼從html創建pdf。

String htmlText = "<div>Your HTML text here</div>"; 

Document document = new Document(); 

PdfWriter.GetInstance(document, new FileStream(Request.PhysicalApplicationPath + "\\outfile.pdf", FileMode.Create)); 
document.Open(); 
iTextSharp.text.html.simpleparser.StyleSheet styles = new iTextSharp.text.html.simpleparser.StyleSheet(); 
iTextSharp.text.html.simpleparser.HTMLWorker hw = new iTextSharp.text.html.simpleparser.HTMLWorker(document); 
hw.Parse(new StringReader(htmlText)); 
document.Close(); 

Response.ClearContent(); 
Response.ClearHeaders(); 
Response.AddHeader("Content-Disposition", "inline;filename=outfile.pdf"); 
Response.ContentType = "application/pdf"; 
Response.WriteFile(Request.PhysicalApplicationPath + "\\outfile.pdf"); 
Response.Flush(); 
Response.Clear(); 
1

我不知道這是不是答案,但我發現,iTextSharp的是挑剔具有有效的HTML。我的測試有一個表被打開兩次,從未關閉,並花了大約一個小時讓我注意到。這個例外與你在那裏的例外非常相似。

相關問題