- Demo
- C# source
- VB.Net source
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
