Я нахожусь в процессе создания небольшого приложения для интрасети и безуспешно пытаюсь использовать купленный мной недавно шрифт Adobe . Как мне сообщили, в нашем случае это не нарушение лицензии.
Я конвертировал версии шрифта .ttf / .otf в .woff, .eot и .svg, чтобы настроить их для всех основных браузеров. Синтаксис @ font-face, который я использовал, в основном пуленепробиваемый от 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');
}
Я изменил заголовки HTTP (добавил Access-Control-Allow-Origin = "*"), чтобы разрешить междоменные ссылки. В FF и Chrome это работает отлично, но в IE9 я получаю:
CSS3111: @font-face encountered unknown error.
myfont-webfont.woff
CSS3114: @font-face failed OpenType embedding permission check. Permission must be Installable.
myfont-webfont.ttf
Я заметил, что при преобразовании шрифта из .ttf / .otf в .woff я также получаю файл .afm , но понятия не имею, важно это или нет ...
Есть идеи, как это решить?
[Редактировать] - я размещаю свои веб-сайты (шрифты тоже, но в отдельном каталоге и поддомене для статического содержимого) под IIS 7.5
источник
url('myfont-webfont.eot?#iehack') format('eot'),
ее устранение позволило устранить последнюю ошибку (неизвестная ошибка).Ответы:
Я могу только объяснить вам, как исправить ошибку «CSS3114».
Вы должны изменить уровень встраивания вашего файла TTF.
Используя соответствующий инструмент, вы можете установить его для допустимого встраивания .
Для 64-битной версии проверьте ответ @ user22600 .
источник
#include <string.h>
Как сказал Кну, вы можете использовать этот инструмент , однако он скомпилирован только для MS-DOS. Я скомпилировал его для Win64. Скачать .
Использование:
Поместите .exe в ту же папку, что и шрифт, который нужно изменить.
Перейдите к этому каталогу в командной строке
тип
embed fontname.fonttype
, заменяя имя шрифта именем файла и тип шрифта с расширением, т.е.embed brokenFont.ttf
Все сделано! Ваш шрифт должен теперь работать.
источник
Вы должны установить формат шрифта ie на 'embedded-opentype', а не 'eot'. Например:
источник
Я получил следующую ошибку:
После использования кода ниже моя проблема была решена ....
Спасибо, ребята, что помогли мне!
Ура,
Ренджит.
источник
Попробуйте это, добавьте эти строки в web.config.
источник
application/font-woff
.Другой ответ: правовые вопросы.
Перед тем, как сделать это, нужно кое-что отметить. Во-первых, чтобы получить эту ошибку, в IE, проверить элемент, переключить вкладки и найти ошибки, я думаю, что «CSS3114» появляется в консоли.
Что вам нужно понять, так это вопрос лицензирования. IE (каламбур), если вы пытаетесь загрузить шрифт, который вызывает эту ошибку, у вас нет разрешения на использование шрифта в файле, и если у вас нет разрешения, очень вероятно, что вы потеряете юридическая битва (что само по себе крайне маловероятно) за использование этого шрифта таким образом, если вы не обладаете лицензией. Итак, вы можете впервые поблагодарить IE за то, что он единственный браузер, который говорит вам «нет», потому что он по крайней мере позволяет вам знать, что вы делаете что-то сомнительное.
Тем не менее, вот ваш ответ:
Сначала убедитесь, что вы используете лучший код в .css, посмотрите некоторые другие ответы CSS для этого.
Пример IE 11 css (работает во всех современных браузерах, возможно, потребуется настроить для IE9):
Затем убедитесь, что у вас есть работающий веб-шрифт (вы, вероятно, уже знаете это, увидев свой шрифт в других браузерах). Если вам нужен онлайн-конвертер шрифтов, проверьте здесь: https://onlinefontconverter.com/
Наконец, чтобы избавиться от ошибки «CSS3114». Для онлайн-инструмента, нажмите здесь: https://www.andrebacklund.com/fontfixer.html
источник
Это правда, что IE9 требует шрифтов TTF, чтобы биты встраивания были установлены в Installable. Генератор делает это автоматически, но в настоящее время мы блокируем шрифты Adobe по другим причинам. Мы можем снять это ограничение в ближайшее время.
источник
Я потратил много времени из-за этой проблемы. Наконец я нашел отличное решение сам. До этого я использовал только шрифт .ttf. Но я добавил один дополнительный формат шрифта .eot, который начал работать в IE.
Я использовал следующий код, и он работал как шарм во всех браузерах.
Надеюсь, это кому-нибудь поможет.
источник
Как пользователь Mac, я не мог использовать инструменты командной строки MS-DOS и Windows, о которых говорилось, чтобы исправить разрешение на встраивание шрифта. Однако я обнаружил, что это можно исправить с помощью FontLab, чтобы установить разрешение «Все разрешено». Я надеюсь, что этот рецепт о том, как установить разрешение шрифта для Installlable в Mac OS X, будет полезен и для других.
источник
Если вы знакомы с nodejs / npm, ttembed-js - это простой способ установить флаг «разрешено встраиваемое встраивание» для шрифта TTF. Это изменит указанный файл .ttf:
источник
Возможно, проблема связана с конфигурацией вашего сервера - возможно, он не отправляет правильные заголовки для файлов шрифтов. Взгляните на ответ на вопрос, который IE9 блокирует загрузку веб-шрифта с несколькими источниками .
EricLaw предлагает добавить следующее в вашу конфигурацию Apache
источник
Если вы хотите сделать это с помощью PHP-скрипта вместо того, чтобы запускать код на C (или вы работаете на Mac, подобном мне, и вы не можете получить компиляцию с XCode только для того, чтобы ждать, пока он откроется год), вот Функция PHP, которую вы можете использовать для удаления прав на встраивание шрифта:
Перед запуском этого кода обязательно сделайте резервную копию файла шрифта и не вините меня, если он испортился.
Первоначальный источник в C можно найти здесь .
источник
Для всех, кто получает сообщение об ошибке: «tableversion должен быть 0, 1 или hex: 003» при использовании ttfpatch, я скомпилировал embed для 64-битной версии. Я ничего не изменил, просто добавил библиотеки и откомпилировал. Используйте на свой страх и риск.
Использование: ConsoleApplication1 font.ttf
http://www.mediafire.com/download/8x1px8aqq18lcx8/ConsoleApplication1.exe
источник
Вы можете решить это следующим кодом
источник
Я нашел
eot
файл должен быть помещен за пределыttf
. Если он нижеttf
, то, если шрифт отображается правильно, IE9 все равно выдаст ошибку.Рекомендовать:
Не рекомендую:
источник
Я попробовал инструмент ttfpatch, и он не работал со мной. Internet Exploder 9 и 10 до сих пор жаловались.
Я нашел этот хороший Git Gist, и он решил мои проблемы. https://gist.github.com/stefanmaric/a5043c0998d9fc35483d
Просто скопируйте и вставьте код в ваш CSS.
источник
Недавно я столкнулся с этой проблемой со шрифтами .eot и .otf, приводящими к ошибкам CSS3114 и CSS3111 в консоли при загрузке. Решение, которое работало для меня, состояло в том, чтобы использовать только форматы .woff и .woff2 с запасным вариантом формата .ttf. Форматы .woff будут использоваться раньше .ttf в большинстве браузеров и, по-видимому, не будут вызывать проблему с разрешениями на встраивание шрифтов (css3114) и проблему неправильного формата именования шрифтов (css3111). Я нашел свое решение в этой чрезвычайно полезной статье о проблеме CSS3111 и CSS3114 , а также читал эту статью об использовании @ font-face .
примечание: это решение не требует повторной компиляции, преобразования или редактирования любых файлов шрифтов. Это решение только для CSS. У шрифта, с которым я тестировал, были версии .eot, .otf, .woff, .woff2 и .svg, сгенерированные для него, вероятно, из исходного источника .ttf, который действительно выдал ошибку 3114, когда я пытался это сделать, однако .woff и. Файлы woff2, похоже, неуязвимы для этой проблемы.
Вот что мне помогло с @ font-face:
Это было то, что вызвало ошибки с @ font-face в IE:
источник
Это работает для меня:
источник
Если вы хотите сделать это с помощью скрипта Python вместо того, чтобы запускать код C / PHP, вот функция Python3, которую вы можете использовать для удаления разрешений на встраивание шрифта:
это работает, но в итоге я решил проблему загрузки шрифтов в IE по https вот так
спасибо NobleUplift
Первоначальный источник в C можно найти здесь .
источник