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

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

Ответы на вопрос(3)

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

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

fontforge -c 'import fontforge;fontforge.open("/usr/share/fonts/X11/Type1/NachlieliCLM-Bold.pfa").generate("NachlieliCLM-Bold.svg")'
Решение Вопроса

чтобы сделать это из командной строки.

С помощью 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
 vimal108307 авг. 2017 г., 15:20
Нет @ Яшуа, я не могт. Но у меня есть обходной путь в CSS, чтобы перевернуть SVG.
 Erik Dahlström27 окт. 2012 г., 11:22
@djangodude хм, яЯ не уверен на 100%.
 cyberwombat14 авг. 2017 г., 02:56
У меня возникли проблемы с переворачиванием svg с использованием css / transforms (в результате чего все преобразования имели дело с переворотом) с этим, поэтому я загрузил шрифт в Fontographer, выделил все, нажал rotate 180 и сгенерировал инвертированный файл TTF, который выполнил трюк.
 djangodude27 окт. 2012 г., 05:09
Batik-ttf2svg конвертирует как otf (OpenType на основе CFF), так и ttf, как задал вопросующий?
 cyberwombat07 авг. 2017 г., 04:12
@Vimal - вы разрешили инверсию?
 vimal108314 июл. 2017 г., 13:28
Спасибо @ ErikDahlströм, это работает, но символы в SVG отражаются / переворачиваются. Есть ли еще вызов функции, который я должен добавить, чтобы избежать этой инверсии?
 user25469425 янв. 2019 г., 12:11
Согласитесь, что ответ, к сожалению, устарел, должен иметь какой-то способ пометить ответ как устаревший, а другой - как устаревший, так как голосование не подходит для этого сценария.
 Yitz07 мая 2018 г., 15:46
Этот рецепт fontforge больше не работает, потому что fontforge переключился на скрипты Python. Смотрите мой другой ответ для нового пути.

связанная с батиком, также устарела, потому что батик дает вывод 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">
</font-face></font>

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

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

Что касается того, почему шрифты перевернуты по оси X, относятся к замененной части спецификации.https://www.w3.org/TR/SVG11/fonts.html#SVGFontsOverview

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

Ваш ответ на вопрос