9. Text

9.4 Text objects

9.4.3 Text-showing operators

Change 4th paragraph below Figure 61 as follows:

The strings shall conform to the syntax for string objects (see 7.3.4.2, "Literal strings"). When a string is written by enclosing the data in parentheses, bytes whose values are equal to those of the ASCII characters CARRIAGE RETURN (0Dh), LEFT PARENTHESIS (28h), RIGHT PARENTHESIS (29h), and REVERSE SOLIDUS (5Ch) (backslash) shall be preceded by a REVERSE SOLIDUS) character. All other byte values between 0 and 255 may be used in a string object. These rules apply to each individual byte in a string object, whether the string is interpreted by the text-showing operators as single-byte or multiple-byte character codes.

...

9.6.2 Type 1 fonts

9.6.2.1 General

Change Table 109 as follows:

Table 109 - Entries in a Type 1 font dictionary
Key Type Value
FontDescriptor dictionary

(Required; optional in PDF 1.0-1.7 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 See also 9.6.2.2, "Standard Type 1 fonts (standard 14 fonts) (PDF 1.0-1.7)".

Change the paragraph below Table 109 as follows:

PDF versions 1.0 to 1.7 did not require Type 1 font dictionaries to include FirstChar, LastChar, Widths and FontDescriptor entries as described in 9.6.2.2, "Standard Type 1 fonts (standard 14 fonts) (PDF 1.0-1.7)". For compatibility reasons PDF processors shall provide glyph widths and font descriptor data for those standard fonts for use in processing PDF files when the entries are absent. See also 9.6.2.2, "Standard Type 1 fonts (standard 14 fonts) (PDF 1.0-1.7)".

...

9.6.2.2 Standard Type 1 fonts (standard 14 fonts) (PDF 1.0-1.7)

Change the second paragraph to a NOTE and modify as follows:

NOTE: In PDF 1.0 to PDF 1.7, the FirstChar, LastChar, Widths and FontDescriptor (see "Table 109 - Entries in a Type 1 font dictionary") were optional in Type 1 font dictionaries for the standard 14 fonts. PDF processors supporting PDF 1.0 to PDF 1.7 files shall are required to have these fonts, or their font metrics and suitable substitution fonts available.

Delete the last paragraph as follows:

These fonts, or their font metrics and suitable substitution fonts, shall be available to the PDF processor.

9.6.4 Type 3 fonts

Change the first paragraph as follows:

Type 3 fonts differ from the other fonts supported by PDF. Font dictionaries for other fonts simply contain information about the font and refer to a separate font program for the actual glyph descriptions; a Type 3 font dictionary contains the glyph descriptions. In Type 3 fonts, glyphs shall be defined by streams of PDF graphics operatorsobjects. 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 can contain arbitrary PDF graphics operators. However, Type 3 fonts have no hinting mechanism for improving output at small sizes or low resolutions.

Insert a new NOTE 2 and a new paragraph below NOTE 1 as follows:

NOTE 2 Type 3 glyphs can use any PDF operator from any operator category (see "Table 50 - Operator categories" and "Figure 9 - Graphics objects") subject to additional restrictions described in this clause.

Implementations also need to avoid potential infinite recursion if a Type 3 glyph description refers to itself directly or indirectly. The result in all such cases is implementation-dependent.

EDITOR NOTE: remaining NOTEs in this clause will be renumbered appropriately.

...

Change Table 110 as follows:

Table 110 - Entries in a Type 3 font dictionary
Key Type Value
FontDescriptor dictionary

(Required in Tagged PDF documents; shall be an indirect reference) ...

...

Change Table 111 as follows:

Table 111 - Type 3 font operators
Operands Operator Description
wx wy d0

...

The number wx denotes the horizontal displacement in the glyph coordinate system; it shall be consistent with the corresponding width in the font's Widths array. The number wy shall be 0 (see 9.2.4, "Glyph positioning and metrics").

...

wx wy llx lly urx ury d1

...

The number wx denotes the horizontal displacement in the glyph coordinate system; it shall be consistent with the corresponding width in the font's Widths array. The number wy shall be 0 (see 9.2.4, "Glyph positioning and metrics").

The numbers llx and lly denote the coordinates of the lower-left corner, and The numbers urx and ury denote the upper-right corner, of the glyph bounding box. ...

...

Change the EXAMPLE below Table 111 as follows:

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. at positions 97 and 98 of the font's Encoding (corresponding to 'a' and 'b' in PDFDocEncoding) in the Tj string operand. "Figure 62 - Output from the example" shows the result of showing the string ( ababab ) using this font.

... %Type 3 font definition encoding two glyphs, 'a' and 'b' %Type 3 font definition encoding the two glyphs square and triangle 4 0 obj << /Type /Font /Subtype /Type3 /FontBBox [-36 -36 786 786] /FontMatrix [0.001 0 0 0.001 0 0] /CharProcs 10 0 R /Encoding 9 0 R /FirstChar 97 /LastChar 14498 /Widths [1000 1000] >> endobj ...

9.7 Composite fonts

9.7.4 CIDFonts

9.7.4.1 General

Change Table 115 as follows:

Table 115 - Entries in a CIDFont dictionary
Key Type Value
FontDescriptor dictionary

(Required; shall be an indirect reference) ...

9.8 Font descriptors

9.8.1 General

Change Table 120 as follows:

Table 120 - Entries common to all font descriptors
Key Type Value
FontName name (Required for non-Type 3 fonts) 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. For Type 3 fonts that include a Name entry in the Type 3 font dictionary, this name shall match the value of that key. For all fonts other than Type 3 this name shall be the same as the value of BaseFont in the font or CIDFont dictionary that refers to this font descriptor.
FontWeight number integer

...

NOTE The definition of FontWeight in PDF matches the CSS font-weight property, but may be more constrained than font weights used by various font formats.

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 less than or equal to zero.

NOTE While different font programs may define descender metrics using either positive or negative numbers (e.g. OpenType usWinDescent), PDF always expects negative values.

9.8.3.3 FD

Change the second paragraph below EXAMPLE 1 as follows:

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 be a subset of the keys defined in "Table 120 - Entries common to all font descriptors" that override the font-wide attributes for that class only. This font descriptor shall contain contains entries for metric information only; it shall not include FontFile, FontFile2, FontFile3, or any of the entries listed in "Table 120 - Entries common to all font descriptors" "Table 122 - Additional font descriptor entries for CIDFonts".

9.10.3 ToUnicode CMaps

Change the last paragraph in EXAMPLE 2 as follows:

EXAMPLE 2

...

Finally, the character code <3A 51> is mapped to the Unicode value UNICODE HAN CHARACTER 'U+2003E' CJK UNIFIED IDEOGRAPH-2003E (U+2003E), which is expressed by the byte sequence <D840DC3E> in UTF-16BE encoding.


Last modified: 1 July 2022