Previous Next
333
SECTION 4.7 External Objects
4.7.1 PostScript XObjects
Beginning with PDF 1.1, a content stream can include PostScript language frag-
ments. These fragments are used only when printing to a PostScript output de-
vice; they have no effect either when viewing the document on-screen or when
printing it to a non-PostScript device. In addition, applications that understand
PDF are unlikely to be able to interpret the PostScript fragments. Hence, this ca-
pability should be used with extreme caution and only if there is no other way to
achieve the same result. Inappropriate use of PostScript XObjects can cause PDF
files to print incorrectly.
Note: Since PDF 1.4 encompasses all of the Adobe imaging model features of the
PostScript language, there is no longer any reason to use PostScript XObjects. This
feature is likely to be removed from PDF in a future version.
A PostScript XObject is an XObject stream whose Subtype entry has the value PS.
A PostScript XObject dictionary can contain the entries shown in Table 4.38 in
addition to the usual entries common to all streams (see Table 3.4 on page 62).
TABLE 4.38 Additional entries specific to a PostScript XObject dictionary
KEY TYPE VALUE
Type name (Optional) The type of PDF object that this dictionary describes; if present, must be
XObject for a PostScript XObject.
Subtype name (Required) The type of XObject that this dictionary describes; must be PS for a Post-
Script XObject.
Note: Alternatively, the value of this entry may be Form, with an additional Subtype2
entry whose value is PS.
Level1 stream (Optional) A stream whose contents are to be used in place of the PostScript
XObject’s stream when the target PostScript interpreter is known to support only
LanguageLevel 1.
When a PDF content stream is translated into the PostScript language, any Do
operation that references a PostScript XObject is replaced by the contents of the
XObject stream itself. The stream is copied without interpretation. The PostScript
fragment may use Type 1 and TrueType fonts listed in the Font subdictionary of
the current resource dictionary (see Section 3.7.2, “Resource Dictionaries”), ac-
cessing them by their BaseFont names using the PostScript findfont operator. The
fragment may not use other types of fonts listed in the Font subdictionary. It
Previous Next