Previous Next
58
CHAPTER 3 Syntax
occasionally the need arises to treat a name object as text, such as one that
represents a font name (see the BaseFont entry in Table 5.8 on page 413) or a
structure type (see Section 10.6.2, “Structure Types”).
In such situations, it is recommended that the sequence of bytes (after expansion
of # sequences, if any) be interpreted according to UTF-8, a variable-length byte-
encoded representation of Unicode in which the printable ASCII characters have
the same representations as in ASCII. This enables a name object to represent text
in any natural language, subject to the implementation limit on the length of a
name. (See implementation note 5 in Appendix H.)
Note: PDF does not prescribe what UTF-8 sequence to choose for representing any
given piece of externally specified text as a name object. In some cases, multiple
UTF-8 sequences could represent the same logical text. Name objects defined by dif-
ferent sequences of bytes constitute distinct name objects in PDF, even though the
UTF-8 sequences might have identical external interpretations.
In PDF, name objects always begin with the slash character (/), unlike keywords
such as true, false, and obj. This book follows a typographic convention of
writing names without the leading slash when they appear in running text and
tables. For example, Type and FullScreen denote names that would actually be
written in a PDF file (and in code examples in this book) as /Type and /FullScreen.
3.2.5 Array Objects
An array object is a one-dimensional collection of objects arranged sequentially.
Unlike arrays in many other computer languages, PDF arrays may be hetero-
geneous; that is, an array’s elements may be any combination of numbers, strings,
dictionaries, or any other objects, including other arrays. The number of
elements in an array is subject to an implementation limit; see Appendix C.
An array is written as a sequence of objects enclosed in square brackets ([ and ]):
[ 549 3.14 false ( Ralph ) /SomeName ]
PDF directly supports only one-dimensional arrays. Arrays of higher dimension
can be constructed by using arrays as elements of arrays, nested to any depth.
Previous Next