Я ищу способ автоматически конвертировать файл sfd (рабочий формат Fontforge) в основной формат шрифта (как минимум otf, ttf, woof, svg).
Но мне нужно сделать это в командной строке, мне не нужно делать это из графического интерфейса.
К сожалению, похоже, что приложение Fontforge не поддерживает его (я прочитал man-страницу, и там нет упоминаний об этом использовании). В любом случае, мне нужно сделать это из командной строки, но не обязательно делать это из Fontforge. Любое другое приложение, которое может преобразовать рабочий формат Fontforge «SFD» в основной формат шрифта.
Итак, как мне получить такие команды:
sfd2ttf input.sfd output.ttf
sfd2otf input.sfd output.otf
sfd2woff input.sfd output.woff
sfd2svg input.sfd output.svg
решение1
Вы можете сделать это с помощью Fontforge, см.здесь:
-c строка-скрипта
Если первый аргумент FontForge (или второй, если первый - -lang) - "-c", то следующий за ним аргумент будет рассматриваться как строка, содержащая команды скрипта, и эти команды будут выполнены. Все оставшиеся аргументы будут переданы скрипту.
$ fontforge -c 'Open($1); Generate($2)' foo.sfd foo.ttf
Прочитает шрифт из "foo.sfd", а затем сгенерирует из него шрифт TrueType с именем "foo.ttf"
В вашем случае вы можете создать скрипт, скажем convertsfd
, такой
#!/bin/bash
fontforge -lang=ff -c 'Open($1); Generate($2)' "$1" "$2"
сделайте его исполняемым и вызовите его так:
$ ./convertsfd foo.sfd foo.ttf
foo.otf
При необходимости измените второй аргумент на или на другие форматы. Я тестировал только с ttf
и otf
.
Чтобы вызвать скрипт из любого места, просто поместите его в свой ~/.local/bin
или какой-либо другой каталог в вашем PATH
.