2010-12-08 5 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 페이지에서이 작업을 수행 할 수 있습니까? –

+1

iTextSharp는 코드 뒤에서 실행해야합니다. html 페이지에서만 사용하는 방법이 있는지 확실하지 않습니다. 그러나 내가 아는 한, 그것은 순수한 html을 사용해서는 불가능합니다. :) –

관련 문제