如何使用 Fontforge 命令行将字形(从其 unicode)导出到 SVG?
我还需要指定字体大小并保留字体中的原始边距。
您可能已经找到了答案,但我只需要使用最新版本的 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;
它将保存到 FontForge 文件夹(其中 run_fontforge.exe 所在的位置)。
在Windows操作系统上(在win10上测试)
这是来自批处理文件内部:
c:\Programs\FontForge in ontforge.exe -lang=ff -c "Open($1); SelectWorthOutputting(); foreach Export('%%e_%%f_%%n_%%u.eps'); endloop ;” %1
这是直接在命令行上的:
c:\Programs\FontForge in ontforge.exe -lang=ff -c "Open($1); SelectWorthOutputting(); foreach Export('%e_%f_%n_%u.eps'); endloop;"字体文件.ttf
注意 - 颜色未导出。我不知道它是否未实现,或者是一个错误。
我的 Windows 10 PowerShell 脚本(从 FontForge 目录执行,即 C:\Program Files (x86)\FontForgeBuilds in):
.\fontforge -lang=ff -c 'Open($1); SelectWorthOutputting(); foreach Export($2); endloop;' 8bitlim.ttf '%n-%e.svg'
从子目录“fonts”读取所有字体并提取字形的版本:
$files = Get-ChildItem "fonts"
for ($i=0; $i -lt $files.Count; $i++) { $infile = "字体" + $files[$i].Name 。 ontforge -lang=ff -c '打开($1); SelectWorthOutputting(); foreach 导出($2);端环;' $infile '%n-%e.svg' }