ExcelTechnology
How to Export Data into Table in PDF by Using VB.NET
People would like to insert tables to show data information clearly in PDF. Sometimes, the data is added in table according to data information which has given. Sometime, the data is exported from database.
For inserting table, we can use Adobe Acrobat, which specializes in operating PDF documents. But if we want to export data from database to PDF, how should we do? Actually, we can find several tools which are used to export data. We can get the needed data just by following guides for using these tools.
Now, I want to show a method about how to get table in PDF by exporting data from database. The table I will export presents information of countries, including name, capital, continent, area and population. It is just simply formatted.
The following code shows how to export data into a table in PDF with VB.NET.
Note: one component: Spire.PDF is used. Please download and install it before using the code.
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
