Hi sowjanya,
Refer below sample.
Namespaces
C#
using System.Text;
using System.Data;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
VB.Net
Imports System.IO
Imports System.Text
Imports iTextSharp.text
Imports iTextSharp.text.html.simpleparser
Imports iTextSharp.text.pdf
Code
C#
static void Main(string[] args)
{
string id;
Console.WriteLine("Enter Id");
id = Convert.ToString(Console.ReadLine());
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {
new DataColumn("AdmissionNo", typeof(string)),
new DataColumn("HeadName", typeof(string)),
new DataColumn("Amount", typeof(int))
});
dt.Rows.Add("R-01", "AdmissionNo", 550);
dt.Rows.Add("R-01", "Tution Fees", 1100);
dt.Rows.Add("R-01", "Library Fees", 300);
dt.Rows.Add("R-02", "AdmissionNo", 123);
dt.Rows.Add("R-02", "Tution Fees", 400);
dt.Rows.Add("R-02", "Library Fees", 250);
DataRow[] result = dt.Select("[AdmissionNo] ='" + id + "'");
DataTable dt1 = result.CopyToDataTable();
string folderPath = @"C:\Users\anand\Desktop\Test\\";
FileStream stream = new FileStream(folderPath + "DataGridViewExport.pdf", FileMode.Create);
Document pdfDoc = new Document();
StringReader sr = null;
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, stream);
pdfDoc.Open();
using (StringWriter sw = new StringWriter())
{
StringBuilder sb = new StringBuilder();
sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>");
sb.Append("<tr><td align='center' colspan = '2'><b>Generated Report</b></td></tr>");
sb.Append("</td></tr>");
sb.Append("</table>");
sb.Append("<table border = '1'>");
sb.Append("<tr>");
foreach (DataColumn column in dt1.Columns)
{
sb.Append("<th>");
sb.Append(column.ColumnName);
sb.Append("</th>");
}
sb.Append("</tr>");
foreach (DataRow row in dt1.Rows)
{
sb.Append("<tr>");
foreach (DataColumn column in dt1.Columns)
{
sb.Append("<td>");
sb.Append(row[column]);
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("<tr><td align = 'right' colspan = '");
sb.Append(dt1.Columns.Count - 1);
sb.Append("'>Total</td>");
sb.Append("<td>");
int sum = Convert.ToInt32(dt1.Compute("sum(Amount)", ""));
sb.Append(sum);
sb.Append("</td>");
sb.Append("</tr></table>");
sr = new StringReader(sb.ToString());
htmlparser.Parse(sr);
pdfDoc.Close();
stream.Close();
}
}
VB.Net
Sub Main()
Dim id As String
Console.WriteLine("Enter Id")
id = Convert.ToString(Console.ReadLine())
Dim dt As DataTable = New DataTable()
dt.Columns.AddRange(New DataColumn() {New DataColumn("AdmissionNo", GetType(String)), New DataColumn("HeadName", GetType(String)), New DataColumn("Amount", GetType(Integer))})
dt.Rows.Add("R-01", "AdmissionNo", 550)
dt.Rows.Add("R-01", "Tution Fees", 1100)
dt.Rows.Add("R-01", "Library Fees", 300)
dt.Rows.Add("R-02", "AdmissionNo", 123)
dt.Rows.Add("R-02", "Tution Fees", 400)
dt.Rows.Add("R-02", "Library Fees", 250)
Dim result As DataRow() = dt.[Select]("[AdmissionNo] ='" & id & "'")
Dim dt1 As DataTable = result.CopyToDataTable()
Dim folderPath As String = "C:\Users\anand\Desktop\Test\\"
Dim stream As FileStream = New FileStream(folderPath & "DataGridViewExport.pdf", FileMode.Create)
Dim pdfDoc As Document = New Document()
Dim sr As StringReader = Nothing
Dim htmlparser As HTMLWorker = New HTMLWorker(pdfDoc)
PdfWriter.GetInstance(pdfDoc, stream)
pdfDoc.Open()
Using sw As StringWriter = New StringWriter()
Dim sb As StringBuilder = New StringBuilder()
sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>")
sb.Append("<tr><td align='center' colspan = '2'><b>Generated Report</b></td></tr>")
sb.Append("</td></tr>")
sb.Append("</table>")
sb.Append("<table border = '1'>")
sb.Append("<tr>")
For Each column As DataColumn In dt1.Columns
sb.Append("<th>")
sb.Append(column.ColumnName)
sb.Append("</th>")
Next
sb.Append("</tr>")
For Each row As DataRow In dt1.Rows
sb.Append("<tr>")
For Each column As DataColumn In dt1.Columns
sb.Append("<td>")
sb.Append(row(column))
sb.Append("</td>")
Next
sb.Append("</tr>")
Next
sb.Append("<tr><td align = 'right' colspan = '")
sb.Append(dt1.Columns.Count - 1)
sb.Append("'>Total</td>")
sb.Append("<td>")
Dim sum As Integer = Convert.ToInt32(dt1.Compute("sum(Amount)", ""))
sb.Append(sum)
sb.Append("</td>")
sb.Append("</tr></table>")
sr = New StringReader(sb.ToString())
htmlparser.Parse(sr)
pdfDoc.Close()
stream.Close()
End Using
End Sub
Screenshot