|
本帖最后由 wc006 于 2024-7-14 15:59 编辑
找到可行的方法了:
1、使用FontForge提取和嵌入TTF字体中的点阵字体,网上有教程,就是把ttf文件导出成bdf
2、然后在现有bdf文件基础上,从现有字体创建一个子集,该子集仅包含实际显示才用到的的字符。
3、我找到了一种在半自动的基础上在FontForge中创建现有字体的子集的方法。
关键是使用Fontforge的脚本功能。我使用互联网服务(请参阅下面的链接)来获取我在书中使用的所有字符的unicode。看起来像这样的“\uc6d0\uc22d\uc774\uac1c\ubbf8\uacf0\ubc8c\ub3cc\uace0\ub798”(下面代码要替换掉这些)
我获取了服务的输出,并使用了Notepad++的“搜索和替换”功能来获取脚本的以下结构:
SelectMore("uc6d0")
SelectMore("uc22d")
SelectMore("uc774")
SelectMore("uac1c")
SelectMore("ubbf8")
SelectMore("uacf0")
SelectMore("ubc8c")
SelectMore("ub3cc")
SelectMore("uace0")
SelectMore("ub798")
它只是反复调用相同的函数: SelectMore()。此函数选择作为参数传递的字形,而不会清除任何先前的选择。还要注意,该脚本假定fontforge正在运行并已打开字体文件。 (链接到fontforge脚本帮助,请参见下文)。
要在Fontforge中直接执行脚本,请从主菜单中选择“文件->执行脚本...” ,粘贴脚本并点击运行。
现在,所有使用的字形都被选中,所有未使用的字形都被取消选择。在主菜单中,单击“编辑->选择->反转选择” 以选择所有未使用的字形。现在,我们可以在主菜单中运行“编码->分离并删除字形” 来删除所有选定的(未使用的)字形。现在将字体另存为新字体将得到所需的子集。
4、把精简得到的两个24和30的bdf格式再嵌入ttf文件。应该就可以了。
其他参考:
删除ttf字体文件中无用文字https://blog.csdn.net/qq_32228265/article/details/120525130
|
|