Estou no processo de criar um pequeno aplicativo de intranet e tentar, sem sorte, usar a fonte da Adobe que adquiri recentemente. Como fui informado, no nosso caso, não é uma violação de licença.
Eu converti as versões da fonte .ttf / .otf para .woff, .eot e .svg, para segmentar todos os principais navegadores. A sintaxe @ font-face que usei é basicamente a à prova de balas da 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');
}
Modifiquei os cabeçalhos HTTP (adicionamos Access-Control-Allow-Origin = "*") para permitir referências entre domínios. No FF e no Chrome, ele funciona perfeitamente, mas no IE9 eu recebo:
CSS3111: @font-face encountered unknown error.
myfont-webfont.woff
CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable.
myfont-webfont.ttf
Notei que, ao converter fontes de .ttf / .otf para .woff, também recebo um arquivo .afm , mas não tenho idéia se é importante ou não ...
Alguma idéia de como resolver isso?
[Editar] - Eu hospedo meus sites (fontes também, mas em diretório e subdomínio separados para conteúdo estático) no IIS 7.5
fonte
url('myfont-webfont.eot?#iehack') format('eot'),
removê-lo resolveu o último erro (erro desconhecido).Respostas:
Só posso explicar como corrigir o erro "CSS3114".
Você precisa alterar o nível de incorporação do seu arquivo TTF.
Usando a ferramenta apropriada , você pode configurá-lo para incorporação instalável permitida .
Para uma versão de 64 bits, verifique a resposta de @ user22600 .
fonte
#include <string.h>
Como Knu disse, você pode usar essa ferramenta , porém é compilada apenas para o MS-DOS. Eu o compilei para o Win64. Download .
Uso:
Coloque o .exe na mesma pasta que a fonte que você precisa modificar
Navegue para esse diretório na linha de comandos
tipo
embed fontname.fonttype
, substituindo fontname com o nome do arquivo e FontType com a extensão ou sejaembed brokenFont.ttf
Tudo feito! Sua fonte agora deve funcionar.
fonte
Você deve definir o formato da fonte ie como 'tipo de código-fonte incorporado' e não 'eot'. Por exemplo:
fonte
Eu estava recebendo o seguinte erro:
Depois de usar o código abaixo, meu problema foi resolvido ....
Obrigado pessoal por me ajudar!
Saúde,
Renjith.
fonte
Tente isso, adicione estas linhas no web.config.
fonte
application/font-woff
.Uma resposta diferente: questões legais.
Há algumas coisas a serem observadas antes de fazer isso. Primeiro, para obter esse erro, no IE, inspecione o elemento, alterne suas guias e procure pelos erros, acredito que "CSS3114" apareça no console.
O que você precisa entender é que esse é um problema de licenciamento. IE (trocadilhos) se você estiver tentando carregar uma fonte que causa esse erro, não possui permissões no arquivo para usá-la e, se não tiver permissão, é altamente provável que você perca um uma batalha legal (que é altamente improvável) sobre o uso dessa fonte dessa maneira, a menos que você possua a licença. Assim, você pode, pela primeira vez, agradecer ao IE por ser o único navegador a dizer "não", porque pelo menos permite que você saiba que está fazendo algo questionável.
Dito isto, aqui está sua resposta:
Primeiro, verifique se você está usando o melhor código em .css, veja algumas das outras respostas em css para isso.
Exemplo de CSS do IE 11 (funciona em todos os navegadores modernos pode precisar ser ajustado para o IE9):
Em seguida, verifique se você tem uma fonte da Web funcionando (provavelmente já sabe disso vendo sua fonte em outros navegadores). Se você precisar de um conversor de fontes on-line, verifique aqui: https://onlinefontconverter.com/
Por fim, para se livrar do erro "CSS3114". Para uma ferramenta online, clique aqui: https://www.andrebacklund.com/fontfixer.html
fonte
É verdade que o IE9 exige que as fontes TTF tenham os bits de incorporação definidos como Instalável. O Generator faz isso automaticamente, mas atualmente estamos bloqueando as fontes da Adobe por outros motivos. Podemos suspender essa restrição em um futuro próximo.
fonte
Perdi muito tempo por causa desse problema. Finalmente, eu mesmo achei ótima solução. Antes de usar apenas a fonte .ttf. Mas eu adicionei um formato de fonte extra .eot que começou a funcionar no IE.
Eu usei o seguinte código e funcionou como charme em todos os navegadores.
Espero que isso ajude alguém.
fonte
Como usuário de Mac, não consegui usar as ferramentas de linha de comando do MS-DOS e Windows mencionadas para corrigir a permissão de incorporação de fontes. No entanto, descobri que você pode corrigir isso usando o FontLab para definir a permissão como 'Tudo é permitido'. Espero que esta receita sobre como definir a permissão de fonte como Instalável no Mac OS X também seja útil para outras pessoas.
fonte
Se você estiver familiarizado com o nodejs / npm, o ttembed-js é uma maneira fácil de definir o sinalizador "instalação instalável permitida" em uma fonte TTF. Isso modificará o arquivo .ttf especificado:
fonte
O problema pode estar relacionado à configuração do servidor - pode não estar enviando os cabeçalhos corretos para os arquivos de fonte. Dê uma olhada na resposta dada para a pergunta IE9 bloqueia o download de fontes da web de origem cruzada .
EricLaw sugere adicionar o seguinte à sua configuração do Apache
fonte
Para todos que obtiverem o erro: "a versão da tabela deve ser 0, 1 ou hexadecimal: 003" ao usar o ttfpatch, compilei o embed para 64 bits. Eu não mudei nada, apenas adicionei libs necessárias e compiladas. Use por sua conta e risco.
Uso: ConsoleApplication1 font.ttf
http://www.mediafire.com/download/8x1px8aqq18lcx8/ConsoleApplication1.exe
fonte
Se você quiser fazer isso com um script PHP em vez de precisar executar o código C (ou você estiver em um Mac como eu e não puder ser compilado com o Xcode apenas para esperar um ano para que ele seja aberto), aqui está um Função PHP que você pode usar para remover as permissões de incorporação da fonte:
Certifique-se de fazer backup do seu arquivo de fonte antes de executar este código e não me culpe se ele corromper.
A fonte original em C pode ser encontrada aqui .
fonte
Você pode resolvê-lo seguindo o código
fonte
Eu encontrei
eot
arquivo deve ser colocado alémttf
. Se estiver abaixottf
, apesar de a fonte ser exibida corretamente, o IE9 ainda gera um erro.Recomendar:
Não recomendo:
fonte
Eu tentei a ferramenta ttfpatch e não funcionou comigo. O Internet Exploder 9 e 10 ainda se queixou.
Encontrei essa boa essência do Git e resolvi meus problemas. https://gist.github.com/stefanmaric/a5043c0998d9fc35483d
Basta copiar e colar o código no seu css.
fonte
Recentemente, encontrei esse problema com fontes .eot e .otf, produzindo os erros CSS3114 e CSS3111 no console durante o carregamento. A solução que funcionou para mim foi usar apenas os formatos .woff e .woff2 com um fallback de formato .ttf. Os formatos .woff serão usados antes do .ttf na maioria dos navegadores e não parecem acionar o problema de permissões de incorporação de fontes (css3114) e o problema de formato incorreto de nomeação de fontes (css3111). Encontrei minha solução neste artigo extremamente útil sobre o problema CSS3111 e CSS3114 e também li este artigo sobre o uso de @ font-face .
Nota: Esta solução não requer recompilar, converter ou editar nenhum arquivo de fonte. É uma solução apenas para CSS. A fonte com a qual eu testei tinha as versões .eot, .otf, .woff, .woff2 e .svg geradas para ela, provavelmente a partir da fonte .ttf original que produziu o erro 3114 quando tentei, no entanto, a .woff e. Os arquivos woff2 pareciam estar imunes a esse problema.
Isto é o que DID funcionou para mim com @ font-face:
Foi isso que desencadeou os erros com @ font-face no IE:
fonte
Isso funciona para mim:
fonte