Please refer this code. Please dowload the iTextSharp ddl from the below link. Please run this code in a new website.
HTML
<form id="form1" runat="server">
<asp:Panel ID="Panel1" runat="server">
<asp:Repeater ID="rptCustomers" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
<b><u><span class="name">
<%# Eval("Name")%></span></u></b>
</td>
</tr>
<tr>
<td>
<b>City: </b><span class="city">
<%# Eval("City") %></span><br />
<b>Postal Code: </b><span class="postal">
<%# Eval("PostalCode") %></span><br />
<b>Country: </b><span class="country">
<%# Eval("Country")%></span><br />
<b>Phone: </b><span class="phone">
<%# Eval("Phone")%></span><br />
<b>Fax: </b><span class="fax">
<%# Eval("Fax")%></span><br />
</td>
</tr>
</table>
<br />
</ItemTemplate>
</asp:Repeater>
</asp:Panel>
<asp:Button ID="btnExport" runat="server" Text="Export" OnClick="btnExport_Click" />
</form>
Namespaces
using System.IO;
using System.Data;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using System.Web.UI.HtmlControls;
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (!IsPostBack)
{
PopulateRepeater();
}
}
}
private void PopulateRepeater()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[6] { new DataColumn("Name"), new DataColumn("City"), new DataColumn("Country"), new DataColumn("PostalCode"), new DataColumn("Fax"), new DataColumn("Phone") });
dt.Rows.Add("Mudassar", "Mumbai", "India", "40009", "030 - 0076545", "030 - 0074321");
dt.Rows.Add("John", "Chicago", "USA", "21674", "030 - 0074545", "020 - 0074321");
dt.Rows.Add("Rick", "London", "UK", "45454", "030 - 0076545", "040 - 0078821");
dt.Rows.Add("Mike", "California", "USA", "17845", "040 - 0054545", "030 - 0065464");
dt.Rows.Add("Peter", "Toronto", "Canada", "54787", "050 - 0086545", "030 - 0073321");
rptCustomers.DataSource = dt;
rptCustomers.DataBind();
}
protected void btnExport_Click(object sender, EventArgs e)
{
PopulateRepeater();
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
for (int i = 0; i < rptCustomers.Items.Count; i++)
{
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
pdfDoc.SetPageSize(new Rectangle(600, 300));
pdfDoc.NewPage();
rptCustomers.Items[i].RenderControl(hw);
// If you are having only tr in ItemTemplate
//string repeater = "<table>" + sw.ToString() + "</table>";
string repeaterTable = sw.ToString();
StringReader sr = new StringReader(repeaterTable);
htmlparser.Parse(sr);
}
}
}
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Repeater.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.End();
}