Je suis en train de créer une petite application intranet et j'essaie, sans succès, d'utiliser la police Adobe que j'ai achetée récemment. Comme on m'a informé, dans notre cas, ce n'est pas une violation de licence.
J'ai converti les versions .ttf / .otf de la police en .woff, .eot et .svg, afin de cibler tous les principaux navigateurs. La syntaxe @ font-face que j'ai utilisée est essentiellement la syntaxe à l'épreuve des balles de 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');
}
J'ai modifié les en-têtes HTTP (ajouté Access-Control-Allow-Origin = "*") pour autoriser les références inter-domaines. Dans FF et Chrome, cela fonctionne parfaitement, mais dans IE9, j'obtiens:
CSS3111: @font-face encountered unknown error.
myfont-webfont.woff
CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable.
myfont-webfont.ttf
J'ai remarqué que lors de la conversion de la police de .ttf / .otf en .woff, je reçois également un fichier .afm , mais je ne sais pas si c'est important ou non ...
Des idées pour y parvenir?
[Modifier] - J'héberge mes sites Web (polices aussi, mais sous un répertoire et un sous-domaine séparés pour le contenu statique) sous IIS 7.5
la source
url('myfont-webfont.eot?#iehack') format('eot'),
suppression a résolu la dernière erreur (erreur inconnue).Réponses:
Je ne peux que vous expliquer comment corriger l'erreur "CSS3114".
Vous devez modifier le niveau d'intégration de votre fichier TTF.
À l'aide de l' outil approprié , vous pouvez le définir sur l' intégration installable autorisée .
Pour une version 64 bits, consultez la réponse de @ user22600 .
la source
#include <string.h>
Comme l'a dit Knu, vous pouvez utiliser cet outil , mais il n'est compilé que pour MS-DOS. Je l'ai compilé pour Win64. Téléchargez .
Usage:
Placez le .exe dans le même dossier que la police que vous devez modifier
Accédez à ce répertoire dans la ligne de commande
type
embed fontname.fonttype
, en remplaçant le nom de la police par le nom du fichier et le type de police par l'extension ieembed brokenFont.ttf
Terminé! Votre police devrait maintenant fonctionner.
la source
Vous devez définir le format de la police ie sur 'embedded-opentype' et non sur 'eot'. Par exemple:
la source
J'obtenais l'erreur suivante:
Après avoir utilisé le code ci-dessous, mon problème a été résolu ....
Merci les gars de m'aider!
Salut,
Renjith.
la source
Essayez ceci, ajoutez ces lignes dans le web.config.
la source
application/font-woff
.Une réponse différente: les problèmes juridiques.
Il y a quelques points à noter avant de faire cela. Tout d'abord, pour obtenir cette erreur, dans IE, inspectez l'élément, changez d'onglets et recherchez les erreurs, je crois que "CSS3114" apparaît dans la console.
Ce que vous devez comprendre, c'est qu'il s'agit d'un problème de licence. IE (jeu de mots) si vous essayez de charger une police qui provoque cette erreur, vous ne disposez pas des autorisations sur le fichier pour utiliser la police, et si vous n'avez pas l'autorisation, il est fort probable que vous perdiez un bataille juridique (ce qui est en soi hautement improbable) sur l'utilisation de cette police de cette manière à moins que vous ne déteniez la licence. Ainsi, vous pouvez, pour la première fois, remercier IE d'être le seul navigateur à vous dire «non», car cela vous permet au moins de savoir que vous faites quelque chose de douteux.
Cela dit, voici votre réponse:
Assurez-vous d'abord que vous utilisez le meilleur code en .css, voyez quelques-unes des autres réponses css pour cela.
Exemple d'IE 11 css (fonctionne dans tous les navigateurs modernes, il peut être nécessaire de modifier pour IE9):
Ensuite, assurez-vous d'avoir une police Web fonctionnelle (vous le savez probablement déjà en voyant votre police dans d'autres navigateurs). Si vous avez besoin d'un convertisseur de polices en ligne, vérifiez ici: https://onlinefontconverter.com/
Enfin, pour se débarrasser de l'erreur "CSS3114". Pour un outil en ligne, cliquez ici: https://www.andrebacklund.com/fontfixer.html
la source
Il est vrai que IE9 requiert que les polices TTF aient les bits d'incorporation définis sur Installable. Le générateur le fait automatiquement, mais nous bloquons actuellement les polices Adobe pour d'autres raisons. Nous pouvons lever cette restriction dans un proche avenir.
la source
J'ai perdu beaucoup de temps à cause de ce problème. Enfin, j'ai trouvé moi-même une excellente solution. Avant, j'utilisais uniquement la police .ttf. Mais j'ai ajouté un format de police supplémentaire .eot qui a commencé à fonctionner dans IE.
J'ai utilisé le code suivant et cela a fonctionné comme du charme dans tous les navigateurs.
J'espère que cela aidera quelqu'un.
la source
En tant qu'utilisateur Mac, je n'ai pas pu utiliser les outils de ligne de commande MS-DOS et Windows mentionnés pour corriger l'autorisation d'incorporation de polices. Cependant, j'ai découvert que vous pouvez résoudre ce problème en utilisant FontLab pour définir l'autorisation sur «Tout est autorisé». J'espère que cette recette sur la façon de définir l'autorisation de police sur Installable sur Mac OS X sera également utile pour les autres.
la source
Si vous êtes familier avec nodejs / npm, ttembed-js est un moyen simple de définir le drapeau "intégration installable autorisée" sur une police TTF. Cela modifiera le fichier .ttf spécifié:
la source
Le problème peut être lié à la configuration de votre serveur - il peut ne pas envoyer les bons en-têtes pour les fichiers de polices. Jetez un œil à la réponse donnée à la question IE9 bloque le téléchargement de la police Web d'origine croisée .
EricLaw suggère d'ajouter ce qui suit à votre configuration Apache
la source
Si vous voulez faire cela avec un script PHP au lieu d'avoir à exécuter du code C (ou si vous êtes sur un Mac comme moi et que vous ne pouvez pas être obligé de compiler avec Xcode seulement pour attendre un an pour qu'il s'ouvre), voici un Fonction PHP que vous pouvez utiliser pour supprimer les autorisations d'incorporation de la police:
Assurez-vous de sauvegarder votre fichier de police avant d'exécuter ce code et ne me blâmez pas s'il corrompt.
La source originale en C peut être trouvée ici .
la source
Pour tous ceux qui obtiennent l'erreur: "tableversion doit être 0, 1 ou et est hexadécimal: 003" lors de l'utilisation de ttfpatch, j'ai compilé l'embed pour 64 bits. Je n'ai rien changé, j'ai juste ajouté les bibliothèques nécessaires et compilées. Utilisez à vos risques et périls.
Utilisation: ConsoleApplication1 font.ttf
http://www.mediafire.com/download/8x1px8aqq18lcx8/ConsoleApplication1.exe
la source
Vous pouvez le résoudre en suivant le code
la source
J'ai trouvé que le
eot
fichier devrait être mis au-delàttf
. S'il est sousttf
, si la police s'affiche correctement, IE9 lancera toujours une erreur.Recommander:
Ne pas recommander:
la source
J'ai essayé l'outil ttfpatch et cela n'a pas fonctionné pour moi. Internet Exploder 9 et 10 se plaignaient toujours.
J'ai trouvé ce joli Git et cela a résolu mes problèmes. https://gist.github.com/stefanmaric/a5043c0998d9fc35483d
Copiez et collez simplement le code dans votre css.
la source
J'ai récemment rencontré ce problème avec les polices .eot et .otf produisant les erreurs CSS3114 et CSS3111 dans la console lors du chargement. La solution qui a fonctionné pour moi était d'utiliser uniquement les formats .woff et .woff2 avec un format de secours .ttf. Les formats .woff seront utilisés avant .ttf dans la plupart des navigateurs et ne semblent pas déclencher le problème des autorisations d'incorporation de polices (css3114) et le problème de format incorrect de dénomination des polices (css3111). J'ai trouvé ma solution dans cet article extrêmement utile sur le problème CSS3111 et CSS3114 , et en lisant également cet article sur l'utilisation de @ font-face .
Remarque: cette solution ne nécessite pas de recompilation, de conversion ou de modification de fichiers de polices. C'est une solution uniquement css. La police avec laquelle j'ai testé avait des versions .eot, .otf, .woff, .woff2 et .svg générées pour elle, probablement à partir de la source d'origine .ttf qui a produit l'erreur 3114 lorsque je l'ai essayé, mais les .woff et. Les fichiers woff2 semblaient à l'abri de ce problème.
C'est ce qui a fonctionné pour moi avec @ font-face:
C'est ce qui a déclenché les erreurs avec @ font-face dans IE:
la source
Cela fonctionne pour moi:
la source
Si vous souhaitez faire cela avec un script Python au lieu d'avoir à exécuter du code C / PHP, voici une fonction Python3 que vous pouvez utiliser pour supprimer les autorisations d'incorporation de la police:
cela fonctionne, mais j'ai fini par résoudre le problème du chargement des polices dans IE par https comme ceci
merci NobleUplift
La source originale en C peut être trouvée ici .
la source