Sir,
below code has worked for me.
1. Add reference for iTextSharp.dll file, then add references at top as below.
HTML
<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 style="color: Red;">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>
Namespaces
using System.IO;
using iTextSharp.text.html.simpleparser;
using System.Data;
using iTextSharp.text;
C#
protected void Page_Load(object sender, System.EventArgs e)
{
if (!Page.IsPostBack)
{
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";
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();
generateInvoice();
}
}
public void generateInvoice()
{
string appPath = HttpContext.Current.Request.ApplicationPath;
string path = Server.MapPath(appPath + "/Doc/Test.pdf");
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
pnlPerson.RenderControl(hw);
dynamic output = new FileStream(path, FileMode.Create);
StringReader sr = new StringReader(sw.ToString());
iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(PageSize.A4, 10f, 10f, 100f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, output);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
}
VB.Net
Namespaces
Imports iTextSharp.text
Imports iTextSharp.text.html.simpleparser
Imports iTextSharp.text.pdf
Imports System.IO
Imports System.Data
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Dim dt As 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"
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()
generateInvoice()
End If
End Sub
Sub generateInvoice()
Dim appPath As String = HttpContext.Current.Request.ApplicationPath
Dim path As String = Server.MapPath(appPath & "/Doc/Test.pdf")
Dim sw As New StringWriter()
Dim hw As New HtmlTextWriter(sw)
pnlPerson.RenderControl(hw)
Dim output = New FileStream(path, FileMode.Create)
Dim sr As New StringReader(sw.ToString())
Dim pdfDoc As New iTextSharp.text.Document(PageSize.A4, 10.0F, 10.0F, 100.0F, 0.0F)
Dim htmlparser As New HTMLWorker(pdfDoc)
iTextSharp.text.pdf.PdfWriter.GetInstance(pdfDoc, output)
pdfDoc.Open()
htmlparser.Parse(sr)
pdfDoc.Close()
End Sub