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

Abd*_* Pp 16 unicode webfonts font-face

我已经下载了DejaVu开源字体并希望将其用于WebFont,但即使在转换它时,我也会得到一个大文件,因为我将使用的网站只有少数语言(阿拉伯语,法语,amazigh) )那么,我不需要一些角色.

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

Joh*_*ohn 9

我发现的最简单的方法是使用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
Run Code Online (Sandbox Code Playgroud)

注意:woff2输出需要Brotli

我围绕它编写了一个简单的脚本,它可以自动执行整个过程,包括在拆分字体文件后生成 CSS 文件。你可以在这里找到它:https : //github.com/johncf/ttf2web

  • 对于任何想知道的人来说,这对我来说也适用于 OTF 字体。 (2认同)

Moh*_*ash 7

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

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