2.9.82 FFN

The FFN structure specifies information about a font that is used in the document. This information MUST be complete for each font. In addition to specifying a specific named font, this information is intended for the purpose of font substitution when that named font is not available.


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

ffid

wWeight

chs

ixchSzAlt

panose

...

...

fs (24 bytes)

...

...

...

xszFfn (variable)

...

xszAlt (variable)

...

ffid (1 byte):  An FFID that specifies the font family.

wWeight (2 bytes):  A signed integer that specifies the visual weight of the font. This value MUST be between 0 and 1000. A value of 700 corresponds to bold text. A value of 400 corresponds to normal text.

chs (1 byte):  An unsigned integer that specifies the character set that is used by the font. This MUST be one of the following values.

Value

Meaning

0

ANSI_CHARSET

1

DEFAULT_CHARSET

2

SYMBOL_CHARSET

128

SHIFTJIS_CHARSET

129

HANGEUL_CHARSET

129

HANGUL_CHARSET

134

GB2312_CHARSET

136

CHINESEBIG5_CHARSET

255

OEM_CHARSET

130

JOHAB_CHARSET

177

HEBREW_CHARSET

178

ARABIC_CHARSET

161

GREEK_CHARSET

162

TURKISH_CHARSET

163

VIETNAMESE_CHARSET

222

THAI_CHARSET

238

EASTEUROPE_CHARSET

204

RUSSIAN_CHARSET

77

MAC_CHARSET

186

BALTIC_CHARSET

ixchSzAlt (1 byte):  An unsigned integer that specifies the zero-based index into the xszFfn. If nonzero, this value specifies the location within xszFfn where xszAlt begins.

panose (10 bytes):  A Panose that specifies font attributes for TrueType fonts.

fs (24 bytes):  A FontSignature, as specified in [MC-FONTSIGNATURE], that specifies the Unicode Subset Bitfields of the font, as specified in [MC-USB], and Code Page Bitfields, as specified in [MC-CPB].

xszFfn (variable):  A null-terminated Unicode string that MUST contain the name of the font.

xszAlt (variable):  A null-terminated Unicode string that specifies the name of an alternative font, intended for font substitution if the font specified by xszFfn is not available. This field, if it exists, begins immediately after the terminating null character of xszFfn. If ixchSzAlt is nonzero, this string MUST exist, otherwise it MUST NOT exist.