| from fontTools.ttLib import TTFont |
| from fontTools.ttLib.tables.DefaultTable import DefaultTable |
| |
| font_path = "myfont.ttf" |
| output_path = "myfont_patched.ttf" |
| |
| table_tag = "DSIG" |
| |
| |
| # Get raw table data from the source font |
| |
| font = TTFont(font_path) |
| raw_data = font.getTableData(table_tag) |
| |
| |
| # Do something with the raw table data |
| # This example just sets an empty DSIG table. |
| |
| raw_data = b"\0\0\0\1\0\0\0\0" |
| |
| |
| # Write the data back to the font |
| |
| # We could re-use the existing table when the source and target font are |
| # identical, but let's make a new empty table to be more universal. |
| table = DefaultTable(table_tag) |
| table.data = raw_data |
| |
| # Add the new table back into the source font and save under a new name. |
| font[table_tag] = table |
| font.save(output_path) |