c# - 写入位图时无法在 asp.net c# 中找到字体

标签 c# asp.net fonts bitmap

问题是我无法加载字体然后在位图中呈现。具体来说,asp.net 网页代码创建一个位图,然后尝试将文本写入位图中。我尝试将代码从一台服务器 (Win 2003) 移至另一台服务器 (Win 2008)。它适用于 Win 2003,但不适用于 Win 2008。我从旧服务器复制字体 (.ttf) 并将它们安装在新服务器上。

代码:

Bitmap barcode = new Bitmap(1, 1);
ffamily = new FontFamily("Free 3 of 9"); //exception

Font threeOfNine = new Font(ffamily, 60, FontStyle.Regular, GraphicsUnit.Point);
Graphics graphics = Graphics.FromImage(barcode);
SizeF size = graphics.MeasureString(number, threeOfNine);
barcode = new Bitmap(barcode, size.ToSize());
graphics = Graphics.FromImage(barcode);
graphics.Clear(Color.White);
graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
graphics.DrawString(number, threeOfNine, new SolidBrush(Color.Black), 0, 0);
graphics.Flush();
threeOfNine.Dispose();
graphics.Dispose();

然后它在 new FontFamily() 的行上抛出这个异常:

Exception information: 
Exception type: ArgumentException 
Exception message: Font 'Free 3 of 9' cannot be found. 

字体已安装到 Windows 字体文件夹中。如果我尝试:

Font threeOfNine = new Font("Free 3 of 9", 60, FontStyle.Regular, GraphicsUnit.Point);

然后使用标准默认字体创建字体。有安全问题吗?为什么我的字体无法正确加载?

最佳答案

好吧,我自己找到了答案。

安装字体并确保 .ttf 具有正确的权限后。我不得不重新启动 IIS。我认为只有应用程序池才能重新启动。然后它开始工作。

关于c# - 写入位图时无法在 asp.net c# 中找到字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11910664/

相关文章:

c# - 打开特定主题的 .CHM 文件?

c# - 编写三角形计算器

c# - 使用 Web 服务 API 确定用户在 SharePoint 网站/工作区中的角色

asp.net - 输入类型不是 html5 中的文本的 UpdatePanel

android - Android 中文本的 Arial 字体

css - 静态网站中的自定义图标

C#语法??在控制语句中

c# - 如何使用 Xamarin 表单中的滚动菜单制作多个内容页面的选项卡式页面?

html - 使网页上的每个字符都具有相同的宽度

c# - 如何在wpf中单击按钮时更新文本框背景色