Skip to content

PDF Spec 09 Font Descriptors

Marc Jones edited this page Dec 30, 2025 · 1 revision

9.8 Font Descriptors

Part of: PDF-Spec-09-Text

Navigation: PDF-Spec-09-CIDFonts | PDF-Spec-Index | PDF-Spec-09-Encoding


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.

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 119 - Character collections for predefined CMaps, by PDF version (continued)

CMAP PDF 1.2 PDF 1.3 PDF 1.4 PDF 1.5
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

A 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 lowernumbered 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 highernumbered 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).

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.

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:

  • 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 3  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 4  begincodespacerange <  00  > <  80  > <  8140  > <  9FFC  > <  A0  > <  DF  >
<  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").
Key Type Value
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)

Image

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 subclause 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 beginbfchar , endbfchar , begincidchar , endcidchar , and corresponding operators for ranges.) Failing that, it shall be looked up in the notdef mappings, as described in the next subclause.

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

operators beginnotdefchar , endnotdefchar , beginnotdefrange , 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

A 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.

Table 122 - Entries common to all font descriptors (continued)

Key Type Value
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
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").

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.

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 123 - Font flags (continued)

Bit position Name Meaning
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.

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

Image

Fixed-pitch font The quick brown fox jumped.
Serif font The quick brown fox jumped.
Sans serif font T he q uick brown fox jumped.
Symbo l ic font ✴❈❅ ❑◆❉❃❋ ❂❒❏◗■ ❆❏❘ ❊◆❍❐❅❄✎
Script font The quick brown fox jumped.
Ita l ic font The quick brown fox jumped.
A ll -cap font Thequickbrownfoxjumped
Sma ll -cap font The quick brownfoxjumped.
  • 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 pixelbased device, ordinary (nonbold) glyphs also appear with 1-pixel-wide features and therefore cannot be distinguished from bold glyphs.

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

/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.

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.

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:


Navigation: PDF-Spec-09-CIDFonts | PDF-Spec-Index | PDF-Spec-09-Encoding

Clone this wiki locally