关于CSS:如何将TTF文件转换为OTF格式?

How can I convert TTF files to OTF format?

我需要使用@font-face功能,并且我的字体为TrueType(TTF)格式,因此如何将TTF转换为OpenType(OTF)格式。


如果您使用的是Linux,则可以使用FontForge,该脚本可以从Python编写脚本。

1
2
3
4
#!/usr/bin/python
import fontforge
font = fontforge.open("STIXGeneral.otf")
font.generate("STIXGeneral.ttf")

这是一个较长的python脚本,可一次对整个目录执行此操作:

http://fonts.fileformat.info/bin/otf2ttf.py


很难正确地找到方法。这是我如何在OS X上工作的

1
2
$ brew install fontforge
$ fontforge  -c 'Open("my.ttf"); Generate("my.otf")'

我拼命地寻找不存在的pip install fontforge,并且我没有将它与python一起使用-我想您需要使用--enable-pyextension或其他内容对其进行编译。


Google对ttf otf converter的快速搜索为我提供了许多结果,例如:

https://onlinefontconverter.com

http://www.freefontconverter.com

http://www.font2web.com

不知道它们的效果如何,但是您可以尝试一下。


您可以直接在CSS中使用TTF文件格式:

1
2
3
4
5
6
7
8
@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;
}

这是工作!

或者,您可以使用此链接生成字体!


对于跨浏览器/移动设备的支持,您肯定需要至少三种格式:

  • 嵌入式OpenType:Internet Explorer 6-8的eot
    有一个命令行转换器:http://code.google.com/p/ttf2eot/

  • Web开放字体格式:woff Web字体的W3C建议:http://www.w3.org/TR/WOFF/
    可以在这里喜欢转换器:http://people.mozilla.org/~jkew/woff/

  • 和TrueType:ttf(用于Safari和Opera)

  • (您可以添加可伸缩矢量图形:svg,以获得较旧的iOS支持...)

  • 防弹@ font-face语法是这样的:

    1
    2
    3
    4
    5
    6
    7
    @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
    http://webfonts.info/

    您可能还想看看这个工具:
    https://github.com/zoltan-dulac/css3FontConverter


    正如其他人提到的那样,fontforge脚本已切换为python。
    我发现最简单的方法是从命令行调用python。

    我可以通过这种方式在Arch Linux上将多种ttf字体转换为otf,但是通过使用您喜欢的软件包管理器安装fontforge,它应该可以在其他发行版上工作。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [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()

    您也可以尝试以下方法:

    http://www.freefontconverter.com/


    使用字体松鼠@font-face生成器。