CHAPTER 10
976
Document Interchange
Like all annotations, a trap network annotation is defined by an annotation dic-
tionary (see Section 8.4.1, “Annotation Dictionaries”); its annotation type is
TrapNet
. The
AP
(appearances),
AS
(appearance state), and
F
(flags) entries
(which ordinarily are optional) must be present, with the Print and ReadOnly
flags set and all others clear (see Section 8.4.2, “Annotation Flags”). Table 10.52
shows the additional annotation dictionary entries specific to this type of anno-
tation.
The
Version
and
AnnotStates
entries, if present, are used to detect changes in the
content of a page that might require regenerating its trap networks. The
Version
array identifies elements of the page’s content that might be changed by an editing
application and thus invalidate its trap networks. Because there is at most one
Version
array per trap network annotation (and thus per page), any application
generating a new trap network must also verify the validity of existing trap net-
works by enumerating the objects identified in the array and verifying that the
results exactly match the array’s current contents. Any trap networks found to be
invalid must be regenerated. (See implementation notes 171 and 172 in Appendix
Beginning with PDF 1.4, the
LastModified
entry can be used in place of the
Version
array to track changes to a page’s trap network. (The trap network anno-
tation must include either a
LastModified
entry or the combination of
Version
and
AnnotStates
, but not all three.) If the modification date in the
LastModified
entry of the page object (see “Page Objects” on page 144) is more recent than the
one in the trap network annotation dictionary, the page’s trap networks are in-
valid and must be regenerated. Note, however, that not all editing applications
and plug-in extensions correctly maintain these modification dates. This method
of tracking trap network modifications can be used reliably only in a controlled
workflow environment where the integrity of the modification dates is assured.
TABLE 10.52 Additional entries specific to a trap network annotation
KEY
TYPE
VALUE
Subtype
name
date
(Required)
The type of annotation that this dictionary describes; must be
TrapNet
for a trap network annotation.
(Required if
Version
and
AnnotStates
are absent; must be absent if
Version
and
AnnotStates
are present; PDF 1.4)
The date and time (see Section 3.8.3,
LastModified