PDF SimpleTable in C#, VB.NET

  • Demo
  • C# source
  • VB.Net source

The sample demonstrates how to export data into a table in PDF document.

Download SimpleTable.pdf

using System;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using Spire.Pdf.Tables;

namespace SimpleTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            //margin
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
            PdfMargins margin = new PdfMargins();
            margin.Top = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Bottom = margin.Top;
            margin.Left = unitCvtr.ConvertUnits(3.17f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Right = margin.Left;

            // Create one page
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, margin);

            float y = 10;

            //title
            PdfBrush brush1 = PdfBrushes.Black;
            PdfTrueTypeFont font1 = new PdfTrueTypeFont(new Font("Arial", 16f, FontStyle.Bold));
            PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Center);
            page.Canvas.DrawString("Country List", font1, brush1, page.Canvas.ClientSize.Width / 2, y, format1);
            y = y + font1.MeasureString("Country List", format1).Height;
            y = y + 5;

            String[] data
                = {
                    "Name;Capital;Continent;Area;Population",
                    "Argentina;Buenos Aires;South America;2777815;32300003",
                    "Bolivia;La Paz;South America;1098575;7300000",
                    "Brazil;Brasilia;South America;8511196;150400000",
                    "Canada;Ottawa;North America;9976147;26500000",
                    "Chile;Santiago;South America;756943;13200000",
                    "Colombia;Bagota;South America;1138907;33000000",
                    "Cuba;Havana;North America;114524;10600000",
                    "Ecuador;Quito;South America;455502;10600000",
                    "El Salvador;San Salvador;North America;20865;5300000",
                    "Guyana;Georgetown;South America;214969;800000",
                    "Jamaica;Kingston;North America;11424;2500000",
                    "Mexico;Mexico City;North America;1967180;88600000",
                    "Nicaragua;Managua;North America;139000;3900000",
                    "Paraguay;Asuncion;South America;406576;4660000",
                    "Peru;Lima;South America;1285215;21600000",
                    "United States of America;Washington;North America;9363130;249200000",
                    "Uruguay;Montevideo;South America;176140;3002000",
                    "Venezuela;Caracas;South America;912047;19700000"
                };

            String[][] dataSource
                = new String[data.Length][];
            for (int i = 0; i < data.Length; i++)
            {
                dataSource[i] = data[i].Split(';');
            }

            PdfTable table = new PdfTable();
            table.Style.CellPadding = 2;
            table.Style.HeaderSource = PdfHeaderSource.Rows;
            table.Style.HeaderRowCount = 1;
            table.Style.ShowHeader = true;
            table.DataSource = dataSource;

            PdfLayoutResult result = table.Draw(page, new PointF(0, y));
            y = y + result.Bounds.Height + 5;

            PdfBrush brush2 = PdfBrushes.Gray;
            PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 9f));
            page.Canvas.DrawString(String.Format("* {0} countries in the list.", data.Length - 1),
                font2, brush2, 5, y);

            //Save pdf file.
            doc.SaveToFile("SimpleTable.pdf");
            doc.Close();

            //Launching the Pdf file.
            System.Diagnostics.Process.Start("SimpleTable.pdf");
        }
    }
}

Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Tables

Namespace SimpleTable
    Friend Class Program
        Shared Sub Main(ByVal args() As String)
            'Create a pdf document.
            Dim doc As New PdfDocument()

            'margin
            Dim unitCvtr As New PdfUnitConvertor()
            Dim margin As New PdfMargins()
            margin.Top = unitCvtr.ConvertUnits(2.54F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point)
            margin.Bottom = margin.Top
            margin.Left = unitCvtr.ConvertUnits(3.17F, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point)
            margin.Right = margin.Left

            ' Create one page
            Dim page As PdfPageBase = doc.Pages.Add(PdfPageSize.A4, margin)

            Dim y As Single = 10

            'title
            Dim brush1 As PdfBrush = PdfBrushes.Black
            Dim font1 As New PdfTrueTypeFont(New Font("Arial", 16.0F, FontStyle.Bold))
            Dim format1 As New PdfStringFormat(PdfTextAlignment.Center)
            page.Canvas.DrawString("Country List", font1, brush1, page.Canvas.ClientSize.Width \ 2, y, format1)
            y = y + font1.MeasureString("Country List", format1).Height
            y = y + 5

            Dim data() As String _
                = {"Name;Capital;Continent;Area;Population", _
                   "Argentina;Buenos Aires;South America;2777815;32300003", _
                   "Bolivia;La Paz;South America;1098575;7300000", _
                   "Brazil;Brasilia;South America;8511196;150400000", _
                   "Canada;Ottawa;North America;9976147;26500000", _
                   "Chile;Santiago;South America;756943;13200000", _
                   "Colombia;Bagota;South America;1138907;33000000", _
                   "Cuba;Havana;North America;114524;10600000", _
                   "Ecuador;Quito;South America;455502;10600000", _
                   "El Salvador;San Salvador;North America;20865;5300000", _
                   "Guyana;Georgetown;South America;214969;800000", _
                   "Jamaica;Kingston;North America;11424;2500000", _
                   "Mexico;Mexico City;North America;1967180;88600000", _
                   "Nicaragua;Managua;North America;139000;3900000", _
                   "Paraguay;Asuncion;South America;406576;4660000", _
                   "Peru;Lima;South America;1285215;21600000", _
                   "United States of America;Washington;North America;9363130;249200000", _
                   "Uruguay;Montevideo;South America;176140;3002000", _
                   "Venezuela;Caracas;South America;912047;19700000"}

            Dim dataSource(data.Length - 1)() As String
            For i As Integer = 0 To data.Length - 1
                dataSource(i) = data(i).Split(";"c)
            Next i

            Dim table As New PdfTable()
            table.Style.CellPadding = 2
            table.Style.HeaderSource = PdfHeaderSource.Rows
            table.Style.HeaderRowCount = 1
            table.Style.ShowHeader = True
            table.DataSource = dataSource

            Dim result As PdfLayoutResult = table.Draw(page, New PointF(0, y))
            y = y + result.Bounds.Height + 5

            Dim brush2 As PdfBrush = PdfBrushes.Gray
            Dim font2 As New PdfTrueTypeFont(New Font("Arial", 9.0F))
            page.Canvas.DrawString(String.Format("* {0} countries in the list.", data.Length - 1), _
                                   font2, brush2, 5, y)

            'Save pdf file.
            doc.SaveToFile("SimpleTable.pdf")
            doc.Close()

            'Launching the Pdf file.
            Process.Start("SimpleTable.pdf")
        End Sub
    End Class
End Namespace