| Error code |
Message |
Details |
| P4132 |
The version number is 0x00010000 |
|
| P4115 |
All header offsets point within the table |
|
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[0](DFLT), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[0](DFLT), ScriptTable |
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[1](cyrl), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[1](cyrl), ScriptTable |
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[2](grek), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[2](grek), ScriptTable |
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[3](latn), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[3](latn), ScriptTable |
| P5800 |
The ScriptList Table is valid |
ScriptList |
| P5400 |
The Feature table is valid |
FeatureList, FeatureRecord[0](kern), FeatureTable |
| P5400 |
The Feature table is valid |
FeatureList, FeatureRecord[1](mark), FeatureTable |
| P5300 |
The FeatureList table is valid |
FeatureList |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[0] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[1] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[2] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[3] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[4] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[5] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[6] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[7] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[8] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[9] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[10] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[11] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[12] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[13] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[14] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[15] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[16] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[17] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[18] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[19] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[20] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[21] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[22] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[23] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[24] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[25] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[26] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[27] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[28] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[29] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[30] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[31] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[32] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[33] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[34] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[35] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[36] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[37] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[38] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[39] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[40] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[41] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[42] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[43] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[44] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[45] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[46] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[47] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[48] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[49] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[50] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[51] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[52] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1), PairSet[53] |
| P4124 |
The PairPos subtable is valid |
LookupList, Lookup[0], SubTable[0](PairPos, fmt 1) |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[0] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[1] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[2] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[3] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[4] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[5] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[6] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[7] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[8] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[9] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[10] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[11] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[12] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[13] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[14] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[15] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[16] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[17] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[18] |
| P4125 |
The PairSet table is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1), PairSet[19] |
| P4124 |
The PairPos subtable is valid |
LookupList, Lookup[1], SubTable[0](PairPos, fmt 1) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[2], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[2], SubTable[0](MarkBasePos) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[3], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[3], SubTable[0](MarkBasePos) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[4], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[4], SubTable[0](MarkBasePos) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[5], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[5], SubTable[0](MarkBasePos) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[6], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[6], SubTable[0](MarkBasePos) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[7], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[7], SubTable[0](MarkBasePos) |
| P4101 |
The BaseArray table is valid |
LookupList, Lookup[8], SubTable[0](MarkBasePos), BaseArray |
| P4121 |
The MarkBasePos subtable is valid |
LookupList, Lookup[8], SubTable[0](MarkBasePos) |
| P5600 |
The LookupList table is valid |
LookupList |
| Error code |
Message |
Details |
| P4208 |
The version number is 0x00010000 |
|
| P4204 |
All header offsets point within the table |
|
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[0](DFLT), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[0](DFLT), ScriptTable |
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[1](cyrl), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[1](cyrl), ScriptTable |
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[2](grek), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[2](grek), ScriptTable |
| P5500 |
The LangSysTable is valid |
ScriptList, ScriptRecord[3](latn), ScriptTable, DefaultLangSysTable |
| P5900 |
The Script Table is valid |
ScriptList, ScriptRecord[3](latn), ScriptTable |
| P5800 |
The ScriptList Table is valid |
ScriptList |
| P5400 |
The Feature table is valid |
FeatureList, FeatureRecord[0](ccmp), FeatureTable |
| P5400 |
The Feature table is valid |
FeatureList, FeatureRecord[1](liga), FeatureTable |
| P5300 |
The FeatureList table is valid |
FeatureList |
| P4205 |
The LigatureSubst subtable is valid |
LookupList, Lookup[0], SubTable[0](LigatureSubst, fmt 1) |
| P4205 |
The LigatureSubst subtable is valid |
LookupList, Lookup[1], SubTable[0](LigatureSubst, fmt 1) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[0](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[1](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[2](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[3](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[4](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[5](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[6](ChainContextSubst, fmt 3) |
| P4201 |
The ChainContextSubst subtable is valid |
LookupList, Lookup[2], SubTable[7](ChainContextSubst, fmt 3) |
| P4205 |
The LigatureSubst subtable is valid |
LookupList, Lookup[3], SubTable[0](LigatureSubst, fmt 1) |
| P4207 |
The SingleSubst subtable is valid |
LookupList, Lookup[4], SubTable[0](SingleSubst, fmt 2) |
| P4205 |
The LigatureSubst subtable is valid |
LookupList, Lookup[5], SubTable[0](LigatureSubst, fmt 1) |
| P5600 |
The LookupList table is valid |
LookupList |
| Error code |
Message |
Details |
| W2106 |
The version number is valid, but less than 5 |
4 |
| P2112 |
The table length matches the expected length for this version |
|
| E2135 |
The xAvgCharWidth field does not equal the calculated value |
actual = 922, calc = 921 |
| P2122 |
The usWeightClass is consistent with the PANOSE weight value |
|
| P2118 |
The usWeightClass is a valid value |
700 |
| P2119 |
The width class is a valid value |
3 |
| P2103 |
The fsType field is valid |
0x0000, Installable Embedding |
| P2109 |
All subscript and superscript values appear valid |
|
| P2108 |
The yStrikeoutSize and yStrikeoutPosition appear valid |
|
| P2107 |
The sFamilyClass Class ID and Subclass ID values are in a valid range |
|
| P2104 |
All panose values are in a valid range |
|
| P2113 |
The Unicode Range fields' bits are all allowable values |
|
| E2101 |
There are undefined bits set in fsSelection field |
Bit(s) 7 |
| P2100 |
The usFirstCharIndex and usLastCharIndex fields are valid |
first = 0x0020, last = 0xfb02 |
| W2117 |
The value of sTypoAscender minus sTypoDescender is greater than unitsPerEm |
sTypoAscender = 2012, sTypoDescender = -574 |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #0, Latin 1 (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #1, Latin 2 (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #2, Cyrillic (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #3, Greek (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #4, Turkish (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #7, Baltic (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #8, Vietnamese (missing chars: U00AD U01A0 U01AF U01A1 U01B0 U20AB) |
| W2100 |
A CodePage bit is clear in ulCodePageRange, but the font contains all of the printable characters from that codepage |
bit #29, Mac character set |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #48, IBM Greek (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #50, MS-DOS Nordic (missing chars: U20A7) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #54, MS-DOS Icelandic (missing chars: U20A7) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #55, MS-DOS Portuguese (missing chars: U20A7) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #56, IBM Turkish (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #57, IBM Cyrillic (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #58, Latin 2 (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #59, MS-DOS Baltic (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #62, WE/Latin 1 (missing chars: U00AD) |
| W2101 |
A CodePage bit is set in ulCodePageRange, but the font is missing some of the printable characters from that codepage |
bit #63, US (missing chars: U20A7) |
| P2101 |
The CodePage Range fields' bits are all allowable values |
|
| P2110 |
The sxHeight field is nonzero |
1004 |
| P2105 |
The sCapHeight field is nonzero |
1464 |
| P2116 |
The usDefaultChar field is zero |
|
| P2114 |
The usBreakChar is mapped to a glyf |
|
| P2124 |
The usMaxContext field matches the calculated value |
4 |
Note: The Font Validator's helpfile contains detailed information about each error message.
The latest OpenType specification is available at the
Microsoft Typography website.