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:
- Create a new C# console application project.

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

- 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
- 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.
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: