2013-07-16 34 views
0

我有幾個ASPX Web表單,它們有許多文本框,單選按鈕列表,組合框以及許多其他花哨的Telerik控件。填寫頁面並點擊提交按鈕後,需要將整個頁面轉換爲PDF。我需要如何使用iTextSharp做到這一點的例子。我一直在搞一個測試項目,看看它是如何工作的,並且在添加RadTextBox和RadComboBox時得到以下異常:我需要很好的ITextSharp ASPX到PDF轉換示例

無法將類型爲「iTextSharp.text.html.simpleparser.CellWrapper」的對象轉換爲鍵入'iTextSharp.text.Paragraph'。 描述:執行當前Web請求期間發生未處理的異常。請查看堆棧跟蹤以獲取有關該錯誤的更多信息以及源代碼的位置。

異常詳細信息:System.InvalidCastException:無法將類型爲'iTextSharp.text.html.simpleparser.CellWrapper'的對象轉換爲鍵入'iTextSharp.text.Paragraph'。

源錯誤:

Line 33:    PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
Line 34:    pdfDoc.Open(); 
Line 35:    htmlparser.Parse(sr); 
Line 36:    pdfDoc.Close(); 
Line 37:    Response.Write(pdfDoc); 

堆棧跟蹤:

[InvalidCastException的:無法投型的 'iTextSharp.text.html.simpleparser.CellWrapper' 對象爲類型 'iTextSharp.text.Paragraph' ]

iTextSharp.text.html.simpleparser.HTMLWorker.ProcessLink() +563 
iTextSharp.text.html.simpleparser.HTMLTagProcessor_A.EndElement(HTMLWorker worker, String tag) +36 
iTextSharp.text.html.simpleparser.HTMLWorker.EndElement(String tag) +80 
iTextSharp.text.xml.simpleparser.SimpleXMLParser.ProcessTag(Boolean start) +136 
iTextSharp.text.xml.simpleparser.SimpleXMLParser.Go(TextReader reader) +1950 
iTextSharp.text.xml.simpleparser.SimpleXMLParser.Parse(ISimpleXMLDocHandler doc, ISimpleXMLDocHandlerComment comment, TextReader r, Boolean html) +83 
iTextSharp.text.html.simpleparser.HTMLWorker.Parse(TextReader reader) +59 
WebApplication5._Default.btnExport_Click(Object sender, EventArgs e) in C:\Users\jensenty\Documents\Visual Studio 2008\Projects\WebApplication5\WebApplication5\Default.aspx.cs:35 
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111 
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110 
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565 

爲PDF轉換C#方法:

protected void btnExport_Click(object sender, EventArgs e) 
{ 
    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); 
    pdfDoc.Close(); 
    Response.Write(pdfDoc); 
    Response.End(); 
} 

對此例外的解決方案將不勝感激。總的來說,我認爲我需要更好地瞭解如何將iTextSharp用於我的Web表單,這些表單充滿了控件。

回答

0

我認爲,如果你的代碼是完美的工作則只有一個問題itextsharp.dll的版本創建,

後的任何代碼,可以正常使用,你應該訪問次數在it..then這個鏈接及下載版給,

link