Wednesday, 06 April 2011 09:07
PDF Attachment in C#, VB.NET
The sample demonstrates how to work with attachment and attachment annotation in PDF document.

using System;
using System.Drawing;
using System.IO;
using Spire.Pdf;
using Spire.Pdf.Annotations;
using Spire.Pdf.Attachments;
using Spire.Pdf.Graphics;
namespace Attachment
{
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 section
PdfSection section = doc.Sections.Add();
section.PageSettings.Size = PdfPageSize.A4;
section.PageSettings.Margins = margin;
// Create one page
PdfPageBase page = section.Pages.Add();
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("Attachment", font1, brush1, page.Canvas.ClientSize.Width / 2, y, format1);
y = y + font1.MeasureString("Attachment", format1).Height;
y = y + 5;
//attachment
PdfAttachment attachment = new PdfAttachment("Header.png");
attachment.Data = File.ReadAllBytes(@"Header.png");
attachment.Description = "Page header picture of demo.";
attachment.MimeType = "image/png";
doc.Attachments.Add(attachment);
attachment = new PdfAttachment("Footer.png");
attachment.Data = File.ReadAllBytes(@"Footer.png");
attachment.Description = "Page footer picture of demo.";
attachment.MimeType = "image/png";
doc.Attachments.Add(attachment);
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 12f, FontStyle.Bold));
PointF location = new PointF(0, y);
String label = "Sales Report Chart";
byte[] data = File.ReadAllBytes(@"SalesReportChart.png");
SizeF size = font2.MeasureString(label);
RectangleF bounds = new RectangleF(location, size);
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds);
bounds = new RectangleF(bounds.Right + 3, bounds.Top, font2.Height / 2, font2.Height);
PdfAttachmentAnnotation annotation1
= new PdfAttachmentAnnotation(bounds, "SalesReportChart.png", data);
annotation1.Color = Color.Teal;
annotation1.Flags = PdfAnnotationFlags.ReadOnly;
annotation1.Icon = PdfAttachmentIcon.Graph;
annotation1.Text = "Sales Report Chart";
(page as PdfNewPage).Annotations.Add(annotation1);
y = y + size.Height + 2;
location = new PointF(0, y);
label = "Science Personification Boston";
data = File.ReadAllBytes(@"SciencePersonificationBoston.jpg");
size = font2.MeasureString(label);
bounds = new RectangleF(location, size);
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds);
bounds = new RectangleF(bounds.Right + 3, bounds.Top, font2.Height / 2, font2.Height);
PdfAttachmentAnnotation annotation2
= new PdfAttachmentAnnotation(bounds, "SciencePersonificationBoston.jpg", data);
annotation2.Color = Color.Orange;
annotation2.Flags = PdfAnnotationFlags.NoZoom;
annotation2.Icon = PdfAttachmentIcon.PushPin;
annotation2.Text = "SciencePersonificationBoston.jpg, from Wikipedia, the free encyclopedia";
(page as PdfNewPage).Annotations.Add(annotation2);
y = y + size.Height + 2;
location = new PointF(0, y);
label = "Picture of Science";
data = File.ReadAllBytes(@"Wikipedia_Science.png");
size = font2.MeasureString(label);
bounds = new RectangleF(location, size);
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds);
bounds = new RectangleF(bounds.Right + 3, bounds.Top, font2.Height / 2, font2.Height);
PdfAttachmentAnnotation annotation3
= new PdfAttachmentAnnotation(bounds, "Wikipedia_Science.png", data);
annotation3.Color = Color.SaddleBrown;
annotation3.Flags = PdfAnnotationFlags.Locked;
annotation3.Icon = PdfAttachmentIcon.Tag;
annotation3.Text = "Wikipedia_Science.png, from Wikipedia, the free encyclopedia";
(page as PdfNewPage).Annotations.Add(annotation3);
y = y + size.Height + 2;
location = new PointF(0, y);
label = "Hawaii Killer Font";
data = File.ReadAllBytes(@"Hawaii_Killer.ttf");
size = font2.MeasureString(label);
bounds = new RectangleF(location, size);
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds);
bounds = new RectangleF(bounds.Right + 3, bounds.Top, font2.Height / 2, font2.Height);
PdfAttachmentAnnotation annotation4
= new PdfAttachmentAnnotation(bounds, "Hawaii_Killer.ttf", data);
annotation4.Color = Color.CadetBlue;
annotation4.Flags = PdfAnnotationFlags.NoRotate;
annotation4.Icon = PdfAttachmentIcon.Paperclip;
annotation4.Text = "Hawaii Killer Font, from http://www.1001freefonts.com";
(page as PdfNewPage).Annotations.Add(annotation4);
y = y + size.Height + 2;
//Save pdf file.
doc.SaveToFile("Attachment.pdf");
doc.Close();
//Launching the Pdf file.
System.Diagnostics.Process.Start("Attachment.pdf");
}
}
}
Imports System.Drawing
Imports System.IO
Imports Spire.Pdf
Imports Spire.Pdf.Annotations
Imports Spire.Pdf.Attachments
Imports Spire.Pdf.Graphics
Namespace Attachment
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 section
Dim section As PdfSection = doc.Sections.Add()
section.PageSettings.Size = PdfPageSize.A4
section.PageSettings.Margins = margin
' Create one page
Dim page As PdfPageBase = section.Pages.Add()
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("Attachment", font1, brush1, page.Canvas.ClientSize.Width \ 2, y, format1)
y = y + font1.MeasureString("Attachment", format1).Height
y = y + 5
'attachment
Dim attachment As New PdfAttachment("Header.png")
attachment.Data = File.ReadAllBytes("Header.png")
attachment.Description = "Page header picture of demo."
attachment.MimeType = "image/png"
doc.Attachments.Add(attachment)
attachment = New PdfAttachment("Footer.png")
attachment.Data = File.ReadAllBytes("Footer.png")
attachment.Description = "Page footer picture of demo."
attachment.MimeType = "image/png"
doc.Attachments.Add(attachment)
Dim font2 As New PdfTrueTypeFont(New Font("Arial", 12.0F, FontStyle.Bold))
Dim location As New PointF(0, y)
Dim label As String = "Sales Report Chart"
Dim data() As Byte = File.ReadAllBytes("SalesReportChart.png")
Dim size As SizeF = font2.MeasureString(label)
Dim bounds As New RectangleF(location, size)
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds)
bounds = New RectangleF(bounds.Right + 3, bounds.Top, font2.Height \ 2, font2.Height)
Dim annotation1 As New PdfAttachmentAnnotation(bounds, "SalesReportChart.png", data)
annotation1.Color = Color.Teal
annotation1.Flags = PdfAnnotationFlags.ReadOnly
annotation1.Icon = PdfAttachmentIcon.Graph
annotation1.Text = "Sales Report Chart"
TryCast(page, PdfNewPage).Annotations.Add(annotation1)
y = y + size.Height + 2
location = New PointF(0, y)
label = "Science Personification Boston"
data = File.ReadAllBytes("SciencePersonificationBoston.jpg")
size = font2.MeasureString(label)
bounds = New RectangleF(location, size)
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds)
bounds = New RectangleF(bounds.Right + 3, bounds.Top, font2.Height \ 2, font2.Height)
Dim annotation2 As New PdfAttachmentAnnotation(bounds, "SciencePersonificationBoston.jpg", data)
annotation2.Color = Color.Orange
annotation2.Flags = PdfAnnotationFlags.NoZoom
annotation2.Icon = PdfAttachmentIcon.PushPin
annotation2.Text = "SciencePersonificationBoston.jpg, from Wikipedia, the free encyclopedia"
TryCast(page, PdfNewPage).Annotations.Add(annotation2)
y = y + size.Height + 2
location = New PointF(0, y)
label = "Picture of Science"
data = File.ReadAllBytes("Wikipedia_Science.png")
size = font2.MeasureString(label)
bounds = New RectangleF(location, size)
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds)
bounds = New RectangleF(bounds.Right + 3, bounds.Top, font2.Height \ 2, font2.Height)
Dim annotation3 As New PdfAttachmentAnnotation(bounds, "Wikipedia_Science.png", data)
annotation3.Color = Color.SaddleBrown
annotation3.Flags = PdfAnnotationFlags.Locked
annotation3.Icon = PdfAttachmentIcon.Tag
annotation3.Text = "Wikipedia_Science.png, from Wikipedia, the free encyclopedia"
TryCast(page, PdfNewPage).Annotations.Add(annotation3)
y = y + size.Height + 2
location = New PointF(0, y)
label = "Hawaii Killer Font"
data = File.ReadAllBytes("Hawaii_Killer.ttf")
size = font2.MeasureString(label)
bounds = New RectangleF(location, size)
page.Canvas.DrawString(label, font2, PdfBrushes.DarkOrange, bounds)
bounds = New RectangleF(bounds.Right + 3, bounds.Top, font2.Height \ 2, font2.Height)
Dim annotation4 As New PdfAttachmentAnnotation(bounds, "Hawaii_Killer.ttf", data)
annotation4.Color = Color.CadetBlue
annotation4.Flags = PdfAnnotationFlags.NoRotate
annotation4.Icon = PdfAttachmentIcon.Paperclip
annotation4.Text = "Hawaii Killer Font, from http://www.1001freefonts.com"
TryCast(page, PdfNewPage).Annotations.Add(annotation4)
y = y + size.Height + 2
'Save pdf file.
doc.SaveToFile("Attachment.pdf")
doc.Close()
'Launching the Pdf file.
Process.Start("Attachment.pdf")
End Sub
End Class
End Namespace
Published in
Interaction
Wednesday, 06 April 2011 08:55
PDF Action in C#, VB.NET
The sample demonstrates how to work with action, javascript action, page destination action and action annotation in PDF document.

