【发布时间】:2015-05-07 05:47:28
【问题描述】:
我使用该代码创建了一个 BaseFont
string combineStr = Path.Combine(Application.dataPath+"/Resources/Fonts", "Calibri Regular.ttf");
BaseFont bf = BaseFont.CreateFont(combineStr, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
iTextSharp.text.Font titleFont = new iTextSharp.text.Font(bf, 10f, iTextSharp.text.Font.NORMAL, BaseColor.BLACK);
在 Unity 中测试一切正常,我的西里尔字形运行良好,但在 WindowsPalyer 构建中出现错误
ArgumentException: Encoding name 'windows-1252' not supported
Paremeter name: name.
在这里找不到任何问题.. 检查了所有内容,以及我如何看到我的 BaseFont 代码是正确的。我的情况有什么问题? 附言我也尝试过其他支持西里尔文的字体,但没有任何帮助。
【问题讨论】:
-
1.为什么不嵌入字体?这意味着 PDF 不会在每个平台上都清晰易读。 2.你使用的是Unicode,为什么需要
windows-1252编码? 3. 你说的是西里尔字形,但西里尔字母的编码是 1251 而不是 1252。所有这些都让人相信你没有告诉我们你应该告诉我们的一切。我不知道 Unity3d 是什么,所以我不知道是什么引发了异常。不过,它看起来不像是 iTextSharp 异常。您是否有机会传递使用 windows-1252 编码的string编码?也许客户端不支持? -
感谢您的回复 1)我在互联网上找到了该解决方案,人们询问“如何在 iTextSharp 中使用西里尔字母”当然我已经尝试将其嵌入 2)相同 - 来自解决方案。但是我在考虑 UTF-8,但没有在 iTextSharp 中找到解决方案。抱歉,我刚刚探索了该库 1 天,不太了解,不确定是否会经常使用它 3)我没有选择 BaseFont.CP1252 。 . .我不知道为什么错误显示我的编码。在互联网的解决方案中,每个人都推荐 BaseFont.IDENTITY_H
-
这里是完整的错误消息link
-
Bruno 谢谢你,因为你认为这不是 iTextSharp 错误,所以我在缺少 .dll 中找到了解决方案
-
太棒了!如果您将该评论添加为答案,那就太好了,以便人们看到问题已解决。
标签: c# pdf fonts unity3d itextsharp