【发布时间】:2011-08-08 09:30:48
【问题描述】:
我需要使用@font-face 功能并且我的字体是TrueType (TTF) 格式,那么如何将TTF 转换为OpenType (OTF) 格式。
【问题讨论】:
我需要使用@font-face 功能并且我的字体是TrueType (TTF) 格式,那么如何将TTF 转换为OpenType (OTF) 格式。
【问题讨论】:
如果您在 Linux 上,则可以使用可以从 Python 编写脚本的 FontForge。
#!/usr/bin/python
import fontforge
font = fontforge.open("STIXGeneral.otf")
font.generate("STIXGeneral.ttf")
这是一个较长的 python 脚本,它一次对整个目录执行此操作:
【讨论】:
apt-get install fontforge python-fontforge 或者如果你在 OS X 上试试 stackoverflow.com/a/26313183/179581
很难找到正确的方法。这是我如何让它在 OS X 上工作
$ brew install fontforge
$ fontforge -c 'Open("my.ttf"); Generate("my.otf")'
我一直在拼命寻找不存在的pip install fontforge,但我还没有让它与 python 一起工作——我想你需要用--enable-pyextension 或其他东西来编译它。
【讨论】:
pip install fontforge 不起作用。不过,我已经在使用 Homebrew,所以你的回答对我来说一针见血。 :-)
fontforge -c "f = fontforge.open(argv[1]); f.generate(argv[2])" ~/Downloads/logo.ttf ~/Downloads/logo1.otf
fontforge -c "import fontforge; from sys import argv; f = fontforge.open(argv[1]); f.generate(argv[2])" font.otf font.ttf
您可以直接在 css 中使用 TTF 文件格式:
@font-face {
font-family: Vinegar;
src: url(http://www.4bit.co.uk/testing/design01/vinegar.ttf);
}
h3 {
font-family: Vinegar, "Times New Roman", Times, serif;
}
它正在工作!
【讨论】:
*.eot。或者这只是一个神话?
ttf和eot和woff!看我的回答:stackoverflow.com/a/20386012/1106393
在 Google 上快速搜索 ttf otf converter 给了我一些结果,例如:
https://onlinefontconverter.com
http://www.freefontconverter.com
不知道它们的效果如何,但你可以试试。
【讨论】:
正如其他人所提到的,fontforge 脚本已切换到 python。 我发现最简单的方法是从命令行调用 python。
我可以通过这种方式在 Arch Linux 上将多种 ttf 字体转换为 otf,但通过使用您最喜欢的包管理器安装 fontforge,它应该可以在其他发行版上运行。
[user@host]$ sudo pacman -S fontforge
[user@host]$ cd /path/to/your/fonts/folder
[user@host]$ python
>>> import fontforge
>>> import os
>>> fonts = [f for f in os.listdir('.') if f.endswith('.ttf')]
>>> for font in fonts:
... f = fontforge.open(font)
... f.generate(font[:-3] + 'otf') # changes extension from ttf to otf
...
>>> exit()
【讨论】:
对于跨浏览器/移动设备支持,您肯定需要至少三种格式:
嵌入式 OpenType:eot 用于 Internet Explorer 6-8。
有命令行转换器:http://code.google.com/p/ttf2eot/
Web 开放字体格式:woff W3C 推荐的 webfonts:http://www.w3.org/TR/WOFF/
转换器可以在这里:http://people.mozilla.org/~jkew/woff/
和 TrueType:ttf 用于 Safari 和 Opera
(您可以添加可缩放矢量图形:svg 以获得旧版 iOS 支持...)
防弹@font-face 语法是这样的:
@font-face {
font-family: 'Vinegar';
src: url('vinegar.eot?') format('embedded-opentype'),
url('vinegar.woff') format('woff'),
url('vinegar.ttf') format('truetype'),
url('vinegar.svg#svgVinegar') format('svg');
}
更多资源:
http://www.paulirish.com/2009/bulletproof-font-face-implementation-syntax/
http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax
您可能还想查看此工具:
https://github.com/zoltan-dulac/css3FontConverter
【讨论】:
url('vinegar.eot?') format('embedded-opentype') 行可能会被删除。
你也可以试试这个:
【讨论】: