如何解决RegisterSystemDirectories 和其他方法有什么区别
我正在使用 iText 7 .NET dll,我想知道 PdfFontFactory.RegisterSystemDirectories()
方法和以下方法之间有什么区别:
PdfFontFactory.CreateRegisteredFont("calibri",PdfEncodings.IDENTITY_H,True)
PdfFontFactory.RegisterDirectory("C:\Windows\Fonts\Calibri")
FontProgramFactory.RegisterFontDirectory("C:\Windows\Fonts\Calibri")
FontProgramFactory.CreateRegisteredFont("calibri")
因为当我要求 PdfFontFactory.GetRegisteredFonts()
时,结果仅受第一个影响,而不受其他影响。
我有时使用 OutOfMemoryException
,我看到 RegisterSystemDirectories
将内存增加了 500 mb 而我只需要 12 种字体(“arial”、“calibri”、“comic”、 “乔治亚”、“lucida”、“segoe”、“时代”、“投石机”、“verdana”、“consola”)。如果我不注册它们,当我将带有这些字体之一的段落添加到我的 PdfDocument 时,会出现异常:“字体类型无效”。
非常感谢。
解决方法
我还没有/找到关于我的问题的任何答案,但我找到了另一种方法,可以满足我的要求:PdfFontFactory.Register("C:\Windows\Fonts\CALIBRI.TTF")
。我应该为我想使用的每种字体都这样做,但它可以节省 400 mb 的内存!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。