pdf viewer control in asp net c# : Adding an image to a pdf in preview SDK control service wpf web page azure dnn PDF32000_200818-part2334

© 
Adobe Systems Incorporated 2008 – All rights reserved
173
PDF 32000-1:2008
In these circumstances, the following actions cause an error: 
Invoking any of the following operators: 
CS
scn
K
cs
G
k
SC
g
ri
SCN
RG
sh
sc
rg
Invoking the gs operator with any of the following entries in the graphics state parameter dictionary: 
TR
BG
UCR
TR2
BG2
UCR2
HT
Painting an image. However, painting an image mask  (see 8.9.6.2, "Stencil Masking") shall be permitted 
because  it  does  not  specify  colours;  instead,  it  designates  places  where  the  current  colour  shall  be 
painted. 
8.7 Patterns
8.7.1
General
Patterns come in two varieties: 
Tiling patterns consist of a small graphical figure (called a pattern cell) that is replicated at fixed horizontal 
and vertical intervals to fill the area to be painted. The graphics objects to use for tiling shall be described 
by a content stream. 
Shading patterns define a gradient fill that produces a smooth transition between colours across the area. 
The colour to use shall be specified as a function of position using any of a variety of methods. 
NOTE 1
When operators such as S (stroke), f (fill), and Tj (show text) paint an area of the page with the current colour, 
they ordinarily apply a single colour that covers the area uniformly. However, it is also possible to apply “paint” 
that consists of a repeating graphical figure or a smoothly varying colour gradient instead of a simple colour. 
Such a repeating figure or smooth gradient is called a pattern. Patterns are quite general, and have many 
uses;  for  example,  they  can  be  used  to  create  various  graphical textures,  such  as  weaves,  brick  walls, 
sunbursts, and similar geometrical and chromatic effects. 
NOTE 2
Older techniques such as defining a pattern by using character glyphs in a special font and painting them 
repeatedly with the Tj operator should not be used. Another technique, defining patterns as halftone screens, 
should not be used because the effects produced are device-dependent. 
Patterns shall be specified in a special family of colour spaces named Pattern. These spaces shall use pattern 
objects as the equivalent of colour values instead of the numeric component values used with other spaces. A 
pattern object shall be a dictionary or a stream, depending on the type of pattern; the term pattern dictionary is 
used generically throughout this sub-clause to refer to either a dictionary object or the dictionary portion of a 
stream object. (Those pattern objects that are streams are specifically identified as such in the descriptions of 
particular pattern types; unless otherwise stated, they are understood to be simple dictionaries instead.) This 
sub-clause describes Pattern colour spaces and the specification of colour values within them. 
NOTE 3
See  8.6,  "Colour  Spaces",  for information  about colour  spaces  and  colour  values  in  general  and  11.6.7, 
"Patterns and Transparency", for  further discussion of the  treatment of patterns in  the transparent imaging 
model. 
Adding an image to a pdf in preview - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add png to pdf preview; acrobat insert image in pdf
Adding an image to a pdf in preview - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add picture to pdf document; add image pdf
PDF 32000-1:2008
174
© 
Adobe Systems Incorporated 2008 – All rights reserved
8.7.2
General Properties of Patterns
A pattern dictionary contains descriptive information defining the appearance and properties of a pattern. All 
pattern dictionaries shall contain an entry named PatternType, whose value identifies the kind of pattern the 
dictionary describes: type 1 for a tiling pattern or type 2 for a shading pattern. The remaining contents of the 
dictionary depend on the pattern type and are detailed in the sub-clauses on individual pattern types. 
All patterns shall be treated as colours; a Pattern colour space shall be established with the CS or cs operator 
just like other colour spaces, and a particular pattern shall be installed as the current colour with the SCN or 
scn operator (see Table 74). 
A pattern’s appearance is described with respect to its own internal coordinate system. Every pattern has a 
pattern  matrix, a transformation matrix that maps the pattern’s internal coordinate system to the default 
coordinate system of the pattern’s parent content stream  (the content stream in which the pattern is defined as 
a  resource). The  concatenation of  the  pattern  matrix with that  of  the  parent content  stream  establishes  the 
pattern coordinate space, within which all graphics objects in the pattern shall be interpreted. 
NOTE 1
If a  pattern is  used on a page,  the  pattern  appears  in  the Pattern  subdictionary  of that  page’s resource 
dictionary, and the pattern matrix maps pattern space to the default (initial)  coordinate  space of the page. 
Changes to the page’s transformation matrix that occur within the page’s content stream, such as rotation and 
scaling, have no effect on the pattern; it maintains its original relationship to the page no matter where on the 
page it is used. Similarly, if a pattern is used within a form XObject (see 8.10, "Form XObjects"), the pattern 
matrix maps pattern space to the form’s default user space (that is, the form coordinate space at the time the 
form is painted with the Do operator). A pattern may be used within another pattern; the inner pattern’s matrix 
defines its relationship to the pattern space of the outer pattern. 
NOTE 2
PostScript allows a pattern to be defined in one context but used in another. For example, a pattern might be 
defined on a page (that is, its pattern matrix maps the pattern coordinate space to the user space of the page) 
but be used  in a form on that page, so that its relationship to the page is independent of each individual 
placement of the form. PDF does not support this feature; in PDF, all patterns shall be local to the context in 
which they are defined. 
8.7.3
Tiling Patterns
8.7.3.1
General
tiling pattern  consists of a small graphical figure called a pattern cell. Painting with the pattern replicates the 
cell at fixed  horizontal and  vertical intervals  to fill  an area. The effect is as if the figure were painted on the 
surface of a clear glass tile, identical copies of which were then laid down in an array covering the area and 
trimmed to its boundaries. This process is called tiling  the area. 
The pattern cell can include graphical elements such as filled areas, text, and sampled images. Its shape need 
not be rectangular, and the spacing of tiles can differ from the dimensions of the cell itself. When performing 
painting operations such as S (stroke) or f (fill), the conforming reader shall paint the cell on the current page as 
many times as necessary to fill an area. The order in which individual tiles (instances of the cell) are painted is 
unspecified and unpredictable; figures on adjacent tiles should not overlap. 
The  appearance  of  the  pattern  cell  shall  be  defined  by  a  content  stream  containing  the  painting  operators 
needed to paint one instance of the cell. Besides the usual entries common to all streams (see Table 5), this 
stream’s dictionary may contain the additional entries listed in Table 75.  
Table 75 –  Additional Entries Specific to a Type 1 Pattern Dictionary  
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if 
present, shall be Pattern for a pattern dictionary. 
PatternType
integer
(Required) A code identifying the type of pattern that this dictionary 
describes; shall be 1 for a tiling pattern. 
C# PDF Page Insert Library: insert pages into PDF file in C#.net
applications. Support adding and inserting one or multiple pages to existing PDF document. Forms. Ability to add PDF page number in preview. Offer
how to add jpg to pdf file; how to add image to pdf form
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
how to add an image to a pdf; add a jpg to a pdf
© 
Adobe Systems Incorporated 2008 – All rights reserved
175
PDF 32000-1:2008
PaintType
integer
(Required) A code that determines how the colour of the pattern cell 
shall be specified: 
a) Coloured tiling pattern. The pattern’s content stream shall specify
the  colours  used  to  paint  the  pattern  cell.  When  the  content 
stream begins execution, the current colour is the one that was 
initially  in  effect  in the  pattern’s  parent content  stream.  This  is 
similar to the definition of the pattern matrix; see 8.7.2, "General 
Properties of Patterns". 
b) Uncoloured tiling pattern. The pattern’s content stream shall not 
specify any colour information. Instead, the entire pattern cell is 
painted with a separately specified colour each time the pattern is 
used. Essentially, the content stream describes a stencil through 
which  the  current  colour  shall  be  poured.  The  content  stream 
shall not  invoke  operators  that specify  colours  or other  colour-
related  parameters  in  the  graphics  state;  otherwise,  an  error 
occurs (see 8.6.8, "Colour Operators"). The content stream may 
paint  an  image  mask,  however,  since  it  does  not  specify  any 
colour information (see 8.9.6.2, "Stencil Masking"). 
TilingType
integer
(Required) A code that controls adjustments to the spacing of tiles 
relative to the device pixel grid: 
a) Constant spacing.  Pattern  cells  shall  be  spaced 
consistently—that is, by a multiple of a device pixel. To achieve 
this, the conforming reader may need to distort the pattern cell 
slightly by making small adjustments to XStepYStep, and the 
transformation matrix. The amount of distortion shall not exceed 1 
device pixel. 
b) No distortion.  The  pattern  cell  shall  not  be  distorted,  but  the 
spacing between pattern cells may vary by as much as 1 device 
pixel, both horizontally and vertically, when the pattern is painted. 
This  achieves  the  spacing  requested  by XStep  and YStep on 
average but not necessarily for each individual pattern cell. 
c) Constant spacing and faster tiling. Pattern cells shall be spaced 
consistently  as  in  tiling  type  1  but  with  additional  distortion 
permitted to enable a more efficient implementation. 
BBox
rectangle
(Required) An array of four numbers in the pattern coordinate system 
giving  the  coordinates  of  the  left,  bottom,  right,  and  top  edges, 
respectively,  of  the  pattern  cell’s  bounding  box.  These  boundaries 
shall be used to clip the pattern cell. 
XStep
number
(Required) The desired horizontal spacing between pattern cells, 
measured in the pattern coordinate system. 
YStep
number
(Required) The desired vertical spacing between pattern cells, 
measured in the pattern coordinate system. 
NOTE
XStep and YStep may differ from the dimensions of the 
pattern cell implied by the BBox entry. This allows tiling 
with irregularly shaped figures.
XStep and YStep may be either positive or negative but shall not be
zero. 
Resources
dictionary
(Required) A resource dictionary that shall contain all of the named 
resources  required  by  the  pattern’s  content  stream  (see  7.8.3, 
"Resource Dictionaries"). 
Matrix
array
(Optional) An array of six numbers specifying the pattern matrix (see 
8.7.2,  "General  Properties  of  Patterns").  Default  value:  the  identity 
matrix [ 1  0  0  1  0  0 ]. 
Table 75 –  Additional Entries Specific to a Type 1 Pattern Dictionary (continued)
Key
Type
Value
VB.NET PDF insert text library: insert text into PDF content in vb
Multifunctional Visual Studio .NET PDF SDK library supports adding text content to adobe PDF document in VB.NET Add text to PDF in preview without adobe
add photo to pdf online; adding a png to a pdf
C# Create PDF Library SDK to convert PDF from other file formats
Load PDF from existing documents and image in SQL server. Besides, using this PDF document metadata adding control, you can add some additional
add jpeg to pdf; adding images to pdf files
PDF 32000-1:2008
176
© 
Adobe Systems Incorporated 2008 – All rights reserved
The pattern dictionary’s BBoxXStep, and YStep values shall be interpreted in the pattern coordinate system, 
and the graphics objects in the pattern’s content stream shall be defined with respect to that coordinate system. 
The  placement  of  pattern  cells  in  the  tiling is  based  on  the  location  of  one key pattern cell,  which  is  then 
displaced by multiples of XStep and YStep to replicate the pattern. The origin of the key pattern cell coincides 
with the origin of the pattern coordinate system. The phase of the tiling can be controlled by the translation 
components of the Matrix entry in the pattern dictionary. 
Prior to painting with a tiling pattern, the conforming writer shall establish the pattern as the current colour in the 
graphics  state.  Subsequent painting operations  tile the painted areas  with  the  pattern  cell described by  the 
pattern’s content stream. To obtain the pattern cell, the conforming reader shall perform these steps: 
a) Saves the current graphics state (as if by invoking the q operator) 
b) Installs the graphics state that was in effect at the beginning of the pattern’s parent content stream, with the current 
transformation matrix altered by the pattern matrix as described in 8.7.2, "General Properties of Patterns" 
c) Paints the graphics objects specified in the pattern’s content stream 
d) Restores the saved graphics state (as if by invoking the Q operator) 
NOTE
The pattern’s content stream should not set any of the device-dependent parameters in the graphics state (see 
Table 53) because it may result in incorrect output. 
8.7.3.2
Coloured Tiling Patterns
coloured tiling pattern is a pattern whose colour is self-contained. In the course of painting the pattern cell, 
the pattern’s content stream explicitly sets the colour of each graphical element it paints. A single pattern cell 
may  contain  elements  that  are  painted  different  colours;  it  may  also  contain  sampled  grayscale  or  colour 
images. This type of pattern is identified by a pattern type of 1 and a paint type of 1 in the pattern dictionary. 
When the current colour space is a Pattern space, a coloured tiling pattern shall be selected as the current 
colour by supplying its name as the single operand to the SCN or scn operator. This name shall be the key of 
an entry in the Pattern subdictionary of the current resource dictionary (see 7.8.3, "Resource Dictionaries"), 
whose  value  shall  be  the  stream  object  representing  the  pattern.  Since  the  pattern defines  its  own  colour 
information, no additional operands representing colour components shall be specified to SCN or scn
EXAMPLE 1
If P1 is the name of a pattern resource in the current resource dictionary, the following code establishes it 
as the current nonstroking colour: 
/Pattern cs
/P1 scn
NOTE 1
Subsequent executions of no
nstroking painting operators, such as f (fill), Tj (show text), or Do (paint external 
object) with an image mask, use the designated pattern to tile the areas to be painted. 
NOTE 2
The following defines a page (object 5) that paints three circles and a triangle using a coloured tiling pattern 
(object 15) over a yellow background. The pattern consists of the symbols for the four suits of playing cards 
(spades, hearts, diamonds, and clubs), which are character glyphs taken from the ZapfDingbats font (see D.6, 
"ZapfDingbats Set and Encoding"); the pattern’s content stream specifies the colour of each glyph. Figure L.8
in 
Annex L shows the results. 
EXAMPLE 2
 0  obj
