Articles in this section

How to add multiple table sequentially in a PDF with pagination using C#

The Syncfusion Essential® PDF is a .NET PDF library used to create, read, and edit PDF documents. Using this library, you can add multiple tables sequentially in a PDF with pagination.

Steps to add multiple tables sequentially in a PDF with pagination:

  1. Create a new C# console application project.

Create console application project

  1. Install the Syncfusion.Pdf.WinForms NuGet package as a reference to your .NET Framework application from Nuget.org.

NuGet package reference

  1. Include the following namespace in Program.cs file.

C#

using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Grid;
using System.Drawing;

 

VB.NET

Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Pdf.Grid
Imports System.Drawing

 

  1. Use the following code sample to add multiple tables sequentially in a PDF with pagination.

C#

//Create a new PDF document
PdfDocument document = new PdfDocument();
 
//Add a page
PdfPage page = document.Pages.Add();
 
//Create a PdfGrid
PdfGrid pdfGrid1 = new PdfGrid();
 
//Create a DataTable
DataTable dataTable1 = new DataTable();
 
//Add columns to the DataTable
dataTable1.Columns.Add("OrderID");
dataTable1.Columns.Add("CustomerID");
dataTable1.Columns.Add("ShipName");
dataTable1.Columns.Add("ShipAddress");
dataTable1.Columns.Add("ShipCity");
dataTable1.Columns.Add("ShipPostalCode");
dataTable1.Columns.Add("ShipCountry");
 
for (int i = 0; i < 10; i++)
{
    //Add rows to the DataTable
    dataTable1.Rows.Add(new object[] { "10248", "VINET", "Vins et alcools Chevalier", "59 rue de l'Abbaye", "Reims", "51100", "France" });
    dataTable1.Rows.Add(new object[] { "10249", "TOMSP", "Toms Spezialitäten", "Luisenstr. 48", "Münster", "44087", "Germany" });
    dataTable1.Rows.Add(new object[] { "10250", "HANAR", "Hanari Carnes", "Rua do Paço, 67", "Rio de Janeiro", "05454-876", "Brazil" });
    dataTable1.Rows.Add(new object[] { "10251", "VICTE", "Victuailles en stock", "2, rue du Commerce", "Lyon", "69004", "France" });
    dataTable1.Rows.Add(new object[] { "10252", "SUPRD", "Suprêmes délices", "Boulevard Tirou, 255", "Charleroi", "B-6000", "Belgium" });
    dataTable1.Rows.Add(new object[] { "10253", "HANAR", "Hanari Carnes", "Rua do Paço, 67", "Rio de Janeiro", "05454-876", "Brazil" });
}
 
//Assign data source
pdfGrid1.DataSource = dataTable1;
 
//Add the layout format for grid pagination
PdfGridLayoutFormat layoutFormat = new PdfGridLayoutFormat();
layoutFormat.Layout = PdfLayoutType.Paginate;
 
//Apply the built-in table style
pdfGrid1.ApplyBuiltinStyle(PdfGridBuiltinStyle.GridTable4Accent1);
 
//Draw grid to the page of PDF document
PdfLayoutResult result = pdfGrid1.Draw(page, new PointF(10, 10), layoutFormat);
 
//Create a PdfGrid
PdfGrid pdfGrid2 = new PdfGrid();
 
//Create a DataTable
DataTable dataTable2 = new DataTable();
 
//Add columns to the DataTable
dataTable2.Columns.Add("CustomerID");
dataTable2.Columns.Add("CompanyName");
dataTable2.Columns.Add("ContactName");
dataTable2.Columns.Add("Address");
dataTable2.Columns.Add("City");
dataTable2.Columns.Add("PostalCode");
dataTable2.Columns.Add("Country");
dataTable2.Columns.Add("Phone");
dataTable2.Columns.Add("Fax");
 
//Add rows to the DataTable
dataTable2.Rows.Add(new object[] { "ALFKI", "Alfreds Futterkiste", "Maria Anders", "Obere Str. 57", "Berlin", "12209", "Germany", "030-0074321", "030-0076545" });
dataTable2.Rows.Add(new object[] { "ANATR", "Ana Trujillo Emparedados y helados", "Ana Trujillo", "Avda. de la Constitución 2222", "México D.F.", "05021", "Mexico", "(5) 555-4729", "(5) 555-3745" });
dataTable2.Rows.Add(new object[] { "ANTON", "Antonio Moreno Taquería", "Antonio Moreno", "Mataderos 2312", "México D.F.", "05023", "Mexico", "(5) 555-3932", "" });
dataTable2.Rows.Add(new object[] { "BLAUS", "Blauer See Delikatessen", "Hanna Moos", "Forsterstr. 57", "Mannheim", "68306", "Germany", "0621-08460", "0621-08924" });
dataTable2.Rows.Add(new object[] { "DRACD", "Drachenblut Delikatessen", "Sven Ottlieb", "Walserweg 21", "Aachen", "52066", "Germany", "0241-039123", "0241-059428" });
 
//Assign data source
pdfGrid2.DataSource = dataTable2;
 
//Apply the built-in table style
pdfGrid2.ApplyBuiltinStyle(PdfGridBuiltinStyle.GridTable6Colorful);
 
//Draw grid to the resultant page of the first grid
result = pdfGrid2.Draw(result.Page, new PointF(10, result.Bounds.Height + 30));
 
//Save the PDF document
document.Save("SequentTables.pdf");
 
//Close the PDF document
document.Close(true);
 
//This will open the PDF file and the result will be seen in the default PDF Viewer
Process.Start("SequentTables.pdf");

 

