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

19
我已经下载了DejaVu开源字体并希望将其用作WebFont,但即使进行转换,我得到的文件也很大。因为我将使用的网站只有少数几种语言(阿拉伯语、法语、阿马齐格语),所以我不需要一些字符。
那么,有没有一种方法可以浏览字体文件并删除我不需要的Unicode字符范围?

答案可能都在这里:https://dev59.com/bGUq5IYBdhLWcg3wXvSa - Vic Seedoubleyew
2个回答

18

使用FontForge,您可以打开元素->字体信息->Unicode 范围。您将看到所有可用范围,并可以用单击选择整个Unicode范围。然后,您可以使用编码->分离和删除字形来调整您的选择和删除。

此外,您还可以使用编辑->选择->按脚本选择


14

我发现最简单的方法是使用来自FontToolspyftsubset工具。 下面是一个示例:

$ 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


2
对于任何想知道的人,这对我来说也适用于OTF字体。 - Ed_

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接