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

问题描述 投票:0回答:2

我已经下载了 DejaVu 开源字体并且想要将其用于 WebFont,但即使在转换它时,我也会得到一个大文件,而且因为我将使用的网站仅支持几种语言(阿拉伯语、法语,amazigh)那么,我不需要一些字符。

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

unicode font-face webfonts
2个回答
19
投票

使用FontForge,您可以打开

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

此外,您还可以使用

Edit
->
Select
->
Select by Script

要从缩小或缩小的字形集创建新字体,

File
->
Generate Fonts...
,然后在文件名字段下的下拉菜单中选择字体文件类型,然后单击
Generate


14
投票

我发现的最简单的方法是使用

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

© www.soinside.com 2019 - 2024. All rights reserved.