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.