Previous Next
1132
APPENDIX I Computation of Object Digests
When it encounters an object that has already been visited, it adds the type iden-
tifier followed by a 4-byte value for the number -1 (0xFFFFFFFF).
TABLE I.1 Data added to object digest for basic object types
OBJECT TYPE TYPE IDENTIFIER REMAINING VALUES ADDED TO DIGEST
Null 0 Nothing.
Integer 1 The unsigned 4-byte value of this integer (most significant byte first).
Real 2 The 4-byte integer corresponding to the integral part of the rounded value of the
object.
Boolean 3 0x01 for true; 0x00 for false.
Name 4 An unsigned 4-byte integer (most significant byte first) representing the length of
the name, followed by byte array containing the string representing the name
(following expansion of any escape characters, and excluding the leading “/”
character).
String 5 An unsigned 4-byte integer (most significant byte first) representing the length of
the string, followed by the sequence of bytes corresponding to the string.
Dictionary 6 An unsigned 4-byte value (most significant byte first) specifying the number of
entries in the dictionary, followed by the key-value pairs of the dictionary, sorted
by lexicographic order of the keys (for comparison purposes, the key names are
treated as binary byte sequences). The values may involve recursion; see above.
Special treatment is given to certain dictionaries when the transform method is
anything but Identity (see Section 8.7.1, “Transform Methods”). For these dictio-
naries (which include catalog, page, named page, form field, annotation, action
and additional-actions dictionaries), all key-value pairs are not digested. Instead,
only the values of specified entries are digested; see Section I.2, “Selective Com-
putation,” for details.
Array 7 An unsigned 4-byte value (most significant byte first) specifying the number of
entries in the array, followed by the individual entries, in order. Individual entries
may involve recursion. Specific entries may be excluded when dictated by the
transform method and parameters (for example, annotation dictionaries in a
page’s Annots array).
Previous Next