using System;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Actions;
using Spire.Pdf.Annotations;
using Spire.Pdf.General;
using Spire.Pdf.Graphics;
using Spire.Pdf.Tables;
namespace Action
{
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("Part List", font1, brush1, page.Canvas.ClientSize.Width / 2, y, format1);
y = y + font1.MeasureString("Part List", format1).Height;
y = y + 2;
//table top
PdfDestination tableTopDest = new PdfDestination(page);
tableTopDest.Location = new PointF(0, y);
tableTopDest.Mode = PdfDestinationMode.Location;
tableTopDest.Zoom = 1f;
//Draw table
PdfTrueTypeFont buttonFont = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Bold));
float buttonWidth = 70;
float buttonHeight = buttonFont.Height * 1.5f;
float tableTop = y;
PdfLayoutResult tableLayoutResult = DrawTable(page, y + buttonHeight + 5);
//table bottom
PdfDestination tableBottomDest = new PdfDestination(tableLayoutResult.Page);
tableBottomDest.Location = new PointF(0, tableLayoutResult.Bounds.Bottom);
tableBottomDest.Mode = PdfDestinationMode.Location;
tableBottomDest.Zoom = 1f;
//go to table bottom
float x = page.Canvas.ClientSize.Width - buttonWidth;
PdfStringFormat format2 = new PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle);
RectangleF buttonBounds = new RectangleF(x, tableTop, buttonWidth, buttonHeight);
page.Canvas.DrawRectangle(PdfBrushes.DarkGray, buttonBounds);
page.Canvas.DrawString("To Bottom", buttonFont, PdfBrushes.CadetBlue, buttonBounds, format2);
PdfGoToAction action1 = new PdfGoToAction(tableBottomDest);
PdfActionAnnotation annotation1
= new PdfActionAnnotation(buttonBounds, action1);
annotation1.Border = new PdfAnnotationBorder(0.75f);
annotation1.Color = Color.LightGray;
(page as PdfNewPage).Annotations.Add(annotation1);
//go to table top
float tableBottom = tableLayoutResult.Bounds.Bottom + 5;
buttonBounds = new RectangleF(x, tableBottom, buttonWidth, buttonHeight);
tableLayoutResult.Page.Canvas.DrawRectangle(PdfBrushes.DarkGray, buttonBounds);
tableLayoutResult.Page.Canvas.DrawString("To Top", buttonFont, PdfBrushes.CadetBlue, buttonBounds, format2);
PdfGoToAction action2 = new PdfGoToAction(tableTopDest);
PdfActionAnnotation annotation2
= new PdfActionAnnotation(buttonBounds, action2);
annotation2.Border = new PdfAnnotationBorder(0.75f);
annotation2.Color = Color.LightGray;
(tableLayoutResult.Page as PdfNewPage).Annotations.Add(annotation2);
//goto last page
PdfNamedAction action3 = new PdfNamedAction(PdfActionDestination.LastPage);
doc.AfterOpenAction = action3;
//script
String script
= "app.alert({"
+ " cMsg: \"Oh no, you want to leave me.\","
+ " nIcon: 3,"
+ " cTitle: \"JavaScript Action\""
+ "});";
PdfJavaScriptAction action4 = new PdfJavaScriptAction(script);
doc.BeforeCloseAction = action4;
//Save pdf file.
doc.SaveToFile("Action.pdf");
doc.Close();
//Launching the Pdf file.
System.Diagnostics.Process.Start("Action.pdf");
}
private static PdfLayoutResult DrawTable(PdfPageBase page, float y)
{
PdfBrush brush1 = PdfBrushes.Black;
//create data table
PdfTable table = new PdfTable();
table.Style.CellPadding = 2;
table.Style.BorderPen = new PdfPen(brush1, 0.75f);
table.Style.DefaultStyle.BackgroundBrush = PdfBrushes.SkyBlue;
table.Style.DefaultStyle.Font = new PdfTrueTypeFont(new Font("Arial", 10f));
table.Style.AlternateStyle = new PdfCellStyle();
table.Style.AlternateStyle.BackgroundBrush = PdfBrushes.LightYellow;
table.Style.AlternateStyle.Font = new PdfTrueTypeFont(new Font("Arial", 10f));
table.Style.HeaderSource = PdfHeaderSource.ColumnCaptions;
table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.CadetBlue;
table.Style.HeaderStyle.Font = new PdfTrueTypeFont(new Font("Arial", 11f, FontStyle.Bold));
table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
table.Style.ShowHeader = true;
using (OleDbConnection conn = new OleDbConnection())
{
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=demo.mdb";
OleDbCommand command = new OleDbCommand();
command.CommandText
= " select Description, OnHand, OnOrder, Cost, ListPrice from parts ";
command.Connection = conn;
using (OleDbDataAdapter dataAdapter = new OleDbDataAdapter(command))
{
DataTable dataTable = new DataTable();
dataAdapter.Fill(dataTable);
table.DataSourceType = PdfTableDataSourceType.TableDirect;
table.DataSource = dataTable;
}
}
float width
= page.Canvas.ClientSize.Width
- (table.Columns.Count + 1) * table.Style.BorderPen.Width;
for (int i = 0; i < table.Columns.Count; i++)
{
if (i == 0)
{
table.Columns[i].Width = width * 0.40f * width;
table.Columns[i].StringFormat
= new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
}
else
{
table.Columns[i].Width = width * 0.15f * width;
table.Columns[i].StringFormat
= new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
}
}
PdfTableLayoutFormat tableLayout = new PdfTableLayoutFormat();
tableLayout.Break = PdfLayoutBreakType.FitElement;
tableLayout.Layout = PdfLayoutType.Paginate;
PdfLayoutResult result = table.Draw(page, new PointF(0, y), tableLayout);
y = result.Bounds.Bottom + 3;
PdfBrush brush2 = PdfBrushes.Gray;
PdfTrueTypeFont font2 = new PdfTrueTypeFont(new Font("Arial", 9f));
result.Page.Canvas.DrawString(String.Format("* {0} parts in the list.", table.Rows.Count),
font2, brush2, 5, y);
return result;
}
}
}
Imports System.Data
Imports System.Data.OleDb
Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Actions
Imports Spire.Pdf.Annotations
Imports Spire.Pdf.General
Imports Spire.Pdf.Graphics
Imports Spire.Pdf.Tables
Namespace Action
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("Part List", font1, brush1, page.Canvas.ClientSize.Width \ 2, y, format1)
y = y + font1.MeasureString("Part List", format1).Height
y = y + 2
'table top
Dim tableTopDest As New PdfDestination(page)
tableTopDest.Location = New PointF(0, y)
tableTopDest.Mode = PdfDestinationMode.Location
tableTopDest.Zoom = 1.0F
'Draw table
Dim buttonFont As New PdfTrueTypeFont(New Font("Arial", 10.0F, FontStyle.Bold))
Dim buttonWidth As Single = 70
Dim buttonHeight As Single = buttonFont.Height * 1.5F
Dim tableTop As Single = y
Dim tableLayoutResult As PdfLayoutResult = DrawTable(page, y + buttonHeight + 5)
'table bottom
Dim tableBottomDest As New PdfDestination(tableLayoutResult.Page)
tableBottomDest.Location = New PointF(0, tableLayoutResult.Bounds.Bottom)
tableBottomDest.Mode = PdfDestinationMode.Location
tableBottomDest.Zoom = 1.0F
'go to table bottom
Dim x As Single = page.Canvas.ClientSize.Width - buttonWidth
Dim format2 As New PdfStringFormat(PdfTextAlignment.Center, PdfVerticalAlignment.Middle)
Dim buttonBounds As New RectangleF(x, tableTop, buttonWidth, buttonHeight)
page.Canvas.DrawRectangle(PdfBrushes.DarkGray, buttonBounds)
page.Canvas.DrawString("To Bottom", buttonFont, PdfBrushes.CadetBlue, buttonBounds, format2)
Dim action1 As New PdfGoToAction(tableBottomDest)
Dim annotation1 As New PdfActionAnnotation(buttonBounds, action1)
annotation1.Border = New PdfAnnotationBorder(0.75F)
annotation1.Color = Color.LightGray
TryCast(page, PdfNewPage).Annotations.Add(annotation1)
'go to table top
Dim tableBottom As Single = tableLayoutResult.Bounds.Bottom + 5
buttonBounds = New RectangleF(x, tableBottom, buttonWidth, buttonHeight)
tableLayoutResult.Page.Canvas.DrawRectangle(PdfBrushes.DarkGray, buttonBounds)
tableLayoutResult.Page.Canvas.DrawString("To Top", buttonFont, _
PdfBrushes.CadetBlue, buttonBounds, format2)
Dim action2 As New PdfGoToAction(tableTopDest)
Dim annotation2 As New PdfActionAnnotation(buttonBounds, action2)
annotation2.Border = New PdfAnnotationBorder(0.75F)
annotation2.Color = Color.LightGray
TryCast(tableLayoutResult.Page, PdfNewPage).Annotations.Add(annotation2)
'goto last page
Dim action3 As New PdfNamedAction(PdfActionDestination.LastPage)
doc.AfterOpenAction = action3
'script
Dim script As String _
= "app.alert({" & " cMsg: ""Oh no, you want to leave me.""," _
& " nIcon: 3," & " cTitle: ""JavaScript Action""" & "});"
Dim action4 As New PdfJavaScriptAction(script)
doc.BeforeCloseAction = action4
'Save pdf file.
doc.SaveToFile("Action.pdf")
doc.Close()
'Launching the Pdf file.
Process.Start("Action.pdf")
End Sub
Private Shared Function DrawTable(ByVal page As PdfPageBase, ByVal y As Single) As PdfLayoutResult
Dim brush1 As PdfBrush = PdfBrushes.Black
'create data table
Dim table As New PdfTable()
table.Style.CellPadding = 2
table.Style.BorderPen = New PdfPen(brush1, 0.75F)
table.Style.DefaultStyle.BackgroundBrush = PdfBrushes.SkyBlue
table.Style.DefaultStyle.Font = New PdfTrueTypeFont(New Font("Arial", 10.0F))
table.Style.AlternateStyle = New PdfCellStyle()
table.Style.AlternateStyle.BackgroundBrush = PdfBrushes.LightYellow
table.Style.AlternateStyle.Font = New PdfTrueTypeFont(New Font("Arial", 10.0F))
table.Style.HeaderSource = PdfHeaderSource.ColumnCaptions
table.Style.HeaderStyle.BackgroundBrush = PdfBrushes.CadetBlue
table.Style.HeaderStyle.Font = New PdfTrueTypeFont(New Font("Arial", 11.0F, FontStyle.Bold))
table.Style.HeaderStyle.StringFormat = New PdfStringFormat(PdfTextAlignment.Center)
table.Style.ShowHeader = True
Using conn As New OleDbConnection()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=demo.mdb"
Dim command As New OleDbCommand()
command.CommandText = " select Description, OnHand, OnOrder, Cost, ListPrice from parts "
command.Connection = conn
Using dataAdapter As New OleDbDataAdapter(command)
Dim dataTable As New DataTable()
dataAdapter.Fill(dataTable)
table.DataSourceType = PdfTableDataSourceType.TableDirect
table.DataSource = dataTable
End Using
End Using
Dim width As Single _
= page.Canvas.ClientSize.Width - (table.Columns.Count + 1) * table.Style.BorderPen.Width
For i As Integer = 0 To table.Columns.Count - 1
If i = 0 Then
table.Columns(i).Width = width * 0.4F * width
table.Columns(i).StringFormat _
= New PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle)
Else
table.Columns(i).Width = width * 0.15F * width
table.Columns(i).StringFormat _
= New PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle)
End If
Next i
Dim tableLayout As New PdfTableLayoutFormat()
tableLayout.Break = PdfLayoutBreakType.FitElement
tableLayout.Layout = PdfLayoutType.Paginate
Dim result As PdfLayoutResult = table.Draw(page, New PointF(0, y), tableLayout)
y = result.Bounds.Bottom + 3
Dim brush2 As PdfBrush = PdfBrushes.Gray
Dim font2 As New PdfTrueTypeFont(New Font("Arial", 9.0F))
result.Page.Canvas.DrawString(String.Format("* {0} parts in the list.", _
table.Rows.Count), font2, brush2, 5, y)
Return result
End Function
End Class
End Namespace
Published in
Interaction