# tools/font_gen/ — 中文字库生成 > 从**字符集清单**生成 LVGL 用的中文字库 C 文件(子集化,只嵌入用到的汉字以节省 Flash)。 ## 脚本一览 | 脚本 | 作用 | |---|---| | `extract_cn.py` | **提取汉字**:扫描 UI 源码的字符串字面量,输出字符集清单 `ui_cn_chars.txt` | | `make_font.py` | **生成字库**:按字符集从 TTF 生成 `Drivers/BSP/UI/ui_font_cn_12.c` | ## 使用方式 ```bash # 新增含汉字的 UI 文案后:先提取字符集,再生成字库 & '.venv\Scripts\python.exe' tools/font_gen/extract_cn.py & '.venv\Scripts\python.exe' tools/font_gen/make_font.py ``` ## ⚠️ 注意 - **含新汉字的 UI 文案提交前必须重跑**(走 `font-regen` skill)——否则新字显示为空白/方块 - 产物 `ui_font_cn_12.c` **带 UTF-8 BOM**,勿手改(由脚本生成) - 字库大小直接影响 Flash 占用,只嵌入实际使用的字符 - 依赖 `fontTools` / `Pillow`(已装在 `.venv`) ## 相关文档 - `docs/UI设计/UI_中文字体生成与配置.md` - `docs/UI设计/UI_设计架构.md`