Font Validator with rasterization (i.e. hinting) test out now!


I have re-implemented (part of) the rasterization test - which tests for hinting problems in truetype/opentype fonts. This is the last missing part that Microsoft didn't release last autumn. The 2nd last part was the webkit based XML-viewer bridge a month or two ago. GUI on Linux is functionally complete with this; and with this piece, all the missing/non-portable parts have been more or less re-implemented.

It turns out that FreeType silently works around many hinting problems. A somewhat mundane patch allows it to message out such problems. This forms the basis of the new implementation.   

According to the older 2003 FontVal binary, about 20% of Microsoft's own shipped fonts on win 8 show some degree of problems in this area. Most of them are genuine, although as some might suspect, the older 2003 Font Validator is occasionally buggy... In a nut shell, the new implementation gets FreeType to tell you hinting problems it has been silently working around, and it largely agrees with the (non-buggy part of...) the older Font Validator.

The code is at [1], the windows/dotnet/mono binaries at [2], and technical details in [3]. I'll do the Mac OS X package in a couple of days. Linux users (potential ones? I know of only one - me) needs a patch which was posted to freetype-devel. windows/mac users have patched FreeType bundled in [2].

I uploaded two sets of binaries, one for current-ish computers, (the embedded python interpreter requires dotnet 4+ or mono), the other for the older dotnet v2. The latter without the embedded python interpreter, and what it brought along - the scripts for joining/splitting ttc's etc. Mac OS X package in a couple of days when I get round to it.

And please feel free to click the donate button above the download links.



  • Jason Campbell
    So you're using one rasterizer to flag problems in a different rasterizer? I know you think they are very similar, but it doesn't really pass the QA sniff test. 
  • Hin-Tak Leung
    Hin-Tak Leung Posts: 359
    edited July 2016
    Well, if you own the source code of "the other rasterizer", please feel free to release it under an agreeable license. :(

    Some (many?) hinting errors are independent of rasterizer. One in the new implementation - where hinting instructions refer to control point n, where only m (<n) points have been defined so far, is wrong in whichever rasterizer you care to use. It is a broken font, which ever way you look at it.