% Page object
<<   /Type  /Page
/Parent  2 0 R
/Resources  10 0 R
/Contents  30 0 R
/CropBox  [ 0  0  225  225 ]
>>
endobj
10  0  obj
% Resource dictionary for page
<<   /Pattern  <<  /P1  15 0 R  >>
C# Word - Insert Image to Word Page in C#.NET
Preview Document. Conversion. Convert Word to PDF. Convert Word to HTML5. VB.NET How-to, VB.NET PDF, VB.NET Word It's a demo code for adding image to word page using
how to add an image to a pdf in preview; add an image to a pdf
C# PowerPoint - Insert Image to PowerPoint File Page in C#.NET
Preview Document. Conversion. Convert PowerPoint to PDF. Convert PowerPoint to Pages. Annotate PowerPoint. Text Search. Insert Image. Thumbnail Create.
add picture to pdf file; add jpg to pdf file
© 
Adobe Systems Incorporated 2008 – All rights reserved
177
PDF 32000-1:2008
>>
endobj
15  0  obj
% Pattern definition
<<   /Type  /Pattern
/PatternType  1
% Tiling pattern
/PaintType  1
% Coloured
/TilingType  2
/BBox  [ 0  0  100  100 ]
/XStep  100 
/YStep  100
/Resources  16 0 R
/Matrix  [ 0.4  0.0  0.0  0.4  0.0  0.0 ]
/Length  183
>>
stream
BT
% Begin text object
/F1   1  Tf
% Set text font and size
64  0  0  64  7.1771  2.4414  Tm
% Set text matrix
 Tc
