Пример #1
0
    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