''
'' This code is part of Document Solutions for PDF demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Pdf.Annotations
Imports GrapeCity.Documents.Pdf.Actions
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Drawing
'' This sample demonstrates how to create file attachment annotations on a page.
'' See also the DocAttachments sample that demonstrates document level file attachments.
Public Class FileAttachments
Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
Dim page = doc.NewPage()
Dim g = page.Graphics
Dim rc = Util.AddNote(
"Some files from the sample's Resources/Images folder are attached to this page." + vbLf +
"Some viewers may not show attachments, so we draw rectangles to indicate their (usually clickable) locations.",
page)
Dim ip = New PointF(rc.X, rc.Bottom + 9)
Dim attSize = New SizeF(36, 12)
Dim gap = 8
Dim files As String() = {
"tudor.jpg",
"sea.jpg",
"puffins.jpg",
"lavender.jpg",
"skye.jpg",
"fiord.jpg",
"newfoundland.jpg"
}
For Each fn In files
Dim File = Path.Combine("Resources", "Images", fn)
Dim faa = New FileAttachmentAnnotation() With {
.Color = Color.FromArgb(&HFFC540A5),
.UserName = "Jaime Smith",
.Rect = New RectangleF(ip.X, ip.Y, attSize.Width, attSize.Height),
.Contents = "Attached file: " + File,
.Icon = FileAttachmentAnnotationIcon.Paperclip,
.File = FileSpecification.FromEmbeddedFile(EmbeddedFileStream.FromFile(doc, File))
}
page.Annotations.Add(faa)
g.FillRectangle(faa.Rect, Color.FromArgb(&HFF40C5A3))
g.DrawRectangle(faa.Rect, Color.FromArgb(&HFF6040C5))
ip.Y += attSize.Height + gap
Next
''
'' Done:
doc.Save(stream)
Return doc.Pages.Count
End Function
End Class