using System;
|
using System.Data;
|
using System.Collections;
|
using System.Drawing;
|
using Gios.Pdf;
|
|
namespace Pdf_Example2
|
{
|
class Class1
|
{
|
[STAThread]
|
static void Main(string[] args)
|
{
|
|
// Starting instantiate the document.
|
// Remember to set the Docuement Format. In this case, we specify width and height.
|
PdfDocument myPdfDocument=new PdfDocument(PdfDocumentFormat.InCentimeters(29.7,21));
|
|
// Now we create a Table of 300 lines, 4 columns and 4 points of Padding.
|
PdfTable myPdfTable=myPdfDocument.NewTable(new Font("Verdana",8),1000,4,3);
|
|
// Importing datas from the datatables... (also column names for the headers!)
|
myPdfTable.ImportDataTable(Table);
|
|
// Now we set our Graphic Design: Colors and Borders...
|
myPdfTable.HeadersRow.SetColors(Color.White,Color.Navy);
|
myPdfTable.SetColors(Color.Black,Color.White,Color.Gainsboro);
|
myPdfTable.SetBorders(Color.Black,1,BorderType.CompleteGrid);
|
|
// With just one method we can set the proportional width of the columns.
|
// It's a "percentage like" assignment, but the sum can be different from 100.
|
myPdfTable.SetColumnsWidth(new int[]{5,25,14,20});
|
|
// Sets the format for correct date-time representation
|
myPdfTable.Columns[2].SetContentFormat("{0:dd/MM}");
|
|
// You can also set colors for a range of cells, in this case, a row:
|
myPdfTable.Rows[9].SetColors(Color.Black,Color.LightGreen);
|
|
|
// Now we set some alignment... for the whole table and then, for a column.
|
myPdfTable.SetContentAlignment(ContentAlignment.TopCenter);
|
myPdfTable.Columns[1].SetContentAlignment(ContentAlignment.TopLeft);
|
|
// This will load the image without placing into the document. The good thing
|
// is that the image will be written into the document just once even if we put it
|
// more times and in different sizes and places!
|
PdfImage LogoImage=myPdfDocument.NewImage(@"..\..\logo.jpg");
|
|
// Here we start the loop to generate the table...
|
while (!myPdfTable.AllTablePagesCreated)
|
{
|
// we create a new page to put the generation of the new TablePage:
|
PdfPage newPdfPage=myPdfDocument.NewPage();
|
|
// now we start putting the logo into the right place with a high resoluton...
|
newPdfPage.Add(LogoImage,60,60,300);
|
|
// then we create the first table of the Page adding it to the layout.
|
PdfTablePage newPdfTablePage1=
|
myPdfTable.CreateTablePage(new PdfArea(myPdfDocument, 50,140,200,420));
|
newPdfPage.Add(newPdfTablePage1);
|
|
// now, if we don't have finished yet...
|
if (!myPdfTable.AllTablePagesCreated)
|
{
|
// we create a second table for putting it into the page...
|
PdfTablePage newPdfTablePage2=
|
myPdfTable.CreateTablePage(new PdfArea(myPdfDocument,280,40,240,520));
|
newPdfPage.Add(newPdfTablePage2);
|
}
|
|
// and again...
|
if (!myPdfTable.AllTablePagesCreated)
|
{
|
// we put the third table into the page.
|
PdfTablePage newPdfTablePage3=
|
myPdfTable.CreateTablePage(new PdfArea(myPdfDocument,550,40,240,520));
|
newPdfPage.Add(newPdfTablePage3);
|
}
|
// remember to save the page to the document!
|
newPdfPage.SaveToDocument();
|
}
|
// and now we are ready to export the PDF!
|
myPdfDocument.SaveToFile("Example2.pdf");
|
}
|
#region 1000 Rows Datatable Generation
|
static System.Random r=new Random();
|
static string GetAName
|
{
|
get
|
{
|
ArrayList al=new ArrayList();
|
al.Add("John Doe");
|
al.Add("Perry White");
|
al.Add("Jackson");
|
al.Add("Henry James Junior Ford");
|
al.Add("Bill Norton");
|
al.Add("Michal Johnathan Stewart ");
|
al.Add("George Wilson");
|
al.Add("Steven Edwards");
|
return al[r.Next(0,al.Count)].ToString();
|
}
|
}
|
static DataTable Table
|
{
|
get
|
{
|
DataTable dt=new DataTable();
|
dt.Columns.Add("ID");
|
dt.Columns.Add("Name");
|
dt.Columns.Add("Date of Birth",typeof(DateTime));
|
dt.Columns.Add("Phone Number");
|
dt.Columns.Add("Mobile Phone");
|
dt.Columns.Add("Password");
|
|
for (int x=0;x<=1000;x++)
|
{
|
DataRow dr=dt.NewRow();
|
dr["ID"]=x.ToString();
|
dr["Name"]=GetAName;
|
dr["Date of Birth"]=new DateTime(r.Next(1940,1984),r.Next(1,12),r.Next(1,28));
|
dr["Phone Number"]="555-"+r.Next(100000,999999).ToString();
|
dr["Mobile Phone"]="444-"+r.Next(100000,999999).ToString();
|
dr["Password"]=r.Next(10000000,99999999).ToString();
|
dt.Rows.Add(dr);
|
}
|
|
return dt;
|
}
|
}
|
#endregion
|
}
|
}
|