【问题标题】:How to manage custom fonts in web application (system.drawing)如何在 Web 应用程序中管理自定义字体(system.drawing)
【发布时间】:2011-04-23 23:56:00
【问题描述】:
我有一个应用程序,它使用System.Drawing (C#) 将文本写入图像。
我正在使用特定的字体来执行此操作。
由于我不能依靠我的共享托管服务器来拥有我可能需要的所有自定义字体(并且由于字体列表可能会增加),我该如何管理用于我的应用程序的字体?
我可以在我的项目中包含 .ttf 文件并以某种方式引用它们吗?
包含字体的 SQL 数据库怎么样?
【问题讨论】:
标签:
c#
asp.net-mvc
fonts
system.drawing
truetype
【解决方案1】:
应该可以将字体文件存储在磁盘或数据库中,然后使用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);
}