我如何将 .svg 文件转换为字体?是否有任何 API 或可编程的方法?
我如何将 .svg 文件转换为字体?是否有任何 API 或可编程的方法?
我在Stack Overflow上找到了两个相关的答案:
不幸的是,这两个答案都不是真正的编码答案,这正是我所希望的(一个用于脚本转换的命令行实用程序或者可以编写这样东西的API)。
尽管如此,通过结合这两个答案,我还是得到了我想要的结果。
(这一步可能是可选的。) 在免费的软件InkScape中打开您的SVG。 复制现有的SVG并从FontForge Glyph模板创建一个新项目。 粘贴到该模板中,标准化外观,大小和位置,并将其保存为纯SVG,每个字符(“glyph”)一个文件。
随后,可以直接使用免费软件FontForge(如第一个答案中所述,创建图标字体),或者使用免费在线服务IcoMoon(如第二个答案中所述,将SVG转换为TTF的工具)。 我选择了后者。
IcoMoon是一款相当直观的工具。点击页面顶部的紫色导入图标按钮,导入每个自定义SVG字形。然后在集合的首选项上点击“获取信息”,这样就可以为集合命名并添加一些元数据。使用“编辑”工具(铅笔图标),单击每个字形以使其大小和间距完美无瑕。
完成后,选择要包含在字体中的所有字形,然后按页面底部的“生成字体”按钮。在生成的屏幕上,您可以将每个字形映射到Unicode字符。在右侧,您可以键入或粘贴字符;或者在左侧,您可以输入其十六进制代码。像GNOME Character Map(适用于Linux)或Windows Character Map或Mac OS Character Palette这样的程序可能会帮助您找到适当的代码。
现在点击屏幕顶部的“首选项”按钮(或右下角的齿轮),最终确定新字体的名称和元数据,然后按下右下角的“下载”按钮。您将获得一个Fontname.zip文件,其中包含一堆使用建议以及字体文件本身。
我发现字体大小和间距真的很难调整(我在制作字母)。我一直在使用IcoMoon进行迭代,安装字体,并将我的字母与类似字体中的字母进行比较(使用文字处理器)。大小容易调整,但间距不那么容易(我甚至没有涉及连字或者字距!)。请记住,有些系统需要在安装新字体后刷新字体缓存(在Linux上,可以使用来自Fontconfig的fc-cache
命令)。
您可能还希望验证您的字体。 Font Squirrel 是一个在线服务,可以让您进行验证,提供更正以及使用技巧。我想IcoMoon已经完成了这项工作,因此这只对FontForge创建的字体有用。
gulp-iconfont
。我需要设置选项 fontHeight=1024
(> 1000),否则字体看起来会损坏,但最终我得到了与 icomoon 相同的结果。 - sergej有多个在线工具可供使用,允许您上传SVG文件并将其用作创建图标字体的图标。就我而言,我更喜欢Icomoon应用程序。
Icomoon应用程序允许您执行以下每个操作: