Skip to end of metadata
Go to start of metadata

To determine if a PDF document is a Portfolio, look at the document Root dictionary to see if “Collection” appears there. The /Root directory is part of the structure of the PDF document. In a Portfolio PDF document, multiple /Root directories will appear, one for each document held in the PDF Portfolio.

To display the Root directory, open the file in Acrobat, and select Tools, Print Production, and Preflight.

Then, click Options in the upper right corner of the Preflight window, and select Browse Internal PDF Structure. In this example “Collection” appears under “The document root:”

Note that at the bottom of this screen shot, we see a list of Embedded files.

This PDF document in this example is not a Portfolio, so “Collection” does not appear under document root:

Within the collection, each file may have XML metadata associated with it, as well as other information about the file, such as the name, size, date created, and so on. The PDF Library can retrieve all of this, though it is not able to interpret the XML metadata. Applications based on the Library that call a PDF portfolio document would need to be able interpret the metadata to identify the portfolio document to interpret that document as, say, an embedded email message file.

Attachments are also files that are embedded in a PDF file. Attachments are grouped in an embedded files set (/EmbeddedFiles under /Root). The PDF collection in a PDF file will reference some or all of these embedded files. Embedded files that are not referenced in the collection are listed in the Attachments pane of Adobe Reader or Adobe Acrobat.

If an embedded file is referenced in the Collection Dictionary, the PDF file is a portfolio.

If the file is added to the PDF as an attachment, it will appear in the list under the paper clip icon on the left side of the Adobe Acrobat page.

Note that the CosObj "EmbeddedFiles" can contain the CosObj "Names" (type CosArray) in which the names of the files are listed. Or the CosObj "EmbeddedFiles" can contain the CosObj "Kids" (type CosArray) where every CosObj in this array contains the CosObj "Names" (type CosArray). Every Names CosObj then contains the names of the files. See the first screen shot above, where “Names” appears under the heading “EmbeddedFiles.”

  • No labels