Инструмент командной строки для преобразования шрифтов TTF/OTF в SVG

Кто-нибудь знает инструмент командной строки, который будет преобразовывать шрифты TTF и OTF в шрифты SVG?

Ответ 1

Вы можете использовать fontforge или batik, чтобы сделать это из командной строки.

С помощью fontforge (см. Документацию по сценариям):

#!/usr/bin/fontforge
Open($1)
Generate($1:r + ".svg")

Сохраните вышеупомянутое в файл convert2svgfont.pe, затем вызовите как:

convert2svgfont.pe myfont.ttf

Для батика см. Эту документацию, установите и затем вызовите как:

java -jar batik-ttf2svg.jar myfont.ttf -o myfont.svg

Ответ 2

Рецепт fontforge, данный ранее @Erik, больше не работает - fontforge переключился на скрипты Python.

Вот как я конвертировал шрифт из PFA в SVG в командной строке - это также будет хорошо работать для TTF и т.д.:

fontforge -c 'import fontforge;fontforge.open("/usr/share/fonts/X11/Type1/NachlieliCLM-Bold.pfa").generate("NachlieliCLM-Bold.svg")'

Ответ 3

Батикская часть этого ответа также устарела, потому что батик выдает вывод svg с использованием устаревшего элемента глифа.

Если вы запустите последнюю версию батика на nasa.ttf, например,

java -jar batik-ttf2svg-1.10.jar nasa.ttf -o myfont.svg

вы получите вывод, который выглядит примерно так

<font horiz-adv-x="1045" ><font-face
font-family="Nasa"
units-per-em="2048"
panose-1="2 11 5 0 0 0 0 0 0 0"
ascent="1507"
descent="-393"
alphabetic="0" />

.... сопровождаемый намного большим кодом, представляющим каждый глиф в шрифте

способ решения этой проблемы представлен в ответе в разделе Использование тега глифа SVG в HTML - превращайте глифы в символы и переворачивайте их.

Относительно того, почему шрифты перевернуты по оси X, см. Замененную часть спецификации https://www.w3.org/TR/SVG11/fonts.html#SVGFontsOverview.

В отличие от стандартной графики в SVG, где исходная система координат имеет ось Y, указывающую вниз (см. Исходная система координат), сетка дизайна для SVG-шрифтов вместе с исходной системой координат для глифов имеет ось Y, направленную вверх для соответствия принятой в отрасли практике для многих популярных форматов шрифтов.