微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MigraDoc / PdfSharpCore-请求字体“ New”

如何解决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 字体系列名称。
  • 您的字体必须正确/没有损坏。在某个地方,它从我使用的字体中抢了“新”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。