PDF Reference sixth edition, Adobe Portable Document Format Version 1.7 (book 2) — page 6

803
SECTION 9.5
3D Artwork
2
Annotation 1
B
Annotation 2
1
A
Annotation 3
B
FIGURE 9.2 Annotation 2 rotated
2
Annotation 1
B
Annotation 2
1
A
2
Annotation 3
B
FIGURE 9.3 Shared artwork (annotations 2 &3) modified
The figures show how the objects in Example 9.1 might be used. Figure 9.1 shows
the same initial view of the artwork in all three annotations. Figure 9.2 shows the
results of rotating the view of the artwork within Annotation 2. Figure 9.3 shows
the results of manipulating the artwork shared by Annotation 2 and Annotation
3: they both reflect the change in the artwork because they share the same run-
time instance. Annotation 1 remains unchanged because it has its own run-time
instance.
Note: When multiple annotations refer to the same instance of 3D artwork, the state
of the instance is determined as described in Section 9.5.1, “3D Annotations.”
804
CHAPTER 9
Multimedia Features
9.5.3
3D Views
Beginning with PDF 1.6, a 3D view (or simply view) specifies parameters to be
applied to the virtual camera associated with a 3D annotation. These parameters
may include orientation and position of the camera, details regarding the projec-
tion of camera coordinates into the annotation’s target coordinate system, and a
description of the background on which the artwork is to be drawn. Starting with
PDF 1.7, specific views can also specify how 3D artwork is rendered, colored, lit,
and cross-sectioned, without the use of embedded JavaScript. Specific views can
also specify which nodes (three-dimensional areas) of 3D artwork are included in
a view and whether those nodes are opaque or invisible.
Users can manipulate views by performing interactive operations such as free ro-
tation and translation. In addition, 3D artwork can contain a set of predefined
views that the author deems to be of particular interest. For example, a mechani-
cal drawing of a part may have specific views showing the top, bottom, left, right,
front, and back of an object.
A 3D stream may contain a list of named preset views of the 3D artwork, as spec-
ified by the VA entry, which is an array of 3D view dictionaries. The entries in a
3D view dictionary are shown in Table 9.39.
TABLE 9.39 Entries in a 3D view dictionary
KEY
TYPE
VALUE
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
must be 3DView for a 3D view dictionary.
XN
text string
(Required) The external name of the view, suitable for presentation in a user in-
terface.
IN
text string
(Optional) The internal name of the view, used to refer to the view from other
objects, such as the go-to-3D-view action (see “Go-To-3D-View Actions” on
page 670).
MS
name
(Optional) A name specifying the entry to use for the 3D camera-to-world
transformation matrix. The following values are supported:
M
Indicates that the C2W entry specifies the matrix
U3D
Indicates that the U3DPath entry in the 3D stream object is
used for the matrix. This value reflects the sole supported value
of the Subtype entry in the 3D stream dictionary.
If omitted, the view specified in the 3D artwork is used.
805
SECTION 9.5
3D Artwork
KEY
TYPE
VALUE
C2W
array
(Required if the value of MS is M, ignored otherwise) A 12-element 3D transfor-
mation matrix that specifies a position and orientation of the camera in world
coordinates.
U3DPath
text string or
(Required if the value of MS is U3D, ignored otherwise) A sequence of one or
array
more text strings used to access a view node within the 3D artwork. The first
string in the array is a node ID for the root view node, and each subsequent
string is the node ID for a child of the view node specified by the prior string.
Each view node specifies a 3D transformation matrix (see Section 9.5.4, “Coor-
dinate Systems for 3D”); the concatenation of all the matrices forms the cam-
era-to-world matrix.
Note: The use of an array value for this entry is deprecated. A single text string
(corresponding to the View Node name, as described in section 9.5.4.1 of the Uni-
versal 3D File Format specification) is sufficient to determine the world matrix of
the target view node. See implementation note 157 in Appendix H.
Note: Do not confuse View Nodes with nodes. A View Node is a parameter in
the 3D artwork that specifies a view, while a node is a PDF dictionary that speci-
fies 3D graphic objects or collections thereof.
CO
number
(Optional; used only if MS is present) A non-negative number indicating a dis-
tance in the camera coordinate system along the z axis to the center of orbit for
this view; see discussion below. If this entry is not present, the viewer applica-
tion must determine the center of orbit.
P
dictionary
(Optional) A projection dictionary (see “Projection Dictionaries” on page 808)
that defines the projection of coordinates in the 3D artwork (already trans-
formed into camera coordinates) onto the target coordinate system of the anno-
tation.
Default value: a projection dictionary where the value of Subtype is
Perspective, the value of FOV is 90, and all other entries take their default val-
ues.
O
stream
(Optional; meaningful only if MS and P are present) A form XObject that is used
to overlay 2D graphics on top of the rendered 3D artwork (see Section 9.5.5,
“3D Markup).
BG
dictionary
(Optional) A background dictionary that defines the background over which the
3D artwork is to be drawn (see “3D Background Dictionaries” on page 812”).
Default value: a background dictionary whose entries take their default values.
806
CHAPTER 9
Multimedia Features
KEY
TYPE
VALUE
RM
dictionary
(Optional; PDF 1.7) A render mode dictionary that specifies the render mode to
use when rendering 3D artwork with this view (see “3D Render Mode Dictio-
naries” on page 813”). If omitted, the render mode specified in the 3D artwork
is used.
LS
dictionary
(Optional; PDF 1.7) A lighting scheme dictionary that specifies the lighting
scheme to be used when rendering 3D artwork with this view (see “3D Lighting
Scheme Dictionaries” on page 817”). If omitted, the lighting scheme specified
in the 3D artwork is used.
SA
array
(Optional; PDF 1.7) An array that contains cross section dictionaries (see “3D
Cross Section Dictionaries” on page 819”). Each cross section dictionary pro-
vides parameters for applying a cross section to the 3D artwork when using this
view. An empty array signifies that no cross sections are displayed.
NA
array
(Optional; PDF 1.7) A node array consisting of 3D node dictionaries (see “3D
Node Dictionaries” on page 828”). Each node dictionary may contain entries
that change the node’s state, including its opacity and its position in world
space. This entry and the NR entry specify how the state of each node is
changed.
If a node dictionary is present more than once, only the last such dictionary
(using a depth-first traversal) is used.
NR
boolean
(Optional; PDF 1.7) Specifies whether nodes specified in the NA array are re-
turned to their original states (as specified in the 3D artwork) before applying
transformation matrices and opacity settings specified in the node dictionaries.
If true, the artwork’s 3D node parameters are restored to their original states
and then the dictionaries specified by the NA array are applied. If false, the dic-
tionaries specified by the NA array are applied to the current states of the nodes.
In addition to the parameters specified by a 3D node dictionary, this flag should
also apply to any runtime parameters used by a viewer application, as well as
any additional parameters specified in future PDF versions.
This value is ignored if the NA array is not present.
Default value: false
For any view, the document author may provide 2D content specific to the view,
to be drawn on top of the 3D artwork. The O entry specifies a form XObject that
is overlaid on the rendered 3D artwork. The coordinate system of the form XOb-
ject is defined to be the same as the (x, y, 0) plane in the camera coordinate sys-
tem (see Section 9.5.4, “Coordinate Systems for 3D”).
807
SECTION 9.5
3D Artwork
The form XObject specified by the O entry is subject to the following restrictions;
failure to abide by them could result in misalignment of the overlay with the ren-
dered 3D graphics:
The form XObject is associated with a specific view (not with the camera posi-
tion defined by the 3D view dictionary). It should only be drawn when the user
navigates using the 3D view, not when the user happens to navigate to the same
orientation by manual means.
It should only be drawn if the artwork-to-world matrix has not been altered.
It may only be specified in 3D view dictionaries in which both a camera-to-
world matrix (MS and associated entries) and a projection dictionary (the P en-
try) are present.
The CO entry specifies the distance from the camera to the center of orbit for the
3D view, which is the point around which the camera should rotate when per-
forming an orbit-style navigation. Figure 9.4 illustrates camera positioning when
orbiting around the center of orbit.
Center Of Orbit
FIGURE 9.4 Rotation around the center of orbit
The LS entry allows the lighting of the 3D artwork to be changed without chang-
ing the artwork itself. This enables consumers to view a given piece of 3D artwork
with a variety of lighting options without requiring multiple copies of the 3D art-
work stream that differ only in lighting. It also enables artwork with poor lighting
808
CHAPTER 9
Multimedia Features
to be corrected in cases where the original content cannot be re-authored. See
“3D Lighting Scheme Dictionaries” on page 817.”
The SA entry provides cross section information for clipping 3D artwork while its
associated view is active. This allows view authors to be more clear in calling out
the intended areas of interest for a particular view, some of which might other-
wise be completely obscured. See “3D Cross Section Dictionaries” on page 819.”
The NR and NA entries are meant to give a more accurate representation of the 3D
artwork at a given state. These keys give view authors finer granularity in manip-
ulating the artwork to be presented in a particular way. They also provide a
means for returning node parameters to a known state after potential changes by
interactive features such as keyframe animations and JavaScript. See “3D Node
Dictionaries” on page 828.”
Projection Dictionaries
A projection dictionary (see Table 9.40) defines the mapping of 3D camera coordi-
nates onto the target coordinate system of the annotation. Each 3D view can
specify a projection dictionary by means of its P entry.
Note: Although view nodes can specify projection information, PDF consumers ig-
nore it in favor of information in the projection dictionary.
PDF 1.6 introduces near/far clipping. This type of clipping defines a near plane
and a far plane (as shown in Figure 9.5 on page 810). Objects, or parts of objects,
that are beyond the far plane or closer to the camera than the near plane are not
drawn. 3D objects are projected onto the near plane and then scaled and posi-
tioned within the annotation’s target coordinate system, as described below.
TABLE 9.40 Entries in a projection dictionary
KEY
TYPE
VALUE
Subtype
name
(Required) The type of projection. Valid values are O (orthographic) or P (perspective).
CS
name
(Optional) The clipping style. Valid values are XNF (explicit near/far) or ANF (automatic
near/far). Default value: ANF.
F
number
(Optional; meaningful only if the value of CS is XNF) The far clipping distance, expressed
in the camera coordinate system. No parts of objects whose z coordinates are greater
than the value of this entry are drawn. If this entry is absent, no far clipping occurs.
809
SECTION 9.5
3D Artwork
KEY
TYPE
VALUE
N
number
(Meaningful only if the value of CS is XNF; required if the value of Subtype is P) The near
clipping distance, expressed in the camera coordinate system. No parts of objects whose
z coordinates are less than the value of this entry are drawn. If Subtype is P, the value
must be positive; if Subtype is O, the value must be non-negative, and the default value
is 0.
FOV
number
(Required if Subtype is P, ignored otherwise) A number between 0 and 180, inclusive,
specifying the field of view of the virtual camera, in degrees. It defines a cone in 3D
space centered around the z axis and a circle where the cone intersects the near clipping
plane. The circle, along with the value of PS, specify the scaling of the projected artwork
when rendered in the 2D plane of the annotation.
PS
number
(Optional; meaningful only if Subtype is P) An object that specifies the scaling used
or name
when projecting the 3D artwork onto the annotation’s target coordinate system. It de-
fines the diameter of the circle formed by the intersection of the near plane and the cone
specified by FOV. The value may be one of the following:
A positive number that explicitly specifies the diameter as a distance in the annota-
tion’s target coordinate system.
A name specifying that the diameter must be set to the width (W), height (H), mini-
mum of width and height (Min), or maximum of width and height (Max) of the anno-
tation’s 3D view box. Default value: W.
OS
number
(Optional; meaningful only if Subtype is O) A positive number that specifies the scale
factor to be applied to both the x and y coordinates when projecting onto the annota-
tion’s target coordinate system (the z coordinate is discarded). Default value: 1.
OB
name
(Optional; PDF 1.7; meaningful only if Subtype is O) A name that specifies a strategy for
binding (scaling to fit) the near plane’s x and y coordinates onto the annotation’s target
coordinate system. The scaling specified in this entry is applied in addition to the scal-
ing factor specified by the OS entry. The value may be one of the following:
W
Scale to fit the width of the annotation
H
Scale to fit the height of the annotation
Min
Scale to fit the lesser of width or height of the annotation
Max
Scale to fit the greater of width or height of the annotation
Absolute No scaling should occur due to binding.
Default value: Absolute.
The CS entry defines how the near and far planes are determined. A value of XNF
means that the N and F entries explicitly specify the z coordinate of the near and
810
CHAPTER 9
Multimedia Features
far planes, respectively. A value of ANF for CS means that the near and far planes
are determined automatically based on the objects in the artwork.
The Subtype entry specifies the type of projection, which determines how objects
are projected onto the near plane and scaled. The possible values are O for ortho-
graphic projection and P for perspective projection.
For orthographic projection, objects are projected onto the near plane by simply
discarding their z value. They are scaled from units of the near plane’s coordinate
system to those of the annotation’s target coordinate system by the combined fac-
tors specified by the OS entry and the OB entry.
For perspective projection, a given coordinate (x, y, z) is projected onto the near
plane, defining a 2D coordinate (x1, y1) using the following formulas:
=
x× --
x1
z
=
y× --
y1
z
where n is the z coordinate of the near plane.
Scaling with perspective projection is more complicated than for orthographic
projection. The FOV entry specifies an angle that defines a cone centered along
the z axis in the camera coordinate system (see Figure 9.5). The cone intersects
with the near plane, forming a circular area on the near plane. Figure 9.6 shows
this circle and graphics from the position of the camera.
Far Clipping Plane
Near Clipping plane
Objects projected onto near clipping plane
Z axis
Field of View angle
Circle defined by Field of View angle on near clipping plane
FIGURE 9.5 Perspective projection of 3D artwork onto the near plane
811
SECTION 9.5
3D Artwork
FOV circle
Z axis projected onto near plane
FIGURE 9.6
Objects projected onto the near clipping plane, as seen from the position of the camera
The PS entry specifies the diameter that this circle will have when the graphics
projected onto the near plane are rendered in the annotation’s 3D view box (see
Figure 9.7). Although the diameter of the circle determines the scaling factor,
graphics outside the circle are also displayed, providing they fit within the view
box, as seen in the figure.
Figure 9.8 shows the entire 3D annotation. In this case, the 3D view box is smaller
than the annotation’s rectangle, which also contains 2D content outside the 3D
view box.
3D Annotation’s 3DB box
Z axis projected onto near plane,
aligned with center of 3DB box,
scaled to fit the width of the 3DB box
FIGURE 9.7 Positioning and scaling the near plane onto the annotation’s 3D view box
812
CHAPTER 9
Multimedia Features
The Daily News
New Planet
Discovered!
FIGURE 9.8
3D annotation positioned on the page
3D Background Dictionaries
A 3D background dictionary defines the background over which a 3D view is to
be drawn; the entries in a background dictionary are shown in Table 9.41. Cur-
rently, only a single opaque color is supported, where the color must be defined in
the DeviceRGB color space. 3D artwork may include transparent objects; howev-
er, there is no interaction between such objects and objects drawn below the an-
notation. In effect, the 3D artwork and its background form a transparency group
whose flattened results have an opacity of 1 (see Chapter 7, “Transparency”).
Note: An annotation’s normal appearance should have the same behavior with re-
spect to transparency when the appearance is intended to depict the 3D artwork.
This recommendation does not necessarily apply when the appearance is used for
another purpose, such as a compatibility warning message.
TABLE 9.41 Entries in a 3D background dictionary
KEY
TYPE
VALUE
Type
name
(Optional) The type of PDF object that this dictionary describes; if present, must be
3DBG for a 3D background dictionary.
Subtype
name
(Optional) The type of background. The only valid value is SC (solid color), which
indicates a single opaque color. Default value: SC.
CS
name or
(Optional) The color space of the background. The only valid value is the name De-
array
viceRGB. Default value: DeviceRGB.
Note: PDF consumers must be prepared to encounter other values that may be sup-
ported in future versions of PDF.
813
SECTION 9.5
3D Artwork
KEY
TYPE
VALUE
C
(various)
(Optional) The color of the background, in the color space defined by CS. Default
value: an array [1 1 1] representing the color white when the value of CS is
DeviceRGB.
EA
boolean
(Optional) If true, the background should apply to the entire annotation; if false, the
background should apply only to the rectangle specified by the annotation’s 3D view
box (the 3DB entry in Table 9.33). Default value: false.
3D Render Mode Dictionaries
A 3D render mode dictionary (PDF 1.7) specifies the style in which the 3D art-
work is rendered. For example, surfaces may be filled with opaque colors, they
may be stroked as a "wireframe", or the artwork may be rendered with special
lighting effects.
A render mode dictionary enables document authors to customize the rendered
appearance of 3D artwork to suit the needs of the intended consumer, without re-
authoring the artwork. For consumer applications concerned strictly with geome-
try, complex artwork rendered using the Wireframe or Points style will have much
better performance without the added overhead of texturing and lighting effects.
Artwork in a document intended for print could have a much more integrated
feel when using the Illustration render mode style.
The RM entry in the 3D views dictionary can specify a 3D render mode dictio-
nary.
Table 9.42 shows the entries in a render mode dictionary.
TABLE 9.42 Entries in a render mode dictionary
KEY
TYPE
VALUE
Type
name
(Optional) The type of PDF object that this dictionary describes; if
present, must be 3DRenderMode.
Subtype
name
(Required) The type of render mode described by this dictionary;
see Table 9.43 on page 815 for specific values. If an unrecognized
value is encountered, then this render mode dictionary is ignored.
814
CHAPTER 9
Multimedia Features
KEY
TYPE
VALUE
AC
array
(Optional) An array that specifies the auxiliary color to be used
when rendering the 3D image. The first entry in the array is a color
space; the subsequent entries are values specifying color values in
that color space. The interpretation of this entry depends on the
render mode specified by the Subtype entry, but it is often used to
specify a color for drawing points or edges.
The only valid color space is DeviceRGB. If a color space other
than DeviceRGB is specified, this entry is ignored and the default
value is used.
Default value: [/DeviceRGB 0 0 0] representing the color black.
FC
name or
(Optional) A name or array that specifies the face color to be used
array
when rendering the 3D image. This entry is relevant only when
Subtype has a value of Illustration.
If the value of FC is an array, the first entry in the array is a color
space and the subsequent entries are values specifying values in that
color space. The only valid color space is DeviceRGB. Any color
space other than DeviceRGB is ignored and the default value is
used.
If the value of FC is a name, it should describe a color. The only val-
id name value is BG, specifying the current background color in use
for displaying the artwork. If a name other than BG is encountered,
this entry is ignored and the background color for the host annota-
tion is used (see Table 8.40 on page 642).
Default value: BG
O
number
(Optional) A number specifying the opacity of the added transpar-
ency applied by some render modes, using a standard additive
blend.
Default value: 0.5
CV
number
(Optional) A number specifying the angle, in degrees, to be used as
the crease value to be used when determining silhouette edges. If
two front-facing faces share an edge and the angle between the nor-
mals of those faces is greater than or equal to the crease value, then
that shared edge is considered to be a silhouette edge.
Default value: 45
815
SECTION 9.5
3D Artwork
For render modes that add a level of transparency to the rendering, the O entry
specifies the additional opacity to be used. All such transparency effects use a
standard additive blend mode.
The CV entry sets the crease value that is used when determining silhouette edg-
es, which can be used to adjust the appearance of illustrated render modes. An
edge shared by two faces is considered a silhouette edge if either of the following
conditions are met:
One face is front-facing and the other is back-facing.
The angle between the two faces is greater than or equal to the crease value.
Table 9.43 describes the render modes that can be specified in a render mode dic-
tionary.
TABLE 9.43 Render modes
MODE
DESCRIPTION
Solid
Displays textured and lit geometric shapes. In the case of artwork that
conforms to the Universal 3D File Format specification, these shapes
are triangles. The AC entry is ignored.
SolidWireframe
Displays textured and lit geometric shapes (triangles) with single color
edges on top of them. The color of these edges is determined by the AC
entry.
Transparent
Displays textured and lit geometric shapes (triangles) with an added
level of transparency. The AC entry is ignored.
TransparentWireframe
Displays textured and lit geometric shapes (triangles) with an added
level of transparency, with single color opaque edges on top of it. The
color of these edges is determined by the AC entry.
BoundingBox
Displays the bounding box edges of each node, aligned with the axes of
the local coordinate space for that node. The color of the bounding
box edges is determined by the AC entry.
TransparentBoundingBox
Displays bounding boxes faces of each node, aligned with the axes of
the local coordinate space for that node, with an added level of
transparency. The color of the bounding box faces is determined by
the FC entry.
816
CHAPTER 9
Multimedia Features
MODE
DESCRIPTION
TransparentBoundingBoxOutline
Displays bounding boxes edges and faces of each node, aligned with
the axes of the local coordinate space for that node, with an added level
of transparency. The color of the bounding box edges is determined by
the AC entry. The color of the bounding boxes faces is determined by
the FC entry.
Wireframe
Displays only edges in a single color. The color of these edges is
determined by the AC entry.
ShadedWireframe
Displays only edges, though interpolates their color between their two
vertices and applies lighting. The AC entry is ignored.
HiddenWireframe
Displays edges in a single color, though removes back-facing and
obscured edges. The color of these edges is determined by the AC
entry.
Vertices
Displays only vertices in a single color. The color of these points is
determined by the AC entry.
ShadedVertices
Displays only vertices, though uses their vertex color and applies
lighting. The AC entry is ignored.
Illustration
Displays silhouette edges with surfaces, removes obscured lines. The
color of these edges is determined by the AC entry, and the color of the
surfaces is determined by the FC entry.
SolidOutline
Displays silhouette edges with lit and textured surfaces, removes
obscured lines. The color of these edges is determined by the AC entry.
ShadedIllustration
Displays silhouette edges with lit and textured surfaces and an
additional emissive term to remove poorly lit areas of the artwork. The
color of these edges is determined by the AC entry.
Note: If a render mode type is encountered other than those described in Table 9.43,
the render mode dictionary containing that entry must be ignored by its consumers.
This allows future documents using new render modes to behave consistently with
future documents using new 3D view constructs that are ignored by older viewers.
817
SECTION 9.5
3D Artwork
3D Lighting Scheme Dictionaries
A 3D lighting scheme dictionary (PDF 1.7) specifies the lighting to apply to 3D
artwork. The LS entry in the 3D view can include a 3D lighting scheme dictio-
nary.
Table 9.36 shows the entries in a 3D lighting scheme dictionary.
TABLE 9.44 Entries in a 3D lighting scheme dictionary
KEY
TYPE
VALUE
Type
name
(Optional) The type of PDF object that this dictionary describes; if
present, must be 3DLightingScheme.
Subtype
name
(Required) The style of lighting scheme described by this dictionary
(see Table 9.45).
Table 9.45 describes the supported lighting schemes. With the exception of the
Artwork lighting style, all the lights specified below are infinite lights (also known
as distant lights). Unlike lights from a point source, all rays from an infinite light
source are emitted along a single direction vector. For lights specifying an ambi-
ent term, this term is added to the diffuse color of an object’s material. All colors
are specified in the DeviceRGB color space.
When a style other than Artwork is used, only those lights described should be
present; any lighting described in the artwork should not be used.
TABLE 9.45
3D lighting scheme styles
SCHEME
DESCRIPTION
Artwork
Lights as specified in the 3D artwork. This has the same effect as if the
3D lighting scheme dictionary were omitted.
None
No lights are used. That is, lighting specified in the 3D artwork is
ignored.
White
Three blue-grey infinite lights, no ambient term
Light 1
Color: < 0.38, 0.38, 0.45 > Direction: < -2.0, -1.5, -0.5 >
Light 2
Color: < 0.6, 0.6, 0.67 > Direction: < 2.0, 1.1, -2.5 >
Light 3
Color: < 0.5, 0.5, 0.57 > Direction: < -0.5, 0.0, 2.0 >
818
CHAPTER 9
Multimedia Features
SCHEME
DESCRIPTION
Day
Three light-grey infinite lights, no ambient term
Light 1
Color: < 0.5, 0.5, 0.5 >
Direction: < -2.0, -1.5, -.5 >
Light 2
Color: < 0.8, 0.8, 0.9 >
Direction: < 2.0, 1.1, -2.5 >
Light 3
Color: < 0.9, 0.9, 0.9 >
Direction: < 0.02, 0.01, 2.0 >
Night
One yellow, one aqua, and one blue infinite light, no ambient term
Light 1
Color: < 1, .75, .39 >
Direction: < -2.0, -1.5, -0.5 >
Light 2
Color: < 0.31, 0.47, 0.55 > Direction: < 2.0, 1.1, -2.5 >
Light 3
Color: < .5, .5, 1.0 >
Direction: < 0.0, 0.0, 2.0 >
Hard
Three grey infinite lights, moderate ambient term
Light
Color: < 0.5, 0.5, 0.5 >
Direction: < -1.5, -1.5, -1.5 >
Light 2
Color: < 0.8, 0.8, 0.9 >
Direction: < 1.5, 1.5, -1.5 >
Light 3
Color: < 0.9, 0.9, 0.9 >
Direction: < -0.5, 0, 2.0 >
Ambient
Color: < 0.5, 0.5, 0.5 >
Primary
One red, one green, and one blue infinite light, no ambient term
Light 1
Color: < 1, 0.2, 0.5 >
Direction: < -2, -1.5, -0.5 >
Light 2
Color: < 0.2, 1.0, 0.5 >
Direction: < 2.0, 1.1, -2.5 >
Light 3
Color: < 0, 0, 1 >
Direction: < 0.0, 0.0, 2.0 >
Blue
Three blue infinite lights, no ambient term
Light 1
Color: < 0.4, 0.4, 0.7 >
Direction: < -2.0, -1.5, -0.5 >
Light 2
Color: < 0.75, 0.75, 0.95 > Direction: < 2.0, 1.1, -2.5 >
Light 3
Color: < 0.7, 0.7, 0.95 > Direction: < 0.0, 0.0, 2.0 >
Red
Three red infinite lights, no ambient term
Light 1
Color: < 0.8, 0.3, 0.4 >
Direction: < -2.0, -1.5, -0.5 >
Light 2
Color: < 0.95, 0.5, 0.7 >
Direction: < 2.0, 1.1, -2.5 >
Light 3
Color: < 0.95, 0.4, 0.5 >
Direction: < 0.0, 0.0, 2.0 >
Cube
Six grey infinite lights aligned with the major axes, no ambient term
Light 1
Color: < .4, .4, .4 >
Direction: < 1.0, 0.01, 0.01 >
Light 2
Color: < .4, .4, .4 >
Direction: < 0.01, 1.0, 0.01 >
Light 3
Color: < .4, .4, .4 >
Direction: < 0.01, 0.01, 1.0 >
Light 4
Color: < .4, .4, .4 >
Direction: < -1.0, 0.01, 0.01 >
Light 5
Color: < .4, .4, .4 >
Direction: < 0.01, -1.0, 0.01 >
Light 6
Color: < .4, .4, .4 >
Direction: < 0.01, 0.01, -1.0 >
819
SECTION 9.5
3D Artwork
SCHEME
DESCRIPTION
CAD
Three grey infinite lights and one light attached to the camera, no
ambient term
Light 1
Color: < 0.72, 0.72, 0.81 > Direction: < 0.0, 0.0, 0.0 >
Light 2
Color: < 0.2, 0.2, 0.2 >
Direction: < -2.0, -1.5, -0.5 >
Light 3
Color: < 0.32, 0.32, 0.32 > Direction: < 2.0, 1.1, -2.5 >
Light 4
Color: < 0.36, 0.36, 0.36 > Direction: < 0.04, 0.01, 2.0 >
Headlamp
Single infinite light attached to the camera, low ambient term
Light 1
Color: < 0.8, 0.8, 0.9 >
Direction: < 0.0, 0.0, 0.0 >
Ambient
Color: < 0.1, 0.1, 0.1 >
Note: If a lighting scheme style is encountered other than those described in Table
9.45, the lighting scheme dictionary containing that entry should be ignored. This
allows future documents using new lighting schemes to behave consistently with fu-
ture documents using new 3D view constructs. That is, the expected behavior is for
the viewer application to ignore unrecognized lighting styles and 3D view con-
structs.
3D Cross Section Dictionaries
A 3D cross section dictionary (PDF 1.7) specifies how a portion of the 3D artwork
is clipped for the purpose of showing artwork cross sections. The SA entry of a
3D view can specify multiple 3D cross section dictionaries.
Cross sections enable viewer applications to display otherwise hidden parts of the
artwork. They also allow users to comment on cross sections, using markup an-
notations. For example, markup annotations can be used apply markup annota-
tions to a cross section or to measure distances in a cross section. If multiple cross
sections are specified for a view, the markup annotations in the view apply to all
cross sections in the view.
Table 9.46 shows the entries in a 3D cross section dictionary.
TABLE 9.46 Entries in a 3D cross section dictionary
KEY
TYPE
VALUE
Type
name
(Optional) The type of PDF object that this dictionary describes; if present, must be
3DCrossSection for a 3D cross section dictionary.
820
CHAPTER 9
Multimedia Features
KEY
TYPE
VALUE
C
array
(Optional) A three element array specifying the center of rotation on the cutting plane
in world space coordinates (see Section 9.5.4, “Coordinate Systems for 3D).
Default value: [0 0 0] specifying a cutting plane rotating about the origin of the world
space.
O
array
(Required) A three-element array specifying the orientation of the cutting plane in
world space, where each value represents the orientation in relation to the X, Y, and Z
axes, respectively (see Section 9.5.4, “Coordinate Systems for 3D). Exactly one of the
values must be null, indicating an initial state of the cutting plane that is perpendicular
to the corresponding axis and clipping all geometry on the positive side of that axis.
The other two values must be numbers indicating the rotation of the plane, in degrees,
around their corresponding axes. The order in which these rotations are applied
should match the order in which the values appear in the array.
Default value: [null 0 0] specifying a cutting plane that is perpendicular to the X axis
and coplanar with the Y and Z axes.
PO
number
(Optional) A number in the range [0, 1] indicating the opacity of the cutting plane us-
ing a standard additive blend mode.
Default value: 0.5
PC
array
(Optional) An array that specifies the color for the cutting plane. The first entry in the
array is a color space, and the remaining entries are values in that color space. The
only valid color space is DeviceRGB. If a color space other than DeviceRGB is specified,
this entry is ignored and the default value is used.
Default value: [/DeviceRGB 1 1 1] representing the color white.
IV
boolean
(Optional) A flag indicating the visibility of the intersection of the cutting plane with
any 3D geometry. If true, then the intersection is visible. If false, then the intersection
is not visible.
Default value: false
IC
array
(Optional) An array that specifies the color for the cutting plane’s intersection with the
3D artwork. The first entry in the array is a color space, and the remaining entries are
values in that color space. The only valid color space is DeviceRGB. If a color space
other than DeviceRGB is specified, this entry is ignored and the default value is used.
This entry is meaningful only if IV is true.
Default value: [/DeviceRGB 0 1 0] representing the color green.
821
SECTION 9.5
3D Artwork
The C entry specifies the center of the cutting plane. This implies that the plane
passes through the center point, but it is also the point of reference when deter-
mining the orientation of the plane.
The O array indicates the orientation of the cutting plane, taking into account its
center. The orientation can be determined by a two-step process:
The plane is situated such that it passes through point C, and oriented such that
it is perpendicular to the axis specified by the array entry whose value is null.
For each of the other two axes, the plane is rotated the specified number of de-
grees around the associated axis, while maintaining C as a fixed point on the
plane. Since the two axes are perpendicular, the order in which the rotations are
performed is irrelevant.
The PO entry specifies the opacity of the plane itself when rendered, while the PC
entry provides its color. When the PO entry is greater than 0, a visual representa-
tion of the cutting plane is rendered with the 3D artwork. This representation is a
square with a side length equal to the length of the diagonal of the maximum
bounding box for the 3D artwork, taking into account any keyframe animations
present. When the PO entry is 0, no visible representation of the cutting plane is
rendered.
The IV entry is a boolean value that determines whether a visual indication is
drawn of the plane’s intersection with the 3D artwork. If such an indication is
drawn, the IC entry specifies its color.
The Example 9.3 describes a set of views and corresponding cross sections that il-
lustrate the various effects of orientation.
Example 9.3
3 0 obj
%CrossSection1
<<
/Type /3DCrossSection
/C [0 0 0]
/O [null 0 0]
/PO 0.35
/PC [/DeviceRGB 0.75 0.86 1]
/IV true
/IC [/DeviceRGB 0 1 0]
>>
endobj
822
CHAPTER 9
Multimedia Features
4 0 obj
%CrossSection2
<<
/Type /3DCrossSection
/C [0 0 0]
/O [null -30 0]
/PO 0.35
/PC [/DeviceRGB 0.75 0.86 1]
/IV true
/IC [/DeviceRGB 0 1 0]
>>
endobj
5 0 obj
%CrossSection3
<<
/Type /3DCrossSection
/C [0 0 0]
/O [null 0 30]
/PO 0.35
/PC [/DeviceRGB 0.75 0.86 1]
/IV true
/IC [/DeviceRGB 0 1 0]
>>
endobj
6 0 obj
%CrossSection4
<<
/Type /3DCrossSection
/C [0 0 0]
/O [null -30 30]
/PO 0.35
/PC [/DeviceRGB 0.75 0.86 1]
/IV true
/IC [/DeviceRGB 0 1 0]
>>
endobj
7 0 obj
%View0
<<
/Type /3DView
/XN (NoCrossSection)
/SA []
823
SECTION 9.5
3D Artwork
>>
endobj
8 0 obj
%View1
<<
/Type /3DView
/XN (CrossSection1)
/SA [3 0 R]
>>
endobj
9 0 obj
%View2
<<
/Type /3DView
/XN (CrossSection2)
/SA [4 0 R]
>>
endobj
10 0 obj
%View3
<<
/Type /3DView
/XN (CrossSection3)
/SA [5 0 R]
>>
endobj
11 0 obj
%View4
<<
/Type /3DView
/XN (CrossSection4)
/SA [6 0 R]
>>
endobj
824
CHAPTER 9
Multimedia Features
The following illustrations show the views described in Example 9.3, some of
which include cross sections.
FIGURE 9.9 Rendering of the 3D artwork using View0 (no cross section)
Figure 9.9 through Figure 9.13 use world coordinates whose origin is the center
of the cube. The axes illustrated in each diagram show the relative orientation of
the world coordinate axes, not the actual position of those axes. These axes are
not part of the 3D artwork used in this example.
825
SECTION 9.5
3D Artwork
FIGURE 9.10 Rendering of the 3D artwork using View1 (cross section perpendicular to the x axis)
Figure 9.10 shows the cross section specified for the 3DView that references
CrossSection1. The illustration shows the edges of the cutting plane ending at the
edges of the annotation’s rectangle. This cross section specifies a plane with the
following characteristics:
Includes the world art origin: /C [0 0 0]
Perpendicular to the X axis and parallel to the Y and Z axes: /O [ null 0 0]
Opacity of the cutting plane is 35%: /PO 0.35
Color of the cutting plane is light blue: /PC [/DeviceRGB 0.75 0.86 1]
Intersection of the cutting plane with the object is visible: /IV true
Color of the intersection of the cutting plane and the object is green:
/IC [/DeviceRGB 0 1 0]
826
CHAPTER 9
Multimedia Features
FIGURE 9.11 Rendering of the 3D artwork using View2 (cross section rotated around the y axis by -30 degrees)
Figure 9.11 shows the cross section specified for the 3DView that references
CrossSection2. This cross section specifies a plane that differs from the one speci-
fied in CrossSection1 (Figure 9.10) in the following way:
Perpendicular to the X axis, rotated -30 degrees around the Y axis, and parallel
to the Z axis: /O [ null -30 0]
827
SECTION 9.5
3D Artwork
FIGURE 9.12 Rendering of the 3D artwork using View3 (cross section rotated around the z axis by 30 degrees)
Figure 9.12 shows the cross section specified for the 3DView that references
CrossSection3. This cross section specifies a plane that differs from the one speci-
fied in CrossSection1 (Figure 9.10) in the following way:
Perpendicular to the X axis, parallel to the Y axis, and rotated 30 degrees
around the Z axis: /O [ null 0 30]
828
CHAPTER 9
Multimedia Features
FIGURE 9.13 Rendering of the 3D artwork using View4 (cross section rotated around the y axis by -30 degrees and
around the z axis by 30 degrees)
Figure 9.13 shows the cross section specified for the 3DView that references
CrossSection4. This cross section specifies a plane that differs from the one speci-
fied in CrossSection1 (Figure 9.10) in the following way:
Perpendicular to the X axis, rotated -30 degrees around the Y axis, and rotated
30 degrees around the Z axis: /O [ null -30 30]
3D Node Dictionaries
A 3D view can specify a 3D node dictionary (PDF 1.7), which specifies particular
areas of 3D artwork and the opacity and visibility with which individual nodes
are displayed. The 3D artwork is contained in the parent 3D stream object. The
NA entry of the 3D views dictionary can specify multiple 3D node dictionaries for
a particular view.
While many PDF dictionaries reference 3D artwork in its entirety, it is often use-
ful to reference 3D artwork at a more granular level. This enables properties such
as visibility, opacity, and orientation to be applied to subsets of the 3D artwork.
829
SECTION 9.5
3D Artwork
For example, these controls enable underlying nodes to be revealed, by making
the overlying nodes transparent or by moving them out of the way.
Note: Do not confuse nodes with view nodes. A node is a PDF dictionary that spec-
ifies an area in 3D artwork, while a view node is a parameter in the 3D artwork
that specifies a view.
Table 9.47 shows the entries in a 3D node dictionary.
TABLE 9.47 Entries in a 3D node dictionary
KEY
TYPE
VALUE
Type
name
(Optional) The type of PDF object that this dictionary describes; if
present, must be 3DNode for a 3D node dictionary.
N
text string
(Required) The name of the node being described by the node dic-
tionary. If the Subtype of the corresponding 3D Stream is U3D, this
entry corresponds to the field Node block name, as described in
the Universal 3D file format specification (see Bibliography). In the
future, nodes may be described using other 3D conventions.
Note: When comparing this entry to node names for a particular con-
vention (such as Universal 3D), PDF viewer applications must trans-
late between the PDF text encoding used by PDF and the character
encoding specified in the 3D stream.
O
number
(Optional) A number in the range [0, 1] indicating the opacity of
the geometry supplied by this node using a standard additive blend
mode.
If this entry is absent, the viewer should use the opacity specified
for the parent node or for the 3D artwork (in ascending order).
V
boolean
(Optional) A flag indicating the visibility of this node. If true, then
the node is visible. If false, then the node is not visible.
If this entry is absent, the viewer should use the visibility specified
for the parent node or for the 3D artwork (in ascending order).
M
array
(Optional) A 12-element 3D transformation matrix that specifies
the position and orientation of this node, relative to its parent, in
world coordinates (see Section 9.5.4, “Coordinate Systems for 3D).
The N entry specifies which node in the 3D stream corresponds to this node dic-
tionary.
830
CHAPTER 9
Multimedia Features
The O entry describes the opacity to be used when rendering this node, and the V
entry determines whether or not the node is rendered at all. While a node with an
opacity of 0 is rendered in the same way as a non-visible node, having a separate
value for the visibility of a node allows interactive viewer applications to show/
hide partially transparent nodes, without overwriting the intended opacity of
those nodes.
The M entry specifies the node’s matrix relative to its parent, in world coordi-
nates. If an hierarchy of nodes is intended to be repositioned while still maintain-
ing its internal structure, then only the node at the root of the hierarchy needs to
be adjusted.
Example 9.4 shows a 3D view specifying an array of node parameters.
Example 9.4
3 0 obj
% Default node params with all shapes visible and opaque
[
<< /Type /3DNode
/N (Sphere)
/O 1
/V true
/M [...]>>
<< /Type /3DNode
/N (Cone)
/O 1
/V true >>
<< /Type /3DNode
/N (Cube)
/O 1
/V true >>
]
4 0 obj
% Params with the cone hidden and the sphere semi-transparent
[
<< /Type /3DNode
/N (Sphere)
/O 0.5
/V true >>
<< /Type /3DNode
/N (Cone)
/O 1
/V false >>
<< /Type /3DNode
/N (Cube)
831
SECTION 9.5
3D Artwork
/O 1
/V true >>
]
endobj
5 0 obj
%View1, using the default set of node params
<<
/Type /3DView
/XN (View1)
/NA 3 0 R
>>
endobj
6 0 obj
%View2, using the alternate set of node params
<<
/Type /3DView
/XN (View2)
/NA 4 0 R
>>
endobj
FIGURE 9.14 Rendering of the 3D artwork using View1 (all shapes visible and opaque)
832
CHAPTER 9
Multimedia Features
Figure 9.14 shows a view whose node array includes three nodes, all of which are
rendered with the appearance opaque (/O 1) and visible (/V true).
FIGURE 9.15 Rendering of the 3D artwork using View2 (the cone is hidden and the sphere is semi-transparent)
Figure 9.15 shows a view with a node array that specifies the same three nodes
used in Figure 9.14. These nodes have the following display characteristics:
The node named Sphere is partially transparent (/O 0.5) and visible (/V true)
The node named Cone is opaque (/O 1) and invisible (/V false)
The node named Cube is opaque (/O 1) and visible (/V true)
9.5.4
Coordinate Systems for 3D
3D artwork is a collection of objects whose positions and geometry are specified
using three-dimensional coordinates. Section 4.2, “Coordinate Systems,” discuss-
es the concepts of two-dimensional coordinate systems, their geometry and
transformations. This section extends those concepts to include the third dimen-
sion.
833
SECTION 9.5
3D Artwork
As described in Section 4.2, positions are defined in terms of pairs of x and y co-
ordinates on the Cartesian plane. The origin of the plane specifies the location (0,
0); x values increase to the right and y values increase upward. For three-dimen-
sional graphics, a third axis, the z axis, is required. The origin is therefore at (0, 0,
0); positive z values increase going into the page.
In two-dimensional graphics, the transformation matrix transforms the position,
size, and orientation of objects in a plane. It is a 3-by-3 matrix, where only six of
the elements can be changed; therefore, the matrix is expressed in PDF as an ar-
ray of six numbers:
a b 0
=
c d
0
a b c d tx ty
tx ty 1
In 3D graphics, a 4-by-4 matrix is used to transform the position, size, and orien-
tations of objects in a three-dimensional coordinate system. Only the first three
columns of the matrix can be changed; therefore, the matrix is expressed in PDF
as an array of 12 numbers:
a b c
0
d e f
0
=
a b c d e f g h i tx ty tz
g h i
0
tx ty tz 1
3D coordinate transformations are expressed as matrix transformations:
a b c
0
d e f
0
x' y' z'
1
=
x y z 1
×
g h i
0
tx ty tz 1
Carrying out the multiplication has the following results:
x'
= a×x+d×y+g×z+tx
y'
= b×x+e×y+h×z+ty
z'
= c×x+f×y+i×z+tz
Position and orientation of 3D artwork typically involves translation (movement)
and rotation along any axis. The virtual camera represents the view of the art-
834
CHAPTER 9
Multimedia Features
work. The relationship between camera and artwork can be thought of in two
ways:
The 3D artwork is in a fixed position and orientation, and the camera moves to
different positions and orientations.
The camera is in a fixed location, and the 3D artwork is translated and rotated.
Both approaches can achieve the same visual effects; in practice, 3D systems typi-
cally use a combination of both. Conceptually, there are three distinct coordinate
systems:
The artwork coordinate system.
The camera coordinate system, in which the camera is positioned at (0, 0, 0) fac-
ing out along the positive z axis, with the positive x axis to the right and the
positive y axis going straight up.
An intermediate system called the world coordinate system.
Two 3D transformation matrices are used in coordinate conversions:
The artwork-to-world matrix specifies the position and orientation of the art-
work in the world coordinate system. This matrix is contained in the 3D
stream.
The camera-to-world matrix specifies the position and orientation of the cam-
era in the world coordinate system. This matrix is specified by either the C2W
or U3DPath entries of the 3D view dictionary.
When drawing 3D artwork in a 3D annotation’s target coordinate system, the fol-
lowing transformations take place:
1. Artwork coordinates are transformed to world coordinates:
xw yw zw 1
=
xa ya za
1
×aw
2. World coordinates are transformed to camera coordinates:
xc yc zc 1
=
xw yw zw 1
×(c
)
835
SECTION 9.5
3D Artwork
The first two steps can be expressed as a single equation, as follows:
xc yc zc 1
=
xa ya za 1
×
(aw×c
)
3. Finally, the camera coordinates are projected into two dimensions, eliminating
the z coordinate, then scaled and positioned within the annotation’s target co-
ordinate system.
9.5.5
3D Markup
Beginning with PDF 1.7, users can comment on specific views of 3D artwork by
using markup annotations (see “Markup Annotations” on page 616). Markup an-
notations (as other annotations) are normally associated with a location on a
page. To associate the markup with a specific view of a 3D annotation, the anno-
tation dictionary for the markup annotation contains an ExData entry (see Table
8.21 on page 618) that specifies the 3D annotation and view. Table 9.48 describes
the entries in an external data dictionary used to markup 3D annotations.
TABLE 9.48 Entries in an external data dictionary used to markup 3D annotations
KEY
TYPE
VALUE
Type
name
(Required) The type of PDF object that this dictionary describes; if present, must be
ExData for an external data dictionary.
Subtype
name
(Required) The type of external data that this dictionary describes; must be
Markup3D for a 3D comment. In PDF 1.7, the only defined value is Markup3D.
3DA
dictionary
(Required) The 3D annotation to which this markup annotation applies. The 3D
or text
annotation may be specified as a child dictionary or as the name of a 3D annota-
string
tion, as specified by its NM entry. In the latter case, the 3D annotation and the
markup annotation must be on the same page of the document.
3DV
dictionary
(Required) The 3D view that this markup annotation is associated with. The anno-
tation will be hidden unless this view is currently being used for the 3D annotation
specified by 3DA.
MD5
byte string
(Optional) A 16-byte string that contains the checksum of the bytes of the 3D
stream data that this 3D comment is associated with. The checksum is calculated
by applying the standard MD5 message-digest algorithm (described in Internet
RFC 1321, The MD5 Message-Digest Algorithm; see the Bibliography) to the bytes
of the stream data. This value is used to determine if artwork data has changed
since this 3D comment was created.
836
CHAPTER 9
Multimedia Features
In a Markup3D ExData dictionary, the 3DA entry identifies the 3D annotation to
which the markup is associated. Even though the markup annotation exists
alongside the associated annotation in the page’s Annots array, the markup can be
thought of as a child of the 3DA annotation.
The 3DV entry specifies the markup’s associated 3D view. The markup will only
be printed and displayed when the specified view is the current view of its parent
3D annotation. This ensures that the proper context is preserved when the mark-
up is displayed. Note that an equivalent view is not sufficient; if more than one
markup specify equivalent views represented by different objects, the markups
will not display simultaneously.
The MD5 entry gives viewer applications a means to detect whether or not the 3D
stream of the 3D annotation specified by 3DA has changed. If the 3D stream has
changed, the context provided by the 3DV entry may no longer apply, and the
markup may no longer be useful. Any action taken as a response to such a situa-
tion is dependent on the viewer application, but it is recommended that a warn-
ing be issued to the user.
Example 9.5 shows how markup annotations can be associated with particular
views.
Example 9.5
2 0 obj
% 3D stream data with two named views
<<
/Type /3D
/Subtype /U3D
/VA [4 0 R 5 0 R]
>>
stream
endstream
endobj
3 0 obj
% 3D annotation
<<
/Type /Annot
/Subtype /3D
/3DD 2 0 R
>>
837
SECTION 9.5
3D Artwork
endobj
4 0 obj
% CommentView1
<<
/Type /3DView
/XN (CommentView1)
>>
endobj
5 0 obj
% CommentView2
<<
/Type /3DView
/XN (CommentView2)
>>
endobj
6 0 obj
% Cloud comment with no ExData
<<
/Type /Annot
/Subtype /Polygon
/IT /PolygonCloud
>>
endobj
7 0 obj
% Callout comment on CommentView1
<<
/Type /Annot
/Subtype /FreeText
/IT /FreeTextCallout
/ExData <<
/Type /Markup3D
/3DA 3 0 R
/3DV 4 0 R
>>
>>
endobj
838
CHAPTER 9
Multimedia Features
8 0 obj
% Dimension comment on CommentView2
<<
/Type /Annot
/Subtype /Line
/IT /LineDimension
/ExData <<
/Type /Markup3D
/3DA 3 0 R
/3DV 5 0 R
>>
>>
endobj
9 0 obj
% Stamp comment on CommentView2
<<
/Type /Annot
/Subtype /Stamp
/ExData <<
/Type /Markup3D
/3DA 3 0 R
/3DV 5 0 R
>>
>>
endobj
The following illustrations show the placement of markup on annotations on dif-
ferent views of the same 3D artwork.
FIGURE 9.16
3D artwork set to its default view
839
SECTION 9.5
3D Artwork
Figure 9.16 shows the default view, which has no markup annotations.
FIGURE 9.17
3D artwork set to CommentView1
Figure 9.17 shows another view to which a markup annotation is applied.
FIGURE 9.18
3D artwork set to CommentView2
Figure 9.18 shows a view referenced by two markup annotations:
A line annotation (/Subtype /Line) with a line dimension intent
(/IT/ LineDimension)
A stamp annotation (/Subtype /Stamp)
840
CHAPTER 9
Multimedia Features
CHAPTER 10
Document Interchange
10
The features described in this chapter do not affect the final appearance of a doc-
ument. Rather, these features enable a document to include higher-level informa-
tion that is useful for the interchange of documents among applications:
Procedure sets (Section 10.1) that define the implementation of PDF operators
Metadata (Section 10.2) consisting of general information about a document or
a component of a document, such as its title, author, and creation and modifi-
cation dates
File identifiers (Section 10.3) for reliable reference from one PDF file to another
Page-piece dictionaries (Section 10.4) allowing an application to embed private
data in a PDF document for its own use
Marked-content operators (Section 10.5) for identifying portions of a content
stream and associating them with additional properties or externally specified
objects
Logical structure facilities (Section 10.6) for imposing a hierarchical organiza-
tion on the content of a document
Tagged PDF (Section 10.7), a set of conventions for using the marked content
and logical structure facilities to facilitate the extraction and reuse of a docu-
ment’s content for other purposes
Various ways of increasing the accessibility of a document to users with disabil-
ities
(Section 10.8), including the identification of the natural language in
which it is written (such as English or Spanish) for the benefit of a text-to-
speech engine
841
842
CHAPTER 10
Document Interchange
The Web Capture plug-in extension (Section 10.9), which creates PDF files
from Internet-based or locally resident HTML, PDF, GIF, JPEG, and ASCII text
files
Facilities supporting prepress production workflows (Section 10.10), such as
the specification of page boundaries and the generation of printer’s marks, color
separations, output intents, traps, and low-resolution proxies for high-resolution
images
10.1
Procedure Sets
The PDF operators used in content streams are grouped into categories of related
operators called procedure sets (see Table 10.1). Each procedure set corresponds
to a named resource containing the implementations of the operators in that pro-
cedure set. The ProcSet entry in a content stream’s resource dictionary (see Sec-
tion 3.7.2, “Resource Dictionaries”) holds an array consisting of the names of the
procedure sets used in that content stream. These procedure sets are used only
when the content stream is printed to a PostScript output device. The names
identify PostScript procedure sets that must be sent to the device to interpret the
PDF operators in the content stream. Each element of this array must be one of
the predefined names shown in Table 10.1. (See implementation note 159 in
Appendix H.)
TABLE 10.1 Predefined procedure sets
NAME
CATEGORY OF OPERATORS
PDF
Painting and graphics state
Text
Text
ImageB
Grayscale images or image masks
ImageC
Color images
ImageI
Indexed (color-table) images
Note: Beginning with PDF 1.4, this feature is considered obsolete. For compatibility
with existing consumer applications, PDF producer applications should continue to
specify procedure sets (preferably, all of those listed in Table 10.1 unless it is known
that fewer are needed). However, consumer applications should not depend on the
correctness of this information.

Была ли эта страница вам полезна?
Да!Нет
Большое спасибо!
Ваше мнение очень важно для нас.

Нет комментариевНе стесняйтесь поделиться с нами вашим ценным мнением.

Текст

Политика конфиденциальности