pdf viewer control in asp net c# : How to add image to pdf acrobat application Library utility azure .net asp.net visual studio PDF32000_200828-part2345

© 
Adobe Systems Incorporated 2008 – All rights reserved
273
PDF 32000-1:2008
9.7.5.2 Predefined CMaps
Several  of  the  CMaps  define  mappings  from  Unicode  encodings  to  character  collections.  Unicode  values 
appearing  in  a  text  string  shall  be  represented  in  big-endian  order  (high-order  byte  first).  CMap  names 
containing “UCS2” use UCS-2 encoding; names containing “UTF16” use UTF-16BE (big-endian) encoding.
NOTE 1
Table 118 lists the names of the predefined CMaps. These CMaps map character codes to CIDs in a single 
descendant CIDFont. CMaps whose names end in H specify horizontal writing mode; those ending in V specify 
vertical writing mode.
Table 118 –  Predefined CJK CMap names  
Name
Description
Chinese (Simplified)
GB-EUC-H
Microsoft Code Page 936 (lfCharSet 0x86), GB 2312-80 character set, EUC-CN 
encoding
GB-EUC-V
Vertical version of GB-EUC-H
GBpc-EUC-H
Mac OS, GB 2312-80 character set, EUC-CN encoding, Script Manager code 19
GBpc-EUC-V
Vertical version of GBpc-EUC-H
GBK-EUC-H
Microsoft Code Page 936 (lfCharSet 0x86), GBK character set, GBK encoding
GBK-EUC-V
Vertical version of GBK-EUC-H
GBKp-EUC-H
Same as GBK-EUC-H but replaces half-width Latin characters with proportional 
forms and maps character code 0x24 to a dollar sign ($) instead of a yuan symbol 
(¥) 
GBKp-EUC-V
Vertical version of GBKp-EUC-H
GBK2K-H
GB 18030-2000 character set, mixed 1-, 2-, and 4-byte encoding
GBK2K-V
Vertical version of GBK2K-H
UniGB-UCS2-H
Unicode (UCS-2) encoding for the Adobe-GB1 character collection
UniGB-UCS2-V
Vertical version of UniGB-UCS2-H
UniGB-UTF16-H
Unicode (UTF-16BE) encoding for the Adobe-GB1 character collection; contains 
mappings for all characters in the GB18030-2000 character set
UniGB-UTF16-V
Vertical version of UniGB-UTF16-H
Chinese (Traditional)
B5pc-H
Mac OS, Big Five character set, Big Five encoding, Script Manager code 2
B5pc-V
Vertical version of B5pc-H
HKscs-B5-H
Hong Kong SCS, an extension to the Big Five character set and encoding
HKscs-B5-V
Vertical version of HKscs-B5-H
ETen-B5-H
Microsoft Code Page  950  (lfCharSet  0x88),  Big  Five  character set  with  ETen 
extensions
ETen-B5-V
Vertical version of ETen-B5-H
ETenms-B5-H
Same  as ETen-B5-H but replaces half-width Latin characters with proportional 
forms
How to add image to pdf acrobat - 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 a jpeg to a pdf; add picture to pdf
How to add image to pdf acrobat - 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 photo to pdf for; how to add image to pdf file
PDF 32000-1:2008
274
© 
Adobe Systems Incorporated 2008 – All rights reserved
ETenms-B5-V
Vertical version of ETenms-B5-H
CNS-EUC-H
CNS 11643-1992 character set, EUC-TW encoding
CNS-EUC-V
Vertical version of CNS-EUC-H
UniCNS-UCS2-H
Unicode (UCS-2) encoding for the Adobe-CNS1 character collection
UniCNS-UCS2-V
Vertical version of UniCNS-UCS2-H
UniCNS-UTF16-H
Unicode  (UTF-16BE)  encoding  for  the  Adobe-CNS1  character  collection; 
contains mappings for all the characters in the HKSCS-2001 character set and 
contains both 2- and 4-byte character codes 
UniCNS-UTF16-V
Vertical version of UniCNS-UTF16-H 
Japanese
83pv-RKSJ-H
Mac OS, JIS X 0208 character set with KanjiTalk6 extensions, Shift-JIS encoding, 
Script Manager code 1
90ms-RKSJ-H
Microsoft Code Page 932 (lfCharSet 0x80), JIS X 0208 character set with NEC 
and IBM® extensions
90ms-RKSJ-V
Vertical version of 90ms-RKSJ-H
90msp-RKSJ-H
Same as 90ms-RKSJ-H but replaces half-width Latin characters with proportional 
forms
90msp-RKSJ-V
Vertical version of 90msp-RKSJ-H
90pv-RKSJ-H
Mac OS, JIS X 0208 character set with KanjiTalk7 extensions, Shift-JIS encoding, 
Script Manager code 1
Add-RKSJ-H
JIS X 0208 character set with Fujitsu FMR extensions, Shift-JIS encoding
Add-RKSJ-V
Vertical version of Add-RKSJ-H
EUC-H
JIS X 0208 character set, EUC-JP encoding
EUC-V
Vertical version of EUC-H
Ext-RKSJ-H
JIS C 6226 (JIS78) character set with NEC extensions, Shift-JIS encoding
Ext-RKSJ-V
Vertical version of Ext-RKSJ-H
H
JIS X 0208 character set, ISO-2022-JP encoding
V
Vertical version of H
UniJIS-UCS2-H
Unicode (UCS-2) encoding for the Adobe-Japan1 character collection
UniJIS-UCS2-V
Vertical version of UniJIS-UCS2-H
UniJIS-UCS2-HW-H
Same  as  UniJIS-UCS2-H but  replaces  proportional Latin  characters  with half-
width forms
UniJIS-UCS2-HW-V
Vertical version of UniJIS-UCS2-HW-H
UniJIS-UTF16-H
Unicode  (UTF-16BE)  encoding  for  the  Adobe-Japan1  character  collection; 
contains mappings for all characters in the JIS X 0213:1000 character set 
UniJIS-UTF16-V
Vertical version of UniJIS-UTF16-H 
Korean
Table 118 –  Predefined CJK CMap names  (continued)
Name
Description
.NET PDF Document Viewing, Annotation, Conversion & Processing
Convert image files to PDF. File & Page Process. Annotate & Comment. Add, insert PDF native annotations to PDF file. Support for all the print modes in Acrobat PDF
add jpeg to pdf; acrobat insert image into pdf
C# PDF Converter Library SDK to convert PDF to other file formats
without using other external third-party dependencies like Adobe Acrobat. you can easily perform file conversion from PDF document to image or document
adding image to pdf; how to add image to pdf document
© 
Adobe Systems Incorporated 2008 – All rights reserved
275
PDF 32000-1:2008
NOTE 2
The Identity-H and Identity-V CMaps may be used to refer to glyphs directly by their CIDs when showing a text 
string. 
When the current font is a Type 0 font whose Encoding entry is Identity-H or Identity-V, the string to be shown 
shall contain pairs of bytes representing CIDs, high-order byte first. When the current font is a CIDFont, the 
string to be shown shall contain pairs of bytes representing CIDs, high-order byte first. When the current font is 
a Type 2 CIDFont in which the CIDToGIDMap entry is Identity and if the TrueType font is embedded in the PDF 
file,  the  2-byte  CID  values  shall  be  identical  glyph  indices  for  the  glyph  descriptions  in  the  TrueType  font 
program. 
NOTE 3
Table 119 lists the character collections referenced by the predefined CMaps for the different versions of PDF. 
A dash (—) indicates that the CMap is not predefined in that PDF version. 
KSC-EUC-H
KS X 1001:1992 character set, EUC-KR encoding
KSC-EUC-V
Vertical version of KSC-EUC-H
KSCms-UHC-H
Microsoft Code Page 949 (lfCharSet 0x81), KS X 1001:1992 character set plus 
8822 additional hangul, Unified Hangul Code (UHC) encoding
KSCms-UHC-V
Vertical version of KSCms
UHC-H
KSCms-UHC-HW-H
Same as KSCms-UHC-H  but  replaces  proportional Latin  characters with  half-
width forms
KSCms-UHC-HW-V
Vertical version of KSCms-UHC-HW-H
KSCpc-EUC-H
Mac  OS,  KS  X 1001:1992  character  set with Mac  OS  KH extensions,  Script 
Manager Code 3
UniKS-UCS2-H
Unicode (UCS-2) encoding for the Adobe-Korea1 character collection
UniKS-UCS2-V
Vertical version of UniKS-UCS2-H
UniKS-UTF16-H
Unicode (UTF-16BE) encoding for the Adobe-Korea1 character collection
UniKS-UTF16-V
Vertical version of UniKS-UTF16-H
Generic
Identity-H
The horizontal  identity mapping  for 2-byte  CIDs; may be used  with  CIDFonts 
using any RegistryOrdering, and Supplement values. It maps 2-byte character 
codes ranging from 0 to 65,535 to the same 2-byte CID value, interpreted high-
order byte first. 
Identity-V
Vertical version of Identity-H. The mapping is the same as for Identity-H. 
Table 119 –  Character collections for predefined CMaps, by PDF version  
CMAP
PDF 1.2
PDF 1.3
PDF 1.4
PDF 1.5
Chinese (Simplified)
GB-EUC-H/V
Adobe-GB1-0
Adobe-GB1-0
Adobe-GB1-0
Adobe-GB1-0
GBpc-EUC-H
Adobe-GB1-0
Adobe-GB1-0
Adobe-GB1-0
Adobe-GB1-0
GBpc-EUC-V
Adobe-GB1-0
Adobe-GB1-0
Adobe-GB1-0
GBK-EUC-H/V
Adobe-GB1-2
Adobe-GB1-2
Adobe-GB1-2
GBKp-EUC-H/V
Adobe-GB1-2
Adobe-GB1-2
Table 118 –  Predefined CJK CMap names  (continued)
Name
Description
C# Windows Viewer - Image and Document Conversion & Rendering in
without using other external third-party dependencies like Adobe Acrobat. Image and Document Conversion Supported by Windows Viewer. Convert to PDF.
add a picture to a pdf file; how to add an image to a pdf file
C# powerpoint - PowerPoint Conversion & Rendering in C#.NET
using other external third-party dependencies like Adobe Acrobat. SDK to convert PowerPoint document to PDF document code for PowerPoint to TIFF image conversion
how to add image to pdf reader; add picture to pdf online
PDF 32000-1:2008
276
© 
Adobe Systems Incorporated 2008 – All rights reserved
GBK2K-H/V
Adobe-GB1-4
Adobe-GB1-4
UniGB-UCS2-H/V
Adobe-GB1-2
Adobe-GB1-4
Adobe-GB1-4
UniGB-UTF16-H/V
Adobe-GB1-4
Chinese (Traditional)
B5pc-H/V
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
HKscs-B5-H/V
Adobe-CNS1-3
Adobe-CNS1-3
ETen-B5-H/V
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
ETenms-B5-H/V
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
CNS-EUC-H/V
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
Adobe-CNS1-0
UniCNS-UCS2-H/V
Adobe-CNS1-0
Adobe-CNS1-3
Adobe-CNS1-3
UniCNS-UTF16-H/V
Adobe-CNS1-4
Japanese
83pv-RKSJ-H
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
90ms-RKSJ-H/V
Adobe-Japan1-2
Adobe-Japan1-2
Adobe-Japan1-2
Adobe-Japan1-2
90msp-RKSJ-H/V
Adobe-Japan1-2
Adobe-Japan1-2
Adobe-Japan1-2
90pv-RKSJ-H
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
Add-RKSJ-H/V
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
EUC-H/V
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
Ext-RKSJ-H/V
Adobe-Japan1-2
Adobe-Japan1-2
Adobe-Japan1-2
Adobe-Japan1-2
H/V
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
Adobe-Japan1-1
UniJIS-UCS2-H/V
Adobe-Japan1-2
Adobe-Japan1-4
Adobe-Japan1-4
UniJIS-UCS2-HW-H/V
Adobe-Japan1-2
Adobe-Japan1-4
Adobe-Japan1-4
UniJIS-UTF16-H/V
Adobe-Japan1-5
Korean
KSC-EUC-H/V
Adobe-Korea1-0
Adobe-Korea1-0
Adobe-Korea1-0
Adobe-Korea1-0
KSCms-UHC-H/V
Adobe-Korea1-1
Adobe-Korea1-1
Adobe-Korea1-1
Adobe-Korea1-1
KSCms-UHC-HW-H/V
Adobe-Korea1-1
Adobe-Korea1-1
Adobe-Korea1-1
KSCpc-EUC-H
Adobe-Korea1-0
Adobe-Korea1-0
Adobe-Korea1-0
Adobe-Korea1-0
UniKS-UCS2-H/V
Adobe-Korea1-1
Adobe-Korea1-1
Adobe-Korea1-1
UniKS-UTF16-H/V
Adobe-Korea1-2
Generic
Identity-H/V
Adobe-Identity-0
Adobe-Identity-0
Adobe-Identity-0
Adobe-Identity-0
Table 119 –  Character collections for predefined CMaps, by PDF version  (continued)
CMAP
PDF 1.2
PDF 1.3
PDF 1.4
PDF 1.5
C# Word - Word Conversion in C#.NET
using other external third-party dependencies like Adobe Acrobat. Word SDK to convert Word document to PDF document. demo code for Word to TIFF image conversion
add image to pdf acrobat reader; add jpg to pdf form
VB.NET PDF: How to Create Watermark on PDF Document within
Using this VB.NET Imaging PDF Watermark Add-on, you can a watermark that consists of text or image (such as And with our PDF Watermark Creator, users need no
add photo to pdf preview; add jpg to pdf document
© 
Adobe Systems Incorporated 2008 – All rights reserved
277
PDF 32000-1:2008
 conforming  reader  shall  support  all  of  the  character  collections  listed  in  Table 119.  As  noted  in  9.7.3, 
"CIDSystemInfo Dictionaries", a character collection is identified by registry, ordering, and supplement number, 
and supplements are cumulative; that is, a higher-numbered supplement includes the CIDs contained in lower-
numbered  supplements,  as  well  as  some  additional  CIDs.  Consequently,  text  encoded  according  to  the 
predefined CMaps for a given PDF version shall be valid when interpreted by a conforming reader supporting 
the same or a later PDF version. When interpreted by a conforming reader supporting an earlier PDF version, 
such text causes an error if a CMap is encountered that is not predefined for that PDF version. If character 
codes are encountered that were added in a higher-numbered supplement than the one corresponding to the 
supported  PDF  version,  no  characters  are  displayed  for  those  codes;  see  9.7.6.3,  "Handling  Undefined 
Characters". 
The Identity-H and Identity-V CMaps shall not be used with a non-embedded font. Only standardized character 
sets may be used.
NOTE 4
If a conforming writer producing a PDF file encounters text to  be included that uses CIDs from a higher-
numbered supplement than the one corresponding to the PDF version being generated, the application should 
embed the CMap for the higher-numbered supplement rather than refer to the predefined CMap. 
The CMap programs that define the predefined CMaps are available through the ASN Web site. 
9.7.5.3 Embedded CMap Files
For character encodings that are not predefined, the PDF file shall contain a stream that defines the CMap. In 
addition to the standard entries for streams (listed in Table 5), the CMap stream dictionary contains the entries 
listed in Table 120. The data in the stream defines the mapping from character codes to a font number and a 
character selector. The data shall follow the syntax defined in Adobe Technical Note #5014, Adobe CMap and 
CIDFont Files Specification (see bibliography). 
9.7.5.4 CMap Example and Operator Summary
Embedded CMap files  shall  conform  to the format  documented in Adobe Technical  Note #5014,  subject to 
these additional constraints:
Table 120 –  Additional entries in a CMap stream dictionary  
Key
Type
Value
Type
name
(Required) The type of PDF object that this dictionary describes; shall 
be CMap for a CMap dictionary. 
CMapName
name
(Required) The name of the CMap. It shall be the same as the value of 
CMapName in the CMap file. 
CIDSystemInfo
dictionary 
(Required) A dictionary (see 9.7.3, "CIDSystemInfo Dictionaries") 
containing entries that define the character collection for the CIDFont 
or CIDFonts associated with the CMap. 
The  value  of  this  entry  shall  be  the  same  as  the  value  of 
CIDSystemInfo in the CMap file. (However, it does not need to match 
the values of CIDSystemInfo for the Identity-H or Identity-V CMaps.) 
WMode
integer
(Optional) A code that specifies the writing mode for any CIDFont with 
which this CMap is combined. The value shall be 0 for horizontal or 1 
for vertical. Default value: 0. 
The value of this entry shall be the same as the value of WMode in the 
CMap file. 
UseCMap
name or 
stream
(Optional) The name of a predefined CMap, or a stream containing a 
CMap. If this entry is present, the referencing CMap shall specify only 
the character mappings that differ from the referenced CMap. 
VB.NET PowerPoint: VB Code to Draw and Create Annotation on PPT
as a kind of compensation for limitations (other documents are compatible, including PDF, TIFF, MS VB.NET PPT: VB Code to Add Embedded Image Object to
adding an image to a pdf form; add image to pdf acrobat
BMP to PDF Converter | Convert Bitmap to PDF, Convert PDF to BMP
Also designed to be used add-on for .NET Image SDK, RasterEdge Bitmap to PDF Converter can Powerful image converter for Bitmap and PDF files; No need for
add jpg to pdf acrobat; adding images to pdf files
PDF 32000-1:2008
278
© 
Adobe Systems Incorporated 2008 – All rights reserved
a) If the embedded CMap file contains a usecmap reference, the CMap indicated there shall also be identified 
by the UseCMap entry in the CMap stream dictionary.
b) The usefont operator, if present, shall specify a font number of 0.
c) The beginbfchar and endbfchar shall not appear in a CMap that is used as the Encoding entry of a Type 0 
font; however, they may appear in the definition of a ToUnicode CMap.
d) A notdef mapping, defined using beginnotdefchar, endnotdefchar, beginnotdefrange, and endnotdefrange 
shall  be  used  if  the  normal  mapping  produces  a  CID  for  which  no  glyph  is  present  in  the  associated 
CIDFont. 
e) The  beginrearrangedfont,  endrearrangedfont,  beginusematrix,  and  endusematrix operators  shall not be 
used.
EXAMPLE
This example shows a sample CMap for a Japanese Shift-JIS encoding. Character codes in this encoding 
can be either 1 or 2 bytes in length. This CMap could be used with a CIDFont that uses the same CID 
ordering as specified in the CIDSystemInfo entry. Note that several of the entries in the stream dictionary 
are also replicated in the stream data. 
22  0  obj
<<   /Type  /CMap
/CMapName  /90ms-RKSJ-H
/CIDSystemInfo  <<   /Registry  ( Adobe ) 
 /Ordering  ( Japan1 ) 
 /Supplement  2
