How to Export DataTable to PDF in C#
By FoxLearn 7/16/2024 9:38:09 AM 11.52K
How to Export data from DataTable to PDF in C#
Open Visual Studio and create a new Windows Forms Application project.
Next, Drag and drop the DataGridView, Button controls from your Visual Studio toolbox into your form designer, then design a simple UI allows you to export data from DataTable to PDF file in c# as shown below.
Export datatable to pdf in c# windows application
Adding a bindingsource to your DataGridView to retrieve data from customer table in the Northwind database.
You could be retrieved from a database, file, or any other source, then populate a DataTable
with this data.
private void frmExportDataTableToPdf_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'appData.Customers' table. You can move, or remove it, as needed. this.customersTableAdapter.Fill(this.appData.Customers); }
Export to pdf in c# using itextsharp
If you haven't already, you need to install the iTextSharp library. You can do this via NuGet Package Manager in Visual Studio.
Right-clicking on your project, then select Manage Nuget Packages from your Visual Studio.
Next, Search 'iTextSharp', then download and install it.
iTextSharp is an open source library helps you to handle pdf file.
Adding a click event handler to the Export button allows you to export datatable to pdf file in c#.
// export the data from the DataTable to a PDF using iTextSharp in c# private void btnExportData_Click(object sender, EventArgs e) { using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "PDF files|*.pdf" }) { if (sfd.ShowDialog() == DialogResult.OK) { try { Document doc = new Document(iTextSharp.text.PageSize.A4, 10, 10, 42, 35); PdfWriter pdfWriter = PdfWriter.GetInstance(doc, new FileStream(sfd.FileName, FileMode.Create)); doc.Open(); PdfContentByte pdfContent = pdfWriter.DirectContent; iTextSharp.text.Rectangle rectangle = new iTextSharp.text.Rectangle(doc.PageSize); //customized border sizes rectangle.Left += doc.LeftMargin - 5; rectangle.Right -= doc.RightMargin - 5; rectangle.Top -= doc.TopMargin - 5; rectangle.Bottom += doc.BottomMargin - 5; pdfContent.SetColorStroke(BaseColor.WHITE);//setting the color of the border to white pdfContent.Rectangle(rectangle.Left, rectangle.Bottom, rectangle.Width, rectangle.Height); pdfContent.Stroke(); //setting font type, font size and font color iTextSharp.text.Font headerFont = iTextSharp.text.FontFactory.GetFont(FontFactory.TIMES_ROMAN, 25, BaseColor.LIGHT_GRAY); Paragraph p = new Paragraph(); p.Alignment = Element.ALIGN_CENTER;//adjust the alignment of the heading p.Add(new Chunk("Customers", headerFont));//adding a heading to the PDF doc.Add(p);//adding component to the document iTextSharp.text.Font font = iTextSharp.text.FontFactory.GetFont(FontFactory.TIMES_ROMAN, 12, BaseColor.LIGHT_GRAY); //creating pdf table PdfPTable table = new PdfPTable(dataGridView1.Columns.Count); for (int j = 0; j < dataGridView.Columns.Count; j++) { PdfPCell cell = new PdfPCell(); //create object from the pdfpcell cell.BackgroundColor = BaseColor.WHITE;//set color of cells cell.AddElement(new Chunk(dataGridView.Columns[j].HeaderText.ToUpper(), font)); table.AddCell(cell); } //adding rows from gridview to table for (int i = 0; i < dataGridView.Rows.Count; i++) { table.WidthPercentage = 100;//set width of the table for (int j = 0; k < dataGridView.Columns.Count; j++) { if (dataGridView1[j, i].Value != null) table.AddCell(new Phrase(dataGridView[j, i].Value.ToString())); } } //adding table to document doc.Add(table); doc.Close(); MessageBox.Show("You have successfully exported the file.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
Through c# example, I've showed you how to create a pdf file with itextsharp in c#, then write data from datatable into pdf file using itextsharp in c# windows forms application.