如何删除TTF字体文件中的所有字符,而这些字符没有在给定的文本示例中使用?换句话说,我希望从现有字体中创建一个子集,该字体只包含实际显示在文本中的字符。(如果你知道一个能做到这一点的免费工具,而不是字体锻造,那对我也是一样的)。
下面是一个小例子:有一个文本文件,其中包含单词“사슴코끼리당나귀”。那么,如何从字体文件中删除不属于该小文本示例的所有其他字符呢?最后,我想要一个新的TTF文件,该文件只包含使用的字符。实际的文本比这更长,因此在fontforge中手动搜索不是一个选项。
在fontforge中有某些选择选项(主菜单>编辑>选择),在将韩国字符转换为unicode序列后,我尝试了“按野生动物选择”。但还没有运气。
非常感谢你的任何想法!亲切问候
编辑:用例:我正在创建儿童电子书,它们本质上主要由图像组成。然而,文本并不是图片的一部分,而是显示在图片前景中的另一层上。电子书文件(我主要为亚马逊kindle制作)包括一些元数据、图像文件、布局信息,当然还有字体文件。亚马逊Kindle发布程序有非常严格的文件大小限制。为了使一本书在我想要的价格范围内出售,文件大小不能超过3兆字节。这是好的,当我使用西方字体集。但是我的电子书是双语的,对于韩文版,我需要添加一个韩文字体(除了西方字体)。亚洲的字体文件是相对庞大的,因为它们的字母/符号的性质。存储20.000 (在极端情况下可达200.000)字形,每字体重量可达到7-12兆字节。再一次,我的书的文件大小限制是3兆字节,这必须为所有的图片和字体文件(加上布局和元文件)。知道电子书的文本不会被读者更改,所以可以安全地丢弃我的文本中没有使用的字体中的所有字形。不必要地填充用户的读取设备的存储空间是这里的另一个考虑因素。我已经压缩了大量的图像文件,不能再继续压缩了,因为质量开始在一定的压缩速率下受到影响。我希望现在清楚为什么我认为删除字体是一个很好的解决方案。
发布于 2018-02-23 21:17:24
很棒的问题/回答user3725694。为了使脚本生成更加自动化,可以使用以下python代码获取英文可打印字符的Unicode数据:
import string
s = string.printable
for c in s: print('SelectMore("u%04x")' % ord(c))它返回:
SelectMore("u0030") SelectMore("u0031") ..。
在手动FontForge活动的自动替代方案上有一个很好的FontForge
https://stackoverflow.com/questions/35555816
复制相似问题