>>
/WMode  0
/Length  23 0 R
>>
stream
%!PS-Adobe-3 . 0 Resource-CMap
%%DocumentNeededResources :  ProcSet ( CIDInit )
%%IncludeResource :  ProcSet ( CIDInit )
%%BeginResource :  CMap ( 90ms-RKSJ-H )
%%Title :  ( 90ms-RKSJ-H Adobe Japan1 2 )
%%Version :  10 . 001
%%Copyright :  Copyright 1990-2001 Adobe Systems Inc .
%%Copyright :  All Rights Reserved .
%%EndComments
/CIDInit  /ProcSet  findresource  begin
12  dict  begin
begincmap
/CIDSystemInfo
 dict  dup  begin
/Registry  ( Adobe )  def
/Ordering  ( Japan1 )  def
/Supplement  2  def
end  def
/CMapName  /90ms-RKSJ-H  def
/CMapVersion  10 . 001  def
/CMapType  1  def
/UIDOffset  950  def
/XUID  [ 1  10  25343 ]  def
/WMode  0  def
 begincodespacerange
< 00 >
< 80 >
< 8140 > < 9FFC >
< A0 >
< DF >
JPEG to PDF Converter | Convert JPEG to PDF, Convert PDF to JPEG
It can be used standalone. JPEG to PDF Converter is able to convert image files to PDF directly without the software Adobe Acrobat Reader for conversion.
add image pdf acrobat; add signature image to pdf acrobat
PDF to WORD Converter | Convert PDF to Word, Convert Word to PDF
out transformation between different kinds of image files and Word Converter has accurate output, and PDF to Word need the support of Adobe Acrobat & Microsoft
add an image to a pdf form; add an image to a pdf
© 
Adobe Systems Incorporated 2008 – All rights reserved
279
PDF 32000-1:2008
< E040 > < FCFC >
endcodespacerange
1  beginnotdefrange
< 00 >
< 1F >
231
endnotdefrange
100  begincidrange
< 20 >
< 7D >
231
< 7E >
< 7E >
631
< 8140 > < 817E > 633
< 8180 > < 81AC > 696
< 81B8 > < 81BF > 741
< 81C8 > < 81CE > 749
… Additional ranges …
< FB40 > < FB7E > 8518
< FB80 > < FBFC > 8581
< FC40 > < FC4B > 8706
endcidrange
endcmap
CMapName  currentdict  /CMap  defineresource  pop
end
end
%%EndResource
%%EOF
endstream
endobj
9.7.6
Type 0 Font Dictionaries
9.7.6.1 General
A Type 0 font dictionary contains the entries listed in Table 121. 
Table 121 –  Entries in a Type 0 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 Type0 for a Type 0 font. 
BaseFont
name
(Required) The name of the font. If the descendant is a Type 0 
CIDFont,  this  name  should  be  the  concatenation  of  the  CIDFont’s 
BaseFont name, a hyphen, and the CMap name given in the 
Encoding entry (or the  CMapName entry in the CMap). If the 
descendant is a Type 2 CIDFont, this name should be the same as the 
CIDFont’s BaseFont name. 
NOTE
In principle, this is an arbitrary name, since there is no 
font  program  associated  directly  with  a  Type  0  font 
dictionary.  The  conventions  described  here  ensure 
maximum compatibility with existing readers. 
Encoding
name or 
stream
(Required) The
name of a predefined CMap, or a stream containing a 
CMap  that maps character  codes to font  numbers  and CIDs. If  the 
descendant  is  a  Type  2  CIDFont  whose  associated  TrueType  font 
program is not embedded in the PDF file, the Encoding entry shall be 
a predefined CMap name (see 9.7.4.2, "Glyph Selection in CIDFonts"). 
PDF 32000-1:2008
280
© 
Adobe Systems Incorporated 2008 – All rights reserved
EXAMPLE
This code sample shows a Type 0 font.
14  0  obj
<<   /Type  /Font
/Subtype  /Type0
/BaseFont  /HeiseiMin-W5-90ms-RKSJ-H
/Encoding  /90ms-RKSJ-H
/DescendantFonts  [ 15 0 R ]
>>
endobj
9.7.6.2
CMap Mapping
The Encoding entry of a Type 0 font dictionary specifies a CMap that specifies how text-showing operators 
(such as Tj) shall interpret the bytes in the string to be shown when the current font is the Type 0 font. This sub-
clause describes how the characters in the string shall be decoded and mapped into character selectors, which 
in PDF are always CIDs. 
The codespace ranges in the CMap (delimited by begincodespacerange and endcodespacerange) specify 
how many bytes are extracted from the string for each successive character code. A codespace range shall be 
specified by a pair of codes of some particular length giving the lower and upper bounds of that range. A code 
shall be considered to match the range if it is the same length as the bounding codes and the value of each of 
its bytes lies between the corresponding bytes of the lower and upper bounds. The code length shall not be 
greater than 4. 
A sequence of one or more bytes shall be extracted from the string and matched against the codespace ranges 
in the CMap. That is, the first byte shall be matched against 1-byte codespace ranges; if no match is found, a 
second byte shall be extracted, and the 2-byte code shall be matched against 2-byte codespace ranges. This 
process continues for successively longer codes until a match is found or all codespace  ranges  have  been 
tested. There will be at most one match because codespace ranges shall not overlap. 
The code extracted from the string shall be looked up in the character code mappings for codes of that length. 
(These are the mappings defined by beginbfcharendbfcharbegincidcharendcidchar, and corresponding 
operators for ranges.) Failing that, it shall be looked up in the notdef mappings, as described in the next sub-
clause. 
The results of the CMap mapping algorithm are a font number and a character selector. The font number shall 
be  used  as  an index  into  the  Type  0  font’s DescendantFonts  array  to  select  a CIDFont. In PDF,  the  font 
number shall be 0 and the character selector shall be a CID; this is the only case described here. The CID shall 
then  be  used  to  select  a  glyph  in  the  CIDFont.  If  the  CIDFont  contains  no  glyph  for  that  CID,  the notdef 
mappings shall be consulted, as described in 9.7.6.3, "Handling Undefined Characters". 
9.7.6.3
Handling Undefined Characters
A CMap mapping operation can fail to select a glyph for a variety of reasons. This sub-clause describes those 
reasons and what happens when they occur. 
If a code maps to a CID for which no such glyph exists in the descendant CIDFont, the notdef mappings in the 
CMap  shall  be  consulted  to  obtain  a  substitute  character  selector.  These  mappings  are  delimited  by  the 
DescendantFonts
array
(Required) A one-element array specifying the CIDFont dictionary that 
is the descendant of this Type 0 font. 
ToUnicode
stream
(Optional) A stream containing a CMap file that maps character codes 
to Unicode values (see 9.10, "Extraction of Text Content"). 
Table 121 –  Entries in a Type 0 font dictionary  (continued)
Key
Type
Value
© 
Adobe Systems Incorporated 2008 – All rights reserved
281
PDF 32000-1:2008
operators beginnotdefcharendnotdefcharbeginnotdefrange, and endnotdefrange within an  embedded 
CMap file. They shall always map to a CID. If a matching notdef mapping is found, the CID selects a glyph in 
the associated descendant, which shall be a CIDFont. If no glyph exists for that CID, the glyph for CID 0 (which 
shall be present) shall be substituted. 
NOTE 5
The notdef mappings are similar to the . notdef character mechanism in simple fonts.
If the CMap does not contain either a character mapping or a notdef mapping for the code, descendant 0 shall 
be selected and the glyph for CID 0 shall be substituted from the associated CIDFont. 
If the  code is invalid—that  is, the bytes extracted from the  string to be shown do not match any codespace 
range in the CMap—a substitute glyph is chosen as just described. The character mapping algorithm shall be 
reset to its original position in the string, and a modified mapping algorithm chooses the best partially matching 
codespace range: 
a) If the first byte extracted from the string to be shown does not match the first byte of any codespace range, 
the range having the shortest codes shall be chosen. 
b) Otherwise (that is, if there is a partial match), for each additional byte extracted, the code accumulated so 
far shall be matched against the beginnings of all longer codespace ranges until the longest such partial 
match has been found. If multiple codespace ranges  have partial matches of the  same length,  the one 
having the shortest codes shall be chosen. 
The length of the codes in the chosen codespace range determines the total number of bytes to consume from 
the string for the current mapping operation. 
9.8 Font Descriptors
9.8.1
General
font descriptor specifies metrics and other attributes of a simple font or a CIDFont as a whole, as distinct from 
the metrics of individual glyphs. These font metrics provide information that enables a conforming reader to 
synthesize a substitute font or select a similar font when the font program is unavailable. The font descriptor 
may also be used to embed the font program in the PDF file. 
Font descriptors shall not be used with Type 0 fonts. Beginning with PDF 1.5, font descriptors may be used with 
Type 3 fonts. 
A font descriptor is a dictionary whose entries specify various font attributes. The entries common to all font 
descriptors—for  both  simple  fonts  and  CIDFonts—are  listed  in  Table 122.  Additional  entries  in  the  font 
descriptor for a CIDFont are described in 9.8.3, "Font Descriptors for CIDFonts". All integer values shall be 
units in glyph space. The conversion from glyph space to text space is described in 9.2.4, "Glyph Positioning 
and Metrics". 
Table 122 –  Entries common to all font descriptors  
Key
Type
Value
Type
name
(Required) The type of PDF object that this dictionary describes; shall 
be FontDescriptor for a font descriptor. 
FontName
name
(Required) The PostScript name of the font. This name shall be the 
same as the value of BaseFont in the font or CIDFont dictionary that 
refers to this font descriptor. 
FontFamily
byte string
(Optional; PDF 1.5; should be used for Type 3 fonts in Tagged PDF 
documents) A byte string specifying the preferred font family name. 
EXAMPLE 1
For  the  font  Times  Bold  Italic,  the FontFamily  is 
Times. 
PDF 32000-1:2008
282
© 
Adobe Systems Incorporated 2008 – All rights reserved
FontStretch
name
(Optional; PDF 1.5; should be used for Type 3 fonts in Tagged PDF 
documents) The font stretch value. It shall be one of these names 
(ordered 
from 
narrowest  to 
widest): 
UltraCondensed, 
ExtraCondensed, 
Condensed, 
SemiCondensed, 
Normal, 
SemiExpanded, Expanded, ExtraExpanded or UltraExpanded. 
The specific interpretation of these values varies from font to font. 
EXAMPLE 2
Condensed in one font may appear most similar to 
Normal in another.
FontWeight
number
(Optional; PDF 1.5; should be used for Type 3 fonts in Tagged PDF 
documents) The weight (thickness) component of the fully-qualified 
font name or font specifier. The possible values shall be 100, 200, 300, 
400,  500,  600,  700,  800,  or  900,  where  each  number  indicates  a 
weight that is at least as dark as its predecessor. A value of 400 shall 
indicate a normal weight; 700 shall indicate bold.
The specific interpretation of these values varies from font to font. 
EXAMPLE 3
300 in one font may appear most similar to 500 in 
another.
Flags
integer
(Required) A collection of flags defining various characteristics of the 
font (see 9.8.2, "Font Descriptor Flags"). 
FontBBox
rectangle
(Required,  except  for  Type  3  fonts) A rectangle (see 7.9.5, 
"Rectangles"), expressed  in  the glyph  coordinate  system,  that  shall 
specify the font bounding box . This should be 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. 
ItalicAngle
number
(Required) The angle, expressed in degrees counterclockwise from 
the vertical, of the dominant vertical strokes of the font. 
EXAMPLE 4
The  9-o’clock  position  is  90  degrees,  and  the  3-
o’clock position is –90 degrees. 
The value shall be negative for fonts that slope to the right, as almost 
all italic fonts do.
Ascent
number
(Required, except for Type 3 fonts) The maximum height above the 
baseline  reached  by  glyphs  in  this  font.  The  height  of  glyphs  for 
accented characters shall be excluded. 
Descent
number
(Required, except for  Type  3  fonts) The maximum depth below the 
baseline reached by glyphs in this font. The value shall be a negative 
number. 
Leading
number
(Optional) The spacing between baselines of consecutive lines of text. 
Default value: 0. 
CapHeight
number
(Required for fonts that have Latin characters, except for Type 3 fonts)
The vertical coordinate of the top of flat capital letters, measured from 
the baseline. 
XHeight
number
(Optional) The font’s x height: the vertical coordinate of the top of flat 
nonascending lowercase letters (like the letter x), measured from the 
baseline, in fonts that have Latin characters. Default value: 0. 
StemV
number
(Required,  except  for  Type  3  fonts) The thickness, measured 
horizontally, of the dominant vertical stems of glyphs in the font. 
StemH
number
(Optional) The thickness, measured vertically, of the dominant 
horizontal stems of glyphs in the font. Default value: 0. 
Table 122 –  Entries common to all font descriptors  (continued)
Key
Type
Value
Documents you may be interested
Documents you may be interested