如何解决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 举报,一经查实,本站将立刻删除。