簡體   English   中英

我需要良好的ITextSharp ASPX到PDF轉換示例

[英]I need good ITextSharp ASPX to PDF conversion Examples

我有幾種ASPX Web窗體,其中包含許多文本框,單選按鈕列表,組合框以及許多其他精美的Telerik控件。 填寫頁面並單擊提交按鈕后,需要將整個頁面轉換為PDF。 我需要一些示例,說明如何使用iTextSharp做到這一點。 我一直在忙於測試項目,以查看其工作方式,並在添加RadTextBox和RadComboBox時遇到以下異常:

無法將類型為“ 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窗體。

我認為,如果您的代碼運行正常,那么itextsharp.dll版本只會造成一個問題,

您應該訪問此鏈接並下載版本。.然后在任何代碼正常運行之后,

鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM