2012-10-09 58 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结构。

让我知道它是否有帮助。

相关问题