2012-10-09 84 views
-1

我正在使用一個靜態表,這是一個面板conrol 如何轉換面板內的html內容爲pdf 請幫我轉換爲PDF一旦按鈕出口被點擊將html轉換爲pdf使用c#和asp.net與itextsharp

.aspx的代碼: -

<table width="100%"> 
    <tr> 
     <td> 
      <asp:Panel ID="pnlPerson" runat="server"> 
      <table border="1" style="font-family: Arial; font-size: 10pt; width: 200px"> 
       <tr> 
        <td colspan="2" style="background-color: #18B5F0; height: 18px; color: White; border: 1px solid white"> 
         <b>Personal Details</b> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <b>Name:</b> 
        </td> 
        <td> 
         <asp:Label ID="lblName" runat="server"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <b>Age:</b> 
        </td> 
        <td> 
         <asp:Label ID="lblAge" runat="server"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <b>City:</b> 
        </td> 
        <td> 
         <asp:Label ID="lblCity" runat="server"></asp:Label> 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <b>Country:</b> 
        </td> 
        <td> 
         <asp:Label ID="lblCountry" runat="server"></asp:Label> 
        </td> 
       </tr> 
      </table> 
      </asp:Panel> 
     <asp:Button ID="btnExport" runat="server" Text="Export" /> 
     </td> 
    </tr> 
</table> 

C#.NET代碼: -

if (!IsPostBack) 
{ 
    //Populate DataTable 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("Name"); 
    dt.Columns.Add("Age"); 
    dt.Columns.Add("City"); 
    dt.Columns.Add("Country"); 
    dt.Rows.Add(); 
    dt.Rows[0]["Name"] = "Mudassar Khan"; 
    dt.Rows[0]["Age"] = "27"; 
    dt.Rows[0]["City"] = "Mumbai"; 
    dt.Rows[0]["Country"] = "India"; 

    //Bind Datatable to Labels 
    lblName.Text = dt.Rows[0]["Name"].ToString(); 
    lblAge.Text = dt.Rows[0]["Age"].ToString(); 
    lblCity.Text = dt.Rows[0]["City"].ToString(); 
    lblCountry.Text = dt.Rows[0]["Country"].ToString(); 
} 

protected void btnExport_Click(object sender, EventArgs e) 
{ 
} 

請不要給我的C#代碼此導出按鈕

+0

網上有很多例子。如果這不起作用,你應該想出一些想法並尋求幫助。 – Tariqulazam

+0

請幫我看看這個例子。我看過很多例子,但沒有找到。請按需要 - 塔夸克贊 – user1732649

+0

如果有幫助,請參閱答案。 – Tariqulazam

回答

0

那是我做了什麼,並根據需要

protected void btnExport_Click(object sender, EventArgs e) 
    { 
     var document = new Document(PageSize.A4, 50, 50, 25, 25); 
     var output = new FileStream(@"C:\Temp\PersonDetail.pdf", FileMode.Create); 
     var writer = PdfWriter.GetInstance(document, output); 
     document.Open(); 


     StringBuilder sb = new StringBuilder(); 
     StringWriter tw = new StringWriter(sb); 
     HtmlTextWriter hw = new HtmlTextWriter(tw); 
     pnlPerson.RenderControl(hw); 
     var html = sb.ToString(); 
     var parsedHtmlElements = HTMLWorker.ParseToList(new StringReader(html), null); 

     // Enumerate the elements, adding each one to the Document... 
     foreach (var htmlElement in parsedHtmlElements) 
      document.Add(htmlElement as IElement); 

     document.Close(); 

    } 

請閱讀由斯科特·米切爾這個漂亮的文章在http://www.4guysfromrolla.com/articles/030911-1.aspx,並決定什麼是最適合你,這是創建PDF文件。正如本文作者所建議的,解析HTML並將其添加到PDF中具有有限的支持,並且可能無法用於複雜的HTML結構。

讓我知道它是否有幫助。

相關問題