Как удалить символы из файла шрифта? - программирование
Подтвердить что ты не робот

Как удалить символы из файла шрифта?

Я загрузил шрифт с открытым исходным кодом DejaVu и хочу использовать его в WebFont, но даже при его преобразовании я получаю большой файл, и поскольку сайт, который я буду использовать, будет только на нескольких языках (арабский, французский, amazigh), тогда мне не нужны некоторые символы.

так есть ли способ просмотреть файл шрифта и удалить ненужный диапазон символов Юникода, который мне не понадобится?

4b9b3361

Ответ 1

Используя FontForge, вы можете открыть ElementFont InfoUnicode Ranges. Вы увидите все доступные диапазоны, и вы можете выбрать целый ряд Unicode за один клик. Затем вы можете настроить свой выбор и удалить с помощью EncodingDetach & Remove Glyphs.

Кроме того, вы можете использовать EditSelectSelect 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