2010-12-08 22 views

回答

1

可以使用iText的鋒利。

進口這些

using iTextSharp.text.html.simpleparser; 
using iTextSharp.text.pdf; 
using iTextSharp.text; 

接下來是添加此方法

public void ConvertHtmlStringToPDF() 
    { 
     StringBuilder sb = new StringBuilder(); 
     StringWriter tw = new StringWriter(sb); 
     HtmlTextWriter hw = new HtmlTextWriter(tw); 

     ///This is the panel from the webform 
     pnlPDF.RenderControl(hw); 
     string htmlDisplayText = sb.ToString(); 
     Document document = new Document(); 
     MemoryStream ms = new MemoryStream(); 
     PdfWriter writer = PdfWriter.GetInstance(document, ms); 
     StringReader se = new StringReader(htmlDisplayText); 
     HTMLWorker obj = new HTMLWorker(document); 
     document.Open(); 
     obj.Parse(se); 
     // step 5: we close the document 
     document.Close(); 
     Response.Clear(); 
     Response.AddHeader("content-disposition", "attachment; filename=report.pdf"); 
     Response.ContentType = "application/pdf"; 
     Response.Buffer = true; 
     Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); 
     Response.OutputStream.Flush(); 
     Response.End(); 
    } 

然後在你的網頁表單,你需要有一個包含了HTML的面板。這樣做的目的是讓你能夠在服務器端調用它。

<asp:Panel ID="pnlPDF" runat="server"> 
    <div> 
     html contents 
    </div> 
</asp:Panel> 
+0

那麼我怎樣才能使用iTextSharp的HTML頁面呢? – 2010-12-09 06:10:22