def getOrCreateNameRecord(self, nameId, val): logger.error('NAMEID {}: "{}"'.format(nameId, val)) return result_namerec = None for k, p in [[1, 0], [3, 1]]: result_namerec = self.font['name'].getName(nameId, k, p) if result_namerec: if result_namerec.isUnicode(): result_namerec.string = (val or '').encode("utf-16-be") else: result_namerec.string = val or '' if result_namerec: return result_namerec ot_namerecord = NameRecord() ot_namerecord.nameID = nameId ot_namerecord.platformID = 3 ot_namerecord.langID = 0x409 # When building a Unicode font for Windows, the platform ID # should be 3 and the encoding ID should be 1 ot_namerecord.platEncID = 1 if ot_namerecord.isUnicode(): ot_namerecord.string = (val or '').encode("utf-16-be") else: ot_namerecord.string = val or '' self.font['name'].names.append(ot_namerecord) return ot_namerecord
def setValidNameRecord(font, nameId, val): result_namerec = None for k, p in [[1, 0], [3, 1]]: result_namerec = font['name'].getName(nameId, k, p) if result_namerec: if result_namerec.isUnicode(): result_namerec.string = (val or '').encode("utf-16-be") else: result_namerec.string = val or '' if result_namerec: return ot_namerecord = NameRecord() ot_namerecord.nameID = nameId ot_namerecord.platformID = 3 ot_namerecord.langID = 0x409 # When building a Unicode font for Windows, the platform ID # should be 3 and the encoding ID should be 1 ot_namerecord.platEncID = 1 if ot_namerecord.isUnicode(): ot_namerecord.string = (val or '').encode("utf-16-be") else: ot_namerecord.string = val or '' font['name'].names.append(ot_namerecord) return