Repository navigation
PDF Spec 08 Path Construction
Part of: PDF-Spec-08-Graphics
Navigation: PDF-Spec-08-Graphics-State | PDF-Spec-Index | PDF-Spec-08-Clipping-Paths
Table 56 - Examples of Line Dash Patterns
| Dash Array and Phase | Appearance | Description |
|---|---|---|
| [ ] 0 | No dash; solid, unbroken lines | |
| [3] 0 | 3 units on, 3 units off,… | |
| [2] 1 | 1 on, 2 off, 2 on, 2 off,… | |
| [2 1] 0 | 2 on, 1 off, 2 on, 1 off,… | |
| [3 5] 6 | 2 off, 3 on, 5 off, 3 on, 5 off,… | |
| [2 3] 11 | 1 on, 3 off, 2 on, 3 off, 2 on,… |
Dashed lines shall wrap around curves and corners just as solid stroked lines do. The ends of each dash shall be treated with the current line cap style, and corners within dashes shall be treated with the current line join style. A stroking operation shall take no measures to coordinate the dash pattern with features of the path; it simply shall dispense dashes and gaps along the path in the pattern defined by the dash array.
When a path consisting of several subpaths is stroked, each subpath shall be treated independently-that is, the dash pattern shall be restarted and the dash phase shall be reapplied to it at the beginning of each subpath.
Table 57 shows the operators that set the values of parameters in the graphics state. (See also the colour operators listed in Table 74 and the text state operators in Table 105.)
Table 57 - Graphics State Operators
| Operands | Operator | Description |
|---|---|---|
| - | q | Save the current graphics state on the graphics state stack (see 8.4.2, "Graphics State Stack"). |
| - | Q | Restore the graphics state by removing the most recently saved state from the stack and making it the current state (see 8.4.2, "Graphics State Stack"). |
| a b c d e f | cm | Modify the current transformation matrix (CTM) by concatenating the specified matrix (see 8.3.2, "Coordinate Spaces"). Although the operands specify a matrix, they shall be written as six separate numbers, not as an array. |
| lineWidth | w | Set the line width in the graphics state (see 8.4.3.2, "Line Width"). |
| lineCap | J | Set the line cap style in the graphics state (see 8.4.3.3, "Line Cap Style"). |
| lineJoin | j | Set the line join style in the graphics state (see 8.4.3.4, "Line Join Style"). |
| miterLimit | M | Set the miter limit in the graphics state (see 8.4.3.5, "Miter Limit"). |
| dashArray dashPhase | d | Set the line dash pattern in the graphics state (see 8.4.3.6, "Line Dash Pattern"). |
| intent | ri | (PDF 1.1) Set the colour rendering intent in the graphics state (see 8.6.5.8, "Rendering Intents"). |
Table 57 - Graphics State Operators (continued)
| Operands | Operator | Description |
|---|---|---|
| flatness | i | Set the flatness tolerance in the graphics state (see 10.6.2, "Flatness Tolerance"). flatness is a number in the range 0 to 100; a value of 0 shall specify the output device's default flatness tolerance. |
| dictName | gs | (PDF 1.2) Set the specified parameters in the graphics state. dictName shall be the name of a graphics state parameter dictionary in the ExtGState subdictionary of the current resource dictionary (see the next sub-clause). |
While some parameters in the graphics state may be set with individual operators, as shown in Table 57, others may not. The latter may only be set with the generic graphics state operator gs (PDF 1.2). The operand supplied to this operator shall be the name of a graphics state parameter dictionary whose contents specify the values of one or more graphics state parameters. This name shall be looked up in the ExtGState subdictionary of the current resource dictionary.
The graphics state parameter dictionary is also used by type 2 patterns, which do not have a content stream in which the graphics state operators could be invoked (see 8.7.4, "Shading Patterns").
Each entry in the parameter dictionary shall specify the value of an individual graphics state parameter, as shown in Table 58. All entries need not be present for every invocation of the gs operator; the supplied parameter dictionary may include any combination of parameter entries. The results of gs shall be cumulative; parameter values established in previous invocations persist until explicitly overridden.
NOTE
Note that some parameters appear in both Table 57 and Table 58; these parameters can be set either with individual graphics state operators or with gs . It is expected that any future extensions to the graphics state will be implemented by adding new entries to the graphics state parameter dictionary rather than by introducing new graphics state operators.
Table 58 - Entries in a Graphics State Parameter Dictionary
| Key | Type | Description |
|---|---|---|
| Type | name | (Optional) The type of PDF object that this dictionary describes; shall be ExtGState for a graphics state parameter dictionary. |
| LW | number | (Optional; PDF 1.3) The line width (see 8.4.3.2, "Line Width"). |
| LC | integer | (Optional; PDF 1.3) The line cap style (see 8.4.3.3, "Line Cap Style"). |
| LJ | integer | (Optional; PDF 1.3) The line join style (see 8.4.3.4, "Line Join Style"). |
| ML | number | (Optional; PDF 1.3) The miter limit (see 8.4.3.5, "Miter Limit"). |
| D | array | (Optional; PDF 1.3) The line dash pattern, expressed as an array of the form [ dashArray dashPhase ], where dashArray shall be itself an array and dashPhase shall be an integer (see 8.4.3.6, "Line Dash Pattern"). |
| RI | name | (Optional; PDF 1.3) The name of the rendering intent (see 8.6.5.8, "Rendering Intents"). |
Table 58 - Entries in a Graphics State Parameter Dictionary (continued)
| Key | Type | Description |
|---|---|---|
| OP | boolean | (Optional) A flag specifying whether to apply overprint (see 8.6.7, "Overprint Control"). In PDF 1.2 and earlier, there is a single overprint parameter that applies to all painting operations. Beginning with PDF 1.3, there shall be two separate overprint parameters: one for stroking and one for all other painting operations. Specifying an OP entry shall set both parameters unless there is also an op entry in the same graphics state parameter dictionary, in which case the OP entry shall set only the overprint parameter for stroking. |
| op | boolean | (Optional; PDF 1.3) A flag specifying whether to apply overprint (see 8.6.7, "Overprint Control") for painting operations other than stroking. If this entry is absent, the OP entry, if any, shall also set this parameter. |
| OPM | integer | (Optional; PDF 1.3) The overprint mode (see 8.6.7, "Overprint Control"). |
| Font | array | (Optional; PDF 1.3) An array of the form [ font size ], where font shall be an indirect reference to a font dictionary and size shall be a number expressed in text space units. These two objects correspond to the operands of the Tf operator (see 9.3, "Text State Parameters and Operators"); however, the first operand shall be an indirect object reference instead of a resource name. |
| BG | function | (Optional) The black-generation function, which maps the interval [0.0 1.0] to the interval [0.0 1.0] (see 10.3.4, "Conversion from DeviceRGB to DeviceCMYK"). |
| BG2 | function or name | (Optional; PDF 1.3) Same as BG except that the value may also be the name Default, denoting the black-generation function that was in effect at the start of the page. If both BG and BG2 are present in the same graphics state parameter dictionary, BG2 shall take precedence. |
| UCR | function | (Optional) The undercolor-removal function, which maps the interval [0.0 1.0] to the interval [ - 1.0 1.0] (see 10.3.4, "Conversion from DeviceRGB to DeviceCMYK"). |
| UCR2 | function or name | (Optional; PDF 1.3) Same as UCR except that the value may also be the name Default, denoting the undercolor-removal function that was in effect at the start of the page. If both UCR and UCR2 are present in the same graphics state parameter dictionary, UCR2 shall take precedence. |
| TR | function, array, or name | (Optional) The transfer function, which maps the interval [0.0 1.0] to the interval [0.0 1.0] (see 10.4, "Transfer Functions"). The value shall be either a single function (which applies to all process colorants) or an array of four functions (which apply to the process colorants individually). The name Identity may be used to represent the identity function. |
| TR2 | function, array, or name | (Optional; PDF 1.3) Same as TR except that the value may also be the name Default, denoting the transfer function that was in effect at the start of the page. If both TR and TR2 are present in the same graphics state parameter dictionary, TR2 shall take precedence. |
| HT | dictionary, stream, or name | (Optional) The halftone dictionary or stream (see 10.5, "Halftones") or the name Default, denoting the halftone that was in effect at the start of the page. |
| FL | number | (Optional; PDF 1.3) The flatness tolerance (see 10.6.2, "Flatness Tolerance"). |
| SM | number | (Optional; PDF 1.3) The smoothness tolerance (see 10.6.3, "Smoothness Tolerance"). |
Table 58 - Entries in a Graphics State Parameter Dictionary (continued)
| Key | Type | Description |
|---|---|---|
| SA | boolean | (Optional) A flag specifying whether to apply automatic stroke adjustment (see 10.6.5, "Automatic Stroke Adjustment"). |
| BM | name or array | (Optional; PDF 1.4) The current blend mode to be used in the transparent imaging model (see 11.3.5, "Blend Mode" and 11.6.3, "Specifying Blending Colour Space and Blend Mode"). |
| SMask | dictionary or name | (Optional; PDF 1.4) The current soft mask, specifying the mask shape or mask opacity values that shall be used in the transparent imaging model (see 11.3.7.2, "Source Shape and Opacity" and 11.6.4.3, "Mask Shape and Opacity"). Although the current soft mask is sometimes referred to as a 'soft clip,' altering it with the gs operator completely replaces the old value with the new one, rather than intersecting the two as is done with the current clipping path parameter (see 8.5.4, "Clipping Path Operators"). |
| CA | number | (Optional; PDF 1.4) The current stroking alpha constant, specifying the constant shape or constant opacity value that shall be used for stroking operations in the transparent imaging model (see 11.3.7.2, "Source Shape and Opacity" and 11.6.4.4, "Constant Shape and Opacity"). |
| ca | number | (Optional; PDF 1.4) Same as CA , but for nonstroking operations. |
| AIS | boolean | (Optional; PDF 1.4) The alpha source flag ('alpha is shape'), specifying whether the current soft mask and alpha constant shall be interpreted as shape values ( true ) or opacity values ( false ). |
| TK | boolean | (Optional; PDF 1.4) The text knockout flag, shall determine the behaviour of overlapping glyphs within a text object in the transparent imaging model (see 9.3.8, "Text Knockout"). |
EXAMPLE
The following shows two graphics state parameter dictionaries. In the first, automatic stroke adjustment is turned on, and the dictionary includes a transfer function that inverts its value, f ( x ) = 1 x . In the second, overprint is turned off, and the dictionary includes a parabolic transfer function, f ( x ) = (2 x - 1) 2 , with a sample of 21 values. The domain of the transfer function, [ 0.0 1.0 ], is mapped to [ 0 20 ], and the range of the sample values, [ 0 255 ], is mapped to the range of the transfer function, [ 0.0 1.0 ].
10 0 obj % Page object << /Type /Page /Parent 5 0 R /Resources 20 0 R /Contents 40 0 R >> endobj 20 0 obj % Resource dictionary for page << /ProcSet [ /PDF /Text ] /Font << /F1 25 0 R >> /ExtGState << /GS1 30 0 R /GS2 35 0 R >> >> endobj 30 0 obj % First graphics state parameter dictionary << /Type /ExtGState /SA true /TR 31 0 R >> endobj
31 0 obj % First transfer function << /FunctionType 0 /Domain [ 0.0 1.0 ] /Range [ 0.0 1.0 ] /Size 2 /BitsPerSample 8 /Length 7 /Filter /ASCIIHexDecode >> stream 01 00 > endstream endobj 35 0 obj % Second graphics state parameter dictionary << /Type /ExtGState /OP false /TR 36 0 R >> endobj 36 0 obj % Second transfer function << /FunctionType 0 /Domain [ 0.0 1.0 ] /Range [ 0.0 1.0 ] /Size 21 /BitsPerSample 8 /Length 63 /Filter /ASCIIHexDecode >> stream FF CE A3 7C 5B 3F 28 16 0A 02 00 02 0A 16 28 3F 5B 7C A3 CE FF > endstream endobj
Paths define shapes, trajectories, and regions of all sorts. They shall be used to draw lines, define the shapes of filled areas, and specify boundaries for clipping other graphics. The graphics state shall include a current clipping path that shall define the clipping boundary for the current page. At the beginning of each page, the clipping path shall be initialized to include the entire page.
A path shall be composed of straight and curved line segments, which may connect to one another or may be disconnected. A pair of segments shall be said to connect only if they are defined consecutively, with the second segment starting where the first one ends. Thus, the order in which the segments of a path are defined shall be significant. Nonconsecutive segments that meet or intersect fortuitously shall not be considered to connect.
NOTE
A path is made up of one or more disconnected subpaths , each comprising a sequence of connected segments. The topology of the path is unrestricted: it may be concave or convex, may contain multiple subpaths representing disjoint areas, and may intersect itself in arbitrary ways.
The h operator explicitly shall connect the end of a subpath back to its starting point; such a subpath is said to be closed . A subpath that has not been explicitly closed is said to be open .
As discussed in 8.2, "Graphics Objects", a path object is defined by a sequence of operators to construct the path, followed by one or more operators to paint the path or to use it as a clipping boundary. PDF path operators fall into three categories:
- Path construction operators (8.5.2, "Path Construction Operators") define the geometry of a path. A path is constructed by sequentially applying one or more of these operators.
- Path-painting operators (8.5.3, "Path-Painting Operators") end a path object, usually causing the object to be painted on the current page in any of a variety of ways.
- Clipping path operators (8.5.4, "Clipping Path Operators"), invoked immediately before a path-painting operator, cause the path object also to be used for clipping of subsequent graphics objects.
A page description shall begin with an empty path and shall build up its definition by invoking one or more path construction operators to add segments to it. The path construction operators may be invoked in any sequence, but the first one invoked shall be m or re to begin a new subpath. The path definition may conclude with the application of a path-painting operator such as S , f , or b (see 8.5.3, "Path-Painting Operators"); this operator may optionally be preceded by one of the clipping path operators W or W* (8.5.4, "Clipping Path Operators").
NOTE Note that the path construction operators do not place any marks on the page; only the painting operators do that. A path definition is not complete until a path-painting operator has been applied to it.
The path currently under construction is called the current path . In PDF (unlike PostScript), the current path is not part of the graphics state and is not saved and restored along with the other graphics state parameters. PDF paths shall be strictly internal objects with no explicit representation. After the current path has been painted, it shall become no longer defined; there is then no current path until a new one is begun with the m or re operator.
The trailing endpoint of the segment most recently added to the current path is referred to as the current point. If the current path is empty, the current point shall be undefined. Most operators that add a segment to the current path start at the current point; if the current point is undefined, an error shall be generated.
Table 59 shows the path construction operators. All operands shall be numbers denoting coordinates in user space.
Table 59 - Path Construction Operators
| Operands | Operator | Description |
|---|---|---|
| x y | m | Begin a new subpath by moving the current point to coordinates ( x , y ), omitting any connecting line segment. If the previous path construction operator in the current path was also m , the new m overrides it; no vestige of the previous m operation remains in the path. |
| x y | l (lowercase L ) | Append a straight line segment from the current point to the point ( x , y ). The new current point shall be ( x , y ). |
| x 1 y 1 x 2 y 2 x 3 y 3 | c | Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point ( x 3 , y 3 ), using ( x 1 , y 1 ) and ( x 2 , y 2 ) as the Bézier control points (see 8.5.2.2, "Cubic Bézier Curves"). The new current point shall be ( x 3 , y 3 ). |
Table 59 - Path Construction Operators (continued)
| Operands | Operator | Description |
|---|---|---|
| x 2 y 2 x 3 y 3 | v | Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point ( x 3 , y 3 ), using the current point and ( x 2 , y 2 ) as the Bézier control points (see 8.5.2.2, "Cubic Bézier Curves"). The new current point shall be ( x 3 , y 3 ). |
| x 1 y 1 x 3 y 3 | y | Append a cubic Bézier curve to the current path. The curve shall extend from the current point to the point ( x 3 , y 3 ), using ( x 1 , y 1 ) and ( x 3 , y 3 ) as the Bézier control points (see 8.5.2.2, "Cubic Bézier Curves"). The new current point shall be ( x 3 , y 3 ). |
| - | h | Close the current subpath by appending a straight line segment from the current point to the starting point of the subpath. If the current subpath is already closed, h shall do nothing. This operator terminates the current subpath. Appending another segment to the current path shall begin a new subpath, even if the new segment begins at the endpoint reached by the h operation. |
| x y width height | re | Append a rectangle to the current path as a complete subpath, with lower-left corner ( x , y ) and dimensions width and height in user space. The operation x y width height re is equivalent to x y m ( x + width ) y l ( x + width ) ( y + height ) l x ( y + height ) l h |
Curved path segments shall be specified as cubic Bézier curves . Such curves shall be defined by four points: the two endpoints (the current point P 0 and the final point P 3 ) and two control points P 1 and P 2 . Given the coordinates of the four points, the curve shall be generated by varying the parameter t from 0.0 to 1.0 in the following equation:
When t = 0.0, the value of the function R ( t ) coincides with the current point P 0 ; when t = 1.0, R ( t ) coincides with the final point P 3 . Intermediate values of t generate intermediate points along the curve. The curve does not, in general, pass through the two control points P 1 and P 2 .
NOTE 1 Cubic Bézier curves have two useful properties:
The curve can be very quickly split into smaller pieces for rapid rendering.
The curve is contained within the convex hull of the four points defining the curve, most easily visualized as the polygon obtained by stretching a rubber band around the outside of the four points. This property allows rapid testing of whether the curve lies completely outside the visible region, and hence does not have to be rendered.
NOTE 2 The Bibliography lists several books that describe cubic Bézier curves in more depth.
The most general PDF operator for constructing curved path segments is the c operator, which specifies the coordinates of points P 1 , P 2 , and P 3 explicitly, as shown in Figure 16 in Annex L. (The starting point, P 0 , is defined implicitly by the current point.)
Figure 16 - Cubic Bézier Curve Generated by the c Operator
Two more operators, v and y , each specify one of the two control points implicitly (see Figure 17 in Annex L). In both of these cases, one control point and the final point of the curve shall be supplied as operands; the other control point shall be implied:
- For the v operator, the first control point shall coincide with initial point of the curve.
- For the y operator, the second control point shall coincide with final point of the curve.
Figure 17 - Cubic Bézier Curves Generated by the v and y Operators
The path-painting operators end a path object, causing it to be painted on the current page in the manner that the operator specifies. The principal path-painting operators shall be S (for stroking ) and f (for filling ). Variants
of these operators combine stroking and filling in a single operation or apply different rules for determining the area to be filled. Table 60 lists all the path-painting operators.
Table 60 - Path-Painting Operators
| Operands | Operator | Description |
|---|---|---|
| - | S | Stroke the path. |
| - | s | Close and stroke the path. This operator shall have the same effect as the sequence h S. |
| - | f | Fill the path, using the nonzero winding number rule to determine the region to fill (see 8.5.3.3.2, "Nonzero Winding Number Rule"). Any subpaths that are open shall be implicitly closed before being filled. |
| - | F | Equivalent to f ; included only for compatibility. Although PDF reader applications shall be able to accept this operator, PDF writer applications should use f instead. |
| - | f* | Fill the path, using the even-odd rule to determine the region to fill (see 8.5.3.3.3, "Even-Odd Rule"). |
| - | B | Fill and then stroke the path, using the nonzero winding number rule to determine the region to fill. This operator shall produce the same result as constructing two identical path objects, painting the first with f and the second with S . NOTE The filling and stroking portions of the operation consult different values of several graphics state parameters, such as the current colour. See also 11.7.4.4, "Special Path-Painting Considerations". |
| - | B* | Fill and then stroke the path, using the even-odd rule to determine the region to fill. This operator shall produce the same result as B , except that the path is filled as if with f* instead of f . See also 11.7.4.4, "Special Path-Painting Considerations". |
| - | b | Close, fill, and then stroke the path, using the nonzero winding number rule to determine the region to fill. This operator shall have the same effect as the sequence h B. See also 11.7.4.4, "Special Path-Painting Considerations". |
| - | b* | Close, fill, and then stroke the path, using the even-odd rule to determine the region to fill. This operator shall have the same effect as the sequence h B*. See also 11.7.4.4, "Special Path-Painting Considerations". |
| - | n | End the path object without filling or stroking it. This operator shall be a path- painting no-op, used primarily for the side effect of changing the current clipping path (see 8.5.4, "Clipping Path Operators"). |
The S operator shall paint a line along the current path. The stroked line shall follow each straight or curved segment in the path, centred on the segment with sides parallel to it. Each of the path's subpaths shall be treated separately.
The results of the S operator shall depend on the current settings of various parameters in the graphics state (see 8.4, "Graphics State", for further information on these parameters):
-
The width of the stroked line shall be determined by the current line width parameter (8.4.3.2, "Line Width").
-
The colour or pattern of the line shall be determined by the current colour and colour space for stroking operations.
-
The line may be painted either solid or with a dash pattern, as specified by the current line dash pattern (see 8.4.3.6, "Line Dash Pattern").
-
If a subpath is open, the unconnected ends shall be treated according to the current line cap style, which may be butt, rounded, or square (see 8.4.3.3, "Line Cap Style").
-
Wherever two consecutive segments are connected, the joint between them shall be treated according to the current line join style, which may be mitered, rounded, or beveled (see 8.4.3.4, "Line Join Style"). Mitered joins shall be subject to the current miter limit (see 8.4.3.5, "Miter Limit").
Points at which unconnected segments happen to meet or intersect receive no special treatment. In particular, using an explicit l operator to give the appearance of closing a subpath, rather than using h , may result in a messy corner, because line caps are applied instead of a line join.
- The stroke adjustment parameter (PDF 1.2) specifies that coordinates and line widths be adjusted automatically to produce strokes of uniform thickness despite rasterization effects (see 10.6.5, "Automatic Stroke Adjustment").
If a subpath is degenerate (consists of a single-point closed path or of two or more points at the same coordinates), the S operator shall paint it only if round line caps have been specified, producing a filled circle centered at the single point. If butt or projecting square line caps have been specified, S shall produce no output, because the orientation of the caps would be indeterminate. This rule shall apply only to zero-length subpaths of the path being stroked, and not to zero-length dashes in a dash pattern. In the latter case, the line caps shall always be painted, since their orientation is determined by the direction of the underlying path. A single-point open subpath (specified by a trailing m operator) shall produce no output.
The f operator shall use the current nonstroking colour to paint the entire region enclosed by the current path. If the path consists of several disconnected subpaths, f shall paint the insides of all subpaths, considered together. Any subpaths that are open shall be implicitly closed before being filled.
If a subpath is degenerate (consists of a single-point closed path or of two or more points at the same coordinates), f shall paint the single device pixel lying under that point; the result is device-dependent and not generally useful. A single-point open subpath (specified by a trailing m operator) shall produce no output.
For a simple path, it is intuitively clear what region lies inside. However, for a more complex path, it is not always obvious which points lie inside the path. For more detailed information, see 10.6.4, 'Scan Conversion Rules'.
EXAMPLE A path that intersects itself or has one subpath that encloses another.
The path machinery shall use one of two rules for determining which points lie inside a path: the nonzero winding number rule and the even-odd rule, both discussed in detail below. The nonzero winding number rule is more versatile than the even-odd rule and shall be the standard rule the f operator uses. Similarly, the W operator shall use this rule to determine the inside of the current clipping path. The even-odd rule is occasionally useful for special effects or for compatibility with other graphics systems; the f* and W* operators invoke this rule.
The nonzero winding number rule determines whether a given point is inside a path by conceptually drawing a ray from that point to infinity in any direction and then examining the places where a segment of the path crosses the ray. Starting with a count of 0, the rule adds 1 each time a path segment crosses the ray from left to right and subtracts 1 each time a segment crosses from right to left. After counting all the crossings, if the result is 0, the point is outside the path; otherwise, it is inside.
The method just described does not specify what to do if a path segment coincides with or is tangent to the chosen ray. Since the direction of the ray is arbitrary, the rule simply chooses a ray that does not encounter such problem intersections.
For simple convex paths, the nonzero winding number rule defines the inside and outside as one would intuitively expect. The more interesting cases are those involving complex or self-intersecting paths like the ones shown in Figure 18 in Annex L. For a path consisting of a five-pointed star, drawn with five connected straight line segments intersecting each other, the rule considers the inside to be the entire area enclosed by the star, including the pentagon in the centre. For a path composed of two concentric circles, the areas enclosed by both circles are considered to be inside, provided that both are drawn in the same direction. If the circles are drawn in opposite directions, only the doughnut shape between them is inside, according to the rule; the doughnut hole is outside.
Figure 18 - Nonzero Winding Number Rule
An alternative to the nonzero winding number rule is the even-odd rule . This rule determines whether a point is inside a path by drawing a ray from that point in any direction and simply counting the number of path segments that cross the ray, regardless of direction. If this number is odd, the point is inside; if even, the point is outside. This yields the same results as the nonzero winding number rule for paths with simple shapes, but produces different results for more complex shapes.
Figure 19 shows the effects of applying the even-odd rule to complex paths. For the five-pointed star, the rule considers the triangular points to be inside the path, but not the pentagon in the centre. For the two concentric circles, only the doughnut shape between the two circles is considered inside, regardless of the directions in which the circles are drawn.
Figure 19 - Even-Odd Rule
The graphics state shall contain a current clipping path that limits the regions of the page affected by painting operators. The closed subpaths of this path shall define the area that can be painted. Marks falling inside this area shall be applied to the page; those falling outside it shall not be. Sub-clause 8.5.3.3, "Filling" discusses precisely what shall be considered to be inside a path.
In the context of the transparent imaging model (PDF 1.4) , the current clipping path constrains an object's shape (see 11.2, "Overview of Transparency"). The effective shape is the intersection of the object's intrinsic shape with the clipping path; the source shape value shall be 0.0 outside this intersection. Similarly, the shape of a transparency group (defined as the union of the shapes of its constituent objects) shall be influenced both by the clipping path in effect when each of the objects is painted and by the one in effect at the time the group's results are painted onto its backdrop.
The initial clipping path shall include the entire page. A clipping path operator ( W or W* , shown in Table 61) may appear after the last path construction operator and before the path-painting operator that terminates a path object. Although the clipping path operator appears before the painting operator, it shall not alter the clipping path at the point where it appears. Rather, it shall modify the effect of the succeeding painting operator. After the path has been painted, the clipping path in the graphics state shall be set to the intersection of the current clipping path and the newly constructed path.
Table 61 - Clipping Path Operators
| Operands | Operator | Description |
|---|---|---|
| - | W | Modify the current clipping path by intersecting it with the current path, using the nonzero winding number rule to determine which regions lie inside the clipping path. |
| - | W* | Modify the current clipping path by intersecting it with the current path, using the even-odd rule to determine which regions lie inside the clipping path. |
NOTE 1 In addition to path objects, text objects may also be used for clipping; see 9.3.6, "Text Rendering Mode".
The n operator (see Table 60) is a no-op path-painting operator; it shall cause no marks to be placed on the page, but can be used with a clipping path operator to establish a new clipping path. That is, after a path has been constructed, the sequence W n shall intersect that path with the current clipping path and shall establish a new clipping path.
- NOTE 2 There is no way to enlarge the current clipping path or to set a new clipping path without reference to the current one. However, since the clipping path is part of the graphics state, its effect can be localized to specific graphics objects by enclosing the modification of the clipping path and the painting of those objects between a pair of q and Q operators (see 8.4.2, "Graphics State Stack"). Execution of the Q operator causes the clipping path to revert to the value that was saved by the q operator before the clipping path was modified.
PDF includes facilities for specifying the colours of graphics objects to be painted on the current page. The colour facilities are divided into two parts:
- Colour specification . A conforming writer may specify abstract colours in a device-independent way. Colours may be described in any of a variety of colour systems, or colour spaces . Some colour spaces are related to device colour representation (grayscale, RGB , CMYK ), others to human visual perception (CIEbased). Certain special features are also modelled as colour spaces: patterns, colour mapping, separations, and high-fidelity and multitone colour.
- Colour rendering . A conforming reader shall reproduce colours on the raster output device by a multiplestep process that includes some combination of colour conversion, gamma correction, halftoning, and scan conversion. Some aspects of this process use information that is specified in PDF. However, unlike the facilities for colour specification, the colour-rendering facilities are device-dependent and should not be included in a page description.
Figure 20 and Figure 21 illustrate the division between PDF's (device-independent) colour specification and (device-dependent) colour-rendering facilities. This sub-clause describes the colour specification features, covering everything that PDF documents need to specify colours. The facilities for controlling colour rendering
are described in clause 10, "Rendering"; a conforming writer should use these facilities only to configure or calibrate an output device or to achieve special device-dependent effects.
As described in 8.5.3, "Path-Painting Operators", marks placed on the page by operators such as f and S shall have a colour that is determined by the current colour parameter of the graphics state. A colour value consists of one or more colour components , which are usually numbers. A gray level shall be specified by a single number ranging from 0.0 (black) to 1.0 (white). Full colour values may be specified in any of several ways; a common method uses three numeric values to specify red, green, and blue components.
Colour values shall be interpreted according to the current colour space , another parameter of the graphics state. A PDF content stream first selects a colour space by invoking the CS operator (for the stroking colour) or the cs operator (for the nonstroking colour). It then selects colour values within that colour space with the SC operator (stroking) or the sc operator (nonstroking). There are also convenience operatorsG , g , RG , rg , K , and k -that select both a colour space and a colour value within it in a single step. Table 74 lists all the coloursetting operators.
Sampled images (see 8.9, "Images") specify the colour values of individual samples with respect to a colour space designated by the image object itself. While these values are independent of the current colour space and colour parameters in the graphics state, all later stages of colour processing shall treat them in exactly the same way as colour values specified with the SC or sc operator.
Colour spaces are classified into colour space families . Spaces within a family share the same general characteristics; they shall be distinguished by parameter values supplied at the time the space is specified. The families fall into three broad categories:
- Device colour spaces directly specify colours or shades of gray that the output device shall produce. They provide a variety of colour specification methods, including grayscale, RGB (red-green-blue), and CMYK (cyan-magenta-yellow-black), corresponding to the colour space families DeviceGray , DeviceRGB , and DeviceCMYK . Since each of these families consists of just a single colour space with no parameters, they may be referred to as the DeviceGray , DeviceRGB , and DeviceCMYK colour spaces.
- CIE-based colour spaces shall be based on an international standard for colour specification created by the Commission Internationale de l'Éclairage (International Commission on Illumination). These spaces specify colours in a way that is independent of the characteristics of any particular output device. Colour space families in this category include CalGray , CalRGB , Lab , and ICCBased . Individual colour spaces within these families shall be specified by means of dictionaries containing the parameter values needed to define the space.
- Special colour spaces add features or properties to an underlying colour space. They include facilities for patterns, colour mapping, separations, and high-fidelity and multitone colour. The corresponding colour space families are Pattern , Indexed , Separation , and DeviceN . Individual colour spaces within these families shall be specified by means of additional parameters.
Table 62 summarizes the colour space families in PDF.
Table 62 - Colour Space Families
| Device | CIE-based | Special |
|---|---|---|
| DeviceGray (PDF 1.1) | CalGray (PDF 1.1) | Indexed (PDF 1.1) |
| DeviceRGB (PDF 1.1) | CalRGB (PDF 1.1) | Pattern (PDF 1.2) |
| DeviceCMYK (PDF 1.1) | Lab (PDF 1.1) | Separation (PDF 1.2) |
| ICCBased (PDF 1.3) | DeviceN (PDF 1.3) |
Figure 20 - Colour Specification
Figure 21 - Colour Rendering
![Image](data:image/png;base64,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