| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 | #!/usr/bin/env python# -*- coding: utf-8 -*-"""This patch replaces the dotted zero with a regular zero without dot.You will need Python and the Python FontToolsfrom <https://github.com/fonttools/fonttools/> to run this."""try:    from fontTools.ttLib import TTFont    have_fonttools = Trueexcept:    have_fonttools = Falsefrom os.path import joinfiles = [    "Sudo.ttf",    "Sudo-Italic.ttf",    "Sudo-Bold.ttf",    "Sudo-BoldItalic.ttf",        #join(r"Web Fonts", "SudoWeb.woff"),    #join(r"Web Fonts", "SudoWeb-Italic.woff"),    #join(r"Web Fonts", "SudoWeb-Bold.woff"),    #join(r"Web Fonts", "SudoWeb-BoldItalic.woff"),]def patch_cmap(font):    #print "    Patching CMAP ..."    c = font["cmap"]    for table in c.tables:        #print "        Patching format %i subtable ..." % table.format,        if 0x30 in table.cmap:            table.cmap[0x30] = "zero.zero"            #print "OK."        else:            pass            #print "glyph not found."def patch(filepath):    print "Patching '%s' ..." % filepath,    base, ext = filepath.rsplit(".", 1)    font = TTFont(filepath)    patch_cmap(font)    font.save("%s_patch.%s" % (base, ext))    font.close()    print "OK"if have_fonttools:    for f in files:        patch(f)    print "\nThe web fonts were not patched. For the web fonts, please activate the OpenType 'zero' feature in your CSS:"    print '    font-feature-settings: "zero";'else:    print "Please install the Python FontTools from <https://github.com/fonttools/fonttools/> first."
 |