我正在尝试将私有字体包含到我的 PDFsharp (v1.51) 文档绘图过程中。
我正在使用
EZFontResolver
,如这里所解释的那样
这就是我正在做的:
public byte[] GetCertificate(Object model)
{
// Get the EZFontResolver.
EZFontResolver fontResolver = EZFontResolver.Get;
// Assign it to PDFsharp.
GlobalFontSettings.FontResolver = fontResolver; //HERE IT FAILS
fontResolver.AddFont("Pinyon Script", XFontStyle.Regular, this.SpecialFontPath, true, true);
// Create a new PDF document
var document = new PdfDocument();
document.Info.Title = "CERTIFICATE ";
...
违规行是:
GlobalFontSettings.FontResolver = fontResolver;
出现以下错误:*Must not change font resolver after is was once used.*
我读到问题是,因为它是单例,所以你应该只设置一次......但它是在创建文档之前设置的,而且我只在这个地方设置它(因为我只使用字体在这里)。
或者它可能掩盖了另一个问题?
知道如何绕过它吗?
我使用了使用 EZFontResolver 类的示例项目,它可以工作,唯一的区别是我从 ASP.NET MVC 运行有问题的代码。
错误信息
*Must not change font resolver after it was once used.*
非常清楚。
确保只设置一次。
也许使用静态布尔标志来指示
FontResolver
何时已设置,并在这种情况下跳过分配。