VB.NET

'Create a new PDF document
Dim document As PdfDocument = New PdfDocument()
 
'Add a page 
Dim page As PdfPage = document.Pages.Add()
 
'Create a PdfGrid 
Dim pdfGrid1 As PdfGrid = New PdfGrid()
 
'Create a DataTable 
Dim dataTable1 As DataTable = New DataTable()
 
'Add columns to the DataTable 
dataTable1.Columns.Add("OrderID")
dataTable1.Columns.Add("CustomerID")
dataTable1.Columns.Add("ShipName")
dataTable1.Columns.Add("ShipAddress")
dataTable1.Columns.Add("ShipCity")
dataTable1.Columns.Add("ShipPostalCode")
dataTable1.Columns.Add("ShipCountry")
 
For i As Integer = 0 To 10 - 1
    'Add rows to the DataTable 
    dataTable1.Rows.Add(New Object() {"10248", "VINET", "Vins et alcools Chevalier", "59 rue de l'Abbaye", "Reims", "51100", "France"})
    dataTable1.Rows.Add(New Object() {"10249", "TOMSP", "Toms Spezialitäten", "Luisenstr. 48", "Münster", "44087", "Germany"})
    dataTable1.Rows.Add(New Object() {"10250", "HANAR", "Hanari Carnes", "Rua do Paço, 67", "Rio de Janeiro", "05454-876", "Brazil"})
    dataTable1.Rows.Add(New Object() {"10251", "VICTE", "Victuailles en stock", "2, rue du Commerce", "Lyon", "69004", "France"})
    dataTable1.Rows.Add(New Object() {"10252", "SUPRD", "Suprêmes délices", "Boulevard Tirou, 255", "Charleroi", "B-6000", "Belgium"})
    dataTable1.Rows.Add(New Object() {"10253", "HANAR", "Hanari Carnes", "Rua do Paço, 67", "Rio de Janeiro", "05454-876", "Brazil"})
Next
 
'Assign data source 
pdfGrid1.DataSource = dataTable1
 
'Add the layout format for grid pagination 
Dim layoutFormat As PdfGridLayoutFormat = New PdfGridLayoutFormat()
layoutFormat.Layout = PdfLayoutType.Paginate
 
'Apply the built-in table style 
pdfGrid1.ApplyBuiltinStyle(PdfGridBuiltinStyle.GridTable4Accent1)
 
'Draw grid to the page of PDF document 
Dim result As PdfLayoutResult = pdfGrid1.Draw(page, New PointF(10, 10), layoutFormat)
 
'Create a PdfGrid 
Dim pdfGrid2 As PdfGrid = New PdfGrid()
 
'Create a DataTable 
Dim dataTable2 As DataTable = New DataTable()
 
'Add columns to the DataTable 
dataTable2.Columns.Add("CustomerID")
dataTable2.Columns.Add("CompanyName")
dataTable2.Columns.Add("ContactName")
dataTable2.Columns.Add("Address")
dataTable2.Columns.Add("City")
dataTable2.Columns.Add("PostalCode")
dataTable2.Columns.Add("Country")
dataTable2.Columns.Add("Phone")
dataTable2.Columns.Add("Fax")
 
'Add rows to the DataTable 
dataTable2.Rows.Add(New Object() {"ALFKI", "Alfreds Futterkiste", "Maria Anders", "Obere Str. 57", "Berlin", "12209", "Germany", "030-0074321", "030-0076545"})
dataTable2.Rows.Add(New Object() {"ANATR", "Ana Trujillo Emparedados yhelados", "Ana Trujillo", "Avda. de la Constitución 2222", "México D.F.", "05021", "Mexico", "(5) 555-4729", "(5) 555-3745"})
dataTable2.Rows.Add(New Object() {"ANTON", "Antonio Moreno Taquería", "Antonio Moreno", "Mataderos 2312", "México D.F.", "05023", "Mexico", "(5) 555-3932", ""})
dataTable2.Rows.Add(New Object() {"BLAUS", "Blauer See Delikatessen", "Hanna Moos", "Forsterstr. 57", "Mannheim", "68306", "Germany", "0621-08460", "0621-08924"})
dataTable2.Rows.Add(New Object() {"DRACD", "Drachenblut Delikatessen", "Sven Ottlieb", "Walserweg 21", "Aachen", "52066", "Germany", "0241-039123", "0241-059428"})
 
'Assign data source 
pdfGrid2.DataSource = dataTable2
 
'Apply the built-in table style 
pdfGrid2.ApplyBuiltinStyle(PdfGridBuiltinStyle.GridTable6Colorful)
 
'Draw grid to the resultant page of the first grid 
result = pdfGrid2.Draw(result.Page, New PointF(10, result.Bounds.Height + 30))
 
'Save the PDF document 
document.Save("SequentTables.pdf")
 
'Close the PDF document  
document.Close(True)
 
'This will open the PDF file and the result will be seen in the default PDF Viewer 
Process.Start("SequentTables.pdf")

 

A complete working sample can be downloaded from TableWithPagination.zip.

 

Take a moment to peruse the documentation. You can find other options like cell customization, rows, and column customization, table customization, and pagination.

 

Refer to here to explore a rich set of Syncfusion Essential® PDF features.

 

Note:

Starting with v16.2.0.x, if you reference Syncfusion® assemblies from a trial setup or the NuGet feed, include a license key in your product. Refer to the link to learn about generating and registering the Syncfusion® license key in your application to use the components without a trial message.

 

See Also:

Create a table in a PDF document from DataTable

Add multiple tables sequentially in a PDF

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Access denied
Access denied