我有一个14MB的TTF,其中大部分包含简体中文字符。
我想通过创建一个仅包含HTML页面内特定字符的子集来减小大小。
因此,理想情况下,我想通过一个Linux程序传递一个文本块,并让其根据所包含的字符重新创建字体。
例如。
./magic-font-squisher input.tff "ABC123水小长"
或者
./magic-font-squisher input.tff /path/to/test.html
这样,新字体将只包含这9个字符。
最佳答案
您可以通过scripting FontForge来完成。尽管可以使其变得更聪明或包含在包含的脚本中,但此方法可行。
#!/usr/bin/env fontforge
Open($1); # first param
SelectAll();
SelectFewer(0u41, 0u43, 0u31, 0u33); # a range
SelectFewer(0u6c34); # or a single codepoint
SelectFewer(0u5c0f);
SelectFewer(0u957f);
DetachAndRemoveGlyphs();
Save($2); # second param
Quit(0);
我必须先定义
FONTFORGE_LANGUAGE
,然后再运行它:FONTFORGE_LANGUAGE=ff ./squish source.ttf squished.ttf
关于unicode - 特定字形的子集字体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16673426/