在命令行中将 sfd 文件 (fontforge) 转换为 ttf、otf、woff、svg

在命令行中将 sfd 文件 (fontforge) 转换为 ttf、otf、woff、svg

我寻找一种自动将 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/binPATH.

相关内容