Ref:
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
body
{
font-family: Arial;
font-size: 10pt;
}
table
{
border: 1px solid #ccc;
}
table th
{
background-color: #F7F7F7;
color: #333;
font-weight: bold;
}
table th, table td
{
padding: 5px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server">
<asp:Repeater ID="rptPersonelInfo" runat="server">
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<th>
ID
</th>
<th>
Name
</th>
<th>
Email
</th>
<th>
Country
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label Text='<%# Eval("Id") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("Name") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("Email") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("Country") %>' runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<br />
<br />
<asp:Repeater ID="rptDesignation" runat="server">
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<th>
ID
</th>
<th>
Company
</th>
<th>
Designation
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label Text='<%# Eval("Id") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("Company") %>' runat="server" />
</td>
<td>
<asp:Label Text='<%# Eval("Designation") %>' runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</asp:Panel>
<br />
<br />
<asp:Button ID="btnExport" runat="server" Text="Export To PDF and Send email" OnClick="ExportToPDF" />
</div>
</form>
</body>
</html>
Namespaces
using System.IO;
using System.Data;
using System.Net.Mail;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable personelInfo = new DataTable();
personelInfo.Columns.AddRange(new DataColumn[4] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Email",typeof(string)),
new DataColumn("Country",typeof(string))});
personelInfo.Rows.Add(1, "Mudassar Khan", "MudassarKhan@123.com", "India");
rptPersonelInfo.DataSource = personelInfo;
rptPersonelInfo.DataBind();
DataTable designation = new DataTable();
designation.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Company", typeof(string)),
new DataColumn("Designation",typeof(string))});
designation.Rows.Add(1, "Excelasoft Pvt Ltd.", "Founder");
rptDesignation.DataSource = designation;
rptDesignation.DataBind();
}
}
protected void ExportToPDF(object sender, EventArgs e)
{
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
Panel1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
MailMessage mm = new MailMessage("sender.com", "receiver@gmail.com");
mm.Subject = "Repeater Exported PDF";
mm.Body = "Repeater Exported PDF Attachment";
mm.Attachments.Add(new Attachment(new MemoryStream(bytes), "Repeaters.pdf"));
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = "sender@gmail.com";
NetworkCred.Password = "<passord>";
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
}
}
}
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}