MigraDoc / PdfSharpCore-请求字体“ New”

问题描述

table.Rows[0].Cells[4].AddParagraph("0123456789ABCDEFGHIJKLMnopQRSTUVWYXZ")
   .Format.Font.ApplyFont(new Font("barcode",36));
...

var documentRenderer = new DocumentRenderer(_document);
documentRenderer.PrepareDocument(); //<--- crash here

它通过我的自定义字体解析器ResolveTypeface("barcode",false,false)GetFont("barcode.ttf")达到了预期的效果

然后它与ResolveTypeface("New",false)一起出现。我不知道“新”来自哪里。

如果我将新的Font(“ barcode”,36)更改为新的Font(“ Arial”,36),一切都很好,并且永远不会要求使用“ New”的字体。我尝试了另一种字体,以防万一某个东西弄乱了。我查看了MigraDoc / PdfSharpCore的源代码,但没有看到对硬编码的“ New”字符串的引用。

解决方法

我最好的猜测是,MigraDoc到PDF的转换会从它用来解析的字体中查找FontFamily,然后在生成PDF时使用那个字体家族(不是原始的)。

这意味着两件事:

  • 解决字体时,最好使用字体中的 exact 字体系列名称。
  • 您的字体必须正确/没有损坏。在某个地方,它从我使用的字体中抢了“新”。