Make Adobe fonts work with CSS3 @font-face in IE9
I'm in the process of building a small intranet application and try, with no luck, to use Adobe font I purchased lately. As I was informed, in our case it's not a license violation.
I converted the .ttf/.otf versions of font to .woff, .eot and .svg, so to target all major browsers. The @font-face syntax I used is basically the bulletproof one from Font Spring:
@font-face {
font-family: 'MyFontFamily';
src: url('myfont-webfont.eot');
src: url('myfont-webfont.eot?#iehack') format('eot'),
url('myfont-webfont.woff') format('woff'),
url('myfont-webfont.ttf') format('truetype'),
url('myfont-webfont.svg#svgFontName') format('svg');
}
I modified the HTTP headers (added Access-Control-Allow-Origin = "*") to allow cross-domain references. In FF and Chrome it works perfectly, but in IE9 I get:
CSS3111: @font-face encountered unknown error.
myfont-webfont.woff
CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable.
myfont-webfont.ttf
I noticed that when converting font from .ttf/.otf to .woff I also get an .afm file, but I don't have a clue whether it's important or not...
Any ideas how to work it out?
[Edit] - I host my websites (fonts too, but under separate directory and subdomain for static content) under IIS 7.5
I can only explain you how to fix the "CSS3114" error.
You have to change the embedding level of your TTF file.
Using the appropriate tool you can set it to installable embedding allowed.
For a 64-bit version, check @user22600's answer.
As Knu said, you can use this tool, however it's compiled only for MS-DOS. I compiled it for Win64. Download.
Usage:
Place the .exe in the same folder as the font you need to modify
Navigate to that directory in the command line
type
embed fontname.fonttype
, replacing fontname with the filename and fonttype with the extension i.e.embed brokenFont.ttf
All done! Your font should now work.
You should set the format of the ie font to 'embedded-opentype' and not 'eot'. For example:
src: url('fontname.eot?#iefix') format('embedded-opentype')