% Set character spacing
 Tw
% Set word spacing
1.0  0.0  0.0  rg
% Set nonstroking colour to red
( \001 )  Tj
% Show spade glyph
0.7478  -0.007  TD
% Move text position
0.0  1.0  0.0  rg
% Set nonstroking colour to green
( \002 )  Tj
% Show heart glyph
-0.7323  0.7813  TD
% Move text position
0.0  0.0  1.0  rg
% Set nonstroking colour to blue
( \003 )  Tj
% Show diamond glyph
0.6913  0.007  TD
% Move text position
0.0  0.0  0.0  rg
% Set nonstroking colour to black
( \004 )  Tj
% Show club glyph
ET
% End text object
endstream
endobj
16  0  obj
% Resource dictionary for pattern
<<   /Font  <<  /F1  20 0 R  >>
>>
endobj
20  0  obj
% Font for pattern
<<   /Type  /Font
/Subtype  /Type1
/Encoding  21 0 R
/BaseFont  /ZapfDingbats
>>
endobj
21  0  obj
% Font encoding
<<   /Type  /Encoding
/Differences  [ 1  /a109  /a110  /a111  /a112 ]
>>
endobj
30  0  obj
% Contents of page
<<   /Length  1252  >>
stream
0.0  G
% Set stroking colour to black
C# TIFF: TIFF Editor SDK to Read & Manipulate TIFF File Using C#.
Easy to generate image thumbnail or preview for Tiff to Tiff, like Word, Excel, PowerPoint, PDF, and images. assemblies into your C# project by adding reference
adding images to pdf; how to add image to pdf reader
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
Free Visual Studio .NET PDF library, easy to be integrated in .NET WinForms and ASP.NET. Besides image extracting, adding, and removing, RasterEdge
add picture to pdf online; attach image to pdf form
PDF 32000-1:2008
178
© 
Adobe Systems Incorporated 2008 – All rights reserved
1.0  1.0  0.0  rg
% Set nonstroking colour to yellow
25  175  175  -150  re
% Construct rectangular path
f
% Fill path
/Pattern  cs
% Set pattern colour space
/P1  scn
% Set pattern as nonstroking colour
99.92  49.92  m
% Start new path
99.92  77.52  77.52  99.92  49.92  99.92  c
% Construct lower-left circle
22.32  99.92  -0.08  77.52  -0.08  49.92  c
-0.08  22.32  22.32  -0.08  49.92  -0.08  c
77.52  -0.08  99.92  22.32  99.92  49.92  c
B
% Fill and stroke path
224.96  49.92  m
% Start new path
224.96  77.52  202.56  99.92  174.96  99.92  c
% Construct lower-right circle
147.36  99.92  124.96  77.52  124.96  49.92  c
124.96  22.32  147.36  -0.08  174.96  -0.08  c
202.56  -0.08  224.96  22.32  224.96  49.92  c
B
% Fill and stroke path
87.56  201.70  m
% Start new path
63.66  187.90  55.46  157.32  69.26  133.40  c
% Construct upper circle
83.06  109.50  113.66  101.30  137.56  115.10  c
161.46  128.90  169.66  159.50  155.86  183.40  c
142.06  207.30  111.46  215.50  87.56  201.70  c
B
% Fill and stroke path
50  50  m
% Start new path
175  50  l
% Construct triangular path
112.5  158.253  l
b
% Close, fill, and stroke path
endstream
endobj
NOTE 3
Several features of EXAMPLE 2 in this sub-clause are noteworthy: 
The three circles and the triangle are painted with the same pattern. The pattern cells align, even though the 
circles and  triangle  are not aligned with respect  to the pattern cell. For example, the position of the blue 
diamonds varies relative to the three circles. 
The pattern cell does not completely cover the tile: it leaves the spaces between the glyphs unpainted. When 
the tiling pattern is used as a colour,  the existing background (the yellow  rectangle) shows through these 
unpainted areas. 
8.7.3.3
Uncoloured Tiling Patterns
An uncoloured tiling pattern  is a pattern that has no inherent colour: the colour shall be specified separately 
whenever the pattern is used. It provides a way to tile different regions of the page with pattern cells having the 
same shape but different colours. This type of pattern shall be identified by a pattern type of 1 and a paint type 
of 2 in the pattern dictionary. The pattern’s content stream shall not explicitly specify any colours; it may paint 
an image mask (see 8.9.6.2, "Stencil Masking") but no other kind of image. 
Pattern colour space representing an uncoloured tiling pattern shall have a parameter: an object identifying 
the underlying colour space in which the actual colour of the pattern shall be specified. The underlying colour 
space shall be given as the second element of the array that defines the Pattern colour space. 
EXAMPLE 1
The array 
/Pattern  /DeviceRGB ]
defines a Pattern 
colour space with DeviceRGB as its underlying colour space. 
© 
Adobe Systems Incorporated 2008 – All rights reserved
179
PDF 32000-1:2008
NOTE
The underlying colour space cannot be another Pattern colour space. 
Operands  supplied  to  the SCN  or scn  operator in such  a colour space shall include a colour value  in  the 
underlying  colour  space,  specified  by  one  or more  numeric  colour  components,  as  well  as  the  name  of  a 
pattern object representing an uncoloured tiling pattern. 
EXAMPLE 2
If the current  resource  dictionary  (see 7.8.3,  "Resource  Dictionaries") defines Cs3  as  the name of  a 
ColorSpace resource whose value is the  Pattern colour space shown above and P2 as a  Pattern
resource denoting an uncoloured tiling pattern, the code 
/Cs3  cs
0.30  0.75  0.21  /P2  scn
establishes Cs3 as the current nonstroking colour space and P2 as the current nonstroking colour, to be 
painted  in  the  colour  represented  by  the  specified  components  in  the DeviceRGB  colour  space. 
Subsequent executions of nonstroking painting operators, such as f (fill), Tj (show text), and Do (paint 
external object) with an image mask, use the designated pattern and colour to tile the areas to be painted. 
The same pattern can be used repeatedly with a different colour each time. 
EXAMPLE 3
This example is similar to EXAMPLE 2 in 8.7.3.2, except that it uses an uncoloured tiling pattern to paint 
the  three circles and the triangle,  each in a different colour (see Figure L.9 in Annex L). To do  so, it 
supplies  four  operands  each  time  it  invokes  the  scn  operator:  three  numbers  denoting  the  colour 
components in the underlying DeviceRGB colour space, along with the name of the pattern. 
5  0  obj
% Page object
<<   /Type  /Page
/Parent  2 0 R
/Resources  10 0 R
/Contents  30 0 R
/CropBox  [ 0  0  225  225 ]
>>
endobj
10  0  obj
% Resource dictionary for page
<<   /ColorSpace  <<  /Cs12  12 0 R  >>
/Pattern  <<  /P1  15 0 R  >>
>>
endobj
12  0  obj
%Colour space
[ /Pattern  /DeviceRGB ]
endobj
15  0  obj
% Pattern definition
<<   /Type  /Pattern
/PatternType  1
% Tiling pattern
/PaintType  2
% Uncoloured
/TilingType  2
/BBox  [ 0  0  100  100 ]
/XStep  100 
/YStep  100
/Resources  16 0 R
/Matrix  [ 0.4  0.0  0.0  0.4  0.0  0.0 ]
/Length  127
>>
stream
BT
% Begin text object
/F1  1  Tf
% Set text font and size
64  0  0  64  7.1771  2.4414  Tm
% Set text matrix
 Tc
