我已经下载了DejaVu开源字体并希望将其用作WebFont,但即使进行转换,我得到的文件也很大。因为我将使用的网站只有少数几种语言(阿拉伯语、法语、阿马齐格语),所以我不需要一些字符。
那么,有没有一种方法可以浏览字体文件并删除我不需要的Unicode字符范围?
那么,有没有一种方法可以浏览字体文件并删除我不需要的Unicode字符范围?
使用FontForge,您可以打开元素
->字体信息
->Unicode 范围
。您将看到所有可用范围,并可以用单击选择整个Unicode范围。然后,您可以使用编码
->分离和删除字形
来调整您的选择和删除。
此外,您还可以使用编辑
->选择
->按脚本选择
。
我发现最简单的方法是使用来自FontTools的pyftsubset
工具。 下面是一个示例:
$ pyftsubset NotoSans-Regular.ttf \
--unicodes=U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116 \
--output-file=NotoSans-Regular.cyrillic.woff2 \
--flavor=woff2
注意: woff2
输出需要Brotli。
我写了一个简单的脚本,它可以自动化整个过程,包括将字体文件分割后生成CSS文件。您可以在这里找到它:https://github.com/johncf/ttf2web