如何从字体文件中删除字符?

时间:2012-10-19 14:30:57

标签: unicode font-face webfonts

我已经下载了DejaVu open source font并希望将其用于WebFont,但即使在转换它时,我也会获得一个大文件,因为我将使用的网站只有少数语言(阿拉伯语) ,法国,amazigh)然后,我不需要一些角色。

那么有没有办法浏览字体文件并删除我不需要的不必要的unicode字符范围?

2 个答案:

答案 0 :(得分:6)

使用FontForge,您可以打开Element - > Font Info - > Unicode Ranges。您将看到所有可用范围,您只需单击一下即可选择整个Unicode范围。然后,您可以使用Encoding - > Detach & Remove Glyphs调整您的选择并删除。

此外,您可以使用Edit - > Select - > Select by Script

答案 1 :(得分:3)

我找到的最简单的方法是使用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