С# - Как использовать пользовательский шрифт без его установки в систему
Еще раз мне нужна ваша помощь.
Я разрабатываю небольшое приложение на С#, которое использует специальный шрифт.
Проблема в том, что шрифт должен быть установлен ранее в системе. Если шрифт отсутствует в системе, он просто использует Times New Roman.
Есть ли способ вставить файл шрифта в приложение, поэтому его не нужно устанавливать в каждой системе?
Спасибо.
Ответы
Ответ 1
Если вы все еще читаете это, я могу указать, что вам не нужно использовать небезопасный код для загрузки шрифта из ресурса. Вот пример использования маршала.
PrivateFontCollection _fonts = new PrivateFontCollection();
byte[] fontData = Resources.CustomFontResourceName;
IntPtr fontPtr = Marshal.AllocCoTaskMem(fontData.Length);
Marshal.Copy(fontData, 0, fontPtr, fontData.Length);
_fonts.AddMemoryFont(fontPtr, fontData.Length);
Marshal.FreeCoTaskMem(fontPtr);
Font customFont = new Font(_fonts.Families[0], 6.0F);
Ответ 2
Обратите внимание: если вы используете AddMemoryFont, вам нужно будет использовать этот api-вызов "AddFontMemResourceEx" или он не будет работать.
PrivateFontCollection дает мне символы