gpt4 book ai didi

c# - PrivateFontCollection 在 appharbor 上失败

转载 作者:行者123 更新时间:2023-11-30 16:21:01 25 4
gpt4 key购买 nike

我正在尝试加载自定义字体(ttf 文件)并使用 Graphics 对象绘制到图像中。此代码在本地运行良好:

PrivateFontCollection fonts = new PrivateFontCollection();

string path = context.Server.MapPath("~/App_Data/Futura LT Bold.ttf");

if (!System.IO.File.Exists(path))
{
throw new InvalidOperationException("Font file is not deployed: " + path);
}

fonts.AddFontFile(path);

然而,当在 appharbor 上运行时,对 AddFontFile 的调用失败并出现以下异常:

System.ArgumentException: Font 'Futura LT Book' does not support style 'Regular'.
at System.Drawing.Font.CreateNativeFont()
at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont)
at System.Drawing.Font..ctor(FontFamily family, Single emSize)
at LumenboxWeb.Controllers.GalleryController.FontTest() in d:\temp\h5oqslma.udd\input\src\LumenboxWeb\Controllers\GalleryController.cs:line 59
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)

我尝试了不同的字体,它们都在本地工作,但在 appharbor 上没有一个工作。

是否可以在appharbor上动态加载字体?

最佳答案

string path = context.Server.MapPath("~/App_Data/Futura LT Bold.ttf");
fonts.AddFontFile(path);

您可以从 .ttf 名称中看出为什么会抛出异常。请注意文件名中的“粗体”。这使得您可以使用 FontStyle = Regular 创建该字体实例的可能性相当低。但很有可能 FontStyle = Bold 会起作用。

一种字体通常有多个 .ttf 文件,每个文件对应一个FontStyle。如果您有其他文件,您还必须添加这些文件。

关于c# - PrivateFontCollection 在 appharbor 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13627943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com