fontlint¶
A program for checking the validity of fonts
fontlint fontfile1 ...
fontlint checks a font for certain standard problems
It will notice:
Any glyphs with intersecting (or self-intersecting) contours.
Any contours drawn in the wrong orientation
Any glyphs with a flipped reference
Missing points at extrema.
For sfd fonts it will also notice:
Any open contours (more an issue in sfd files than in released fonts)
Adjacent points too far apart in a glyph
Unknown glyph referenced in GSUB/GPOS/MATH
For PostScript fonts it will also notice:
More points in a glyph than allowed by PostScript.
Too many hints in a glyph.
Invalid glyph name.
Missing BlueValues entry in PostScript Private dictionary
Odd number of elements in either the BlueValues or OtherBlues entries in the PostScript Private dictionary.
Disordered elements in either the BlueValues or OtherBlues entries in the PostScript Private dictionary.
Too many elements in either the BlueValues or OtherBlues entries in the PostScript Private dictionary.
Elements too close in either the BlueValues or OtherBlues entries in the PostScript Private dictionary (must be at least 2*BlueFuzz+1 apart).
Non-integral elements in either the BlueValues or OtherBlues entries in the PostScript Private dictionary.
Alignment zone height in either the BlueValues or OtherBlues is too big for the BlueScale in the PostScript Private dictionary.
Odd number of elements in either the FamilyBlues or FamilyOtherBlues entries in the PostScript Private dictionary.
Disordered elements in either the FamilyBlues or FamilyOtherBlues entries in the PostScript Private dictionary.
Too many elements in either the FamilyBlues or FamilyOtherBlues entries in the PostScript Private dictionary.
Elements too close in either the FamilyBlues or FamilyOtherBlues entries in the PostScript Private dictionary (must be at least 2*BlueFuzz+1 apart).
Non-integral elements in either the FamilyBlues or FamilyOtherBlues entries in the PostScript Private dictionary.
Alignment zone height in either the FamilyBlues or FamilyOtherBlues is too big for the BlueScale in the PostScript Private dictionary.
Bad BlueFuzz entry in PostScript Private dictionary.
Bad BlueScale entry in PostScript Private dictionary.
Bad StdHW entry in PostScript Private dictionary.
Bad StdVW entry in PostScript Private dictionary.
Bad StemSnapH entry in PostScript Private dictionary.
Bad StemSnapV entry in PostScript Private dictionary.
StemSnapH does not contain StdHW value in PostScript Private dictionary.
StemSnapV does not contain StdVW value in PostScript Private dictionary.
Bad BlueShift entry in PostScript Private dictionary.
Bad ‘CFF ‘ table.
For TrueType fonts it will also notice:
More points in a glyph than specified in ‘maxp’
More paths in a glyph than specified in ‘maxp’
More points in a composite glyph than specified in ‘maxp’
More paths in a composite glyph than specified in ‘maxp’
Instructions longer than allowed in ‘maxp’
More references in a glyph than specified in ‘maxp’
References nested more deeply than specified in ‘maxp’
Bad ‘glyf’ or ‘loca’ table
In any sfnt (True or OpenType font):
Bad sfnt table header, bad file/table checksums, overlapping tables, standard tables with incorrect lengths, etc.
Bad PostScript fontname entry in the ‘name’ table
Bad ‘hhea’, ‘hmtx’, ‘vhea’ or ‘vmtx’ table
Bad ‘cmap’ table
Bad ‘EBDT’, ‘bdat’, ‘EBLC’ or ‘bloc’ (embedded bitmap) table
Bad Apple GX advanced typography table
Bad OpenType advanced typography table
Bad version number in OS/2 table (must be >0, and must be >1 for OT-CFF fonts)