DocAttachments.vb
''
'' This code is part of Document Solutions for PDF demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Text
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Pdf

'' Shows how to attach files to a PDF document.
'' See also the FileAttachments sample that demonstrates file attachment annotations,
'' which are attached to a specific location on a page.
Public Class DocAttachments
    Function CreatePDF(ByVal stream As Stream) As Integer
        Dim doc = New GcPdfDocument()
        Dim page = doc.NewPage()
        Dim files As (String, String)() =
            {
                ("Images", "tudor.jpg"),
                ("Images", "sea.jpg"),
                ("Images", "puffins.jpg"),
                ("Images", "lavender.jpg"),
                ("Images", "skye.jpg"),
                ("Images", "fiord.jpg"),
                ("Images", "newfoundland.jpg"),
                ("PDFs", "HelloWorld.pdf"),
                ("PDFs", "FormFields.pdf")
            }
        Dim sb = New StringBuilder()
        For Each f In files
            sb.AppendLine(f.Item2)
        Next
        Util.AddNote(
            "Several images and PDFs are attached to this document:" + vbLf + vbLf +
            sb.ToString(), page)
        For Each f In files
            Dim file = Path.Combine("Resources", f.Item1, f.Item2)
            Dim fspec = FileSpecification.FromEmbeddedFile(EmbeddedFileStream.FromFile(doc, file))
            doc.EmbeddedFiles.Add(file, fspec)
        Next
        ''
        '' Done:
        doc.Save(stream)
        Return doc.Pages.Count
    End Function
End Class