How can I convert OTF/TTF files to EOT format?

Use the Font Squirrel Generator - this will produce not just EOT, but also SVG and WOFF formats, and converting multiple font files at once, and providing everything in a single archive along with the relevant CSS.


In Ubuntu, install mkeot:

sudo apt-get install eot-utils

Then:

mkeot fontfilename.otf > fontfilename.eot

Here's a quick way to build ttf and eot versions from otf in one step. Of course you can pull out the relevant parts if you don't need all of it. Note that you to get eot from otf you have to go otf->ttf->eot.

Install both fontforge and ttf2eot. They are available in MacPorts, not sure about other platforms.

Save this as a script file named otf2ttf2eot.sh:

(This script has been updated for new fontforge versions; original script at end of post):

#!/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"

Assuming you have a font named FontName.otf, run:

sh otf2ttf2eot.sh FontName

Original script for older versions of 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