Skip to content

PDF Spec 08 Patterns

Marc Jones edited this page Dec 30, 2025 · 1 revision

8.8 Patterns

Part of: PDF-Spec-08-Graphics

Navigation: PDF-Spec-08-Color-Spaces | PDF-Spec-Index | PDF-Spec-08-XObjects


defined at the ends of the shading. In the third example, the shading is extended at both ends and a background colour is specified; therefore, the background colour is used for the portions of the filled area beyond the ends of the shading.

8.7.4.5.4 Type 3 (Radial) Shadings

Type 3 (radial) shadings define a colour blend that varies between two circles. Shadings of this type are commonly used to depict three-dimensional spheres and cones. Shading dictionaries for this type of shading contain the entries shown in Table 81, as well as those common to all shading dictionaries (see Table 78).

This type of shading shall not be used with an Indexed colour space.

Table 81 - Additional Entries Specific to a Type 3 Shading Dictionary

Key Type Value
Coords array (Required) An array of six numbers [ x 0 y 0 r 0 x 1 y 1 r 1 ] specifying the centres and radii of the starting and ending circles, expressed in the shading's target coordinate space. The radii r 0 and r 1 shall both be greater than or equal to 0. If one radius is 0, the corresponding circle shall be treated as a point; if both are 0, nothing shall be painted.
Domain array (Optional) An array of two numbers [ t 0 t 1 ] specifying the limiting values of a parametric variable t . The variable is considered to vary linearly between these two values as the colour gradient varies between the starting and ending circles. The variable t becomes the input argument to the colour function(s). Default value: [0.0 1.0].
Function function (Required) A 1-in, n -out function or an array of n 1-in, 1-out functions (where n is the number of colour components in the shading dictionary's colour space). The function(s) shall be called with values of the parametric variable t in the domain defined by the shading dictionary's Domain entry. Each function's domain shall be a superset of that of the shading dictionary. If the value returned by the function for a given colour component is out of range, it shall be adjusted to the nearest valid value.
Extend array (Optional) An array of two boolean values specifying whether to extend the shading beyond the starting and ending circles, respectively. Default value: [ false false ].

The colour blend is based on a family of blend circles interpolated between the starting and ending circles that shall be defined by the shading dictionary's Coords entry. The blend circles shall be defined in terms of a subsidiary parametric variable

which varies linearly between 0.0 and 1.0 as t varies across the domain from t 0 to t 1 , as specified by the dictionary's Domain entry. The centre and radius of each blend circle shall be given by the following parametric equations:

Each value of s between 0.0 and 1.0 determines a corresponding value of t , which is passed as the input argument to the function(s) defined by the shading dictionary's Function entry. This yields the component values of the colour with which to fill the corresponding blend circle. For values of s not lying between 0.0 and

  • 1.0, the boolean elements of the shading dictionary's Extend array determine whether and how the shading is extended. If the first of the two elements is true , the shading shall be extended beyond the defined starting circle to values of s less than 0.0; if the second element is true , the shading shall be extended beyond the defined ending circle to s values greater than 1.0.
  • NOTE 1 Either of the starting and ending circles may be larger than the other. If the shading is extended at the smaller end, the family of blend circles continues as far as that value of s for which the radius of the blend circle r ( s ) = 0. If the shading is extended at the larger end, the blend circles continue as far as that s value for which r ( s ) is large enough to encompass the shading's entire bounding box ( BBox ). Extending the shading can thus cause painting to extend beyond the areas defined by the two circles themselves. The two examples in the rightmost column of Figure L.11 in Annex L depict the results of extending the shading at the smaller and larger ends, respectively.

Conceptually, all of the blend circles shall be painted in order of increasing values of s , from smallest to largest. Blend circles extending beyond the starting circle shall be painted in the same colour defined by the shading dictionary's Function entry for the starting circle ( t = t 0 , s = 0.0). Blend circles extending beyond the ending circle shall be painted in the colour defined for the ending circle ( t = t 1 , s = 1.0). The painting is opaque, with the colour of each circle completely overlaying those preceding it. Therefore, if a point lies within more than one blend circle, its final colour shall be that of the last of the enclosing circles to be painted, corresponding to the greatest value of s .

  • NOTE 2 If one of the starting and ending circles entirely contains the other, the shading depicts a sphere, as in Figure L.12 and Figure L.13 in Annex L. In Figure L.12 in Annex L, the inner circle has zero radius; it is the starting circle in the figure on the left and the ending circle in the figure on the right. Neither shading is extended at either the smaller or larger end. In Figure L.13 in Annex L, the inner circle in both figures has a nonzero radius and the shading is extended at the larger end. In each plate, a background colour is specified for the figure on the right but not for the figure on the left.
  • NOTE 3 If neither circle contains the other, the shading depicts a cone. If the starting circle is larger, the cone appears to point out of the page. If the ending circle is larger, the cone appears to point into the page (see Figure L.11 in Annex L).
  • EXAMPLE 1 This example paints the leaf-covered branch shown in Figure L.14 in Annex L. Each leaf is filled with the same radial shading (object number 5). The colour function (object 10) is a stitching function (described in 7.10.4, "Type 3 (Stitching) Functions") whose two subfunctions (objects 11 and 12) are both exponential interpolation functions (see 7.10.3, "Type 2 (Exponential Interpolation) Functions").
5  0  obj % Shading dictionary <<   /ShadingType  3 /ColorSpace  /DeviceCMYK /Coords  [  0.0  0.0  0.096  0.0  0.0  1.0  00] % Concentric circles /Function  10 0 R /Extend  [  true  true  ] >> endobj 10  0  obj %Colour function <<   /FunctionType  3 /Domain  [  0.0  1.0  ] /Functions  [  11 0 R  12 0 R  ] /Bounds  [  0.708  ] /Encode  [  1.0  0.0  0.0  1.0  ] >> endobj 11  0  obj % First subfunction <<   /FunctionType  2 /Domain  [  0.0  1.0  ] /C0  [  0.929  0.357  1.000  0.298  ] /C1  [  0.631  0.278  1.000  0.027  ] /N  1.048 >> endobj
12  0  obj <<   /FunctionType  2 /Domain  [  0.0  1.0  ] /C0  [  0.929  0.357  1.000  0.298  ] /C1  [  0.941  0.400  1.000  0.102  ] /N  1.374 >> endobj
% Second subfunction
  • EXAMPLE 2 This example shows how each leaf shown in Figure L.14 in Annex L is drawn as a path and then filled with the shading (where the name Sh1 is associated with object 5 by the Shading subdictionary of the current resource dictionary; see 7.8.3, "Resource Dictionaries").
316.789  140.311  m % Move to start of leaf 303.222  146.388  282.966  136.518  279.122  121.983  c % Curved segment 277.322  120.182  l % Straight line 285.125  122.688  291.441  121.716  298.156  119.386  c % Curved segment 336.448  119.386  l % Straight line 331.072  128.643  323.346  137.376  316.789  140.311  c % Curved segment W  n % Set clipping path q % Save graphics state 27.7843  0.0000  0.0000  -27.7843  310.2461  121.1521  cm % Set matrix /Sh1  sh % Paint shading Q % Restore graphics state

8.7.4.5.5 Type 4 Shadings (Free-Form Gouraud-Shaded Triangle Meshes)

Type 4 shadings (free-form Gouraud-shaded triangle meshes) are commonly used to represent complex coloured and shaded three-dimensional shapes. The area to be shaded is defined by a path composed entirely of triangles. The colour at each vertex of the triangles is specified, and a technique known as Gouraud interpolation is used to colour the interiors. The interpolation functions defining the shading may be linear or nonlinear. Table 82 shows the entries specific to this type of shading dictionary, in addition to those common to all shading dictionaries (see Table 78) and stream dictionaries (see Table 5).

Table 82 - Additional Entries Specific to a Type 4 Shading Dictionary

Key Type Value
BitsPerCoordinate integer (Required) The number of bits used to represent each vertex coordinate. The value shall be 1, 2, 4, 8, 12, 16, 24, or 32.
BitsPerComponent integer (Required) The number of bits used to represent each colour component. The value shall be 1, 2, 4, 8, 12, or 16.
BitsPerFlag integer (Required) The number of bits used to represent the edge flag for each vertex (see below). The value of BitsPerFlag shall be 2, 4, or 8, but only the least significant 2 bits in each flag value shall be used. The value for the edge flag shall be 0, 1, or 2.
Decode array (Required) An array of numbers specifying how to map vertex coordinates and colour components into the appropriate ranges of values. The decoding method is similar to that used in image dictionaries (see 8.9.5.2, "Decode Arrays"). The ranges shall be specified as follows: [x min x max y min y max c 1,min c 1,max … c n,min c n,max ] Only one pair of c values shall be specified if a Function entry is present.

Table 82 - Additional Entries Specific to a Type 4 Shading Dictionary (continued)

Key Type Value
Function function (Optional) A 1-in, n -out function or an array of n 1-in, 1-out functions (where n is the number of colour components in the shading dictionary's colour space). If this entry is present, the colour data for each vertex shall be specified by a single parametric variable rather than by n separate colour components. The designated function(s) shall be called with each interpolated value of the parametric variable to determine the actual colour at each point. Each input value shall be forced into the range interval specified for the corresponding colour component in the shading dictionary's Decode array. Each function's domain shall be a superset of that interval. If the value returned by the function for a given colour component is out of range, it shall be adjusted to the nearest valid value. This entry shall not be used with an Indexed colour space.

Unlike shading types 1 to 3, types 4 to 7 shall be represented as streams. Each stream contains a sequence of vertex coordinates and colour data that defines the triangle mesh. In a type 4 shading, each vertex is specified by the following values, in the order shown:

where f is the vertex's edge flag (discussed below)

x and y are its horizontal and vertical coordinates c 1 … c n are its colour components

All vertex coordinates shall be expressed in the shading's target coordinate space. If the shading dictionary includes a Function entry, only a single parametric value, t , shall be specified for each vertex in place of the colour components c 1 … c n .

The edge flag associated with each vertex determines the way it connects to the other vertices of the triangle mesh. A vertex v a with an edge flag value f a = 0 begins a new triangle, unconnected to any other. At least two more vertices (v b and v c ) shall be provided, but their edge flags shall be ignored. These three vertices define a triangle ( v a , v b , v c ), as shown in Figure 24.

Figure 24 - Starting a New Triangle in a Free-form Gouraud-shaded Triangle Mesh

Image

Subsequent triangles shall be defined by a single new vertex combined with two vertices of the preceding triangle. Given triangle ( v a , v b , v c ), where vertex v a precedes vertex v b in the data stream and v b precedes v c , a new vertex v d can form a new triangle on side v bc or side v ac , as shown in Figure 25. (Side v ab is assumed to be shared with a preceding triangle and therefore is not available for continuing the mesh.) If the edge flag is f d = 1 (side v bc ), the next vertex forms the triangle ( v b , v c , v d ); if the edge flag is f d = 2 (side v ac ), the next vertex forms the triangle ( v a , v c , v d ). An edge flag of f d = 0 starts a new triangle, as described above.

Figure 25 - Connecting Triangles in a Free-form Gouraud-shaded Triangle Mesh

Image

Complex shapes can be created by using the edge flags to control the edge on which subsequent triangles are formed.

EXAMPLE Figure 26 shows two simple examples. Mesh 1 begins with triangle 1 and uses the following edge flags to draw each succeeding triangle:

1 f a f b f c 0 = = = ( ) 7 f ( i = 2 )
2 f d 1 = ( ) 8 f j = ( 2 )
3 f e 1 = ( ) 9 f k = ( 2 )
4 f f 1 = ( ) 10 f l = ( 1 )
5 f g 1 = ( ) 11 f m = ( 1 )
6 f h 1 = ( )

Mesh 2 again begins with triangle 1 and uses the following edge flags:

The stream shall provide vertex data for a whole number of triangles with appropriate edge flags; otherwise, an error occurs.

Figure 26 - Varying the Value of the Edge Flag to Create Different Shapes

Image

The data for each vertex consists of the following items, reading in sequence from higher-order to lower-order bit positions:

  • An edge flag, expressed in BitsPerFlag bits
  • A pair of horizontal and vertical coordinates, expressed in BitsPerCoordinate bits each
  • A set of n colour components (where n is the number of components in the shading's colour space), expressed in BitsPerComponent bits each, in the order expected by the sc operator

Each set of vertex data shall occupy a whole number of bytes. If the total number of bits required is not divisible by 8, the last data byte for each vertex is padded at the end with extra bits, which shall be ignored. The coordinates and colour values shall be decoded according to the Decode array in the same way as in an image dictionary (see 8.9.5.2, "Decode Arrays").

If the shading dictionary contains a Function entry, the colour data for each vertex shall be specified by a single parametric value t rather than by n separate colour components. All linear interpolation within the triangle mesh shall be done using the t values. After interpolation, the results shall be passed to the function(s) specified in the Function entry to determine the colour at each point.

8.7.4.5.6 Type 5 Shadings (Lattice-Form Gouraud-Shaded Triangle Meshes)

Type 5 shadings (lattice-form Gouraud-shaded triangle meshes) are similar to type 4, but instead of using freeform geometry, their vertices are arranged in a pseudorectangular lattice , which is topologically equivalent to a rectangular grid. The vertices are organized into rows, which need not be geometrically linear (see Figure 27).

Figure 27 - Lattice-form Triangle Meshes

Image

Table 83 shows the shading dictionary entries specific to this type of shading, in addition to those common to all shading dictionaries (see Table 78) and stream dictionaries (see Table 5).

The data stream for a type 5 shading has the same format as for type 4, except that type 5 does not use edge flags to define the geometry of the triangle mesh. The data for each vertex thus consists of the following values, in the order shown:

where x and y shall be the vertex's horizontal and vertical coordinates

c 1 … c n shall be its colour components

Table 83 - Additional Entries Specific to a Type 5 Shading Dictionary

Key Type Value
BitsPerCoordinate integer (Required) The number of bits used to represent each vertex coordinate. The value shall be 1, 2, 4, 8, 12, 16, 24, or 32.
BitsPerComponent integer (Required) The number of bits used to represent each colour component. The value shall be 1, 2, 4, 8, 12, or 16.
VerticesPerRow integer (Required) The number of vertices in each row of the lattice; the value shall be greater than or equal to 2. The number of rows need not be specified.
Decode array (Required) An array of numbers specifying how to map vertex coordinates and colour components into the appropriate ranges of values. The decoding method is similar to that used in image dictionaries (see 8.9.5.2, "Decode Arrays"). The ranges shall be specified as follows: [ x min x max y min y max c 1,min c 1,max … c n ,min c n ,max ] Only one pair of c values shall be specified if a Function entry is present.
Function function (Optional) A 1-in, n -out function or an array of n 1-in, 1-out functions (where n is the number of colour components in the shading dictionary's colour space). If this entry is present, the colour data for each vertex shall be specified by a single parametric variable rather than by n separate colour components. The designated function(s) shall be called with each interpolated value of the parametric variable to determine the actual colour at each point. Each input value shall be forced into the range interval specified for the corresponding colour component in the shading dictionary's Decode array. Each function's domain shall be a superset of that interval. If the value returned by the function for a given colour component is out of range, it shall be adjusted to the nearest valid value. This entry shall not be used with an Indexed colour space.

All vertex coordinates are expressed in the shading's target coordinate space. If the shading dictionary includes a Function entry, only a single parametric value, t , shall be present for each vertex in place of the colour components c 1 … c n .

The VerticesPerRow entry in the shading dictionary gives the number of vertices in each row of the lattice. All of the vertices in a row shall be specified sequentially, followed by those for the next row. Given m rows of k vertices each, the triangles of the mesh shall be constructed using the following triplets of vertices, as shown in Figure 27:

See 8.7.4.5.5, "Type 4 Shadings (Free-Form Gouraud-Shaded Triangle Meshes)" for further details on the format of the vertex data.

8.7.4.5.7 Type 6 Shadings (Coons Patch Meshes)

Type 6 shadings (Coons patch meshes) are constructed from one or more colour patches , each bounded by four cubic Bézier curves. Degenerate Bézier curves are allowed and are useful for certain graphical effects. At least one complete patch shall be specified.

A Coons patch generally has two independent aspects:

  • Colours are specified for each corner of the unit square, and bilinear interpolation is used to fill in colours over the entire unit square (see the upper figure in Figure L.15 in Annex L).
  • Coordinates are mapped from the unit square into a four-sided patch whose sides are not necessarily linear (see the lower figure in Figure L.15 in Annex L). The mapping is continuous: the corners of the unit square map to corners of the patch and the sides of the unit square map to sides of the patch, as shown in Figure 28.

The sides of the patch are given by four cubic Bézier curves, C 1 , C 2 , D 1 , and D 2 , defined over a pair of parametric variables, u and v, that vary horizontally and vertically across the unit square. The four corners of the Coons patch satisfy the following equations:

C 1 (0) D 1 (0) =

C 1 (1) D 2 (0) =

C 2 (0) D 1 (1) =

C 2 (1) D 2 (1) =

Figure 28 - Coordinate Mapping from a Unit Square to a Four-sided Coons Patch

Image

Two surfaces can be described that are linear interpolations between the boundary curves. Along the u axis, the surface S C is defined by

Along the v axis, the surface S D is given by

A third surface is the bilinear interpolation of the four corners:

The coordinate mapping for the shading is given by the surface S , defined as

This defines the geometry of each patch. A patch mesh is constructed from a sequence of one or more such coloured patches.

Patches can sometimes appear to fold over on themselves-for example, if a boundary curve intersects itself. As the value of parameter u or v increases in parameter space, the location of the corresponding pixels in device space may change direction so that new pixels are mapped onto previous pixels already mapped. If more than one point ( u , v ) in parameter space is mapped to the same point in device space, the point selected shall be the one with the largest value of v . If multiple points have the same v , the one with the largest value of u shall be selected. If one patch overlaps another, the patch that appears later in the data stream shall paint over the earlier one.

NOTE The patch is a control surface rather than a painting geometry. The outline of a projected square (that is, the painted area) might not be the same as the patch boundary if, for example, the patch folds over on itself, as shown in Figure 29.

Figure 29 - Painted Area and Boundary of a Coons Patch

Image

PDF 32000-1:2008

Table 84 shows the shading dictionary entries specific to this type of shading, in addition to those common to all shading dictionaries (see Table 78) and stream dictionaries (see Table 5).

Table 84 - Additional Entries Specific to a Type 6 Shading Dictionary

Key Type Value
BitsPerCoordinate integer (Required) The number of bits used to represent each geometric coordinate. The value shall be 1, 2, 4, 8, 12, 16, 24, or 32.
BitsPerComponent integer (Required) The number of bits used to represent each colour component. The value shall be 1, 2, 4, 8, 12, or 16.
BitsPerFlag integer (Required) The number of bits used to represent the edge flag for each patch (see below). The value shall be 2, 4, or 8, but only the least significant 2 bits in each flag value shall be used. Valid values for the edge flag shall be 0, 1, 2, and 3.
Decode array (Required) An array of numbers specifying how to map coordinates and colour components into the appropriate ranges of values. The decoding method is similar to that used in image dictionaries (see 8.9.5.2, "Decode Arrays"). The ranges shall be specified as follows: [ x min x max y min y max c 1,min c 1,max … c n ,min c n ,max ] Only one pair of c values shall be specified if a Function entry is present.
Function function (Optional) A 1-in, n -out function or an array of n 1-in, 1-out functions (where n is the number of colour components in the shading dictionary's colour space). If this entry is present, the colour data for each vertex shall be specified by a single parametric variable rather than by n separate colour components. The designated function(s) shall be called with each interpolated value of the parametric variable to determine the actual colour at each point. Each input value shall be forced into the range interval specified for the corresponding colour component in the shading dictionary's Decode array. Each function's domain shall be a superset of that interval. If the value returned by the function for a given colour component is out of range, it shall be adjusted to the nearest valid value. This entry shall not be used with an Indexed colour space.

The data stream provides a sequence of Bézier control points and colour values that define the shape and colours of each patch. All of a patch's control points are given first, followed by the colour values for its corners. This differs from a triangle mesh (shading types 4 and 5), in which the coordinates and colour of each vertex are given together. All control point coordinates are expressed in the shading's target coordinate space. See 8.7.4.5.5, "Type 4 Shadings (Free-Form Gouraud-Shaded Triangle Meshes)" for further details on the format of the data.

As in free-form triangle meshes (type 4), each patch has an edge flag that indicates which edge, if any, it shares with the previous patch. An edge flag of 0 begins a new patch, unconnected to any other. This shall be followed by 12 pairs of coordinates, x 1 y 1 x 2 y 2 … x 12 y 12 , which specify the Bézier control points that define the four boundary curves. Figure 30 shows how these control points correspond to the cubic Bézier curves C 1 , C 2 , D 1 , and D 2 identified in Figure 28. Colour values shall be given for the four corners of the patch, in the same order as the control points corresponding to the corners. Thus, c 1 is the colour at coordinates ( x 1 , y 1 ), c 2 at ( x 4 , y 4 ), c 3 at ( x 7 , y 7 ), and c 4 at ( x 10 , y 10 ), as shown in the figure.

Figure 30 - Colour Values and Edge Flags in Coons Patch Meshes

Image

Figure 30 also shows how nonzero values of the edge flag ( f = 1, 2, or 3) connect a new patch to one of the edges of the previous patch. In this case, some of the previous patch's control points serve implicitly as control points for the new patch as well (see Figure 31), and therefore shall not be explicitly repeated in the data stream. Table 85 summarizes the required data values for various values of the edge flag.

Figure 31 - Edge Connections in a Coons Patch Mesh

Image

If the shading dictionary contains a Function entry, the colour data for each corner of a patch shall be specified by a single parametric value t rather than by n separate colour components c 1 … c n . All linear interpolation within the mesh shall be done using the t values. After interpolation, the results shall be passed to the function(s) specified in the Function entry to determine the colour at each point.

Table 85 - Data Values in a Coons Patch Mesh

Edge Flag Next Set of Data Values
f = 0 x 1 y 1 x 2 y 2 x 3 y 3 x 4 y 4 x 5 y 5 x 6 y 6 x 7 y 7 x 8 y 8 x 9 y 9 x 10 y 10 x 11 y 11 x 12 y 12 c 1 c 2 c 3 c 4 New patch; no implicit values
f = 1 x 5 y 5 x 6 y 6 x 7 y 7 x 8 y 8 x 9 y 9 x 10 y 10 x 11 y 11 x 12 y 12 c 3 c 4 Implicit values: ( x 1 , y 1 ) = ( x 4 , y 4 ) previous c 1 = c 2 previous ( x 2 , y 2 ) = ( x 5 , y 5 ) previous c 2 = c 3 previous ( x 3 , y 3 ) = ( x 6 , y 6 ) previous ( x 4 , y 4 ) = ( x 7 , y 7 ) previous
f = 2 x 5 y 5 x 6 y 6 x 7 y 7 x 8 y 8 x 9 y 9 x 10 y 10 x 11 y 11 x 12 y 12 c 3 c 4 Implicit values: ( x 1 , y 1 ) = ( x 7 , y 7 ) previous c 1 = c 3 previous ( x 2 , y 2 ) = ( x 8 , y 8 ) previous c 2 = c 4 previous (x 3 , y 3 ) = ( x 9 , y 9 ) previous ( x 4 , y 4 ) = ( x 10 , y 10 ) previous
f = 3 x 5 y 5 x 6 y 6 x 7 y 7 x 8 y 8 x 9 y 9 x 10 y 10 x 11 y 11 x 12 y 12 c 3 c 4 Implicit values: ( x 1 , y 1 ) = ( x 10 , y 10 ) previous c 1 = c 4 previous ( x 2 , y 2 ) = ( x 11 , y 11 ) previous c 2 = c 1 previous ( x 3 , y 3 ) = ( x 12 , y 12 ) previous ( x 4 , y 4 ) = ( x 1 , y 1 ) previous

8.7.4.5.8 Type 7 Shadings (Tensor-Product Patch Meshes)

Type 7 shadings (tensor-product patch meshes) are identical to type 6, except that they are based on a bicubic tensor-product patch defined by 16 control points instead of the 12 control points that define a Coons patch. The shading dictionaries representing the two patch types differ only in the value of the ShadingType entry and in the number of control points specified for each patch in the data stream.

NOTE Although the Coons patch is more concise and easier to use, the tensor-product patch affords greater control over colour mapping.

Like the Coons patch mapping, the tensor-product patch mapping is controlled by the location and shape of four cubic Bézier curves marking the boundaries of the patch. However, the tensor-product patch has four additional, 'internal' control points to adjust the mapping. The 16 control points can be arranged in a 4-by-4 array indexed by row and column, as follows (see Figure 32):

p 03 p 13 p 23 p 33

p 02 p 12 p 22 p 32

p 01 p 11 p 21 p 31

p 00 p 10 p 20 p 30

Figure 32 - Control Points in a Tensor-product Patch

Image

As in a Coons patch mesh, the geometry of the tensor-product patch is described by a surface defined over a pair of parametric variables, u and v , which vary horizontally and vertically across the unit square. The surface is defined by the equation

where p ij is the control point in column i and row j of the tensor, and B i and B j are the Bernstein polynomials

Since each point p ij is actually a pair of coordinates ( x ij , y ij ), the surface can also be expressed as

The geometry of the tensor-product patch can be visualized in terms of a cubic Bézier curve moving from the bottom boundary of the patch to the top. At the bottom and top, the control points of this curve coincide with those of the patch's bottom ( p 00 … p 30 ) and top ( p 03 … p 33 ) boundary curves, respectively. As the curve moves from the bottom edge of the patch to the top, each of its four control points follows a trajectory that is in turn a cubic Bézier curve defined by the four control points in the corresponding column of the array. That is, the starting point of the moving curve follows the trajectory defined by control points p 00 … p 03 , the trajectory of the ending point is defined by points p 30 … p 33 , and those of the two intermediate control points by p 10 … p 13 and p 20 … p 23 . Equivalently, the patch can be considered to be traced by a cubic Bézier curve moving from the left edge to the right, with its control points following the trajectories defined by the rows of the coordinate array instead of the columns.

The Coons patch (type 6) is actually a special case of the tensor-product patch (type 7) in which the four internal control points ( p 11 , p 12 , p 21 , p 22 ) are implicitly defined by the boundary curves. The values of the internal control points are given by these equations:

In the more general tensor-product patch, the values of these four points are unrestricted.

The coordinates of the control points in a tensor-product patch shall be specified in the shading's data stream in the following order:

All control point coordinates shall be expressed in the shading's target coordinate space. These shall be followed by the colour values for the four corners of the patch, in the same order as the corners themselves. If the patch's edge flag f is 0, all 16 control points and four corner colours shall be explicitly specified in the data stream. If f is 1, 2, or 3, the control points and colours for the patch's shared edge are implicitly understood to be the same as those along the specified edge of the previous patch and shall not be repeated in the data stream. Table 86 summarizes the data values for various values of the edge flag f , expressed in terms of the

row and column indices used in Figure 32. See 8.7.4.5.5, "Type 4 Shadings (Free-Form Gouraud-Shaded Triangle Meshes)" for further details on the format of the data.

Table 86 - Data values in a tensor-product patch mesh

Edge Flag Next Set of Data Values
f = 0 x 00 y 00 x 01 y 01 x 02 y 02 x 03 y 03 x 13 y 13 x 23 y 23 x 33 y 33 x 32 y 32 x 31 y 31 x 30 y 30 x 20 y 20 x 10 y 10 x 11 y 11 x 12 y 12 x 22 y 22 x 21 y 21 c 00 c 03 c 33 c 30 New patch; no implicit values
f = 1 x 13 y 13 x 23 y 23 x 33 y 33 x 32 y 32 x 31 y 31 x 30 y 30 x 20 y 20 x 10 y 10 x 11 y 11 x 12 y 12 x 22 y 22 x 21 y 21 c 33 c 30 Implicit values: ( x 00 , y 00 ) = ( x 03 , y 03 ) previous c 00 = c 03 previous ( x 01 , y 01 ) = ( x 13 , y 13 ) previous c 03 = c 33 previous ( x 02 , y 02 ) = ( x 23 , y 23 ) previous ( x 03 , y 03 ) = ( x 33 , y 33 ) previous
f = 2 x 13 y 13 x 23 y 23 x 33 y 33 x 32 y 32 x 31 y 31 x 30 y 30 x 20 y 20 x 10 y 10 x 11 y 11 x 12 y 12 x 22 y 22 x 21 y 21 c 33 c 30 Implicit values: ( x 00 , y 00 ) = ( x 33 , y 33 ) previous c 00 = c 33 previous ( x 01 , y 01 ) = ( x 32 , y 32 ) previous c 03 = c 30 previous ( x 02 , y 02 ) = ( x 31 , y 31 ) previous ( x 03 , y 03 ) = ( x 30 , y 30 ) previous
f = 3 x 13 y 13 x 23 y 23 x 33 y 33 x 32 y 32 x 31 y 31 x 30 y 30 x 20 y 20 x 10 y 10 x 11 y 11 x 12 y 12 x 22 y 22 x 21 y 21 c 33 c 30 Implicit values: ( x 00 , y 00 ) = ( x 30 , y 30 ) previous c 00 = c 30 previous ( x 01 , y 01 ) = ( x 20 , y 20 ) previous c 03 = c 00 previous ( x 02 , y 02 ) = ( x 10 , y 10 ) previous ( x 03 , y 03 ) = ( x 00 , y 00 ) previous

8.8 External Objects

8.8.1 General

An external object (commonly called an XObject ) is a graphics object whose contents are defined by a selfcontained stream, separate from the content stream in which it is used. There are three types of external objects:

  • An image XObject (8.9.5, "Image Dictionaries") represents a sampled visual image such as a photograph.
  • A form XObject (8.10, "Form XObjects") is a self-contained description of an arbitrary sequence of graphics objects.
  • A PostScript XObject (8.8.2, "PostScript XObjects") contains a fragment of code expressed in the PostScript page description language. PostScript XObjects should not be used.

Two further categories of external objects, group XObjects and reference XObjects (both PDF 1.4) , are actually specialized types of form XObjects with additional properties. See 8.10.3, "Group XObjects" and 8.10.4, "Reference XObjects" for additional information.

Any XObject can be painted as part of another content stream by means of the Do operator (see Table 87). This operator applies to any type of XObject-image, form, or PostScript. The syntax is the same in all cases, although details of the operator's behaviour differ depending on the type.

Table 87 - XObject Operator

Operands Operator Description
name Do Paint the specified XObject. The operand name shall appear as a key in the XObject subdictionary of the current resource dictionary (see 7.8.3, "Resource Dictionaries"). The associated value shall be a stream whose Type entry, if present, is XObject . The effect of Do depends on the value of the XObject's Subtype entry, which may be Image (see 8.9.5, "Image Dictionaries"), Form (see 8.10, "Form XObjects"), or PS (see 8.8.2, "PostScript XObjects").

8.8.2 PostScript XObjects

Beginning with PDF 1.1, a content stream may include PostScript language fragments. These fragments may be used only when printing to a PostScript output device; they shall have no effect either when viewing the document on-screen or when printing it to a non-PostScript device. In addition, conforming readers may not be able to interpret the PostScript fragments. Hence, this capability 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.

A PostScript XObject is an XObject stream whose Subtype entry has the value PS . A PostScript XObject dictionary may contain the entries shown in Table 88 in addition to the usual entries common to all streams (see Table 5).

Table 88 - 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, shall be XObject for a PostScript XObject.
Subtype name (Required) The type of XObject that this dictionary describes; shall be PS for a PostScript XObject. Alternatively, the value of this entry may be Form , with an additional Subtype2 entry whose value shall be PS .
Level1 stream (Optional) A stream whose contents shall be used in place of the PostScript XObject's stream when the target PostScript interpreter is known to support only LanguageLevel 1.

If a PDF content stream is translated by a conforming reader into the PostScript language, any Do operation that references a PostScript XObject may be replaced by the contents of the XObject stream itself. The stream shall be copied without interpretation. The PostScript fragment may use Type 1 and TrueType fonts listed in the Font subdictionary of the current resource dictionary (see 7.8.3, "Resource Dictionaries"), accessing them by their BaseFont names using the PostScript findfont operator. The fragment shall not use other types of fonts listed in the Font subdictionary. It should not reference the PostScript definitions corresponding to PDF procedure sets (see 14.2, "Procedure Sets"), which are subject to change.

8.9 Images

8.9.1 General

PDF's painting operators include general facilities for dealing with sampled images. A sampled image (or just image for short) is a rectangular array of sample values , each representing a colour. The image may approximate the appearance of some natural scene obtained through an input scanner or a video camera, or it may be generated synthetically.

Figure 33 - Typical Sampled Image

![Image](data:image/png;base64,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

Clone this wiki locally