我有一个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/

10-09 06:07