Пример #1
0
def convert_font_num(nums):
    base_cid = {
        'zero': '0',
        'one': '1',
        'two': '2',
        'three': '3',
        'four': '4',
        'five': '5',
        'six': '6',
        'seven': '7',
        'eight': '8',
        'nine': '9'
    }  # 通过xml文件分析得到此结果
    online_font = TTFont('online.ttf').getGlyphOrder(
    )[1:]  # 获取GlyphOrder字段,经对比xml查看此字段是变化的,并且变化的映射关系(cmap)对应真实数字,cmap项不变化, glfy项变化
    real_num_list = []  # 保存替换后的数字
    for n in nums:
        base_cid_key = list(base_cid.keys())[list(
            base_cid.values()).index(n)]  # 根据字典value获取key值
        online_font_index = online_font.index(base_cid_key)  # 获取列表中对应值的下标
        real_num_list.append(str(online_font_index))
    real_num = ''.join(real_num_list)  # 组合替换后的每一个数字子
    return real_num