% Set character spacing
 Tw
% Set word spacing
\001 )  Tj
% Show spade glyph
PDF 32000-1:2008
180
© 
Adobe Systems Incorporated 2008 – All rights reserved
0.7478  -0.007  TD
% Move text position
( \002 )  Tj
% Show heart glyph
-0.7323  0.7813  TD
% Move text position
( \003 )  Tj
% Show diamond glyph
0.6913  0.007  TD
% Move text position
( \004 )  Tj
% Show club glyph
ET
% End text object
endstream
endobj
16  0  obj
% Resource dictionary for pattern
<<   /Font  <<  /F1  20 0 R  >>
>>
endobj
20  0  obj
% Font for pattern
<<   /Type  /Font
/Subtype  /Type1
/Encoding  21 0 R
/BaseFont  /ZapfDingbats
>>
endobj
21  0  obj
% Font encoding
<<   /Type  /Encoding
/Differences  [ 1  /a109  /a110  /a111  /a112 ]
>>
endobj
30  0  obj
% Contents of page
<<   /Length  1316  >>
stream
0.0  G
% Set stroking colour to black
1.0  1.0  0.0  rg
% Set nonstroking colour to yellow
25  175  175  -150  re
% Construct rectangular path
f
% Fill path
/Cs12  cs
% Set pattern colour space
0.77  0.20  0.00  /P1  scn
% Set nonstroking colour and pattern
99.92  49.92  m
% Start new path
99.92  77.52  77.52  99.92  49.92  99.92  c
% Construct lower-left circle
22.32  99.92  -0.08  77.52  -0.08  49.92  c
-0.08  22.32  22.32  -0.08  49.92  -0.08  c
77.52  -0.08  99.92  22.32  99.92  49.92  c
B
% Fill and stroke path
0.2  0.8  0.4  /P1  scn
% Change nonstroking colour
224.96  49.92  m
% Start new path
224.96  77.52  202.56  99.92  174.96  99.92  c
% Construct lower-right circle
147.36  99.92  124.96  77.52  124.96  49.92  c
124.96  22.32  147.36  -0.08  174.96  -0.08  c
202.56  -0.08  224.96  22.32  224.96  49.92  c
B
% Fill and stroke path
0.3  0.7  1.0  /P1  scn
% Change nonstroking colour
87.56  201.70  m
% Start new path
63.66  187.90  55.46  157.30  69.26  133.40  c
% Construct upper circle
83.06  109.50  113.66  101.30  137.56  115.10  c
161.46  128.90  169.66  159.50  155.86  183.40  c
142.06  207.30  111.46  215.50  87.56  201.70  c
B
% Fill and stroke path
© 
Adobe Systems Incorporated 2008 – All rights reserved
181
PDF 32000-1:2008
0.5  0.2  1.0  /P1  scn
% Change nonstroking colour
50  50  m
% Start new path
175  50  l
% Construct triangular path
112.5  158.253  l
b
% Close, fill, and stroke path
endstream
endobj
8.7.4
Shading Patterns
8.7.4.1 General
Shading  patterns  (PDF  1.3) provide a smooth transition between colours across an area to be painted, 
independent of the resolution of any particular output device and without specifying the number of steps in the 
colour  transition.  Patterns  of  this  type  shall  be  described  by  pattern  dictionaries  with  a  pattern  type  of  2. 
Table 76 shows the contents of this type of dictionary. 
The most significant entry  is Shading, whose value shall be a shading object defining the properties of the 
shading pattern’s gradient fill. This is a complex “paint” that determines the type of colour transition the shading 
pattern produces when painted across an area. A shading object shall be a dictionary or a stream, depending 
on the type of shading; the term shading dictionary is used generically throughout this sub-clause to refer to 
either a dictionary object or the dictionary portion of a stream object. (Those shading objects that are streams 
are specifically identified as such in the descriptions of particular shading types; unless otherwise stated, they 
are understood to be simple dictionaries instead.) 
By setting a shading pattern as the current colour in the graphics state, a PDF content stream may use it with 
painting operators such as f (fill), S (stroke), Tj (show text), or Do (paint external object) with an image mask to 
paint a path, character glyph, or mask with a smooth colour transition. When a shading is used in this way, the 
geometry of the gradient fill is independent of that of the object being painted. 
8.7.4.2 Shading Operator
When the area to be painted is a relatively simple shape whose geometry is the same as that of the gradient fill 
itself, the sh operator may be used instead of the usual painting operators. sh accepts a shading dictionary as 
an operand and applies the corresponding gradient fill directly to current user space. This operator does not 
Table 76 –  Entries in a Type 2 Pattern Dictionary  
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if 
present, shall be Pattern for a pattern dictionary. 
PatternType
integer
(Required) A code identifying the type of pattern that this dictionary 
describes; shall be 2 for a shading pattern. 
Shading
dictionary 
or stream
(Required) A shading object (see below) defining the shading pattern’s 
gradient fill. The contents of the dictionary shall consist of the entries in 
Table 78 and those in one of Tables 79 to 84. 
Matrix
array
(Optional) An array of six numbers specifying the pattern matrix (see 
8.7.2,  "General  Properties  of  Patterns").  Default  value:  the  identity 
matrix [ 1  0  0  1  0  0 ]. 
ExtGState
dictionary
(Optional) A graphics state parameter dictionary (see 8.4.5, "Graphics 
State Parameter Dictionaries") containing graphics state parameters to 
be put into effect temporarily while the shading pattern is painted. Any 
parameters that are so specified shall be inherited from the graphics 
state that was in effect at the beginning of the content stream in which 
the pattern is defined as a resource. 
PDF 32000-1:2008
182
© 
Adobe Systems Incorporated 2008 – All rights reserved
require the creation of a pattern dictionary or a path and works without reference to the current colour in the 
graphics state. Table 77 describes the sh operator. 
NOTE
Patterns defined by type 2 pattern dictionaries do not tile. To create a tiling pattern containing a gradient fill, 
invoke the sh operator from within the content stream of a type 1 (tiling) pattern. 
8.7.4.3
Shading Dictionaries
A shading dictionary specifies details of a particular gradient fill, including the type of shading to be used, the 
geometry of the area to be shaded, and the geometry of the gradient fill. Various shading types are available, 
depending on the value of the dictionary’s ShadingType entry: 
Function-based shadings (type 1)  define the colour of  every  point in the domain using  a  mathematical 
function (not necessarily smooth or continuous). 
Axial shadings (type 2) define a colour blend along a line between two points, optionally extended beyond 
the boundary points by continuing the boundary colours. 
Radial shadings  (type 3)  define a blend  between two circles, optionally extended beyond the boundary 
circles by  continuing  the  boundary  colours.  This type of shading  is  commonly  used to  represent three-
dimensional spheres and cones. 
Free-form  Gouraud-shaded  triangle meshes  (type  4)  define  a  common  construct  used by  many three-
dimensional applications to represent complex coloured and shaded shapes. Vertices are specified in free-
form geometry.
Lattice-form Gouraud-shaded triangle meshes (type 5) are based on the same geometrical construct as 
type 4 but with vertices specified as a pseudorectangular lattice. 
Coons patch meshes (type 6) construct a shading from one or more colour patches, each bounded by four 
cubic Bézier curves. 
Tensor-product patch meshes (type 7) are similar to type 6 but with additional control points in each patch, 
affording greater control over colour mapping. 
NOTE 1
Table 78 shows the entries that all shading dictionaries share in common; entries specific to particular shading 
types are described in the relevant sub-clause. 
NOTE 2
The term target coordinate space , used in many of the following descriptions, refers to the coordinate space 
into  which  a  shading  is  painted.  For  shadings  used  with  a  type  2  pattern  dictionary,  this  is  the  pattern 
Table 77 –  Shading Operator  
Operands
Operator
Description
name
sh
(PDF 1.3) Paint the shape and colour shading described by a shading 
dictionary,  subject  to the  current  clipping  path.  The  current  colour  in the 
graphics state is neither used nor altered. The effect is different from that of 
painting a path using a shading pattern as the current colour. 
name is the name of a shading dictionary resource in the Shading
subdictionary  of  the  current  resource  dictionary  (see  7.8.3,  "Resource 
Dictionaries").  All  coordinates  in  the  shading  dictionary  are  interpreted 
relative to the current user space. (By contrast, when a shading dictionary is 
used in a type 2 pattern, the coordinates are expressed in pattern space.) All 
colours  are  interpreted  in  the  colour  space  identified  by  the  shading 
dictionary’s ColorSpace  entry  (see  Table 78).  The Background  entry,  if 
present, is ignored. 
This operator should be applied only to bounded or geometrically defined 
shadings.  If  applied  to  an  unbounded  shading,  it  paints  the  shading’s 
gradient fill across the entire clipping region, which may be time-consuming. 
Documents you may be interested
Documents you may be interested