FontForge:使用FontForge命令行将字形导出为SVG

12

如何使用Fontforge的命令行将字形(通过其Unicode编码)导出为SVG?

我还需要指定字体大小并保留其在字体中具有的原始边距。

2个回答

27

也许您已经找到了答案,但我必须使用最新版本的FontForge进行此操作。这个命令的旧答案是:

fontforge -lang=ff -c 'Open($1); SelectWorthOutputting(); foreach Export("svg"); endloop;' font.ttf 

在Windows10中,从命令提示符运行可能无法正常工作(我认为这是权限问题),但您可以尝试一下。一个快速的解决方法是通过GUI执行脚本来完成。

  • 运行FontForge(对于安装在Program Files(x86)目录中的Windows10,您可能需要右键单击“run_fontforge.exe” ->以管理员身份运行)。

  • 打开要导出的字体。

  • 转到文件>执行脚本

  • 粘贴:SelectWorthOutputting(); foreach Export("svg"); endloop;
  • 选择“FF”单选按钮。
  • 点击确定

它将保存到FontForge文件夹(其中包含run_fontforge.exe)。


1
感谢 @Kyle K 的回答,帮了很多忙!祝你有美好的一天。 - Kresimir Pendic
2
在 Windows 上运行得非常好,我只需要使用管理员权限启动 run_fontforge.exe。 - Nick
2
有没有办法在Win 10中选择保存SVG的位置?此外,在Windows中,保存时小写字母被大写字母覆盖。有什么解决方法吗? - Clicker
1
@Clicker 你可以将完整的地址作为Export函数的参数,因此不需要使用Export("svg"),而是使用Export("/the/path/for/saving/glyph.svg") - Student
1
手动选择要导出的字形(拖动鼠标以选择连续的,或按住Shift键以选择非连续的),然后单击“文件”>“执行脚本”,点击**FF**单选按钮,并粘贴代码:foreach Export("/myDestinationFolder/%n-%e.svg"); endloop; 以导出文件名为 A-65.svg 的文件。 - ashleedawg
显示剩余6条评论

0

在Windows操作系统上(已在win10上测试)

这是从批处理文件内部获取的:

c:\Programs\FontForge\bin\fontforge.exe -lang=ff -c "Open($1); SelectWorthOutputting(); foreach Export('%%e_%%f_%%n_%%u.eps'); endloop;" %1

这是直接在命令行上执行的:

c:\Programs\FontForge\bin\fontforge.exe -lang=ff -c "Open($1); SelectWorthOutputting(); foreach Export('%e_%f_%n_%u.eps'); endloop;" font-file.ttf

注意 - 颜色不会被导出。我不知道它是否未实现或者是一个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接