字体子集化的新工具
2025-06-02
先前的方案
先前使用的是python写的fonttools,这个工具效率符合我对python的认知,每次运行大概要几分钟的时间。因为太慢了,我不想在跑一遍,并记录用时。经过一段时间的寻找,我找到了新的工具,虽然不够优雅,但是效率很高。
新的方案
我用到了harfbuzz这个项目。这个夏目release里有一个hb-subset,这个工具处理ttf格式的文件只需要几百毫秒(对当前网站的字符表来说)。
但是它也有一个问题——不能处理woff2格式的字体。于是配合fontconv工具(nodejs写的),稍加整理,将之整理成一个bat脚本,方便调用
@REM char.exe是用来生成字符表的程序
char.exe
hb-subset --output-file=./static/assets/Zhuque.ttf input.ttf --text-file=hanzi.txt --name-IDs=* --layout-features=* --no-hinting --drop-tables=DSIG,hdmx,VDMX,LTSH,PCLT,vhea,vmtx,VORG,gasp
fontconv ./static/assets/Zhuque.ttf ./static/assets/Zhuque.woff2
pause