2.4.122 Font

The Font record specifies a font and font formatting information.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

dyHeight

A

B

C

D

E

F

G

H

reserved

icv

bls

sss

uls

bFamily

bCharSet

unused3

fontName (variable)

...

dyHeight (2 bytes):  An unsigned integer that specifies the height of the font in twips. SHOULD<87> be greater than or equal to 20 and less than or equal to 8191. MUST be greater than or equal to 20 and less than or equal to 8191, or 0.

A - unused1 (1 bit): Undefined and MUST be ignored.

B - fItalic (1 bit):  A bit that specifies whether the font is italic.

C - unused2 (1 bit): Undefined and MUST be ignored. MUST be 1 when uls is greater than 0x00.

D - fStrikeOut (1 bit):  A bit that specifies whether the font has strikethrough formatting applied.

E - fOutline (1 bit):  A bit that specifies whether the font has an outline effect applied.

F - fShadow (1 bit):  A bit that specifies whether the font has a shadow effect applied.

G - fCondense (1 bit):  A bit that specifies whether the font is condensed.

H - fExtend (1 bit):  A bit that specifies whether the font is extended.

reserved (8 bits): MUST be zero, and MUST be ignored.

icv (2 bytes):  An unsigned integer that specifies the color of the font. The value SHOULD<88> be an IcvFont value. The value MUST be an IcvFont value, or 0.

bls (2 bytes):  An unsigned integer that specifies the font weight. The value SHOULD<89> be a value from the following table. This value MUST be 0, or greater than or equal to 100 and less than or equal to 1000.

Value

Meaning

400

Normal font weight

700

Bold font weight

sss (2 bytes):  An unsigned integer that specifies whether superscript, subscript, or normal script is used. The value MUST be one of the following:

Value

Meaning

0x0000

Normal script

0x0001

Superscript

0x0002

Subscript

uls (1 byte):  An unsigned integer that specifies the underline style. The value MUST be one of the following:

Value

Meaning

0x00

No underline

0x01

Single underline

0x02

Double underline

0x21

Single accounting

0x22

Double accounting

bFamily (1 byte):  An unsigned integer that specifies the font family this font belongs to. MUST be a value from the following table:<90>

Value

Meaning

0x00

Not applicable

0x01

Roman

0x02

Swiss

0x03

Modern

0x04

Script

0x05

Decorative

For more information about font family, see the Windows API LOGFONT structure in [MSDN-FONTS].

bCharSet (1 byte):  An unsigned integer that specifies the character set. MUST be a value from the following table:

Value

Meaning

0x00

ANSI_CHARSET

0x01

DEFAULT_CHARSET

0x02

SYMBOL_CHARSET

0x4D

MAC_CHARSET

0x80

SHIFTJIS_CHARSET

0x81

HANGEUL_CHARSET

0x81

HANGUL_CHARSET

0x82

JOHAB_CHARSET

0x86

GB2312_CHARSET

0x88

CHINESEBIG5_CHARSET

0xA1

GREEK_CHARSET

0xA2

TURKISH_CHARSET

0xA3

VIETNAMESE_CHARSET

0xB1

HEBREW_CHARSET

0xB2

ARABIC_CHARSET

0xBA

BALTIC_CHARSET

0xCC

RUSSIAN_CHARSET

0xDD

THAI_CHARSET

0xEE

EASTEUROPE_CHARSET

0xFF

OEM_CHARSET

For more information about character set, see the Windows API LOGFONT structure in [MSDN-FONTS].

unused3 (1 byte):  Undefined and MUST be ignored.

fontName (variable):  A ShortXLUnicodeString structure that specifies the name of this font. String length MUST be greater than or equal to 1 and less than or equal to 31. The fontName.fHighByte field MUST equal 1. MUST NOT contain any null characters.