| # Sample script to convert legacy cmap subtables to format-4 |
| # subtables. Note that this is rarely what one needs. You |
| # probably need to just drop the legacy subtables if the font |
| # already has a format-4 subtable. |
| # Other times, you would need to convert a non-Unicode cmap |
| # legacy subtable to a Unicode one. In those cases, use the |
| # getEncoding() of subtable and use that encoding to map the |
| # characters to Unicode... TODO: Extend this script to do that. |
| from fontTools.ttLib import TTFont |
| from fontTools.ttLib.tables._c_m_a_p import CmapSubtable |
| print("usage: cmap-format.py fontfile.ttf outfile.ttf") |
| for table in cmap.tables: |
| if table.format in [4, 12, 13, 14]: |
| newtable = CmapSubtable.newSubtable(4) |
| newtable.platformID = table.platformID |
| newtable.platEncID = table.platEncID |
| newtable.language = table.language |
| newtable.cmap = table.cmap |
| outtables.append(newtable) |