FileAttachments.vb
'' 
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' Copyright (c) GrapeCity 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

'' このサンプルは、ページに添付ファイルの注釈を作成する方法を示します。
'' 文書レベルのファイル添付を示す DocAttachments サンプルも参照してください。
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(
            "このページには、サンプルの Resources/Images フォルダにあるいくつかのファイルが添付されています。" + vbLf +
            "添付ファイルが表示できない場合があるため、クリック可能な場所を示す四角形を描画しています。",
            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",
            "out.jpg"
        }
        For Each fn In files
            Dim File = Path.Combine("Resources", "Images", fn)
            Dim faa = New FileAttachmentAnnotation() With {
                    .Color = Color.FromArgb(&HFFC540A5),
                    .UserName = "作成者1",
                    .Rect = New RectangleF(ip.X, ip.Y, attSize.Width, attSize.Height),
                    .Contents = "添付ファイル: " + 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
        ''
        '' PDF ドキュメントを保存します。
        doc.Save(stream)
        Return doc.Pages.Count
    End Function
End Class