// ---------------------------------------------------------------------------
public void Write(Stream stream) {
// step 1
using (Document document = new Document()) {
// step 2
PdfWriter writer = PdfWriter.GetInstance(document, stream);
// step 3
document.Open();
// step 4
document.Add(new Paragraph(
"This document contains a collection of PDFs,"
+ " one per Stanley Kubrick movie."
));
PdfCollection collection = new PdfCollection(PdfCollection.DETAILS);
PdfCollectionSchema schema = _collectionSchema();
collection.Schema = schema;
PdfCollectionSort sort = new PdfCollectionSort("YEAR");
sort.SetSortOrder(false);
collection.Sort = sort;
collection.InitialDocument = "Eyes Wide Shut";
writer.Collection = collection;
PdfCollectionItem item;
IEnumerable<Movie> movies = PojoFactory.GetMovies(1);
foreach (Movie movie in movies) {
PdfFileSpecification fs = PdfFileSpecification.FileEmbedded(
writer, null,
String.Format("kubrick_{0}.pdf", movie.Imdb),
CreateMoviePage(movie)
);
fs.AddDescription(movie.Title, false);
item = new PdfCollectionItem(schema);
item.AddItem("TITLE", movie.GetMovieTitle(false));
if (movie.GetMovieTitle(true) != null) {
item.SetPrefix("TITLE", movie.GetMovieTitle(true));
}
item.AddItem("DURATION", movie.Duration.ToString());
item.AddItem("YEAR", movie.Year.ToString());
fs.AddCollectionItem(item);
writer.AddFileAttachment(fs);
}
}
}