#!/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 FontTools from to run this. """ try: from fontTools.ttLib import TTFont have_fonttools = True except: have_fonttools = False from os.path import join files = [ "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 first."