How can I convert OTF/TTF files to EOT format?
我需要使用@ font-face功能,并且我的字体为OTF / TTF格式,并且Microsoft浏览器仅支持EOT格式。我尝试使用Microsoft工具WEFT,但是它不起作用,或者我不知道它是如何工作的。还有其他方法可以将我的字体转换为EOT格式吗?
- 您应该与原始铸造厂联系。他们将为您提供必要的文件。通常,不允许您转换字体文件。大多数EULA(许可协议)均禁止这样做。
使用字体松鼠生成器-不仅会生成EOT,还会生成SVG和WOFF格式,并一次转换多个字体文件,并将所有内容与相关CSS一起提供在一个存档中。
- 这是一个很棒的小工具。
-
除非您的字体被列入黑名单
-
显然,列入黑名单的只是Adobe字体,因为其中某些字体使生成器崩溃。 (该链接还提供了一些答案供您选择。)
-
也不适用于大字体(如果它们包含中文字形,则可以)
这是一种从otf一步构建ttf和eot版本的快速方法。当然,如果不需要全部,可以拉出相关部分。请注意,要从otf获得otot,必须去otf-> ttf-> eot。
同时安装fontforge和ttf2eot。它们在MacPorts中可用,不确定其他平台。
将其另存为名为otf2ttf2eot.sh的脚本文件:
(此脚本已针对新的fontforge版本进行了更新;发布后为原始脚本):
1 2 3 4 5 6 7 8 9 10
| #!/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 FontName
fontforge早期版本的原始脚本:
1 2 3 4 5 6 7 8 9 10
| #!/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一个完美可行的解决方案会遭到挫败,因为它对您而言并不十分方便,并且包含"一堆命令行内容"?严重地? 1至均匀。
-
apinstein自己说"不确定其他平台",甚至fontforge自己的网站也说:"我不再提供预构建的软件包。您可以从源代码编译,也可以从另一个站点下载软件包(cygwin有fontforge软件包)。" ...如此完美可行,是的,但是方便吗?并非凭空想象。
-
就我的否决标准而言:(虽然从技术上讲是正确的)这是一个答案,如果我提出这个问题,我会很沮丧-OP提到已经尝试了可轻松下载并带有gui的gui实用程序,安装在Windows盒子上-对于简单的操作而言,此答案太过复杂了。
-
如果问题是编程站点上的主题,那么下载和编译是公平的游戏。
-
@bmargulies –通常,是的,但是请看上下文–我们正在谈论Web开发。您上一次不得不编译.css的时间是什么时候?我并不是说编译任何内容都不是必需的,显然,对于这种特殊情况而言,这是不必要的,因此,此答案在列表中应该比其他更易于访问的解决方案低。
-
如果我找到了一种更简单的方法,那我将做一个简单的方法。事实是,我找不到一种更简单的方法(至少在我这样做的时候)。但是,如果您的应用程序需要所有三种类型,那么这是一种正确,直接的方法。
-
我实际上很喜欢这个背后的想法(我宁愿编写脚本而不是手动上传所有内容),但是它对我不起作用。通过apt-get install fontforge(最新的ubuntu服务器)安装了font-forge并尝试运行ity。首先,它对缩进进行了补偿,因此我删除了该缩进。现在,我收到" NameError:未定义名称'Open'"。似乎fontforge脚本现在必须通过python(我从未使用过)完成,但是fontforge网站上的示例仍然是此处使用的样式!有人可以发布fontforge脚本的简单固定版本吗?
-
当然,经过一个多小时的奋斗,我在发布后的几分钟内发现了自己的解决方案。您必须在运行脚本之前"导出FONTFORGE_LANGUAGE = ff"
-
通过Homebrew安装了最新的fontforge和ttf2eot,我无法使该脚本正常工作。但是,我在此处放置了脚本的更新版本(2013年3月):gist.github.com/rc1/5346303
-
@apinstein您可以确认您的版本不再有效吗?如果是这样,请更新我/您可以更新您的答案?
-
我编辑了答案,以包括更新版本的fontforge中使用的基于Python的脚本接口的更新脚本。我先测试了
-
当您需要处理大约20种字体时,它会更快。一种
在Ubuntu中,安装mkeot:
1
| sudo apt-get install eot-utils |
然后:
1
| mkeot fontfilename.otf > fontfilename.eot |
使用http://www.font2web.com/-这不仅会生成EOT,还会生成SVG和WOFF格式,并一次转换多个字体文件,并将所有内容与相关CSS一起提供在一个存档中。
http://www.flaticon.com/font-face
对我来说,它在压缩文件中返回了所有字体类型。
值得一提的是所有字体,字体转换器。这也有woff2和EOT支持。
https://everythingfonts.com/font-face
如果您只想进行EOT转换,也可以。
https://everythingfonts.com/otf-to-eot