Как управлять пользовательскими шрифтами в веб-приложении (system.drawing) - PullRequest
7 голосов
/ 12 октября 2010

У меня есть приложение, которое записывает текст на изображения , используя System.Drawing (C #).

Я использую определенные шрифты для этого.

Поскольку я не могу полагаться на свои серверы общего хостинга, чтобы иметь все пользовательские шрифты, которые мне могут понадобиться (и поскольку список шрифтов, вероятно, будет расти), как я могу управлять шрифтами, используемыми для моего приложения?

Могу ли я включить .ttf файлы в свой проект и как-нибудь ссылаться на них?

А как насчет базы данных SQL, содержащей шрифты?

1 Ответ

14 голосов
/ 12 октября 2010

Должна быть возможность хранить файлы шрифтов на диске или в базе данных, а затем использовать класс PrivateFontCollection для использования шрифтов во время выполнения.

Вот как бы вы его использовали:

    PrivateFontCollection collection = new PrivateFontCollection();
    // Add the custom font families. 
    // (Alternatively use AddMemoryFont if you have the font in memory, retrieved from a database).
    collection.AddFontFile(@"E:\Downloads\actest.ttf");
    using (var g = Graphics.FromImage(bm))
    {
        // Create a font instance based on one of the font families in the PrivateFontCollection
        Font f = new Font(collection.Families.First(), 16);
        g.DrawString("Hello fonts", f, Brushes.White, 50, 50);
    }
...