Previous Next
357
SECTION 4.9 Form XObjects
Each form XObject is defined in its own coordinate system, called form space.
The BBox entry in the form dictionary is expressed in form space, as are any
coordinates used in the form XObject’s content stream, such as path coordinates.
The Matrix entry in the form dictionary specifies the mapping from form space to
the current user space. Each time the form XObject is painted by the Do operator,
this matrix is concatenated with the current transformation matrix to define the
mapping from form space to device space. (This differs from the Matrix entry in a
pattern dictionary, which maps pattern space to the initial user space of the con-
tent stream in which the pattern is used.)
When the Do operator is applied to a form XObject, it does the following tasks:
1. Saves the current graphics state, as if by invoking the q operator (see Section
4.3.3, “Graphics State Operators”)
2. Concatenates the matrix from the form dictionary’s Matrix entry with the cur-
rent transformation matrix (CTM)
3. Clips according to the form dictionary’s BBox entry
4. Paints the graphics objects specified in the form’s content stream
5. Restores the saved graphics state, as if by invoking the Q operator (see Section
4.3.3, “Graphics State Operators”)
Except as described above, the initial graphics state for the form is inherited from
the graphics state that is in effect at the time Do is invoked.
4.9.1 Form Dictionaries
Every form XObject has a form type, which determines the format and meaning
of the entries in its form dictionary. At the time of publication, only one form
type, type 1, has been defined. Form XObject dictionaries may contain the entries
shown in Table 4.45, in addition to the usual entries common to all streams (see
Table 3.4 on page 62).
Previous Next