def ttinstrs(self): """Return truetype instruction info of the font.""" txt = [] glyph = self.glyph if glyph.ttinstrs: instrs = fontforge.unParseTTInstrs(glyph.ttinstrs).strip() txt.append("TtInstrs:") txt.append(instrs) txt.append("EndTTInstrs") if glyph.anchorPoints: for pts in glyph.anchorPoints: if len(pts) == 5: lig = pts[4] else: lig = 0 coord = "%s %s" % float2str(pts[2:4]) aname = pts[0].decode("utf8").encode("utf-7") atype = pts[1] if atype == "base": atype = "basechar" elif atype == "ligature": atype = "baselig" atxt = 'AnchorPoint: "%s" %s %s %s' % (aname, coord, atype, lig) txt.append(atxt) return "\n".join(txt)
def hinting_level(self): if filter(lambda fn: os.path.basename(fn) == '.ttfautohint', self.files): return '4' for ottf in self.ottffiles: # Searches for .ttfautohint glyph inside. If glyph exists # then returns hinting_level to '3' is_glyph_existed = self.check_for_ttfautohint_glyph(ottf) if is_glyph_existed: return '4' ttfont = TTFont(ottf) try: if ttfont.getTableData("prep") is None: return '2' except KeyError: return '2' prepAsm = ttfont.getTableData("prep") prepText = fontforge.unParseTTInstrs(prepAsm) prepMagic = "PUSHW_1\n 511\nSCANCTRL\nPUSHB_1\n 4\nSCANTYPE" if prepText.strip() == prepMagic: return '2' return '1'
# fontforge.loadNamelist() # fontforge.loadNamelistDir() # fontforge.preloadCidmap() fontforge.printSetup("lpr") if (fontforge.unicodeFromName("A")!=65) or (fontforge.unicodeFromName("uni030D")!=0x30D): raise ValueError("Wrong return from unicodeFromName") foo = fontforge.version() ambrosia = sys.argv[1] fonts = fontforge.fonts() if ( len(fonts)!=0 ) : raise ValueError("Wrong return from fontforge.fonts") fontforge.activeFont() fontforge.activeGlyph() fontforge.activeLayer() fontnames= fontforge.fontsInFile(ambrosia) if len(fontnames)!=1 or fontnames[0]!='Ambrosia': raise ValueError("Wrong return from fontforge.fontsInFile") font = fontforge.open(ambrosia) morefonts = fontforge.fonts() if len(morefonts)!=1: raise ValueError("Wrong return from fontforge.fonts") instrs = fontforge.parseTTInstrs("SRP0\nMIRP[min,rnd,black]") print(fontforge.unParseTTInstrs(instrs))
def main(argv): font_in = argv[0] font = fontforge.open(font_in) prepAsm = font.getTableData("prep") prepText = fontforge.unParseTTInstrs(prepAsm) print prepText
def getprep(font): prepAsm = font.getTableData("prep") prepText = fontforge.unParseTTInstrs(prepAsm) return prepText