如何将 OTF/TTF 文件转换为 EOT 格式?
Posted
技术标签:
【中文标题】如何将 OTF/TTF 文件转换为 EOT 格式?【英文标题】:How can I convert OTF/TTF files to EOT format? 【发布时间】:2010-12-31 02:12:00 【问题描述】:我需要使用@font-face 功能,我的字体是 OTF/TTF 格式,微软浏览器只支持 EOT 格式。我尝试使用 Microsoft 工具 WEFT,但它不起作用或者我不明白它是如何工作的。有没有其他方法可以将我的字体转换为 EOT 格式?
【问题讨论】:
您应该联系原始代工厂。他们将为您提供必要的文件。一般来说,您不允许转换字体文件。大多数 EULA(许可协议)都禁止这样做。 【参考方案1】:使用Font Squirrel Generator - 这不仅会生成 EOT,还会生成 SVG 和 WOFF 格式,一次转换多个字体文件,并在一个存档中提供所有内容以及相关的 CSS。
【讨论】:
这是一个很棒的小工具。 除非你的字体被列入黑名单 显然黑名单是only Adobe fonts, due to some of them crashing the generator。 (该链接还提供了一些可供选择的答案。) 也不适用于大字体(如果它们包含中文字形,它们将是)【参考方案2】:这是一种从 otf 一步构建 ttf 和 eot 版本的快速方法。当然,如果您不需要全部,您可以拉出相关部分。请注意,要从 otf 获取 eot,您必须转到 otf->ttf->eot。
同时安装 fontforge 和 ttf2eot。它们在 MacPorts 中可用,不确定其他平台。
将此保存为名为 otf2ttf2eot.sh 的脚本文件:
(此脚本已针对新的 fontforge 版本进行了更新;原始脚本在帖子末尾):
#!/bin/sh
otfFont="$1.otf"
ttfFont="$1.ttf"
eotFont="$1.eot"
fontforge -c '
import fontforge
font = fontforge.open("'$otfFont'")
font.generate("'$ttfFont'")
'
ttf2eot "$ttfFont" >"$eotFont"
假设你有一个名为 FontName.otf 的字体,运行:
sh otf2ttf2eot.sh 字体名称
旧版本 fontforge 的原始脚本:
#!/bin/sh
# Convert an OTF font into TTF an EOT formats.
otfFont="$1.otf"
ttfFont="$1.ttf"
eotFont="$1.eot"
fontforge -c '
Open("'$otfFont'");
Generate("'$ttfFont'");
Quit(0);'
ttf2eot $ttfFont > $eotFont
【讨论】:
我不确定这是否属于“一种快速方法”或“一步到位”。它确实有效,但大多数人不会有耐心弄清楚如何在他们的系统上编译和安装 fontforge 和 ttfeot,然后运行一堆命令行的东西。 @matt 一个完美可行的解决方案获得了 downvote 因为它对您来说不是很方便并且包含“一堆命令行的东西”?严重地? +1 以平局。 如果问题是关于 programming 网站的主题,下载和编译是公平的游戏。 如果我找到了一种更简单的方法来做到这一点,我会用简单的方法来做。事实是,我找不到更简单的方法(至少在我这样做的时候)。但是,如果您的应用程序需要所有这三种类型,这是一种正确、直接的方法。 当然,经过一个多小时的努力,我在发布后的几分钟内就发现了自己的污点。您必须在运行脚本之前“导出 FONTFORGE_LANGUAGE=ff”【参考方案3】:使用http://www.font2web.com/ - 这不仅会生成 EOT,还会生成 SVG 和 WOFF 格式,同时转换多个字体文件,并在一个存档中提供所有内容以及相关的 CSS。
【讨论】:
【参考方案4】:还值得检查的是所有字体字体转换器。这也有 woff2 和 EOT 支持。
https://everythingfonts.com/font-face
如果您只想进行 eot 转换,他们也有。
https://everythingfonts.com/otf-to-eot
【讨论】:
该网站的文件大小限制较低,您必须付费 我担心生成的文件总是比使用简单的开源方法转换的相同文件大。它是否嵌入了一些鬼鬼祟祟的东西?你怎么知道?【参考方案5】:在 Ubuntu 中,安装 mkeot
:
sudo apt-get install eot-utils
然后:
mkeot fontfilename.otf > fontfilename.eot
【讨论】:
你也可以在 Mac 上使用 homebrew 获得这个工具【参考方案6】:http://www.flaticon.com/font-face
对我来说,它在一个压缩文件中返回了所有字体类型
【讨论】:
以上是关于如何将 OTF/TTF 文件转换为 EOT 格式?的主要内容,如果未能解决你的问题,请参考以下文章
使用 NodeJS 将 OpenType / TrueType 格式转换为 png 图像
为IIS增加svg和woff等字体格式的MIME(20032008)