【问题标题】:How can I convert .svg files to a font? [closed]如何将 .svg 文件转换为字体? [关闭]
【发布时间】:2012-10-28 00:56:54
【问题描述】:

如何将 .svg 文件转换为字体?有没有 API 或可编程的方法?

【问题讨论】:

  • 你有什么样的 SVG 文件?您是否有包含 SVG 字体的 SVG 文件(使用 、 等标签)?
  • 您可以编写 fontforge 脚本来执行此操作,但这取决于您的输入文件是否足够简单,可以用字体表示。
  • 如果你正在寻找一个 API,你可以从 Mashape mashape.com/warting/online-font-converter查看这个 API

标签: css fonts svg


【解决方案1】:

我在 Stack Overflow 上找到了两个相关的答案:

  1. Creating icon fonts with vector software (i.e. inkscape) and fontforge?
  2. Tools to convert svg to ttf [closed](存档自此deleted SO question)

不幸的是,两者都不是真正的 编码 答案,而这正是我真正希望的(用于脚本转换的命令行实用程序,或者可能是有人可以用来编写此类东西的 API)。

不过,通过结合这两个答案,我得到了我正在寻找的东西。

清理 SVG

(此步骤可能是可选的。) 在免费软件程序 InkScape 中打开您的 SVG。复制现有的 SVG 并从 FontForge Glyph 模板创建一个新项目。粘贴到该模板中,标准化外观、大小和位置,然后另存为 PLAIN SVG,每个字符一个文件(“字形”)。

将 SVG 转换为字体

然后,要么直接使用免费软件程序FontForge(按照第一个答案creating icon fonts with vector software 的指示),要么使用免费的IcoMoon 在线服务(按照第二个答案tools to convert svg to ttf 的指示)。我是后者。

使用图标月亮

IcoMoon 是一个相当简单的工具。单击页面顶部的紫色 导入图标 按钮以导入您的每个自定义 SVG 字形。然后单击集合首选项上的“获取信息”,以便您可以命名集合并为其提供一些元数据。使用“编辑”工具(铅笔图标)并单击每个字形以调整大小和间距。

完成后,选择字体中所需的所有字形,然后按页面底部的“生成字体”按钮。在结果屏幕上,您可以将每个字形映射到一个 Unicode 字符。在右侧,您可以键入或粘贴一个字符,或者在左侧,您可以输入其十六进制代码。 GNOME Character Map(适用于 Linux)或 Windows Character Map 或 Mac OS Character Palette 之类的程序可以帮助您找到适合您的字形的代码。

现在按屏幕顶部的“首选项”按钮(或右下角的齿轮)并确定新字体的名称和元数据,然后按右下角的“下载”。您将获得一个 Fontname.zip 文件,其中包含一堆使用建议以及字体文件本身。

迭代

我发现尺寸和间距真的很难调整好(我在写字母)。我一直在 IcoMoon 上进行迭代,安装字体,并将我的字母与类似字体的字母进行比较(使用文字处理器)。调整大小很容易,但间距不是那么容易(我什至没有弄乱ligatures 或kerning!)。不要忘记某些系统在安装新字体后需要刷新字体缓存(在 Linux 上,即 fc-cache 来自 Fontconfig)

验证字体

您可能还想验证您的字体。 Font Squirrel 是一项在线服务,可让您执行此操作,提供更正和使用提示。我认为 IcoMoon 已经这样做了,所以也许这仅对 FontForge 创作有用。

【讨论】:

  • 作为一种编程解决方案,我推荐gulp-iconfont。我需要设置选项fontHeight=1024 (> 1000),否则字体似乎已损坏,但最后我得到了与 icomoon 相同的结果。
  • 用于将文件转换为 tff 的 stackoverflow 链接是一个死链接.... 没想到 SO 会是它自己的链接腐烂受害者。
  • @DouglasGaskell – 好电话。如果您拥有超过 10,000 名声望,您可以通过 moderator access 在 SO 上查看已删除的内容。我认为 Q&A 不值得取消删除,因此我使用存档副本更新了链接。
【解决方案2】:

有多种在线工具可让您上传 SVG 文件并将其用作创建图标字体的图标。就个人而言,我更喜欢 Icomoon App。

Icomoon 应用程序允许您执行以下各项操作:

  • 从几种流行的图标字体中获取一个或多个图标
  • 上传其他字体,可以是图标字体,也可以是普通字体
  • 上传 SVG 文件以用作图标
  • 从任意数量的可用字体中组合任意数量的图标
  • 为您需要的任何字符设置 UNICODE 十六进制值
  • 导出和/或保存您创建的字体集

【讨论】:

    【解决方案3】:

    正如其他人所写,可以将 svg 形状导入 fontforge,并且一些字体设计师就是这样工作的。

    但是,形状(轮廓)只是现代智能字体的一部分,因此它本身是不够的。您还需要处理元数据、字距调整、提示等。这是很多绝对不好玩、困难但必要的东西,而潜在的字体设计师通常梦想着自我奖励的艺术绘画,而不是其他。

    这就是 svg 字体从未成为一种格式的原因之一,它们缺少太多对渲染文本有用的部分。

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 1970-01-01
      • 2017-12-10
      • 2021-12-07
      • 2010-12-24
      • 2012-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多