otf字体文件、ttc字体文件、转化成标准ttf字体文件,不规范的字体文件修正

最近嵌入式项目需要ttf标准的字体文件,但是收到的文件格式要么太新了,要么是多合一的ttc文件,要么是苹果电脑使用的otf格式,都无法正常使用。另外如果有老旧电脑系统使用也是需要标准ttf。从各种途径试验了各种软件,效果都不理想。因此求助于万能的Python。

免责声明:因为字体转化因为转化算法的不同可能会造成失真,具体请了解清楚后使用;因字体版权问题造成的纠纷与文章作者无关,本人仅做技术资料分享。

完整代码如下:有帮助的话请多多关注、点赞、收藏

from fontTools.ttLib import TTCollection, TTFont
from pathlib import Path
import os

def normalize_ttf(font_path, output_dir="ttf_标准输出"):
    """
    修复、标准化不规范的 TTF 字体
    """
    Path(output_dir).mkdir(exist_ok=True)
    try:
        font = TTFont(font_path)
        # 强制重新保存,自动修复部分表结构问题
        name_stem = Path(font_path).stem
        out_path = os.path.join(output_dir, f"{name_stem}_标准.ttf")
        font.save(out_path)
        print(f"✅ TTF 已标准化:{out_path}")
    except Exception as e:
        print(f"❌ TTF 标准化失败:{e}")

def ttc_to_ttf(ttc_path, output_dir="ttf_标准输出"):
    Path(output_dir).mkdir(exist_ok=True)
    try:
        ttc = TTCollection(ttc_path)
        stem = Path(ttc_path).stem
        for i, f in enumerate(ttc.fonts):
            out = os.path.join(output_dir, f"{stem}_{i+1}.ttf")
            f.save(out)
            print(f"✅ TTC 已导出:{out}")
    except Exception as e:
        print(f"❌ TTC 导出失败:{e}")

def otf_to_ttf(otf_path, output_dir="ttf_标准输出"):
    Path(output_dir).mkdir(exist_ok=True)
    try:
        font = TTFont(otf_path)
        stem = Path(otf_path).stem
        out = os.path.join(output_dir, f"{stem}_转TTF.ttf")
        font.save(out)
        print(f"✅ OTF 已转换:{out}")
    except Exception as e:
        print(f"❌ OTF 转换失败:{e}")

if __name__ == "__main__":
    print("===== 字体标准化工具(修复+转换)=====\n")

    # 自动处理你这三个文件
    files = {
        "ttc": "数字.ttc",
        "otf": "通用.otf",
        "ttf": "弹窗.ttf"
    }

    if os.path.exists(files["ttc"]):
        ttc_to_ttf(files["ttc"])
    if os.path.exists(files["otf"]):
        otf_to_ttf(files["otf"])
    if os.path.exists(files["ttf"]):
        normalize_ttf(files["ttf"])

    print("\n🎉 全部处理完成!输出文件夹:ttf_标准输出")

    # 自动打开输出文件夹
    if os.name == "nt":
        os.startfile("ttf_标准输出")
    else:
        print("文件夹路径:" + os.path.abspath("ttf_标准输出"))

运行方法:安装Python3.1x,安装必要的库、新版Python好像默认自带fontTools,不需要额外安装。修改这几行代码,改成自己所需要的文件名:需要一点Python代码基础

将代码写进txt文本,后缀改成.py。将文件与要转化的字体文件放在同目录下,运行.py文件即可,生成的文件会在目录的“ttf_标准输出”文件夹里

转化结果如下,测试全都可以正常使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值