我有幾個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表單,這些表單充滿了控件。