2009-12-30 98 views
43

我需要使用@ font-face功能,我的字體採用OTF/TTF格式,Microsoft瀏覽器僅支持EOT格式。我試圖使用微軟工具WEFT,但它沒有工作,或者我不明白它是如何工作的。有沒有其他方法可以將我的字體轉換爲EOT格式?如何將OTF/TTF文件轉換爲EOT格式?

+1

您應該聯繫原代工廠。他們會爲您提供必要的文件。一般而言,您不允許轉換字體文件。大多數EULA(許可協議)禁止這樣做。 – John 2010-12-04 17:22:32

回答

57

使用Font Squirrel Generator - 這不僅會產生EOT,還會產生SVG和WOFF格式,並且一次轉換多個字體文件,並將所有內容與相關CSS一起提供到單個存檔中。

+3

這是一個夢幻般的小工具。 – 2011-02-10 00:21:49

+9

除非你的字體被列入黑名單 – 2012-06-22 13:37:23

+0

顯然,黑名單是[只有Adobe字體,由於其中一些崩潰的生成器](http://stackoverflow.com/a/5657350/9360)。 _(這個鏈接也有一些選擇的答案給出替代品。)_ – 2012-06-22 16:00:29

52

下面是一個快速構建OTF和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 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 
+2

我不確定這適用於「快捷方式」或「一步到位」。它確實有效,但大多數人都沒有耐心去弄清楚如何在他們的系統上編譯和安裝fontforge和ttfeot,然後運行一堆命令行的東西。 – 2011-02-09 23:46:10

+17

@matt一個完美可行的解決方案得到* downvote *,因爲它對你來說不是很方便,並且包含「一堆命令行東西」?真的嗎? +1來平衡。 – 2011-02-09 23:48:06

+0

apinstein自己說「不知道其他平臺」 - 即使是fontforge自己的網站也說:「我不再提供預構建的軟件包。您可以從源代碼編譯或從另一個站點下載軟件包(cygwin有一個fontforge軟件包)」。 ......非常可行,是的,但方便?沒有任何想象力。 – 2011-02-10 00:29:03

5

使用http://www.font2web.com/ - 這將產生不只是EOT,而且還SVG和WOFF格式,並且轉換多個字體文件一次,並與有關CSS一起提供在一個單一的全部存檔。

4

在Ubuntu中,安裝mkeot

sudo apt-get install eot-utils 

然後:

mkeot fontfilename.otf > fontfilename.eot 
+1

你也可以在Mac上使用自制軟件獲得這個工具 – mozillalives 2017-11-14 03:46:41

相關問題