我寻找一种自动将 sfd 文件(Fontforge 的工作格式)转换为主要字体格式(至少 otf、ttf、woof、svg)的方法。
但我需要在命令行中执行此操作,不需要从 GUI 中执行此操作。
不幸的是,Fontforge 应用程序似乎不支持它(我阅读了手册页,但没有提到这种用法)。无论如何,我需要从命令行执行此操作,但不必从 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”读取字体,然后从中生成名为“foo.ttf”的 truetype 字体
在你的情况下,你可以创建一个脚本,比如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
.