2010-12-08 33 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

相关问题