Как удалить символы из файла шрифта?
Я загрузил шрифт с открытым исходным кодом DejaVu и хочу использовать его в WebFont, но даже при его преобразовании я получаю большой файл, и поскольку сайт, который я буду использовать, будет только на нескольких языках (арабский, французский, amazigh), тогда мне не нужны некоторые символы.
так есть ли способ просмотреть файл шрифта и удалить ненужный диапазон символов Юникода, который мне не понадобится?
Ответы
Ответ 1
Используя FontForge, вы можете открыть Element
→ Font Info
→ Unicode Ranges
. Вы увидите все доступные диапазоны, и вы можете выбрать целый ряд Unicode за один клик. Затем вы можете настроить свой выбор и удалить с помощью Encoding
→ Detach & Remove Glyphs
.
Кроме того, вы можете использовать Edit
→ Select
→ Select by Script
.
Ответ 2
Самый простой метод, который я нашел, - использовать инструмент pyftsubset
из FontTools. Вот пример:
$ 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.
Я написал простой script вокруг него, который автоматизирует весь процесс, включая создание CSS файла после разделения файла шрифта. Вы можете найти его здесь: https://github.com/johncf/ttf2web