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

15.08.2011. u 08:36 | 0 Komentara | Print | # | ^

How to Draw Image in PDF with C#

It is necessary to have some images in one document to show information more intuitively. Also, the beautiful images with words are more appealed to readers than text only.

Generally speaking, we can insert images in documents directly. And then adjust images’ size or direction according to the requirements. But sometimes, there are not appropriate images for contents so that we may need to draw one. For example, if there must be a chart in a document, we should draw one based on the data information shown in document.

So, how to draw a image in our electronic document? Because PDF is frequently used by people so I intend to introduce the method about how to draw image in PDF.

For editing PDF document, people often use Adobe Acrobat. And there are lots of guides about how to use Adobe Acrobat. Beginners just follow the guide and then can edit their document.

The method I will share is not to use tools but draw programmatically. The image drawn in this method is a chart. It is based on a development component named Spire.PDF. If you want to use this method, you need to download and install it firstly.

The following code shows how to draw image in PDF with C#.



using System;

using System.Drawing;

using Spire.Pdf;

using Spire.Pdf.Graphics;



namespace DrawImage

{

class Program

{

static void Main(string[] args)

{

//Create a pdf document.

PdfDocument doc = new PdfDocument();



// Create one page

PdfPageBase page = doc.Pages.Add();



TransformText(page);

DrawImage(page);

TransformImage(page);



//Save pdf file.

doc.SaveToFile("DrawImage.pdf");

doc.Close();



//Launching the Pdf file.

System.Diagnostics.Process.Start("DrawImage.pdf");

}



private static void TransformImage(PdfPageBase page)

{

//save graphics state

PdfGraphicsState state = page.Canvas.Save();



//Draw the text - transform

PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);

PdfSolidBrush brush1 = new PdfSolidBrush(Color.Blue);

PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);

PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Center);



page.Canvas.TranslateTransform(page.Canvas.ClientSize.Width / 2, 20);

page.Canvas.DrawString("Sales Report Chart", font, brush1, 0, 0, format);



page.Canvas.ScaleTransform(1f, -0.8f);

page.Canvas.DrawString("Sales Report Chart", font, brush2, 0, -2 * 18 * 1.2f, format);

//restor graphics

page.Canvas.Restore(state);

}



private static void DrawImage(PdfPageBase page)

{

PdfImage image = PdfImage.FromFile(@"SalesReportChart.png");

float width = image.Width * 0.75f;

float height = image.Height * 0.75f;

float x = (page.Canvas.ClientSize.Width - width) / 2;



page.Canvas.DrawImage(image, x, 60, width, height);

}



private static void TransformText(PdfPageBase page)

{

PdfImage image = PdfImage.FromFile(@"SalesReportChart.png");

int skewX = 20;

int skewY = 20;

float scaleX = 0.2f;

float scaleY = 0.6f;

int width = (int)((image.Width + image.Height * Math.Tan(Math.PI * skewX / 180)) * scaleX);

int height = (int)((image.Height + image.Width * Math.Tan(Math.PI * skewY / 180)) * scaleY);

PdfTemplate template = new PdfTemplate(width, height);

template.Graphics.ScaleTransform(scaleX, scaleY);

template.Graphics.SkewTransform(skewX, skewY);

template.Graphics.DrawImage(image, 0, 0);



//save graphics state

PdfGraphicsState state = page.Canvas.Save();

page.Canvas.TranslateTransform(page.Canvas.ClientSize.Width - 50, 260);

float offset = (page.Canvas.ClientSize.Width - 100) / 12;

for (int i = 0; i < 12; i++)

{

page.Canvas.TranslateTransform(-offset, 0);

page.Canvas.SetTransparency(i / 12.0f);

page.Canvas.DrawTemplate(template, new PointF(0, 0));

}



//restor graphics

page.Canvas.Restore(state);

}

}

}


04.08.2011. u 07:07 | 0 Komentara | Print | # | ^

<< Arhiva >>

Creative Commons License
Ovaj blog je ustupljen pod Creative Commons licencom Imenovanje-Dijeli pod istim uvjetima.

< kolovoz, 2011  
P U S Č P S N
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Kolovoz 2011 (2)
Srpanj 2011 (2)
Lipanj 2011 (2)
Svibanj 2011 (2)
Travanj 2011 (3)
Ožujak 2011 (2)
Veljača 2011 (2)
Siječanj 2011 (5)
Prosinac 2010 (5)

Dnevnik.hr
Gol.hr
Zadovoljna.hr
Novaplus.hr
NovaTV.hr
DomaTV.hr
Mojamini.tv

Opis bloga

something about Excel Technology in VB.Net and C#

Linkovi

Dnevnik.hr
Video news portal Nove TV

Blog.hr
Blog servis

Igre.hr
Najbolje igre i igrice

Forum.hr
Monitor.hr