ASPForums.Net RSS Feedhttp://www.aspforums.net/Handlers/RSS.ashxLatest additions to the content that appears on ASPForums.Net(c) 2019 www.aspforums.com. All rights reserved.Export student report to PDF using iTextSharp in Windows Application<p>Hi <a class="username" rel="smile"> smile</a>,</p> <p>Refer below sample.</p> <p><span style="text-decoration: underline;"><strong>Namespaces</strong></span></p> <p><strong>C#</strong></p> <pre class="brush: csharp">using System.IO; using iTextSharp.text; using iTextSharp.text.pdf; using System.Data; </pre> <p><strong>VB.Net</strong></p> <pre class="brush: vb">Imports System.IO Imports System.Data Imports iTextSharp.text Imports iTextSharp.text.pdf</pre> <p><span style="text-decoration: underline;"><strong>Code</strong></span></p> <p><strong>C#</strong></p> <pre class="brush: csharp">private static DataTable GetData() { &nbsp;&nbsp;&nbsp; DataTable dt = new DataTable(); &nbsp;&nbsp;&nbsp; dt.Columns.AddRange(new DataColumn[] { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;SessionName&#34;, typeof(string)), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;ExamType&#34;, typeof(string)), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;SName&#34;, typeof(string)), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;FName&#34;, typeof(string)), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;AcademicName&#34;, typeof(string)), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;FPhone&#34;, typeof(string)), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new DataColumn(&#34;AdmissionNo&#34;, typeof(string)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;ClassName&#34;, typeof(string)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;SectionName&#34;, typeof(string)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;Subject&#34;, typeof(string)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;Max&#34;, typeof(int)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;Obtain&#34;, typeof(int)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;%&#34;, typeof(int)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;Pos&#34;, typeof(int)), &nbsp;&nbsp;&nbsp; new DataColumn(&#34;Grade&#34;, typeof(string)) }); &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-01&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Urdu&#34;, 50, 24, 50, 3, &#34;C&#34;); &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-01&#34;, &#34;One&#34;, &#34;A&#34;, &#34;English&#34;, 50, 28, 55, 2, &#34;B&#34;); &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-01&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Math&#34;, 50, 43, 80, 1, &#34;A&#34;); &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-02&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Urdu&#34;, 50, 24, 50, 3, &#34;C&#34;); &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-02&#34;, &#34;One&#34;, &#34;A&#34;, &#34;English&#34;, 50, 28, 55, 2, &#34;B&#34;); &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-02&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Math&#34;, 50, 43, 80, 1, &#34;A&#34;); &nbsp;&nbsp;&nbsp; return dt; } protected void tbFront_Click(object sender, EventArgs e) { &nbsp;&nbsp;&nbsp; string pdfpath = @&#34;C:\Users\anand\Desktop\Test\\&#34;; &nbsp;&nbsp;&nbsp; if (!Directory.Exists(pdfpath)) &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Directory.CreateDirectory(pdfpath); &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; string folderPath = @&#34;C:\Users\anand\Desktop\Test\\&#34;; &nbsp;&nbsp;&nbsp; FileStream stream = new FileStream(folderPath + &#34;DataGridViewExport.pdf&#34;, FileMode.Create); &nbsp;&nbsp;&nbsp; Document doc = new Document(); &nbsp;&nbsp;&nbsp; PdfWriter.GetInstance(doc, stream); &nbsp;&nbsp;&nbsp; doc.Open(); &nbsp;&nbsp;&nbsp; DataTable sTable = GetData(); &nbsp;&nbsp;&nbsp; var grouped = from x in sTable.AsEnumerable() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; group x by new { a = x[&#34;AdmissionNo&#34;] } into g &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; select new &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Value = g.Key, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ColumnValues = g &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }; &nbsp;&nbsp;&nbsp; DataTable dtfinal = null; &nbsp;&nbsp;&nbsp; foreach (var key in grouped) &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dtfinal = sTable.Clone(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (var columnValue in key.ColumnValues) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dtfinal.ImportRow(columnValue); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PdfPTable table1 = new PdfPTable(2); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.DefaultCell.Padding = 10f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.DefaultCell.Border = 0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.HorizontalAlignment = Element.ALIGN_CENTER; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.TotalWidth = 500f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.LockedWidth = true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float[] widths1 = new float[] { 0.7f, 3f }; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PdfPTable tableb = new PdfPTable(4); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float[] widthim = new float[] { 0.1f, 0.1f, 0.1f, 0.05f }; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.SetWidths(widthim); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.DefaultCell.Padding = 10f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.HorizontalAlignment = Element.ALIGN_CENTER; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.TotalWidth = 550f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.LockedWidth = true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PdfPCell header = new PdfPCell(new Phrase(&#34;Student Details&#34;, FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.Indent = 10; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.HorizontalAlignment = 1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.Padding = 10f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.Colspan = 4; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.AddCell(header); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PdfPTable nested = new PdfPTable(3); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float[] widthi = new float[] { 0.1f, 0.1f, 0.1f }; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.SetWidths(widthi); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.DefaultCell.Padding = 10f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Session: &#34; + dtfinal.Rows[0][&#34;SessionName&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Exam: &#34; + sTable.Rows[0][&#34;ExamType&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Reg No. &#34; + dtfinal.Rows[0][&#34;AdmissionNo&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Student: &#34; + dtfinal.Rows[0][&#34;SName&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Father: &#34; + dtfinal.Rows[0][&#34;FName&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;AcademicYear: &#34; + dtfinal.Rows[0][&#34;AcademicName&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Class: &#34; + dtfinal.Rows[0][&#34;ClassName&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Section: &#34; + dtfinal.Rows[0][&#34;SectionName&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(new Phrase(&#34;Phone No. &#34; + dtfinal.Rows[0][&#34;FPhone&#34;], FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Add(tableb); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Add(nested); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int j = 0; j &lt; dtfinal.Rows.Count; j++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PdfPTable table = new PdfPTable(5); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.TotalWidth = 500f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.LockedWidth = true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; float[] widths = new float[] { 0.1f, 0.1f, 0.1f, 0.1f, 0.1f }; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.SetWidths(widths); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.DefaultCell.Padding = 7f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.HorizontalAlignment = Element.ALIGN_CENTER; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.SpacingBefore = 5f; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows[j][&#34;Subject&#34;].ToString()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A1.T1&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A2.T1&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A1.T2&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A2.T2&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Max &#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows[j][&#34;Max&#34;].ToString()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Obt&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows[j][&#34;Obtain&#34;].ToString()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Per&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows[j][&#34;%&#34;].ToString()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Grade&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows[j][&#34;Grade&#34;].ToString()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Add(table); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.NewPage(); &nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; doc.Close(); }</pre> <p><strong>VB.Net</strong></p> <pre class="brush: vb">Private Shared Function GetData() As DataTable &nbsp;&nbsp;&nbsp; Dim dt As DataTable = New DataTable() &nbsp;&nbsp;&nbsp; dt.Columns.AddRange(New DataColumn() {New DataColumn(&#34;SessionName&#34;, GetType(String)), New DataColumn(&#34;ExamType&#34;, GetType(String)), New DataColumn(&#34;SName&#34;, GetType(String)), New DataColumn(&#34;FName&#34;, GetType(String)), New DataColumn(&#34;AcademicName&#34;, GetType(String)), New DataColumn(&#34;FPhone&#34;, GetType(String)), New DataColumn(&#34;AdmissionNo&#34;, GetType(String)), New DataColumn(&#34;ClassName&#34;, GetType(String)), New DataColumn(&#34;SectionName&#34;, GetType(String)), New DataColumn(&#34;Subject&#34;, GetType(String)), New DataColumn(&#34;Max&#34;, GetType(Integer)), New DataColumn(&#34;Obtain&#34;, GetType(Integer)), New DataColumn(&#34;%&#34;, GetType(Integer)), New DataColumn(&#34;Pos&#34;, GetType(Integer)), New DataColumn(&#34;Grade&#34;, GetType(String))}) &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-01&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Urdu&#34;, 50, 24, 50, 3, &#34;C&#34;) &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-01&#34;, &#34;One&#34;, &#34;A&#34;, &#34;English&#34;, 50, 28, 55, 2, &#34;B&#34;) &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-01&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Math&#34;, 50, 43, 80, 1, &#34;A&#34;) &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-02&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Urdu&#34;, 50, 24, 50, 3, &#34;C&#34;) &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-02&#34;, &#34;One&#34;, &#34;A&#34;, &#34;English&#34;, 50, 28, 55, 2, &#34;B&#34;) &nbsp;&nbsp;&nbsp; dt.Rows.Add(&#34;2019&#34;, &#34;Internal&#34;, &#34;s1&#34;, &#34;f1&#34;, &#34;t1t1t&#34;, &#34;654165465&#34;, &#34;R-02&#34;, &#34;One&#34;, &#34;A&#34;, &#34;Math&#34;, 50, 43, 80, 1, &#34;A&#34;) &nbsp;&nbsp;&nbsp; Return dt End Function Protected Sub tbFront_Click(ByVal sender As Object, ByVal e As EventArgs) &nbsp;&nbsp;&nbsp; Dim pdfpath As String = &#34;C:\Users\anand\Desktop\Test\\&#34; &nbsp;&nbsp;&nbsp; If Not Directory.Exists(pdfpath) Then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Directory.CreateDirectory(pdfpath) &nbsp;&nbsp;&nbsp; End If &nbsp;&nbsp;&nbsp; Dim folderPath As String = &#34;C:\Users\anand\Desktop\Test\\&#34; &nbsp;&nbsp;&nbsp; Dim stream As FileStream = New FileStream(folderPath &amp; &#34;DataGridViewExport.pdf&#34;, FileMode.Create) &nbsp;&nbsp;&nbsp; Dim doc As Document = New Document() &nbsp;&nbsp;&nbsp; PdfWriter.GetInstance(doc, stream) &nbsp;&nbsp;&nbsp; doc.Open() &nbsp;&nbsp;&nbsp; Dim sTable As DataTable = GetData() &nbsp;&nbsp;&nbsp; Dim grouped = From x In sTable.AsEnumerable() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Group x By Value = x.Field(Of String)(&#34;AdmissionNo&#34;) Into g = Group &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Select New With { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Value = Value, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .ColumnValues = g} &nbsp;&nbsp;&nbsp; For Each key In grouped &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim dtfinal As DataTable = sTable.Clone() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each columnValue In key.ColumnValues &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dtfinal.ImportRow(columnValue) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dtfinal = sTable.Clone() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each columnValue In key.ColumnValues &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dtfinal.ImportRow(columnValue) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim table1 As PdfPTable = New PdfPTable(2) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.DefaultCell.Padding = 10.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.DefaultCell.BackgroundColor = iTextSharp.text.Color.WHITE &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.DefaultCell.Border = 0 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.HorizontalAlignment = Element.ALIGN_CENTER &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.TotalWidth = 500.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table1.LockedWidth = True &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim widths1 As Single() = New Single() {0.7F, 3.0F} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim tableb As PdfPTable = New PdfPTable(4) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim widthim As Single() = New Single() {0.1F, 0.1F, 0.1F, 0.05F} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.SetWidths(widthim) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.DefaultCell.Padding = 10.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.HorizontalAlignment = Element.ALIGN_CENTER &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.TotalWidth = 550.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.LockedWidth = True &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim header As PdfPCell = New PdfPCell(New Phrase(&#34;Student Details&#34;, FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 12))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.Indent = 10 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.HorizontalAlignment = 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.Padding = 10.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header.Colspan = 4 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tableb.AddCell(header) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim nested As PdfPTable = New PdfPTable(3) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim widthi As Single() = New Single() {0.1F, 0.1F, 0.1F} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.SetWidths(widthi) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.DefaultCell.Padding = 10.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Session: &#34; &amp; dtfinal.Rows(0)(&#34;SessionName&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Exam: &#34; &amp; sTable.Rows(0)(&#34;ExamType&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Reg No. &#34; &amp; dtfinal.Rows(0)(&#34;AdmissionNo&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Student: &#34; &amp; dtfinal.Rows(0)(&#34;SName&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Father: &#34; &amp; dtfinal.Rows(0)(&#34;FName&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;AcademicYear: &#34; &amp; dtfinal.Rows(0)(&#34;AcademicName&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Class: &#34; &amp; dtfinal.Rows(0)(&#34;ClassName&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Section: &#34; &amp; dtfinal.Rows(0)(&#34;SectionName&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nested.AddCell(New Phrase(&#34;Phone No. &#34; &amp; dtfinal.Rows(0)(&#34;FPhone&#34;), FontFactory.GetFont(FontFactory.HELVETICA_BOLD, 10))) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Add(tableb) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Add(nested) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For j As Integer = 0 To dtfinal.Rows.Count - 1 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim table As PdfPTable = New PdfPTable(5) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.TotalWidth = 500.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.LockedWidth = True &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim widths As Single() = New Single() {0.1F, 0.1F, 0.1F, 0.1F, 0.1F} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.SetWidths(widths) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.DefaultCell.Padding = 7.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.HorizontalAlignment = Element.ALIGN_CENTER &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.SpacingBefore = 5.0F &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows(j)(&#34;Subject&#34;).ToString()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A1.T1&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A2.T1&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A1.T2&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;A2.T2&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Max &#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows(j)(&#34;Max&#34;).ToString()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Obt&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows(j)(&#34;Obtain&#34;).ToString()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Per&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows(j)(&#34;%&#34;).ToString()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;Grade&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(dtfinal.Rows(j)(&#34;Grade&#34;).ToString()) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.AddCell(&#34;&#34;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.Add(table) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; doc.NewPage() &nbsp;&nbsp;&nbsp; Next &nbsp;&nbsp;&nbsp; doc.Close() End Sub</pre> <p><span style="text-decoration: underline;"><strong>Screenshot</strong></span></p> <p><img src="https://i.imgur.com/71PcsbV.gif" alt="" width="519" height="515" /></p>https://www.aspforums.net:443/Threads/164735/Export-student-report-to-PDF-using-iTextSharp-in-Windows-Application/https://www.aspforums.net:443/Threads/164735/Export-student-report-to-PDF-using-iTextSharp-in-Windows-Application/Wed, 01 May 2019 07:01:10 GMT