Previous Next
847
SECTION 10.3 File Identifiers
ing pattern dictionary that refers to it. Similarly, metadata describing an ICCBased
color space should be attached to the ICC profile stream describing it, and meta-
data for fonts should be attached to font file streams rather than to font dictionar-
ies.
In tables describing document components in this book, the Metadata entry is
listed only for those in which it is most likely to be used. Keep in mind, however,
that this entry may appear in other components represented as streams or dictio-
naries.
In addition, metadata can also be associated with marked content within a con-
tent stream. This association is created by including an entry in the property list
dictionary whose key is Metadata and whose value is the metadata stream dictio-
nary. Because this construct refers to an object outside the content stream, the
property list must be referred to indirectly as a named resource (see Section
10.5.1, “Property Lists”).
10.3 File Identifiers
PDF files may contain references to other PDF files (see Section 3.10, “File Speci-
fications”). Simply storing a file name, however, even in a platform-independent
format, does not guarantee that the file can be found. Even if the file still exists
and its name has not been changed, different server software applications may
identify it in different ways. For example, servers running on DOS platforms must
convert all file names to 8 characters and a 3-character extension. Different serv-
ers may use different strategies for converting longer file names to this format.
External file references can be made more reliable by including a file identifier
(PDF 1.1) in the file and using it in addition to the normal platform-based file
designation. Matching the identifier in the file reference with the one in the file
confirms whether the correct file was found.
File identifiers are defined by the optional ID entry in a PDF file’s trailer dic-
tionary (see Section 3.4.4, “File Trailer”; see also implementation note 162 in
Appendix H). The value of this entry is an array of two byte strings. The first byte
string is a permanent identifier based on the contents of the file at the time it was
originally created and does not change when the file is incrementally updated.
The second byte string is a changing identifier based on the file’s contents at the
time it was last updated. When a file is first written, both identifiers are set to the
Previous Next