#!/usr/bin/env python3 """简化的字体子集化脚本""" from fontTools.ttLib import TTFont from fontTools.subset import Subsetter import os # 读取字符 with open('scripts/font-chars.txt', 'r', encoding='utf-8') as f: text = f.read() chars = set(text) - {'\n', '\r', '\t', ' '} print(f'📝 需要保留的字符数: {len(chars)}') # 加载字体 input_font = 'public/fonts/AoyagiReisho.ttf' font = TTFont(input_font) original_size = os.path.getsize(input_font) / 1024 / 1024 print(f'📊 原始字体大小: {original_size:.2f} MB') # 创建子集 print('⚙️ 正在创建字体子集...') subsetter = Subsetter() subsetter.populate(chars) subsetter.subset(font) # 保存 WOFF2 output_woff2 = 'public/fonts/AoyagiReisho.woff2' print(f'💾 正在保存 WOFF2: {output_woff2}') font.flavor = 'woff2' font.save(output_woff2) font.close() # 统计 new_size = os.path.getsize(output_woff2) / 1024 / 1024 reduction = (1 - new_size / original_size) * 100 print(f'\n✨ 优化完成!') print(f'📊 新字体大小: {new_size:.2f} MB') print(f'📉 减小比例: {reduction:.1f}%') print(f'💾 节省空间: {(original_size - new_size):.2f} MB') print(f'\n✅ 字体文件已保存到: {output_woff2}')