pdf viewer control in asp net c# : Adding an image to a pdf in preview software Library project winforms asp.net azure UWP PDF32000_200826-part2343

© 
Adobe Systems Incorporated 2008 – All rights reserved
253
PDF 32000-1:2008
9.5 Introduction to Font Data Structures
A font shall be represented in PDF as a dictionary specifying the type of font, its PostScript name, its encoding, 
and information that can be used to provide a substitute when the font program is not available. Optionally, the 
font program may be embedded as a stream object in the PDF file. 
The  font  types  are  distinguished by  the Subtype  entry  in the  font  dictionary.  Table 110  lists the  font  types 
defined in PDF. Type 0 fonts are called composite fonts; other types of fonts are called simple fonts. In addition 
to fonts,  PDF  supports  two  classes of  font-related objects,  called CIDFonts and CMaps,  described  in 9.7.2, 
"CID-Keyed  Fonts  Overview".  CIDFonts  are  listed  in  Table 110  because,  like  fonts,  they  are  collections  of 
glyphs; however, a CIDFont shall not be used directly but only as a component of a Type 0 font. 
For  all  font  types,  the  term font dictionary  refers  to a PDF  dictionary containing information  about  the  font; 
likewise,  a CIDFont dictionary  contains  information  about  a  CIDFont.  Except  for  Type  3,  this  dictionary  is 
distinct from the font program  that defines the font’s glyphs. That font program may be embedded in the PDF 
file as a stream object or be obtained from some external source. 
NOTE 1
This  terminology  differs  from  that  used  in  the  PostScript  language.  In  PostScript,  a  font  dictionary  is  a 
PostScript data structure that is created as a direct result of interpreting a font program. In PDF, a font program 
is always treated as if it were a separate file, even when its content is embedded in the PDF file. The font 
program is interpreted by a specialized font interpreter when necessary; its contents never materialize as PDF 
objects. 
NOTE 2
Most font programs (and related programs, such 
as CIDFonts and CMaps) conform to external specifications, 
such  as  the Adobe Type 1 Font Format.  This  standard  does  not  include  those  specifications.  See  the 
Bibliography for more information about the specifications mentio
ned in this clause. 
NOTE 3
The most predictable  and  dependable results are produced when all font programs used to show text are 
embedded in the PDF file. The following sub-clauses describe precisely how to do so. If a PDF file refers to 
font programs that are not embedded, the results depend on the availability of fonts in the conforming reader’s 
environment. The following  sub-clauses  specify  some conventions  for referring to  external font  programs. 
However, some details of font naming, font substitution, and glyph selection are implementation-dependent 
and may vary among different conforming readers, writers and operating system environments. 
Table 110 –  Font types  
Type
Subtype Value
Description
Type 0
Type0
(PDF 1.2) composite font—a font composed of glyphs from a 
descendant CIDFont (see 9.7, "Composite Fonts") 
Type 1
Type1
A font that defines glyph shapes using Type 1 font technology (see 
9.6.2, "Type 1 Fonts"). 
MMType1
multiple master font—an extension of the Type 1 font that allows 
the generation of a wide variety of typeface styles from a single font 
(see 9.6.2.3, "Multiple Master Fonts") 
Type 3
Type3
A font that defines glyphs with streams of PDF graphics operators 
(see 9.6.5, "Type 3 Fonts") 
TrueType
TrueType
 font  based  on  the  TrueType  font  format  (see  9.6.3,  "TrueType 
Fonts") 
CIDFont
CIDFontType0
(PDF 1.2) A CIDFont whose glyph descriptions are based on Type 1 
font technology (see 9.7.4, "CIDFonts") 
CIDFontType2
(PDF 1.2) A CIDFont whose glyph descriptions are based on 
TrueType font technology (see 9.7.4, "CIDFonts") 
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 image pdf; add jpg to 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
acrobat insert image in pdf; how to add a photo to a pdf document
PDF 32000-1:2008
254
© 
Adobe Systems Incorporated 2008 – All rights reserved
9.6
Simple Fonts
9.6.1
General
There are several types of simple fonts, all of which have these properties: 
Glyphs in the font shall be selected by single-byte character codes obtained from a string that is shown by 
the text-showing  operators.  Logically,  these codes  index into  a  table of 256 glyphs; the  mapping  from 
codes to glyphs is called the font’s encoding. Under some circumstances, the encoding may
be altered by 
means described in 9.6.6, "Character Encoding". 
Each glyph shall have a single set of metrics, including a horizontal displacement or width, as described in 
9.2.4, "Glyph Positioning and Metrics"; that is, simple fonts support only horizontal writing mode. 
Except for Type 0 fonts, Type 3 fonts in non-Tagged PDF documents, and certain standard Type 1 fonts, 
every font dictionary shall contain a subsidiary dictionary, the font descriptor, containing font-wide metrics 
and other attributes of the font; see 9.8, "Font Descriptors". Among those attributes is an optional font file
stream containing the font program. 
9.6.2
Type 1 Fonts
9.6.2.1
General
A  Type  1  font  program  is  a  stylized  PostScript  program  that  describes  glyph  shapes.  It  uses  a  compact 
encoding for the glyph descriptions, and it includes hint information that enables high-quality rendering even at 
small sizes and low resolutions. 
NOTE 1
Details on this format are provided in a separate specification, Adobe Type 1 Font Format. An alternative, more 
compact but functionally equivalent representation of a Type 1 font program is documented in Adobe Technical 
Note #5176, The Compact Font Format Specification. 
NOTE 2
Although a Type 1 font program uses PostScript language syntax, using it does not require a full PostScript 
interpreter; a specialized Type 1 font interpreter suffices. 
A Type 1 font dictionary may contain the entries listed in Table 111. Some entries are optional for the standard 
14 fonts listed under 9.6.2.2, "Standard Type 1 Fonts (Standard 14 Fonts)", but are required otherwise. 
Table 111 –  Entries in a Type 1 font dictionary  
Key
Type
Value
Type
name
(Required) The type of PDF object that this dictionary describes; shall 
be Font for a font dictionary. 
Subtype
name
(Required) The type of font; shall be Type1 for a Type 1 font. 
Name
name
(Required in PDF 1.0; optional otherwise) The name by which this font 
is  referenced  in  the Font  subdictionary  of  the  current  resource 
dictionary. 
This entry is obsolete and should not be used. 
BaseFont
name
(Required) The PostScript name of the font. For Type 1 fonts, this is 
always the value of the FontName entry in the font program; for more 
information, see Section 5.2 of the PostScript Language Reference, 
Third Edition. The PostScript name of the font may be used to find the 
font program in the conforming reader or its environment. It is also the 
name that is used when printing to a PostScript output device. 
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
add photo to pdf form; adding images to pdf forms
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 a picture to a pdf document; acrobat add image to pdf
© 
Adobe Systems Incorporated 2008 – All rights reserved
255
PDF 32000-1:2008
FirstChar
integer
(Required except for the standard 14 fonts) The first character code 
defined in the font’s Widths array. 
Beginning with PDF 1.5, the special treatment given to the standard 14 
fonts  is  deprecated.  Conforming  writers  should  represent  all  fonts 
using a complete font descriptor. For backwards capability, conforming 
readers  shall  still  provide  the  special  treatment  identified  for  the 
standard 14 fonts. 
LastChar
integer
(Required except for the standard 14 fonts) The last character code 
defined in the font’s Widths array. 
Beginning with PDF 1.5, the special treatment given to the standard 14 
fonts  is  deprecated.  Conforming  writers  should  represent  all  fonts 
using a complete font descriptor. For backwards capability, conforming 
readers  shall  still  provide  the  special  treatment  identified  for  the 
standard 14 fonts. 
Widths
array
(Required  except  for  the  standard  14  fonts;  indirect  reference 
preferred) An array of (LastChar 
FirstChar 
+
1)  widths,  each 
element  being  the  glyph  width  for  the  character  code  that  equals 
FirstChar plus the array index. For character codes outside the range 
FirstChar to  LastChar, the value of  MissingWidth from the 
FontDescriptor entry for this font shall be used. The glyph widths 
shall be measured in units in which 1000 units correspond to 1 unit in 
text space.  These widths  shall  be  consistent with the actual  widths 
given in the font program. For more information on glyph widths and 
other glyph metrics, see 9.2.4, "Glyph Positioning and Metrics". 
Beginning with PDF 1.5, the special treatment given to the standard 14 
fonts  is  deprecated.  Conforming  writers  should  represent  all  fonts 
using a complete font descriptor. For backwards capability, conforming 
readers  shall  still  provide  the  special  treatment  identified  for  the 
standard 14 fonts. 
FontDescriptor
dictionary
(Required  except  for  the  standard  14  fonts; shall  be  an  indirect 
reference) A font descriptor describing the font’s metrics other than its 
glyph widths (see 9.8, "Font Descriptors"”\). 
For the standard 14 fonts, the entries FirstChar, LastChar, Widths, 
and FontDescriptor  shall  either  all  be  present  or  all  be  absent. 
Ordinarily,  these  dictionary  keys  may  be  absent;  specifying  them 
enables a standard font to be overridden; see 9.6.2.2, "Standard Type 
1 Fonts (Standard 14 Fonts)". 
Beginning with PDF 1.5, the special treatment 
given to the standard 14 
fonts  is  deprecated.  Conforming  writers  should  represent  all  fonts 
using a complete font descriptor. For backwards capability, conforming 
readers  shall  still  provide  the  special  treatment  identified  for  the 
standard 14 fonts. 
Encoding
name or 
dictionary
(Optional) A specification of the font’s character encoding if different 
from its built-in encoding. The value of Encoding shall be either the 
name  of  a  predefined  encoding  (MacRomanEncoding, 
MacExpertEncoding, or WinAnsiEncoding, as described in Annex 
D)  or  an encoding  dictionary that  shall  specify  differences from  the 
font’s built-in encoding or from a specified predefined encoding (see 
9.6.6, "Character Encoding"). 
ToUnicode
stream
(Optional;  PDF 1.2) A stream containing a CMap file that maps 
character  codes  to  Unicode  values  (see  9.10,  "Extraction  of  Text 
Content"). 
Table 111 –  Entries in a Type 1 font 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
adding image to pdf file; add image pdf document
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 photo to pdf online; add photo to pdf in preview
PDF 32000-1:2008
256
© 
Adobe Systems Incorporated 2008 – All rights reserved
EXAMPLE
This  example  shows  the  font  dictionary  for  the  Adobe  Garamond®  Semibold  font.  The  font  has  an 
encoding dictionary (object 25), although neither the encoding dictionary nor the font descriptor (object 7) 
is shown in the example. 
14  0  obj
<<   /Type  /Font
/Subtype  /Type1
/BaseFont  /AGaramond
Semibold
/FirstChar  0
/LastChar  255
/Widths  21 0 R
/FontDescriptor  7 0 R
/Encoding  25 0 R
>>
endobj
21  0  obj
[  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
255  255  255  255  255  255  255  255  255  255  255  255  255  255  255  255
255  280  438  510  510  868  834  248  320  320  420  510  255  320  255  347
510  510  510  510  510  510  510  510  510  510  255  255  510  510  510  330
781  627  627  694  784  580  533  743  812  354  354  684  560  921  780  792
588  792  656  504  682  744  650  968  648  590  638  320  329  320  510  500
380  420  510  400  513  409  301  464  522  268  259  484  258  798  533  492
516  503  349  346  321  520  434  684  439  448  390  320  255  320  510  255
627  627  694  580  780  792  744  420  420  420  420  420  420  402  409  409
409  409  268  268  268  268  533  492  492  492  492  492  520  520  520  520
486  400  510  510  506  398  520  555  800  800  1044  360  380  549  846  792
713  510  549  549  510  522  494  713  823  549  274  354  387  768  615  496
330  280  510  549  510  549  612  421  421 1000  255  627  627  792  1016  730
500  1000  438  438  248  248  510  494  448  590  100  510  256  256  539  539
486  255  248  438  1174  627  580  627  580  580  354  354  354  354  792  792
790  792  744  744  744  268  380  380  380  380  380  380  380  380  380  380
]
endobj
9.6.2.2
Standard Type 1 Fonts (Standard 14 Fonts)
The  PostScript names  of  14 Type  1  fonts,  known as  the standard 14 fonts, are as  follows: Times-Roman, 
Helvetica, Courier,  Symbol, Times-Bold,  Helvetica-Bold,  Courier-Bold,  ZapfDingbats,  Times-Italic,  Helvetica-
Oblique, Courier-Oblique, Times-BoldItalic, Helvetica-BoldOblique, Courier-BoldOblique
These fonts, or their font metrics and suitable substitution fonts, shall be available to the conforming reader. 
NOTE
The character sets and encodings for these fonts are listed in Annex D. The font metrics files for the standard 
14 fonts are available from the ASN Web site (see the Bibliography). For more information on font metrics, see 
Adobe Technical Note #5004, Adobe Font Metrics File Format Specification
9.6.2.3
Multiple Master Fonts
The multiple master font format is an extension of the Type 1 font format that allows the generation of a wide 
variety of typeface styles  from a single  font program. This is  accomplished through  the presence of various 
design dimensions in the font. 
EXAMPLE 1
Examples of design dimensions are weight (light to extra-bold) and width (condensed to expanded). 
Coordinates along these design  dimensions  (such as the  degree  of boldness) are specified by numbers. A 
particular choice of numbers selects an instance  of the multiple master font. PDFs can contain multiple master 
instances.
NOTE
Adobe Technical Note #5015, Type 1 Font Format Supplement, describes multiple master fonts in detail. 
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 reader; adding image to pdf form
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.
how to add an image to a pdf file in acrobat; how to add image to pdf in preview
© 
Adobe Systems Incorporated 2008 – All rights reserved
257
PDF 32000-1:2008
The font dictionary for a multiple master font instance may contain the same entries as a Type 1 font dictionary 
(see Table 111), with these differences: 
The value of Subtype shall be MMType1. 
If the  PostScript  name of the instance  contains SPACEs (20h), the SPACEs shall be  replaced by LOW 
LINEs (underscores) (5Fh) in the value of BaseFont. For instance, as illustrated in this example, the name 
“MinionMM 366 465 11 ” (which ends with a SPACE character) becomes /MinionMM_366_465_11_. 
EXAMPLE 2
7  0  obj
<<   /Type  /Font
/Subtype  /MMType1
/BaseFont  /MinionMM_366_465_11_
/FirstChar  32
/LastChar  255
/Widths  19 0 R
/FontDescriptor  6 0 R
/Encoding  5 0 R
>>
endobj
19  0  obj
 187  235  317  430  427  717  607  168  326  326  421  619  219  317  219  282  427
… Omitted data …
569  0  569  607  607  607  239  400  400  400  400  253  400  400  400  400  400
]
endobj
This example illustrates a convention for including the numeric values of the design coordinates as part of 
the instance’s BaseFont name. This convention is commonly used for accessing multiple master font 
instances from an external source in the conforming reader’s environment; it is documented in Adobe 
Technical Note #5088, Font Naming Issues. However, this convention is not prescribed as part of the PDF 
specification. 
If the font program for a multiple master font instance is embedded in the PDF file, it shall be an ordinary Type 
1 font program,  not a multiple  master  font  program.  This  font program  is  called a snapshot  of the  multiple 
master font instance that incorporates the chosen values of the design coordinates. 
9.6.3
TrueType Fonts
A TrueType font dictionary may contain the same entries as a Type 1 font dictionary (see Table 111), with these 
differences: 
The value of Subtype shall be TrueType. 
The value of Encoding is subject to limitations that are described in 9.6.6, "Character Encoding".
The value of BaseFont is derived differently. 
The PostScript name for the value of BaseFont may be determined in one of two ways: 
If the TrueType font program's “name” table contains a PostScript name, it shall be used.
In the absence of such an entry in the “name” table, a PostScript name shall be derived from the name by 
which the font is known in the host operating system. On a Windows system, the name shall be based on 
the lfFaceName field in a LOGFONT structure; in the Mac OS, it shall be based on the name of the FOND 
resource. If the name contains any SPACEs, the SPACEs shall be removed. 
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 an image to a pdf in acrobat; how to add image to pdf form
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 pdf; add picture to pdf preview
PDF 32000-1:2008
258
© 
Adobe Systems Incorporated 2008 – All rights reserved
NOTE 1
The TrueType font format was developed by Apple Computer, Inc., and has been adopted as a standard font 
format  for  the  Microsoft  Windows  operating  system.  Specifications  for  the  TrueType  font  file  format  are 
available  in  Apple’s TrueType Reference Manual and  Microsoft’s TrueType 1.0 Font Files Technical 
Specification (see Bibliography). 
NOTE 2
A TrueType font program may be embedded directly in a PDF file as a stream object. 
NOTE 3
The Type 42 font format that is defined for PostScript does not apply to PDF. 
NOTE 4
For CJK (Chinese, Japanese, and Korean) fonts, the host font system’s font name is often encoded in the host 
operating system’s script. For instance, a Japanese font may have a name that is written in Japanese using 
some (unidentified)  Japanese  encoding.  Thus,  TrueType  font  names  may  contain multiple-byte  character 
codes, each of which requires multiple characters to represent in a PDF name object (using the # notation to 
quote special characters as needed). 
9.6.4
Font Subsets
PDF documents may include subsets of Type 1 and TrueType fonts. The font and font descriptor that describe 
a font subset are slightly different from those of ordinary fonts. These differences allow a conforming reader to 
recognize  font  subsets  and  to  merge  documents  containing  different  subsets  of  the  same  font.  (For  more 
information on font descriptors, see 9.8, "Font Descriptors".) 
For  a  font  subset,  the  PostScript  name  of  the  font—the  value  of  the  font’s BaseFont  entry  and  the  font 
descriptor’s FontName  entry—  shall  begin  with  a tag   followed  by  a plus  sign  (+).  The  tag  shall  consist  of 
exactly six uppercase letters; the choice of letters is arbitrary, but different subsets in the same PDF file shall 
have different tags. 
EXAMPLE
EOODIA+Poetica is the name of a subset of Poetica®, a Type 1 font. 
9.6.5
Type 3 Fonts
Type  3  fonts  differ  from  the  other  fonts  supported  by  PDF.  A  Type  3  font  dictionary  defines  the  font;  font 
dictionaries for other fonts simply contain information about the font and refer to a separate font program for the 
actual glyph descriptions. In Type 3 fonts, glyphs shall be defined by streams of PDF graphics operators. These 
streams shall be associated with glyph names. A separate encoding entry shall map character codes to the 
appropriate glyph names for the glyphs. 
NOTE 1
Type 3 fonts are more flexible than Type 1 fonts because the glyph descriptions may contain arbitrary PDF 
graphics operators. However, Type 3 fonts have no hinting mechanism for improving output at small sizes or 
low resolutions. 
A Type 3 font dictionary may contain the entries listed in Table 112. 
Table 112 –  Entries in a Type 3 font dictionary  
Key
Type
Value
Type
name
(Required) The type of PDF object that this dictionary describes; shall 
be Font for a font dictionary. 
Subtype
name
(Required) The type of font; shall be Type3 for a Type 3 font. 
Name
name
(Required in PDF 1.0; optional otherwise) See Table 111. 
© 
Adobe Systems Incorporated 2008 – All rights reserved
259
PDF 32000-1:2008
For  each character  code  shown by a  text-showing  operator that uses a Type 3  font, the conforming reader 
shall: 
FontBBox
rectangle
(Required) A rectangle (see 7.9.5, "Rectangles") expressed in the 
glyph coordinate system, specifying the font bounding box . This is the 
smallest rectangle enclosing the shape that would result if all of the 
glyphs of the font were placed with their origins coincident and then 
filled. 
If all four elements of the rectangle are zero, a conforming reader shall 
make no assumptions about glyph sizes based on the font bounding 
box.  If  any  element  is  nonzero,  the  font  bounding  box  shall  be 
accurate. If any glyph’s marks fall outside this bounding box, incorrect 
behavior may result. 
FontMatrix
array
(Required) An array of six numbers specifying the font matrix, mapping 
glyph space to text space (see 9.2.4, "Glyph Positioning and Metrics"). 
NOTE
 common  practice  is  to  define  glyphs  in  terms  of  a 
1000-unit glyph coordinate system, in which case the font 
matrix is [ 0.001  0  0  0.001  0  0 ]. 
CharProcs
dictionary
(Required) A dictionary in which each key shall be a glyph name and 
the  value  associated  with  that  key  shall  be  a  content  stream  that 
constructs and  paints the glyph for  that character. The stream shall
include  as  its  first  operator  either d0  or d1,  followed  by  operators 
describing one or more graphics objects, which may include path, text, 
or  image  objects.  See  below  for  more  details  about  Type  3  glyph 
descriptions. 
Encoding
name or 
dictionary
(Required) An encoding dictionary whose Differences array shall 
specify  the  complete  character  encoding  for  this  font  (see  9.6.6, 
"Character Encoding"). 
FirstChar
integer
(Required) The first character code defined in the font’s Widths array. 
LastChar
integer
(Required) The last character code defined in the font’s Widths array. 
Widths
array
(Required; should be an indirect reference) An array of (LastChar 
FirstChar 
+
1)  widths,  each  element  being the  glyph width  for  the 
character  code  that  equals FirstChar  plus  the  array  index.  For 
character codes outside the range FirstChar to LastChar, the width 
shall  be  0.  These  widths  shall  be  interpreted  in  glyph  space  as 
specified by FontMatrix (unlike the widths of a Type 1 font, which are 
in thousandths of a unit of text space). 
If Fo
ntMatrix specifies a rotation, only the horizontal component of the 
transformed width shall be used. That is, the resulting displacement 
shall be horizontal in text space, as is the case for all simple fonts. 
FontDescriptor
dictionary
(Required in Tagged PDF documents; shall be an indirect reference) A 
font descriptor describing the font’s default metrics other than its glyph 
widths (see 9.8, "Font Descriptors"). 
Resources
dictionary
(Optional but should be used; PDF 1.2) A list of the named resources, 
such as fonts and images, required by the glyph descriptions in this 
font  (see  7.8.3,  "Resource  Dictionaries").  If  any  glyph  descriptions 
refer to named resources but this dictionary is absent, the names shall 
be looked up in the resource dictionary of the page on which the font is 
used. 
ToUnicode
stream
(Optional;  PDF 1.2) A stream containing a CMap file that maps 
character  codes  to  Unicode  values  (see  9.10,  "Extraction  of  Text 
Content"). 
Table 112 –  Entries in a Type 3 font dictionary  (continued)
Key
Type
Value
PDF 32000-1:2008
260
© 
Adobe Systems Incorporated 2008 – All rights reserved
a) Look up the character code in the font’s Encoding entry, as described in 9.6.6, "Character Encoding," to 
obtain a glyph name. 
b) Look up the glyph name in the font’s CharProcs dictionary to obtain a stream object containing a glyph 
description. If the name is not present as a key in CharProcs, no glyph shall be painted. 
c) Invoke the glyph description. The graphics state shall be saved before this invocation and shall be restored 
afterward; therefore, any changes the glyph description makes to the graphics state do not persist after it 
finishes. 
When  the  glyph  description  begins  execution,  the  current  transformation  matrix  (CTM)  shall  be  the 
concatenation of the font matrix (FontMatrix in the current font dictionary) and the text space that was in effect 
at the time the text-showing operator was invoked (see 9.4.4, "Text Space Details"). This means that shapes 
described in the glyph coordinate system are transformed into the user coordinate system and appear in the 
appropriate  size  and  orientation  on  the  page.  The  glyph  description  shall  describe  the  glyph  in  terms  of 
absolute  coordinates in the glyph coordinate system, placing  the glyph  origin at (0, 0) in  this  space. It shall 
make no assumptions about the initial text position. 
Aside from the CTM, the graphics state shall be inherited from the environment of the text-showing operator 
that  caused  the  glyph  description  to  be  invoked.  To  ensure  predictable  results,  the  glyph  description  shall 
initialize any graphics state parameters on which it depends. In particular, if it invokes the S (stroke) operator, it 
shall explicitly set the line width, line join, line cap, and dash pattern to appropriate values. 
NOTE 2
Normally, it is unnecessary and undesirable to initialize the current colour parameter because the text-showing 
operators are designed to paint glyphs with the current colour. 
The glyph description shall execute one of the operators described in Table 113 to pass width and bounding 
box  information  to  the  font  machinery.  This  shall  precede  the  execution  of  any  path  construction  or  path-
painting operators describing the glyph. 
NOTE 3
Type 3 fonts in PDF are very similar to those in PostScript. Some of the information provided in Type 3 font 
dictionaries and glyph descriptions, while seemingly redundant or unnecessary, is nevertheless required for 
correct results when a conforming reader prints to a PostScript output device. This applies particularly to the 
operands of the d0 and d1 operators, are the equivalent of PostScript's setcharwidth and setcachedevice. 
For further explanation, see Section 5.7 of the PostScript Language Reference, Third Edition. 
Table 113 –  Type 3 font operators  
Operands
Operator
Description
w
x
w
y
d0
Set  width  information  for  the  glyph  and  declare  that  the  glyph 
description specifies both its shape and its colour. 
NOTE
This operator name ends in the digit 0.
w
x
denotes the  horizontal displacement  in the glyph coordinate 
system; it shall be consistent with the corresponding width in the 
font’s Widths array. w
y
shall be 0 (see 9.2.4, "Glyph Positioning 
and Metrics"). 
This  operator  shall  only  be  permitted  in  a  content  stream 
appearing in a Type 3 font’s CharProcs dictionary. It is typically 
used only if the glyph description executes operators to set the 
colour explicitly. 
© 
Adobe Systems Incorporated 2008 – All rights reserved
261
PDF 32000-1:2008
EXAMPLE
This  example shows the definition of a Type 3 font with only two glyphs—a filled square and a filled 
triangle,  selected by the character  codes a and  b. Figure  47  shows the result of  showing  the string 
( ababab ) using this font. 
Figure 47 –  Output from the example in 9.6.5, "Type 3 Fonts"
w
x
w
y
ll
x
ll
y
ur
x
ur
y
d1
Set width and bounding box information for the glyph and declare 
that the glyph description specifies only shape, not colour. 
NOTE
This operator name ends in the digit 1
w
x
denotes the horizontal displacement in  the  glyph  coordinate 
system; it shall be consistent with the corresponding width in the 
font’s Widths array. w
y
shall be 0 (see 9.2.4, "Glyph Positioning 
and Metrics"). 
ll
x
and ll
y
denote the coordinates of the lower-left corner, and ur
x
and ur
y
denote the upper-right corner, of the glyph bounding box. 
The glyph bounding box is the smallest rectangle, oriented with 
the axes of the glyph coordinate system, that completely encloses 
all marks placed on the page as a result of executing the glyph’s 
description. The declared bounding box shall be correct—in other 
words, sufficiently large to enclose the entire glyph. If any marks 
fall outside this bounding box, the result is unpredictable. 
A glyph description that begins with the d1 operator should not 
execute any operators that set the colour (or other colour-related 
parameters) in the graphics state; any use of such operators shall 
be ignored. The glyph description is executed solely to determine 
the glyph’s shape. Its colour shall be determined by the graphics 
state in effect each time this glyph is painted by a text-showing 
operator.  For the  same  reason,  the  glyph  description  shall  not 
include an image; however, an image mask is acceptable, since it 
merely defines a region of the page to be painted with the current 
colour. 
This operator shall be used only in a content stream appearing in 
a Type 3 font’s CharProcs dictionary. 
Table 113 –  Type 3 font operators  (continued)
Operands
Operator
Description
PDF 32000-1:2008
262
© 
Adobe Systems Incorporated 2008 – All rights reserved
 0  obj
<<   /Type  /Font
/Subtype  /Type3
/FontBBox  [ 0  0  750  750 ]
/FontMatrix  [ 0.001  0  0  0.001  0  0 ]
/CharProcs  10 0 R
/Encoding  9 0 R
/FirstChar  97
/LastChar  98
/Widths  [ 1000  1000 ]
>>
endobj
 0  obj
<<   /Type  /Encoding
/Differences  [ 97  /square  /triangle ]
>>
endobj
10  0  obj
<<   /square  11 0 R
/triangle  12 0 R
>>
endobj
11  0  obj
<<  /Length  39  >>
stream
1000  0  0  0  750  750  d1
 0  750  750  re
f
endstream
endobj
12  0  obj
<<  /Length  48  >>
stream
1000  0  0  0  750  750  d1
 0  m
375  750  l
750  0  l
f
endstream
endobj
9.6.6
Character Encoding
9.6.6.1
General
A font’s encoding is the association between character codes (obtained from text strings that are shown) and 
glyph descriptions.  This sub-clause describes  the  character encoding  scheme  used with simple  PDF  fonts. 
Composite fonts (Type 0) use a different character mapping algorithm, as discussed in 9.7, "Composite Fonts". 
Except for Type 3 fonts, every font program shall have a built-in encoding. Under certain circumstances, a PDF 
font  dictionary  may  change  the  encoding  used  with  the  font  program  to  match  the  requirements  of  the 
conforming writer generating the text being shown. 
Documents you may be interested
Documents you may be interested