pdf viewer control in asp net c# : Add image to pdf online application control tool html azure windows online PDF32000_20089-part2398

© 
Adobe Systems Incorporated 2008 – All rights reserved
83
PDF 32000-1:2008
A  content  stream’s named  resources  shall  be  defined  by  a resource dictionary,  which  shall  enumerate  the 
named resources needed by the operators in the content stream and the names by which they can be referred 
to. 
EXAMPLE 1
If a text operator appearing within the content stream needs a certain font, the content stream’s resource 
dictionary can associate the name F42 with the corresponding font dictionary. The text operator can use 
this name to refer to the font. 
A resource dictionary shall be associated with a content stream in one of the following ways: 
For a content stream that is the value of a page’s Contents entry (or is an element of an array that is the 
value of that entry), the resource dictionary shall be designated by the page dictionary’s Resources or is 
inherited, as described  under 7.7.3.4, "Inheritance of Page Attributes," from some ancestor node of the 
page object.
For other content streams, a conforming writer shall include a Resources entry in the stream's dictionary 
specifying the resource dictionary which contains all the resources used by that content stream. This shall 
apply to content streams that define form XObjects, patterns, Type 3 fonts, and annotation.
PDF  files  written  obeying  earlier  versions  of  PDF  may  have  omitted  the Resources  entry  in  all  form 
XObjects and Type 3 fonts used on a page. All resources that are referenced from those forms and fonts 
shall  be  inherited  from  the  resource  dictionary  of  the  page  on  which  they  are  used.  This  construct  is 
obsolete and should not be used by conforming writers.
In the context of a given content stream, the term current resource dictionary refers to the resource dictionary 
associated with the stream in one of the ways described above. 
Each  key  in  a  resource  dictionary  shall  be  the  name  of  a  resource  type,  as  shown  in  Table 33.  The 
corresponding values shall be as follows:
For resource type ProcSet, the value shall be an array of procedure set names
For all other resource types, the value shall be a subdictionary. Each key in the subdictionary shall be the 
name of a specific resource, and the corresponding value shall be a PDF object associated with the name. 
Table 33 –  Entries in a resource dictionary  
Key
Type
Value
ExtGState
dictionary
(Optional) A dictionary that maps resource names to graphics state 
parameter  dictionaries  (see  8.4.5,  "Graphics  State  Parameter 
Dictionaries"). 
ColorSpace
dictionary
(Optional) A dictionary that maps each resource name to either the 
name  of a device-dependent  colour  space  or  an array describing  a 
colour space (see 8.6, "Colour Spaces"). 
Pattern
dictionary
(Optional) A dictionary that maps resource names to pattern objects 
(see 8.7, "Patterns"). 
Shading
dictionary
(Optional; PDF 1.3) A dictionary that maps resource names to shading 
dictionaries (see 8.7.4.3, "Shading Dictionaries"). 
XObject
dictionary
(Optional) A dictionary that maps resource names to external objects 
(see 8.8, "External Objects"). 
Font
dictionary
(Optional) A dictionary that maps resource names to font dictionaries 
(see clause 9, "Text"). 
ProcSet
array
(Optional) An array of predefined procedure set names (see 14.2, 
"Procedure Sets"). 
Add image to pdf online - 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
how to add an image to a pdf file in acrobat; how to add a photo to a pdf document
Add image to pdf online - 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
adding an image to a pdf in acrobat; add image to pdf acrobat reader
PDF 32000-1:2008
84
© 
Adobe Systems Incorporated 2008 – All rights reserved
EXAMPLE 2
The following shows a resource dictionary containing procedure sets, fonts, and external objects. The 
procedure sets are specified by an array, as described in 14.2, "Procedure Sets". The fonts are specified 
with a subdictionary associating the names F5, F6, F7, and F8 with objects 6, 8, 10, and 12, respectively. 
Likewise,  the XObject  subdictionary  associates  the  names  Im1  and  Im2  with  objects  13  and  15, 
respectively.
<</ProcSet  [ /PDF  /ImageB ]
/Font << /F5  6 0 R
/F6  8 0 R
/F7  10 0 R
/F8  12 0 R
>>
/XObject <<  /Im1  13 0 R
/Im2  15 0 R
>>
>>
7.9
Common Data Structures
7.9.1
General
As mentioned at the beginning of this clause, there are some general-purpose  data structures that are built 
from the basic object types described in 7.3, "Objects," and are used in many places throughout PDF. This sub-
clause  describes  data  structures  for  text  strings,  dates,  rectangles,  name  trees,  and  number  trees.  More 
complex data structures are described in 7.10, "Functions," and 7.11, "File Specifications."
All of these data structures are meaningful only as part of the document hierarchy; they may not appear within 
content streams. In particular, the special conventions for interpreting the values of string objects apply only to 
strings outside content streams. An entirely different convention is used within content streams for using strings 
to select sequences of glyphs to be painted on the page (see clause 9, "Text"). Table 34 summarizes the basic 
and higher-level data types that are used throughout this standard to describe the values of dictionary entries 
and other PDF data values. 
Properties
dictionary
(Optional; PDF 1.2) A dictionary that maps resource names to property 
list dictionaries for marked content (see 14.6.2, "Property Lists"). 
Table 34 –  PDF data types  
Type
Description
Sub-Clause
ASCII string
Bytes containing ASCII characters
7.9.2
7.9.2.4
array
Array object
7.3.6
boolean
Boolean value
7.3.2
byte string
A series of  bytes that shall represent 
characters or other binary data. If such 
 type  represents  characters,  the 
encoding shall  be  determined  by  the 
context.
7.9.2
date
Date (ASCII string)
7.9.4
dictionary
Dictionary object
7.3.7
file specification
File specification (string or dictionary)
7.11
Table 33 –  Entries in a resource dictionary  (continued)
Key
Type
Value
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
to edit, add, delete, move, and output PDF document image. Extract image from PDF free in .NET framework application with trial SDK components and online C#
add multiple jpg to pdf; how to add a jpeg to a pdf
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Online source codes for quick evaluation in VB.NET class. DLLs for PDF Image Extraction in VB.NET. Add necessary references: RasterEdge.Imaging.Basic.dll.
how to add an image to a pdf; add png to pdf preview
© 
Adobe Systems Incorporated 2008 – All rights reserved
85
PDF 32000-1:2008
7.9.2
String Object Types
7.9.2.1 General
PDF  supports  one fundamental string object (see 7.3.4, "String Objects").  The string object shall  be further 
qualified as a text string, a PDFDocEncoded string, ASCII string, or byte string. The further qualification reflects 
the encoding used to represent the characters or glyphs described by the string. 
Table 35 summarizes the string object types that represent data encoded using specific conventions.
function
Function (dictionary or stream)
7.10
integer
Integer number
name
Name object
7.3.5
name tree
Name tree (dictionary)
7.9.6
null
Null object
7.3.9
number
Number (integer or real)
number tree
Number tree (dictionary)
7.9.7
PDFDocEncoded string
Bytes containing a string that shall be 
encoded using PDFDocEncoding
7.9.2
rectangle
Rectangle (array)
7.9.5
stream
Stream object
7.3.8
string
Any string that is not a text string.
Beginning  with  PDF  1.7,  this  type  is 
further  qualified  as  the  types: 
PDFDocEncoded string, ASCII string, 
and byte string.
7.9.2
text string
Bytes  that  represent  characters  that 
shall  be  encoded  using  either 
PDFDocEncoding or UTF-16BE with a 
leading byte-order marker (as defined 
in “Text String Type” on page 86.)
7.9.2.2
7.9.2
text stream
Text stream
7.9.3
Table 35 –  String Object Types  
Type
Description
text string
Shall  be  used  for  human-readable  text,  such  as  text 
annotations,  bookmark  names,  article  names,  and 
document  information.  These  strings  shall  be  encoded 
using  either  PDFDocEncoding  or  UTF-16BE  with  a 
leading byte-order marker. 
This type is described in 7.9.2.2, "Text String Type." 
PDFDocEncoded string
Shall  be  used  for  characters  and  glyphs  that  are 
represented  in  a  single  byte,  using  PDFDocEncoding. 
This type is described in 7.9.2.3, "PDFDocEncoded String 
Type." 
Table 34 –  PDF data types  (continued)
Type
Description
Sub-Clause
VB.NET PDF Password Library: add, remove, edit PDF file password
VB: Add Password to PDF with Permission Settings Applied. This VB.NET example shows how to add PDF file password with access permission setting.
how to add image to pdf in preview; add image field to pdf form
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF PDF Image Extract; C# Write: Insert text into PDF; C# Write: Add Image to PDF;
adding an image to a pdf; attach image to pdf form
PDF 32000-1:2008
86
© 
Adobe Systems Incorporated 2008 – All rights reserved
The string types described in Table 35 specify increasingly specific encoding schemes, as shown in Figure 7. 
Figure 7 –  Relationship between string types
7.9.2.2 Text String Type 
The text string type shall be used for character strings that contain information intended to be human-readable, 
such as text annotations, bookmark names, article names, document information, and so forth. 
NOTE 1
Text string type is a subtype of string type and represents data encoded using specific conventions.
The text string type shall be used for character strings that shall be encoded in either PDFDocEncoding or the 
UTF-16BE  Unicode  character  encoding  scheme. PDFDocEncoding  can  encode  all  of  the  ISO  Latin  1 
character set and is documented in Annex D. UTF-16BE can encode all Unicode characters. UTF-16BE and 
Unicode  character  encoding  are  described  in  the Un
icode  Standard by the Unicode Consortium (see the 
Bibliography). 
NOTE 2
PDFDocEncoding does not support all Unicode characters whereas UTF-16BE does.
For text strings encoded in Unicode, the first two bytes shall be 254 followed by 255. These two bytes represent 
the Unicode byte order marker, U+FEFF,  indicating that the string is encoded in  the UTF-16BE (big-endian) 
encoding scheme specified in the Unicode standard. 
NOTE 3
This  mechanism  precludes  beginning  a  string  using PDFDocEncoding with  the  two  characters  thorn 
ydieresis, which is unlikely to be a meaningful beginning of a word or phrase.
Conforming  readers  that  process  PDF  files  containing  Unicode  text  strings  shall  be  prepared  to  handle 
supplementary characters; that is, characters requiring more than two bytes to represent.
An  escape  sequence  may  appear  anywhere  in  a  Unicode  text  string  to  indicate  the  language  in  which 
subsequent text shall be written.
ASCII string
Shall  be  used  for  characters  that  are  represented  in  a 
single byte using ASCII encoding. 
byte string
Shall be used for binary data represented as a series of 
bytes, where each byte can be any value representable in 
 bits.  The  string  may  represent  characters  but  the 
encoding is not known. The bytes of the string need not 
represent  characters.  This  type  shall  be  used  for  data 
such as MD5 hash values, signature certificates, and Web 
Capture identification values. 
This type is described in 7.9.2.4, "Byte String Type." 
Table 35 –  String Object Types  (continued)
Type
Description
PDFDocEncoded 
string
string types 
text string
UTF-16BE encoded string with 
a leading byte order marker
ASCII string
byte string
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
RasterEdge. PRODUCTS: ONLINE DEMOS: Online HTML5 Document Viewer; Online XDoc.PDF PDF Image Extract; C# Write: Insert text into PDF; C# Write: Add Image to PDF;
add jpg to pdf document; pdf insert image
C# PDF Password Library: add, remove, edit PDF file password in C#
in C#.NET framework. Support to add password to PDF document online or in C#.NET WinForms for PDF file protection. Able to create a
add an image to a pdf form; add photo to pdf preview
© 
Adobe Systems Incorporated 2008 – All rights reserved
87
PDF 32000-1:2008
NOTE 4
This is useful when the language cannot be determined from the character codes used in the text. 
The escape sequence shall consist of the following elements, in order: 
a) The Unicode value U+001B (that is, the byte sequence 0 followed by 27). 
b) A 2- byte ISO 639 language code.
EXAMPLE
en for English or ja for Japanese encoded as ASCII characters. 
c) (Optional) A 2-byte ISO 3166 country code.
EXAMPLE
US for the United States or JP for Japan. 
d) The Unicode value U+001B. 
NOTE 5
The  complete  list  of  codes  defined  by  ISO  639  and  ISO  3166  can  be  obtained  from  the  International 
Organization for Standardization (see the Bibliography). 
7.9.2.3 PDFDocEncoded String Type
A PDFDocEncoded string is a character string in which the characters shall be represented in a single byte 
using PDFDocEncoding. 
NOTE
PDFDocEncoding does not support all Unicode characters whereas UTF-16BE does. 
7.9.2.4 Byte String Type
The byte string type shall be used for binary data that shall be represented as a series of bytes, where each 
byte may be any value representable in 8 bits. Byte string type is a subtype of string type.
NOTE
The string may represent characters but the encoding is not known. The bytes of the string may not represent 
characters. 
7.9.3
Text Streams
text stream (PDF 1.5) shall be a PDF stream object (7.3.8, "Stream Objects") whose unencoded bytes shall 
meet the same requirements as a text string (7.9.2.2, "Text String Type") with respect to encoding, byte order, 
and lead bytes.
7.9.4
Dates
Date  values  used  in  a  PDF  shall  conform  to  a  standard  date  format,  which  closely  follows  that  of  the 
international standard ASN.1 (Abstract Syntax Notation One), defined in ISO/IEC 8824. A date shall be a text 
string of the form 
( D : YYYYMMDDHHmmSSOHH ' mm   )
where:
YYYY shall be the year 
MM shall be the month (01–12)
DD shall be the day (01–31) 
HH shall be the hour (00–23) 
VB.NET PDF - Annotate PDF Online with VB.NET HTML5 PDF Viewer
Best online HTML5 PDF Viewer PDF Viewer library as well An advanced PDF annotating tool, which is compatible with all Users can add sticky note to PDF document.
add jpg to pdf; add photo to pdf form
DocImage SDK for .NET: Web Document Image Viewer Online Demo
files are Word, Excel, PowerPoint, PDF, Tiff, Dicom is a JavaScript based document and image viewing control on the client side without additional add-ins and
add picture to pdf; add photo to pdf
PDF 32000-1:2008
88
© 
Adobe Systems Incorporated 2008 – All rights reserved
mm shall be the minute (00–59) 
SS shall be the second (00–59) 
O shall be the relationship of local time to Universal Time (UT), and shall be denoted by one of the 
characters PLUS SIGN (U+002B) (+), HYPHEN-MINUS (U+002D) (-), or LATIN CAPITAL LETTER Z 
(U+005A) (Z) (see below) 
HH followed by APOSTROPHE (U+0027) (') shall be the absolute value of the offset from UT in hours 
(00–23) 
mm shall be the absolute value of the offset from UT in minutes (00–59) 
The prefix D: shall be present, the year field (YYYY) shall be present and all other fields may be present but 
only if all of their preceding fields are also present. The APOSTROPHE following the hour offset field (HH) shall 
only  be  present  if  the  HH  field  is  present.  The  minute  offset  field  (mm)  shall  only  be  present  if  the 
APOSTROPHE following the hour offset field (HH) is present. The default values for MM and DD shall be both 
01; all other numerical fields shall default to zero values. A PLUS SIGN as the value of the O field signifies that 
local  time  is  later  than  UT,  a  HYPHEN-MINUS  signifies  that  local  time  is  earlier  than  UT,  and  the  LATIN 
CAPITAL LETTER Z signifies that local time is equal to UT. If no UT information is specified, the relationship of 
the specified time to UT shall be considered to be GMT. Regardless of whether the time zone is specified, the 
rest of the date shall be specified in local time. 
EXAMPLE
For example, December 23, 1998, at 7:52 PM, U.S. Pacific Standard Time, is represented by the string 
D : 199812231952 - 08 ' 00  
7.9.5
Rectangles
Rectangles are used to describe locations on a page and bounding boxes for a variety of objects. A rectangle 
shall be written as an array of four numbers giving the coordinates of a pair of diagonally opposite corners. 
NOTE
Although rectangles are conventionally specified by their lower-left and upper-right corners, it is acceptable to 
specify any two diagonally opposite corners. Applications that process PDF should be prepared to normalize 
such rectangles in situations where specific corners are required. 
Typically, the array takes the form 
[ ll
x
ll
y
ur
x
ur
y
]
specifying the lower-left x, lower-left y, upper-right x, and upper-right y coordinates of the rectangle, in that 
order. The other two corners of the rectangle are then assumed to have coordinates (ll
x
ur
y
) and (ur
x
, ll
y
). 
7.9.6
Name Trees
name tree serves a similar purpose to a dictionary—associating keys and values—but by different means. A 
name tree differs from a dictionary in the following important ways: 
Unlike the keys in a dictionary, which are name objects, those in a name tree are strings. 
The keys are ordered. 
The values associated  with  the  keys  may be objects  of  any type.  Stream  objects shall  be specified by 
indirect  object  references (7.3.8,  "Stream Objects").  The  dictionary,  array,  and string  objects should be 
specified by indirect  object references,  and  other  PDF  objects  (nulls,  numbers,  booleans,  and  names) 
should be specified as direct objects.
The data structure can represent an arbitrarily large collection of key-value pairs, which can be looked up 
efficiently without requiring the entire data structure to be read from the PDF file. (In contrast, a dictionary 
can be subject to an implementation limit on the number of entries it can contain.) 
© 
Adobe Systems Incorporated 2008 – All rights reserved
89
PDF 32000-1:2008
A  name tree  shall be  constructed  of nodes,  each  of which  shall be  a dictionary  object. Table 36 shows the 
entries in a node dictionary. The nodes shall be of three kinds, depending on the specific entries they contain. 
The tree shall always have exactly one root node , which shall contain a single entry: either Kids or Names but 
not both. If the root node has a Names entry, it shall be the only node in the tree. If it has a Kids entry, each of 
the remaining nodes shall be either an intermediate node , that shall contain a Limits entry and a Kids entry, or 
leaf node , that shall contain a Limits entry and a Names entry. 
The Kids entries  in the root and intermediate nodes define the tree’s structure by identifying  the immediate 
children of each node. The Names  entries in the leaf (or root) nodes shall contain the tree’s keys and their 
associated values, arranged in key-value pairs and shall be sorted lexically in ascending order by key. Shorter 
keys shall appear before longer ones beginning with the same byte sequence. Any encoding of the keys may 
be used as long as it is self-consistent; keys shall be compared for equality on a simple byte-by-byte basis. 
The keys contained within the various nodes’ Names entries shall not overlap; each Names entry shall contain 
a single contiguous range of all the keys in the tree. In a leaf node, the Limits entry shall specify the least and 
greatest keys contained within the node’s Names entry. In an intermediate node, it shall specify the least and 
greatest keys contained within the Names entries of any of that node’s descendants. The value associated with 
a given key can thus be found by walking the tree in order, searching for the leaf node whose Names entry 
contains that key. 
EXAMPLE 1
The following is an abbreviated outline, showing object numbers and nodes, of a name tree that maps the 
names of all the chemical elements, from actinium to zirconium, to their atomic numbers.
Example of a name tree
1: Root node
2: Intermediate node: Actinium to Gold
5: Leaf node: Actinium = 25, … , Astatine = 31
25:Integer: 89
31:Integer: 85
11: Leaf node: Gadolinium = 56, … , Gold = 59
56:Integer: 64
59:Integer: 79
3: Intermediate node: Hafnium to Protactinium
12:Leaf node: Hafnium = 60, … , Hydrogen = 65
60:Integer: 72
65:Integer: 1
Table 36 –  Entries in a name tree node dictionary  
Key
Type
Value
Kids
array
(Root and intermediate nodes only; required in intermediate nodes; present in the 
root  node  if  and  only if Names  is  not  present) Shall be an array of indirect 
references  to  the  immediate  children  of  this  node.  The  children  may  be 
intermediate or leaf nodes. 
Names
array
(Root and leaf nodes only; required in leaf nodes; present in the root node if and 
only if Kids is not present) Shall be an array of the form 
key
1
value
1
key
2
value
2
… key
n
value
n
]
where each key
i
shall be a string and the corresponding value
i
shall be the object 
associated with that key. The keys shall be sorted in lexical order, as described 
below. 
Limits
array
(Intermediate and leaf nodes only; required) Shall be an array of two strings, that 
shall specify the (lexically) least and greatest keys included in the Names array of 
a leaf node or in the Names arrays of any leaf nodes that are descendants of an 
intermediate node. 
PDF 32000-1:2008
90
© 
Adobe Systems Incorporated 2008 – All rights reserved
19:Leaf node: Palladium = 92, … , Protactinium = 100
92: Integer: 46
100:Integer: 91
4: Intermediate node: Radium to Zirconium
20:Leaf node: Radium = 101, … , Ruthenium = 107
101:Integer: 89
107:Integer: 85
24:Leaf node: Xenon = 129, … , Zirconium = 133
129:Integer: 54
133:Integer: 40
EXAMPLE 2
The following shows the representation of this tree in a PDF file
 0  obj
<<   /Kids   [   2 0 R
% Root node
3 0 R
4 0 R
]
>>
endobj
 0  obj
<<  /Limits  [ ( Actinium )  ( Gold ) ]
% Intermediate node
/Kids   [  5 0 R
 6 0 R
 7 0 R
 8 0 R
 9 0 R
 10 0 R
 11 0 R
]
>>
endobj
 0  obj
<<  /Limits  [ ( Hafnium )  ( Protactinium ) ]
% Intermediate node
/Kids   [  12 0 R
 13 0 R
 14 0 R
 15 0 R
 16 0 R
 17 0 R
 18 0 R
 19 0 R
]
>>
endobj
 0  obj
<<  /Limits  [ ( Radium )  ( Zirconium ) ]
% Intermediate node
/Kids   [  20 0 R
 21 0 R
 22 0 R
 23 0 R
 24 0 R
]
>>
endobj
 0  obj
<<  /Limits  [ ( Actinium )  ( Astatine ) ]
% Leaf node
/Names  [   ( Actinium )  25 0 R
© 
Adobe Systems Incorporated 2008 – All rights reserved
91
PDF 32000-1:2008
( Aluminum )  26 0 R
( Americium )  27 0 R
( Antimony )  28 0 R
( Argon )  29 0 R
( Arsenic )  30 0 R
( Astatine )  31 0 R
 ]
>>
endobj
24  0  obj
<<  /Limits  [ ( Xenon )  ( Zirconium ) ]
% Leaf node
/Names  [   ( Xenon )  129 0 R
( Ytterbium )  130 0 R
( Yttrium )  131 0 R
( Zinc )  132 0 R
( Zirconium )  133 0 R
 ]
>>
endobj
25  0  obj
89
% Atomic number (Actinium)
endobj
133  0  obj
40
% Atomic number (Zirconium)
endobj
7.9.7
Number Trees
number tree is similar to a name tree (see 7.9.6, "Name Trees"), except that its keys shall be integers instead 
of strings and shall be sorted in ascending numerical order. The entries in the leaf (or root) nodes containing 
the key-value pairs shall be named Nums instead of Names as in a name tree. Table 37 shows the entries in a 
number tree’s node dictionaries. 
Table 37 –  Entries in a number tree node dictionary  
Key
Type
Value
Kids
array
(Root and intermediate nodes only; required in intermediate nodes; present in the 
root  node  if  and  only  if Nums  is  not  present) Shall be an array of indirect 
references  to  the  immediate  children  of  this  node.  The  children  may  be 
intermediate or leaf nodes. 
Nums
array
(Root and leaf nodes only; shall be required in leaf nodes; present in the root 
no
de if and only if Kids is not present) Shall be an array of the form 
key
1
value
1
key
2
value
2
… key
n
value
n
]
where each key
i
is an integer and the corresponding value
i
shall be the object 
associated  with  that  key.  The  keys  shall  be  sorted  in  numerical  order, 
analogously to the arrangement of keys in a name tree as described in 7.9.6, 
"Name Trees." 
Limits
array
(Shall be present in Intermediate and leaf nodes only) Shall be an array of two 
integers, that shall specify the (numerically) least and greatest keys included in 
the Nums array of a leaf node or in the Nums arrays of any leaf nodes that are 
descendants of an intermediate node. 
PDF 32000-1:2008
92
© 
Adobe Systems Incorporated 2008 – All rights reserved
7.10 Functions
7.10.1
General
PDF is not a programming language, and a PDF file is not a program. However, PDF provides several types of 
function objects (PDF 1.2) that represent parameterized classes of functions, including mathematical formulas 
and sampled representations with arbitrary resolution. 
NOTE 1
Functions may be used in various ways in PDF, including device-dependent rasterization information for high-
quality printing (halftone spot functions and transfer functions), colour transform functions for certain colour 
spaces, and specification of colours as a function of position for smooth shadings. 
Functions in PDF represent static, self-contained numerical transformations. 
NOTE 2
A function to add two numbers has two input values and one output value: 
Similarly, a function that computes the arithmetic and geometric mean of two numbers can be viewed as a 
function of two input values and two output values: 
In general, a function can take any number (m) of input values and produce any number (n) of output values: 
In PDF functions, all the input values and all the output values shall be numbers, and functions shall have no 
side effects. 
Each function definition includes a domain, the set of legal values for the input. Some types of functions also 
define a range , the set of legal values for the output. Input values passed to the function shall be clipped to the 
domain, and output values produced by the function shall be clipped to the range. 
EXAMPLE
Suppose the following function is defined with a domain of [-1  1 ]. If the function is called with the input 
value 6, that value is replaced with the nearest value in the defined domain, 1, before the function is 
evaluated; the resulting output value is therefore 3. 
Similarly, if the following function is defined with a range of [ 0  100 ], and if the input values -6 and 4 are 
passed to the function (and are within its domain), then the output value produced by the function, -14, is 
replaced with 0, the nearest value in the defined range. 
A  function  object  may  be  a  dictionary  or  a  stream,  depending  on  the  type  of  function.  The  term function 
dictionary is used generically in this sub-clause to refer to either a dictionary object or the dictionary portion of a 
stream  object.  A  function  dictionary  specifies  the  function’s  representation,  the  set  of  attributes  that 
parameterize  that  representation,  and  the  additional  data  needed  by  that  representation.  Four  types  of 
functions are available, as indicated by the dictionary’s FunctionType entry: 
(PDF 1.2) A  sampled  function (type 0) uses a table of  sample  values to define the function. Various 
techniques  are used  to  interpolate  values  between the  sample values; see  7.10.2,  "Type  0  (Sampled) 
Functions."
f x
0
x
1
( ,
)
x
0
x
1
+
=
f x
0
x
1
( ,
)
x
0
x
1
+
2
-----------------
x
0
x
1
×
,
=
f x
0
x
1
, ,
(
)
y
0
y
1
, ,
=
f x
( )
2
= +
f x
0
x
1
( ,
)
x
0
×
x
1
+
=
Documents you may be interested
Documents you may be interested