pdf viewer control in asp net c# : Add image in pdf using java software application dll windows html wpf web forms PDF32000_200829-part2346

© 
Adobe Systems Incorporated 2008 – All rights reserved
283
PDF 32000-1:2008
At most, only one of the FontFile, FontFile2, and FontFile3 entries shall be present.
9.8.2
Font Descriptor Flags
The value of the Flags entry in a font descriptor shall be an unsigned 32-bit integer containing flags specifying 
various  characteristics of the  font. Bit positions within  the  flag word  are numbered  from  1 (low-order) to  32 
(high-order). Table 123 shows the meanings of the flags; all undefined flag bits are reserved and shall be set to 
0 by conforming writers. Figure 48 shows examples of fonts with these characteristics. 
AvgWidth
number
(Optional) The average width of glyphs in the font. Default value: 0. 
MaxWidth
number
(Optional) The maximum width of glyphs in the font. Default value: 0. 
MissingWidth
number
(Optional) The width to use for character codes whose widths are not 
specified  in  a  font  dictionary’s Widths  array.  This  shall  have  a 
predictable effect only if all such codes map to glyphs whose actual 
widths are the same as the value of the MissingWidth entry. Default 
value: 0. 
FontFile
stream
(Optional) A stream containing a Type 1 font program (see 9.9, 
"Embedded Font Programs"). 
FontFile2
stream
(Optional; PDF 1.1) A stream containing a TrueType font program (see 
9.9, "Embedded Font Programs"). 
FontFile3
stream
(Optional; PDF 1.2) A stream containing a font program whose format 
is  specified  by  the Subtype  entry  in  the  stream  dictionary  (see 
Table 126). 
CharSet
ASCII string 
or 
byte 
string
(Optional; meaningful only in Type 1 fonts; PDF 1.1) A string listing the 
character  names defined in a font subset. The names  in this string 
shall be in PDF syntax—that is, each name preceded by a slash (/). 
The  names  may  appear  in  any  order.  The  name  . notdef  shall  be 
omitted; it shall exist in the font subset. If this entry is absent, the only 
indication of a font subset shall be the subset tag in the FontName
entry (see 9.6.4, "Font Subsets"). 
Table 123 –  Font flags  
Bit position
Name
Meaning
1
FixedPitch
All  glyphs  have  the  same  width  (as  opposed  to  proportional  or 
variable-pitch fonts, which have different widths). 
2
Serif
Glyphs have serifs, which are short strokes drawn at an angle on the 
top and bottom of glyph stems. (Sans serif fonts do not have serifs.) 
3
Symbolic
Font contains glyphs outside the Adobe standard Latin character set. 
This flag and the Nonsymbolic flag shall not both be set or both be 
clear. 
4
Script
Glyphs resemble cursive handwriting. 
6
Nonsymbolic
Font uses the Adobe standard Latin character set or a subset of it. 
7
Italic
Glyphs have dominant vertical strokes that are slanted. 
17
AllCap
Font contains no lowercase letters; typically used for display purposes, 
such as for titles or headlines. 
Table 122 –  Entries common to all font descriptors  (continued)
Key
Type
Value
Add image in pdf using java - 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 image to pdf in acrobat; add image to pdf file acrobat
Add image in pdf using java - 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
how to add an image to a pdf in acrobat; add jpg signature to pdf
PDF 32000-1:2008
284
© 
Adobe Systems Incorporated 2008 – All rights reserved
The Nonsymbolic flag (bit 6 in the Flags entry) indicates that the font’s character set is the Adobe standard 
Latin character set (or a subset of it) and that it uses the standard names for those glyphs. This character set is 
shown  in  D.2,  "Latin  Character  Set  and  Encodings".  If  the  font  contains  any  glyphs  outside  this  set,  the 
Symbolic flag shall be set and the Nonsymbolic flag shall be clear. In other words, any font whose character set 
is not a subset of the Adobe standard  character set shall be considered to be symbolic. This influences the 
font’s implicit base encoding and may affect a conforming reader’s font substitution strategies. 
Figure 48 –  Characteristics represented in the Flags entry of a font descriptor
NOTE 1
This  classification  of  nonsymbolic  and  symbolic  fonts  is  peculiar  to  PDF.  A  font  may  contain  additional 
characters that are used in Latin writing systems but are outside the Adobe standard Latin character set; PDF 
considers such a font to be symbolic. The use of two flags to represent a single binary choice is a historical 
accident. 
The ForceBold flag (bit 19) shall determine whether bold glyphs shall be painted with extra pixels even at very 
small text sizes by a conforming reader. If the ForceBold flag is set, features of bold glyphs may be thickened at 
small text sizes. 
NOTE 2
Typically, when  glyphs are painted at small sizes on very low-resolution devices such  as display screens, 
features of bold glyphs may appear only 1 pixel wide. Because this is the minimum feature width on a pixel-
based  device,  ordinary  (nonbold)  glyphs  also  appear  with  1-pixel-wide  features  and  therefore  cannot  be 
distinguished from bold glyphs. 
18
SmallCap
Font contains both uppercase and lowercase letters. The uppercase 
letters are similar to those in the regular version of the same typeface 
family. The glyphs for the lowercase letters have the same shapes as 
the  corresponding  uppercase  letters,  but  they  are  sized  and  their 
proportions  adjusted  so  that  they  have  the  same  size  and  stroke 
weight as lowercase glyphs in the same typeface family. 
19
ForceBold
See description after Note 1 in this sub-clause. 
Table 123 –  Font flags  (continued)
Bit position
Name
Meaning
The quick brown fox jumped.
The quick brown fox jumped.
The quick brown fox jumped.
✴❈❅ ❑◆❉❃❋ ❂❒❏◗■ ❆❏❘ ❊◆❍❐❅❄✎
The quick brown fox jumped.
The quick brown fox jumped.
The quick brown fox jumped
The quick brown fox jumped.
Fixed-pitch font
Serif font
Sans serif font
Symbolic font
Script font
Italic font
All-cap font
Small-cap font
Java Imaging SDK Library: Document Image Scan, Process, PDF
imaging solutions, allowing developers to add document and Using RasterEdge Java Image SDK, developers can easily open Tiff, Jpeg2000, DICOM, JBIG2, PDF, MS Word
add a picture to a pdf; adding images to pdf
DocImage SDK for .NET: HTML Viewer, View, Annotate, Convert, Print
in .NET, including Microsoft Word, Excel, PPT, PDF, Tiff, Dicom OCR .NET OCR Add-on provides you with powerful and of years before I found this .NET Image SDK.
add png to pdf preview; add photo to pdf file
© 
Adobe Systems Incorporated 2008 – All rights reserved
285
PDF 32000-1:2008
EXAMPLE
This  code  sample  illustrates  a  font  descriptor  whose  Flags  entry  has  the  Serif,  Nonsymbolic,  and 
ForceBold flags (bits 2, 6, and 19) set. 
7  0  obj
<<   /Type  /FontDescriptor
/FontName  /AGaramond-Semibold
/Flags  262178
% Bits 2, 6, and 19
/FontBBox  [ 
177 
269  1123  866 ]
/MissingWidth  255
/StemV  105
/StemH  45
/CapHeight  660
/XHeight  394
/Ascent  720
/Descent 
270
/Leading  83
/MaxWidth  1212
/AvgWidth  478
/ItalicAngle  0
>>
endobj
9.8.3
Font Descriptors for CIDFonts
9.8.3.1 General
In addition to the entries in Table 122, the FontDescriptor dictionaries of CIDFonts may contain the entries 
listed in Table 124. 
9.8.3.2 Style
The Style dictionary contains entries that define style attributes and values for the CIDFont. Only the Panose
entry is defined. The value of Panose shall be a 12-byte string consisting of these elements: 
Table 124 –  Additional font descriptor entries for CIDFonts  
Key
Type
Value
Style
dictionary
(Optional) A dictionary containing entries that describe the style of the glyphs in 
the font (see 9.8.3.2, "Style"). 
Lang
name
(Optional; PDF 1.5) A name specifying the language of the font, which may be 
used for encodings where the language is not implied by the encoding itself. 
The value shall be one of the codes defined by Internet RFC 3066, Tags for the 
Identification of Languages or (PDF 1.0) 2-character language codes defined 
by ISO 639 (see the Bibliography). If this entry is absent, the language shall be 
considered to be unknown.
FD
dictionary
(Optional) A dictionary whose keys identify a class of glyphs in a CIDFont. 
Each  value  shall  be  a  dictionary  containing  entries  that  shall  override  the 
corresponding values in  the  main font descriptor dictionary for that  class of 
glyphs (see 9.8.3.3, "FD"). 
CIDSet
stream
(Optional) A stream identifying which CIDs are present in the CIDFont file. If 
this entry is present, the CIDFont shall contain only a subset of the glyphs in 
the  character  collection  defined  by  the CIDSystemInfo  dictionary.  If  it  is 
absent, the only indication of a CIDFont subset shall be the subset tag in the 
FontName entry (see 9.6.4, "Font Subsets"). 
The stream’s data shall be organized as a table of bits indexed by CID. The bits 
shall be stored in bytes with the high-order bit first. Each bit shall correspond to 
a CID. The most significant bit of the first byte shall correspond to CID 0, the 
next bit to CID 1, and so on. 
DocImage SDK for .NET: Document Imaging Features
6 (OJPEG) encoding Image only PDF encoding support. or lossy compression JPEG 2000 Codec Add-on: Capable and encoding JPEG 2000 image using wavelet compression
add an image to a pdf in preview; how to add a jpg to a pdf
VB.NET Image: .NET Image SDK for Image Viewing, Processing &
Deploy .NET Image SDK in VB, VB.NET Project for Barcode PDF Processing in VB.NET, VB.NET Project for Barcode Use powerful imaging SDK & add-ons to make your
add signature image to pdf acrobat; add a jpg to a pdf
PDF 32000-1:2008
286
© 
Adobe Systems Incorporated 2008 – All rights reserved
The  font  family  class  and  subclass  ID  bytes,  given  in  the  sFamilyClass  field  of  the  “OS/2”  table  in  a 
TrueType font. This field is documented in Microsoft’s TrueType 1.0 Font Files Technical Specification
Ten  bytes  for  the  PANOSE  classification  number  for  the  font.  The  PANOSE  classification  system  is 
documented in Hewlett-Packard Company’s PANOSE Classification Metrics Guide
See the Bibliography for more information about these documents. 
EXAMPLE
This is an example of a Style entry in the font descriptor: 
/Style  <<  /Panose  < 01  05  02  02  03  00  00  00  00  00  00  00 >  >>
9.8.3.3
FD
A CIDFont may be made up of different classes of glyphs, each class requiring different sets of the font-wide 
attributes that appear in font descriptors.
EXAMPLE 1
Latin glyphs, for example, may require different attributes than kanji glyphs. 
The font descriptor shall define a set of default attributes that apply to all glyphs in the CIDFont. The FD entry in 
the font descriptor shall contain exceptions to these defaults. 
The key for each entry in an FD dictionary shall be the name of a class of glyphs—that is, a particular subset of 
the CIDFont’s character collection. The entry’s value shall be a font descriptor whose contents shall override 
the font-wide attributes for that class only. This font descriptor shall contain entries for metric information only; it 
shall not include FontFile, FontFile2FontFile3, or any of the entries listed in Table 122. 
The FD dictionary should contain at least the metrics for the proportional Latin glyphs. With the information for 
these glyphs, a more accurate substitution font can be created. 
The names of the glyph classes depend on the character collection, as identified by the Registry, Ordering
and Supplement entries in the CIDSystemInfo dictionary. Table 125 lists the valid keys for the Adobe-GB1, 
Adobe-CNS1, Adobe-Japan1, Adobe-Japan2, and Adobe-Korea1 character collections.
C# PowerPoint: Read, Decode & Scan Barcode Image from PowerPoint
C# PowerPoint: Decode PDF-417 Barcode Image, C# SDK, C# PowerPoint: ITF-14 Barcode Scanning Add-on. decode Intelligent Mail linear barcode image from PowerPoint
add png to pdf preview; adding jpg to pdf
.NET Excel Document Add-on | Manipulate Excel File in .NET
to convert Excel to PNG, JPEG, BMP, and GIF image formats, and to TIFF, PDF and SVG functions of this DLL, .NET programmers also need to add .NET Basic DLL
add a picture to a pdf file; how to add an image to a pdf in reader
© 
Adobe Systems Incorporated 2008 – All rights reserved
287
PDF 32000-1:2008
Table 125 –  Glyph classes in CJK fonts  
Character Collection
Class
Glyphs in Class
Adobe-GB1
Alphabetic
Dingbats
Generic
Hanzi
HRoman
HRomanRot
Kana
Proportional
ProportionalRot
Full-width Latin, Greek, and Cyrillic glyphs
Special symbols
Typeface-independent glyphs, such as line-drawing 
Full-width hanzi (Chinese) glyphs 
Half-width Latin glyphs 
Same as HRoman but rotated for use in vertical writing 
Japanese kana (katakana and hiragana) glyphs 
Proportional Latin glyphs 
Same  as Proportional  but  rotated  for  use  in  vertical 
writing 
Adobe-CNS1
Alphabetic
Dingbats
Generic
Hanzi
HRoman
HRomanRot
Kana
Proportional
ProportionalRot
Full-width Latin, Greek, and Cyrillic glyphs 
Special symbols 
Typeface-independent glyphs, such as line-drawing 
Full-width hanzi (Chinese) glyphs 
Half-width Latin glyphs 
Same as HRoman but rotated for use in vertical writing 
Japanese kana (katakana and hiragana) glyphs 
Proportional Latin glyphs 
Same  as Proportional  but  rotated  for  use  in  vertical 
writing 
Adobe-Japan1
Alphabetic
AlphaNum
Dingbats
DingbatsRot
Generic
GenericRot
HKana
HKanaRot
HRoman
HRomanRot
Kana
Kanji
Proportional
ProportionalRot
Ruby
Full-width Latin, Greek, and Cyrillic glyphs 
Numeric glyphs 
Special symbols 
Same as Dingbats but rotated for use in vertical writing 
Typeface-independent glyphs, such as line-drawing 
Same as Generic but rotated for use in vertical writing 
Half-width kana (katakana and hiragana) glyphs 
Same as HKana but rotated for use in vertical writing 
Half-width Latin glyphs 
Same as HRoman but rotated for use in vertical writing 
Full-width kana (katakana and hiragana) glyphs 
Full-width kanji (Chinese) glyphs 
Proportional Latin glyphs 
Same  as Proportional  but  rotated  for  use  in  vertical 
writing 
Glyphs used for  setting ruby (small glyphs that serve to 
annotate other glyphs with meanings or readings) 
Adobe-Japan2
Alphabetic
Dingbats
HojoKanji
Full-width Latin, Greek, and Cyrillic glyphs 
Special symbols 
Full-width kanji glyphs 
DICOM Image Viewer| What is DICOM
RasterEdge .NET Imaging SDK, you may add it on formats, including Bitmap, Png, Gif, Tiff, PDF, MS-Word NET sample codings are provided for image conversion if
adding an image to a pdf in acrobat; add photo to pdf
.NET Word Document Add-on DLL of RasterEdge DocImage SDK for .NET
any page of Word document to raster image file (PNG and convert Word to other documents, like PDF, TIFF and be ordered for using .NET Word Document Add-on for
acrobat insert image in pdf; how to add photo to pdf in preview
PDF 32000-1:2008
288
© 
Adobe Systems Incorporated 2008 – All rights reserved
EXAMPLE 2
This example illustrates an FD  dictionary containing two entries.
/FD   <<   /Proportional  25 0 R
 /HKana  26 0 R
>>
25  0  obj
<<   /Type  /FontDescriptor
/FontName  /HeiseiMin-W3-Proportional
/Flags  2
/AvgWidth  478
/MaxWidth  1212
/MissingWidth  250
/StemV  105
/StemH  45
/CapHeight  660
/XHeight  394
/Ascent  720
/Descent 
270
/Leading  83
>>
endobj
26  0  obj
<<  /Type  /FontDescriptor
/FontName  /HeiseiMin-W3-HKana
/Flags  3
/AvgWidth  500
/MaxWidth  500
/MissingWidth  500
/StemV  50
/StemH  75
/Ascent  720
/Descent  0
/Leading  83
>>
endobj
9.9
Embedded Font Programs
A font program may be embedded in a PDF file as data contained in a PDF stream object. 
NOTE 1
Such a stream object is also called a font file  by analogy with font programs that are available from sources 
external to the conforming writer. 
Adobe-Korea1
Alphabetic
Dingbats
Generic
Hangul
Hanja
HRoman
HRomanRot
Kana
Proportional
ProportionalRot
Full-width Latin, Greek, and Cyrillic glyphs 
Special symbols 
Typeface-independent glyphs, such as line-drawing 
Hangul and jamo glyphs 
Full-width hanja (Chinese) glyphs 
Half-width Latin glyphs 
Same as HRoman but rotated for use in vertical writing 
Japanese kana (katakana and hiragana) glyphs 
Proportional Latin glyphs 
Same  as Proportional  but  rotated  for  use  in  vertical 
writing 
Table 125 –  Glyph classes in CJK fonts  (continued)
Character Collection
Class
Glyphs in Class
Guide for ASP.NET Barcode Web Server Control
Open your project using Visual Studio, and add DLL to the You can also Add VB.NET to the Web Forms: Dim pages; Confirm the barcode and insert a image tag (img
adding images to a pdf document; add image to pdf preview
.NET PowerPoint Add-on |PowerPoint Document Imaging in .NET
Support loading a PowerPoint (.pptx) file using Visual C# or JPEG, BMP and GIF) and other documents (PDF, TIFF and both .NET Core SDK and .NET PowerPoint Add-on
how to add image to pdf file; add picture to pdf reader
© 
Adobe Systems Incorporated 2008 – All rights reserved
289
PDF 32000-1:2008
Font programs are subject to copyright, and the copyright owner may impose conditions under which a font 
program may  be  used.  These permissions  are recorded either in the font program or as part of a separate 
license. One of the conditions may be that the font program cannot be embedded, in which case it should not 
be  incorporated into a PDF file. A  font program may allow  embedding for the sole purpose  of viewing and 
printing the document but not for creating new or modified text that uses the font (in either the same document 
or other documents). The latter operation would require the user performing the operation to have a licensed 
copy of the font program, not a copy extracted from the PDF file. In the absence of explicit information to the 
contrary, embedded font programs shall be used only to view and print the  document and not for any other 
purposes. 
Table 126 summarizes the ways in which font programs shall be embedded in a PDF file, depending on the 
representation of the font program. The key shall be the name used in the font descriptor to refer to the font file 
stream; the subtype shall be the value of the Subtype key, if present, in the font file stream dictionary. Further 
details of specific font program representations are given below. 
Table 126 –  Embedded font organization for various font types  
Key
Subtype
Description
FontFile
Type 1 font program, in the original (noncompact) format described 
in Adobe Type 1 Font Format. This entry may appear in the font 
descriptor for a Type1 or MMType1 font dictionary. 
FontFile2
(PDF 1.1) TrueType font program, as described in the  TrueType 
Reference Manual. This entry may appear in the font descriptor for 
TrueType  font  dictionary  or  (PDF 1.3)  for  a CIDFontType2
CIDFont dictionary. 
FontFile3
Type1C
(PDF 1.2) Type 1–equivalent font program represented in the 
Compact Font Format (CFF), as described in Adobe Technical Note 
#5176, The Compact Font Format Specification.  This  entry  may 
appear  in  the  font  descriptor  for  a Type1  or MMType1  font 
dictionary. 
FontFile3
CIDFontType0C
(PDF 1.3) Type 0 CIDFont program represented in the Compact 
Font Format (CFF), as described in Adobe Technical Note #5176, 
The Compact Font Format Specification. This entry may appear in 
the font descriptor for a CIDFontType0 CIDFont dictionary. 
PDF 32000-1:2008
290
© 
Adobe Systems Incorporated 2008 – All rights reserved
The stream dictionary for a font file shall contain the normal entries for a stream, such as Length and Filter
(listed in Table 5), plus the additional entries listed in Table 127. 
NOTE 2
A standard Type 1 font program, as described in the Adobe Type 1 Font Format specification, consists of three 
parts: a clear-text portion (written using PostScript syntax), an encrypted portion, and a fixed-content portion. 
The fixed-content portion contains 512 ASCII zeros followed by a cleartomark operator, and perhaps followed 
FontFile3
OpenType
(PDF 1.6) OpenType® font program, as described in the OpenType 
Specification  v.1.4 (see the Bibliography). OpenType is an 
extension of TrueType that allows inclusion of font programs that 
use the Compact Font Format (CFF). 
FontFile3 entry with an OpenType subtype may appear in the 
font descriptor for these types of font dictionaries:
• A TrueType  font  dictionary  or  a CIDFontType2  CIDFont 
dictionary, if the embedded font program contains a “glyf” table. 
In  addition  to  the  “glyf”  table,  the  font  program  must  include 
these  tables:  “head”,  “hhea”, “hmtx”,  “loca”,  and  “maxp”.  The 
“cvt  ” (notice the trailing SPACE), “fpgm”, and “prep” tables must 
also be included if they are required by the font instructions.
• A CIDFontType0  CIDFont  dictionary,  if  the  embedded  font 
program contains a “CFF  ” table (notice the trailing SPACE) with 
a Top DICT that uses CIDFont operators (this is equivalent to 
subtype CIDFontType0C). In addition to the “CFF  ” table, the 
font program must include the “cmap” table.
• A Type1 font dictionary or CIDFontType0 CIDFont dictionary, if 
the  embedded  font  program  contains  a  “CFF  ”  table  without 
CIDFont  operators.  In  addition  to  the  “CFF  ”  table,  the  font 
program must include the “cmap” table.
The OpenType Specification  describes  a  set  of  required  tables; 
however, not all tables are required in the font file, as described for 
each type of font dictionary that can include this entry. 
NOTE
The absence of some optional tables (such as those 
used for advanced line layout) may prevent editing of 
text containing the font.
Table 127 –  Additional entries in an embedded font stream dictionary  
Key
Type
Value
Length1
integer
(Required  for  Type  1  and  TrueType  fonts) The length in bytes of the clear-text 
portion of the Type 1 font program, or the entire TrueType font program, after it has 
been decoded using the filters specified by the stream’s Filter entry, if any. 
Length2
integer
(Required for Type 1 fonts) The length in bytes of the encrypted portion of the Type 
1 font program after it has been decoded using the filters specified by the stream’s 
Filter entry. 
Length3
integer
(Required for Type 1 fonts) The length in bytes of the fixed-content portion of the 
Type 1 font  program after it  has been decoded using the filters specified by the 
stream’s Filter  entry.  If Length3  is  0,  it  indicates  that  the  512  zeros  and 
cleartomark have not been included in the FontFile font program and shall be 
added by the conforming reader. 
Subtype
name
(Required if referenced from FontFile3; PDF 1.2) A name specifying the format of 
the embedded font program. The name shall be Type1C for Type 1 compact fonts, 
CIDFontType0C for Type 0 compact CIDFonts, or OpenType for OpenType fonts. 
Metadata
stream
(Optional; PDF 1.4) A metadata stream containing metadata for the embedded font 
program (see 14.3.2, "Metadata Streams"). 
Table 126 –  Embedded font organization for various font types  (continued)
Key
Subtype
Description
© 
Adobe Systems Incorporated 2008 – All rights reserved
291
PDF 32000-1:2008
by  additional  data.  Although  the encrypted  portion  of  a  standard Type  1 font  may be in  binary  or ASCII 
hexadecimal format, PDF supports only the binary format. However, the entire font program may be encoded 
using any filters. 
EXAMPLE
This code shows the structure of an embedded standard Type 1 font. 
12  0  obj
<<   /Filter  /ASCII85Decode
/Length  41116
/Length1  2526
/Length2  32393
/Length3  570
>>
stream
,p>`rDKJj'E+LaU0eP.@+AH9dBOu$hFD55nC
… Omitted data …
JJQ&Nt')<=^p&mGf(%:%h1%9c//K(/*o=.C>UXkbVGTrr~>
endstream
endobj
As noted in Table 126, a Type 1–equivalent font program or a Type 0 CIDFont program may be represented in 
the Compact Font Format (CFF). The Length1Length2, and Length3 entries are not needed in that case and 
shall not be present.  Although CFF  enables  multiple font or CIDFont programs to  be  bundled together  in a 
single file, an embedded CFF font file in PDF shall consist of exactly one font or CIDFont (as appropriate for the 
associated font dictionary). 
According to the Adobe Type 1 Font Format specification, a Type 1 font program may contain a PaintType
entry specifying whether the glyphs’ outlines are to be filled or stroked. For fonts embedded in a PDF file, this 
entry shall be ignored; the decision whether to fill or stroke glyph outlines is entirely determined by the PDF text 
rendering mode parameter (see 9.3.6, "Text Rendering Mode"). This shall also applies to Type 1 compact fonts 
and Type 0 compact CIDFonts. 
A TrueType font program may be used as part of either a font or a CIDFont. Although the basic font file format 
is the same  in both cases, there are different  requirements for what information shall  be  present in  the font 
program. These  TrueType  tables  shall  always  be present  if  present in  the  original  TrueType  font  program: 
“head”, “hhea”, “loca”, “maxp”, “cvt”, “prep”, “glyf”, “hmtx”, and “fpgm”. If used with a simple font dictionary, the 
font program shall additionally contain a cmap table defining one or more encodings, as discussed in 9.6.6.4, 
"Encodings for TrueType Fonts". If used with a CIDFont dictionary, the cmap table is not needed and shall not 
be present, since the mapping from character codes to glyph descriptions is provided separately. 
The “vhea” and “vmtx” tables that specify vertical metrics shall never be used by a conforming reader. The only 
way to specify vertical metrics in PDF shall be by means of the DW2 and W2 entries in a CIDFont dictionary. 
NOTE 3
Beginning with PDF 1.6, font programs may be embedded using the OpenType format, which is an extension 
of the TrueType format that allows inclusion of font programs using the Compact Font Format (CFF). It also 
allows inclusion  of data  to describe glyph  substitutions, kerning, and  baseline adjustments. In  addition  to 
rendering  glyphs,  conforming  readers  may  use  the  data  in  OpenType  fonts  to  do  advanced  line  layout, 
automatically substitute ligatures, provide selections of alternate glyphs to users, and handle complex writing 
scripts.
The process of finding glyph descriptions in OpenType fonts by a conforming reader shall be the following: 
For Type 1 fonts using “CFF” tables, the process shall be as described in 9.6.6.2, "Encodings for Type 1 
Fonts".
For  TrueType  fonts  using  “glyf”  tables,  the  process  shall  be  as  described  in  9.6.6.4,  "Encodings  for 
TrueType Fonts". Since this process sometimes produces ambiguous results, conforming writers, instead 
of using a simple font, shall use a Type 0 font with an Identity-H encoding and use the glyph indices as 
character codes, as described following Table 118.
PDF 32000-1:2008
292
© 
Adobe Systems Incorporated 2008 – All rights reserved
For CIDFontType0  fonts  using  “CFF”  tables,  the  process  shall  be  as  described  in  the  discussion  of 
embedded Type 0 CIDFonts in 9.7.4.2, "Glyph Selection in CIDFonts".
For CIDFontType2  fonts  using  “glyf”  tables,  the  process  shall  be  as  described  in  the  discussion  of 
embedded Type 2 CIDFonts in 9.7.4.2, "Glyph Selection in CIDFonts". 
As discussed in 9.6.4, "Font Subsets", an embedded font program may contain only the subset of glyphs that 
are used in the PDF document. This may be indicated by the presence of a CharSet or CIDSet entry in the font 
descriptor that refers to the font file. 
9.10 Extraction of Text Content
9.10.1
General
The preceding sub-clauses describe all the facilities for showing text and causing glyphs to be painted on the 
page. In addition to displaying text, conforming readers sometimes need to determine the information content 
of text—that  is, its meaning according to  some standard character identification as opposed to  its rendered 
appearance. This need arises during operations such as searching, indexing, and exporting of text to other file 
formats. 
The Unicode standard defines a system for numbering all of the common characters used in a large number of 
languages. It is a suitable scheme for representing the information content of text, but not its appearance, since 
Unicode values identify characters, not glyphs. For information about Unicode, see the Unicode Standard by 
the Unicode Consortium (see the Bibliography). 
When extracting character content, a conforming reader can easily convert text to Unicode values if a font’s 
characters are identified according to a standard character set that is known to the  conforming reader. This 
character identification can occur if either the font uses a standard named encoding or the characters in the 
font are identified by standard character names or CIDs in a well-known collection. 9.10.2, "Mapping Character 
Codes to Unicode Values", describes in detail the overall algorithm for mapping character codes to Unicode 
values. 
If  a font is  not  defined  in  one  of  these ways,  the glyphs  can  still  be  shown,  but  the  characters  cannot be 
converted to Unicode values without additional information:
This  information  can  be provided  as  an optional ToUnicode  entry  in  the font  dictionary (PDF 1.2 ;  see 
9.10.3, "ToUnicode CMaps"), whose value shall be a stream object containing a special kind of CMap file 
that maps character codes to Unicode values. 
An ActualText  entry  for  a  structure  element  or  marked-content  sequence  (see  14.9.4,  "Replacement 
Text") may be used to specify the text content directly.
9.10.2
Mapping Character Codes to Unicode Values
A conforming reader can use these methods, in the priority given, to map a character code to a Unicode value. 
Tagged PDF documents, in particular, shall provide at least one of these methods (see 14.8.2.4.2, "Unicode 
Mapping in Tagged PDF"):
If  the font dictionary contains a ToUnicode CMap  (see 9.10.3, "ToUnicode  CMaps"), use  that CMap to 
convert the character code to Unicode. 
If  the  font  is  a  simple  font  that  uses  one  of  the  predefined  encodings MacRomanEncoding, 
MacExpertEncoding, or WinAnsiEncoding, or that has an encoding whose Differences array includes 
only character names taken from the Adobe standard Latin character set and the set of named characters 
in the Symbol font (see Annex D): 
a) Map the character code to a character name according to Table D.1 and the font’s Differences
array. 
Documents you may be interested
Documents you may be interested