如何将OTF/TTF文件转换为EOT格式?

new*_*bie 47 css browser fonts type-conversion font-face

我需要使用@ font-face功能,我的字体是OTF/TTF格式,Microsoft浏览器只支持EOT格式.我试图使用Microsoft工具WEFT,但它没有用,或者我不明白它是如何工作的.有没有其他方法将我的字体转换为EOT格式?

Pet*_*ton 61

使用Font Squirrel Generator - 这不仅可以生成EOT,还可以生成SVG和WOFF格式,并一次转换多个字体文件,并在一个存档中提供所有内容以及相关的CSS.

  • 除非您的字体被列入黑名单 (10认同)
  • 这是一个很棒的小工具. (3认同)
  • 也不适用于大字体(如果它们包含中文字形,它们将是) (2认同)

api*_*ein 54

这是一个从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"
Run Code Online (Sandbox Code Playgroud)

假设您有一个名为FontName.otf的字体,请运行:

sh otf2ttf2eot.sh FontName

旧版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
Run Code Online (Sandbox Code Playgroud)

  • @matt一个完全可行的解决方案获得*downvote*因为它不是很方便你并包含"一堆命令行的东西"?真的吗?+1甚至出来. (20认同)
  • 如果问题是关于*编程*网站的主题,下载和编译是公平的游戏. (16认同)
  • 我不确定这是"快捷方式"还是"一步到位".确实如此,但大多数人都没有耐心去弄清楚如何在他们的系统上编译和安装fontforge和ttfeot,然后运行一堆命令行的东西. (3认同)
  • 如果我找到了一种更简单的方法,我就会以简单的方式完成它.事实是,我找不到更简单的方法(至少在我做的时候).但是,如果您的应用程序需要所有三种类型,这是一种正确,直接的方法. (3认同)

Mar*_*tin 5

使用http://www.font2web.com/ - 这不仅会产生EOT,还会产生SVG和WOFF格式,并同时转换多个字体文件,并在一个存档中提供所有内容以及相关的CSS.


Fed*_*ico 5

在Ubuntu中,安装mkeot

sudo apt-get install eot-utils
Run Code Online (Sandbox Code Playgroud)

然后:

mkeot fontfilename.otf > fontfilename.eot
Run Code Online (Sandbox Code Playgroud)