Я использую следующий код для загрузки шрифта в память для формирования изображения с GDI +:Загрузка семейство шрифтов с диска PrivateFontCollection
var fontCollection = new PrivateFontCollection();
fontCollection.AddFontFile(Server.MapPath("~/fonts/abraham-webfont.ttf"));
fontCollection.Families.Count(); // => This line tells me, that the collection has 0 items.
Там нет исключений, но свойство fontCollection семьи пусто после того, как метод AddFontFile
работает без каких-либо исключений.
Я проверил, что путь является действительным (File.Exists
возвращает true
):
Response.Write(System.IO.File.Exists(Server.MapPath("~/fonts/abraham-webfont.ttf"))); // # => Renders "True"
TTF-файл, кажется, работает хорошо, когда я открываю файл, так что это не инвалид TTF-файл:
Любые предложения?
Вы делаете это на локальном хосте или этапе/производстве env с дополнительными путями? – Nathan
PrivateFontCollection является, как известно, чешуйчатым. Один из режимов сбоя, который сегодня довольно распространен, - это шрифт OpenType с контурами TrueType. GDI + поддерживает только «чистые». Обувь подходит, в Интернете говорится, что Abraham является шрифтом OpenType. Работает в WPF, а не в Winforms. –
@HansPassant Спасибо! Пожалуйста, отправьте этот комментарий в качестве ответа, чтобы я мог его принять. Проблема заключалась в том, что шрифт - не код. – Martin