PDF Portfolios (Package)
A PDF Portfolio (also called a PDF Package) (DocumentPackage) combines multiple files to form a single unit. You can embed many different types of files created by many different applications and can include text documents, e-mail messages, spreadsheets, CAD drawings, PowerPoint presentations, to name just a few. You can open, read, edit, and format each file independently. You can also add a PDF as a cover sheet. You can also control how the portfolio displays files and in what order.
Document.Package
The Document class contains a Package property. The Package property's value is a DocumentPackage class.
When creating a DocumentPackage, you specify an AttachmentLayout through the DocumentPackage class's ViewList property. Valid attachment layouts are:
- AttachmentLayout.Detailed - attachments displayed in detailed view,
- AttachmentLayout.Hidden - attachments are not displayed, and
- AttachmentLayout.Tile - attachments are tiled.
Figure 1. Portfolio with detailed view and tile view.
You can also specify the order of the attachments and several other properties. For a complete listing of properties refer to the DocumentPackage class documentation.
Example
The following example demonstrates how to create a DocumentPackage and display the embedded files in tile mode sorted in descending order by name.
Document document = new Document();
Page page = new Page();
document.Pages.Add(page);
EmbeddedFile embeddedFile1 = new EmbeddedFile("DocumentA.pdf");
EmbeddedFile embeddedFile2 = new EmbeddedFile("DocumentB.pdf");
EmbeddedFile embeddedFile3 = new EmbeddedFile("DPDFLogo.png");
EmbeddedFile embeddedFile4 = new EmbeddedFile("Doc1.docx");
document.EmbeddedFiles.Add(embeddedFile1);
document.EmbeddedFiles.Add(embeddedFile2);
document.EmbeddedFiles.Add(embeddedFile3);
document.EmbeddedFiles.Add(embeddedFile4);
document.Package = new DocumentPackage(AttachmentLayout.Tile);
document.Package.OrderBy = AttachmentListingOrderBy.Name;
document.Package.AscendingOrder = false;
page.Elements.Add(new Label("Cover Page", 0, 0, 512, 40, Font.Helvetica, 30, TextAlign.Center, RgbColor.BlueViolet));
document.Draw(outputPath);
Dim document As New Document()
Dim page As New Page()
document.Pages.Add(page)
Dim embeddedFile1 As New EmbeddedFile("DocumentA.pdf"))
Dim embeddedFile2 As New EmbeddedFile("DocumentB.pdf")
Dim embeddedFile3 As New EmbeddedFile("DPDFLogo.png")
Dim embeddedFile4 As New EmbeddedFile("Doc1.docx")
document.EmbeddedFiles.Add(embeddedFile1)
document.EmbeddedFiles.Add(embeddedFile2)
document.EmbeddedFiles.Add(embeddedFile3)
document.EmbeddedFiles.Add(embeddedFile4)
document.Package = New DocumentPackage(AttachmentLayout.Tile)
document.Package.OrderBy = AttachmentListingOrderBy.Name
document.Package.AscendingOrder = False
page.Elements.Add(New Label("Cover Page", 0, 0, 512, 40, Font.Helvetica, 30, TextAlign.Center, RgbColor.BlueViolet))
document.Draw(outputPath)
Figure 2. Portfolio with tile view.