2009-12-30 14 views
43

Ho bisogno di usare la funzione @ font-face e i miei font sono in formato OTF/TTF e i browser Microsoft supportano solo il formato EOT. Ho provato a utilizzare lo strumento Microsoft WEFT, ma non ha funzionato o non ho capito come funziona. C'è un altro modo per convertire i miei caratteri in formato EOT?Come posso convertire i file OTF/TTF in formato EOT?

+1

È necessario contattare la fonderia originale. Vi forniranno i file necessari. In generale non è consentito convertire i file dei font. La maggior parte di EULA (accordi di licenza) lo proibiscono. – John

risposta

57

Utilizzare Font Squirrel Generator - questo produrrà non solo EOT, ma anche formati SVG e WOFF e convertendo più file di font contemporaneamente e fornendo tutto in un unico archivio insieme al CSS pertinente.

+3

questo è un piccolo strumento fantastico. –

+9

A meno che il font non sia nella lista nera –

+0

Apparentemente la lista nera è [solo i font Adobe, a causa di alcuni di questi che bloccano il generatore] (http://stackoverflow.com/a/5657350/9360). _ (Quel collegamento ha anche una selezione di risposte che danno alternative.) _ –

52

Ecco un modo rapido per creare versioni ttf ed eot da otf in un unico passaggio. Ovviamente puoi estrarre le parti pertinenti se non ti serve tutto. Nota che per ottenere eot da otf devi andare otf-> ttf-> eot.

Installare sia fontforge che ttf2eot. Sono disponibili in MacPorts, non sono sicuri di altre piattaforme.

Salva questo come un file di script denominato otf2ttf2eot.sh:

(Questo script è stato aggiornato per le nuove versioni FontForge; sceneggiatura originale a fine 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" 

Supponendo di avere un tipo di carattere chiamato FontName.otf, eseguire:

sh otf2ttf2eot.sh fontName

sceneggiatura originale per le versioni precedenti di 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

Non sono sicuro che questo si qualifichi come "un modo rapido" o "in un solo passaggio". Funziona, certo, ma la maggior parte delle persone non avrà la pazienza di capire come compilare e installare fontforge e ttfeot sul proprio sistema, quindi eseguire un sacco di cose da linea di comando. –

+17

@matt una soluzione perfettamente valida ottiene un * downvote * perché non è perfettamente conveniente per te e contiene "un po 'di roba da linea di comando"? Sul serio? +1 per pareggiare. –

+0

lo stesso apinstein dice "non sono sicuro delle altre piattaforme" - anche il sito di fontforge dice "Non fornisco più pacchetti predefiniti. Puoi compilare dal sorgente o scaricare un pacchetto da un altro sito (cygwin ha un pacchetto fontforge)." ... quindi perfettamente fattibile, sì, ma conveniente? non con un minimo di immaginazione. –

5

Usa http://www.font2web.com/ - Questo produrrà non solo EOT, ma anche i formati SVG e WOFF, e convertire più file di font in una sola volta, e di fornire tutto in un unico archivio con il CSS.

0

Vale anche la pena controllare tutto il font font-face converter. Questo ha anche il supporto per woff2 ed EOT.

https://everythingfonts.com/font-face

Se si desidera solo la conversione EOT hanno anche questo.

4

In Ubuntu, installare mkeot:

sudo apt-get install eot-utils 

Poi:

mkeot fontfilename.otf > fontfilename.eot 
+1

puoi anche ottenere questo strumento su Mac usando homebrew – mozillalives

Problemi correlati