def validate(self): suggestedvalues = getSuggestedFontNameValues(self.font) expectedname = '{0}-{1}'.format(family_name.replace(' ', ''), subfamily_name.replace(' ', '')) actualname, extension = os.path.splitext(self.fontpath) return '{0}{1}'.format(expectedname, extension)
def validate(self): suggestedvalues = getSuggestedFontNameValues(self.font) expectedname = '{0}-{1}'.format(family_name.replace(' ', ''), subfamily_name.replace(' ', '')) actualname, extension = os.path.splitext(self.fontpath) return '{0}{1}'.format(expectedname, extension)
def test_suggested_subfamily_name(self): """ Family does not contain subfamily in `name` table """ # Currently we just look that family does not contain any spaces # in its name. This prevent us from incorrect suggestions of names font = Font.get_ttfont(self.operator.path) suggestedvalues = getSuggestedFontNameValues(font.ttfont) self.assertEqual(font.familyname, suggestedvalues['family']) self.assertEqual(font.stylename, suggestedvalues['subfamily'])
def test_suggested_subfamily_name(self): """ Family does not contain subfamily in `name` table """ # Currently we just look that family does not contain any spaces # in its name. This prevent us from incorrect suggestions of names font = Font.get_ttfont(self.operator.path) suggestedvalues = getSuggestedFontNameValues(font.ttfont) self.assertEqual(font.familyname, suggestedvalues['family']) self.assertEqual(font.stylename, suggestedvalues['subfamily'])
def test_source_ttf_font_filename_equals_familystyle(self): """ Source TTF Font filename equals family style """ ttfont = Font.get_ttfont(self.operator.path) suggestedvalues = getSuggestedFontNameValues(ttfont.ttfont) family_name = suggestedvalues['family'] subfamily_name = suggestedvalues['subfamily'] expectedname = '{0}-{1}'.format(family_name.replace(' ', ''), subfamily_name.replace(' ', '')) actualname, extension = os.path.splitext(self.operator.path) expected_filename = '{0}{1}'.format(expectedname, extension) setattr(self, 'expectedfilename', expected_filename) self.assertEqual(os.path.basename(actualname), expectedname)
def fix(fontpath): ttfont = Font.get_ttfont(fontpath) values = getSuggestedFontNameValues(ttfont.ttfont) family_name = values['family'] subfamily_name = values['subfamily'] for pair in [[4, 3, 1], [4, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = ' '.join( [family_name.replace(' ', ''), subfamily_name]).encode('utf_16_be') for pair in [[6, 3, 1], [6, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = '-'.join([ family_name.replace(' ', ''), subfamily_name.replace(' ', '') ]).encode('utf_16_be') for pair in [[1, 3, 1], [1, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = family_name.replace(' ', '').encode('utf_16_be') for pair in [[2, 3, 1], [2, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = subfamily_name.encode('utf_16_be') ot_namerecord = findOrCreateNameRecord(ttfont['name'], 16) ot_namerecord.string = family_name.replace(' ', '').encode("utf_16_be") ot_namerecord = findOrCreateNameRecord(ttfont['name'], 17) ot_namerecord.string = mapping.get(subfamily_name, 'Regular').encode("utf_16_be") ot_namerecord = findOrCreateNameRecord(ttfont['name'], 18) ot_namerecord.string = ' '.join( [family_name.replace(' ', ''), mapping.get(subfamily_name, 'Regular')]).encode("utf_16_be") ttfont.save(fontpath + '.fix')
def fix(fontpath): ttfont = Font.get_ttfont(fontpath) values = getSuggestedFontNameValues(ttfont.ttfont) family_name = values['family'] subfamily_name = values['subfamily'] for pair in [[4, 3, 1], [4, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = ' '.join([family_name.replace(' ', ''), subfamily_name]).encode('utf_16_be') for pair in [[6, 3, 1], [6, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = '-'.join([family_name.replace(' ', ''), subfamily_name.replace(' ', '')]).encode('utf_16_be') for pair in [[1, 3, 1], [1, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = family_name.replace(' ', '').encode('utf_16_be') for pair in [[2, 3, 1], [2, 1, 0]]: name = ttfont.ttfont['name'].getName(*pair) if name: name.string = subfamily_name.encode('utf_16_be') ot_namerecord = findOrCreateNameRecord(ttfont['name'], 16) ot_namerecord.string = family_name.replace(' ', '').encode("utf_16_be") ot_namerecord = findOrCreateNameRecord(ttfont['name'], 17) ot_namerecord.string = mapping.get(subfamily_name, 'Regular').encode("utf_16_be") ot_namerecord = findOrCreateNameRecord(ttfont['name'], 18) ot_namerecord.string = ' '.join([family_name.replace(' ', ''), mapping.get(subfamily_name, 'Regular')]).encode("utf_16_be") ttfont.save(fontpath + '.fix')