Previous Next


                                        370
CHAPTER 4                                                                   Graphics



• Objects such as form XObjects and annotations that are made optional may be
  skipped entirely, because their contents are encapsulated such that no changes
  to the graphics state (or other state) persist beyond the processing of their con-
  tent stream.

Other features in PDF consuming applications, such as searching and editing,
may be affected by the ability to selectively show or hide content. Features must
choose whether to use the document’s current state of optional content groups
(and, correspondingly, the document’s visible graphics) or to supply their own
states of optional content groups to control the graphics they process. For exam-
ple, tools to select and move annotations should honor the current on-screen vis-
ibility of annotations when performing cursor tracking and mouse-click
processing. A full text search engine, however, may need to process all content in
a document, regardless of its current visibility on-screen. Export filters might
choose the current on-screen visibility, the full content, or present the user with a
selection of OCGs to control visibility.

Note: All optional content-related PDF structures are unknown to, and hence ig-
nored by, PDF 1.4 and earlier consumers, which therefore draw and otherwise pro-
cess all content in the document.


Optional Content in Content Streams

Sections of content in a content stream (including a page's Contents stream, a
form or pattern’s content stream, glyph descriptions a Type 3 font as specified by
its CharProcs entry, or an annotation’s appearance) can be made optional by en-
closing them between the marked-content operators BDC and EMC (see Section
10.5, “Marked Content”) with a marked-content tag of OC. In addition, a DP
marked-content operator can be placed in a page’s content stream to force a refer-
ence to an optional content group or groups on the page, even when the page has
no current content in that layer.

The property list associated with the marked content specifies either an optional
content group or optional content membership dictionary to which the content
belongs. Because a group must be an indirect object and a membership dictio-
nary contains references to indirect objects, the property list must be a named re-
source listed in the Properties subdictionary of the current resource dictionary
(see Section 10.5.1, “Property Lists”), as shown in Examples 4.35 and 4.36.

Previous Next