//
// This code is part of Document Solutions for PDF demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Linq;
using System.Text;
using GrapeCity.Documents.Pdf;
using GrapeCity.Documents.Text;
using GrapeCity.Documents.Drawing;
namespace DsPdfWeb.Demos.Basics
{
// Shows how to attach files to a PDF document.
// In this sample we attach a few photos and two PDFs, including an AcroForm.
// See also the FileAttachments sample that demonstrates file attachment annotations,
// which are files associated with a specific location on a page.
public class DocAttachments
{
public int CreatePDF(Stream stream)
{
var doc = new GcPdfDocument();
var page = doc.NewPage();
var files = new (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" )
};
var sb = new StringBuilder();
foreach (var f in files)
sb.AppendLine(f.Item2);
Common.Util.AddNote(
"Several images and PDFs are attached to this document:\n\n" +
sb.ToString(), page);
foreach (var f in files)
{
var file = Path.Combine("Resources", f.Item1, f.Item2);
var fspec = FileSpecification.FromEmbeddedFile(EmbeddedFileStream.FromFile(doc, file));
doc.EmbeddedFiles.Add(file, fspec);
}
// Done:
doc.Save(stream);
return doc.Pages.Count;
}
}
}