我在iOS上崩溃时遇到问题。我为Android使用iTextSharp LGPL-MonoForAndroid,为iOS使用itextsharpios。我尝试为西里尔语言(例如俄语和中文)创建PDF。
在Android系统上一切正常。
在iOS系统上,我收到一个System.NotSupported异常,并显示以下消息:“可以找到编码1252数据。请确保您已安装并启用了正确的国际代码集程序集。”
我已将所有i18n程序集包含到我的iOS项目中。我尝试从嵌入式字体创建字节数组。
在android中,它可以正常工作,但是在iOS上,我可以超越Exception。我尝试了不同的编码,但出现异常,也可以创建PDF,但措辞为空。
在iOS上使用西里尔语言创建PDF的最佳解决方案是什么?我必须为iOS系统使用哪种编码?我使用以下编码进行了测试:“ identity-h”,“ Cp1251”,“ UTF-8”,“ ISO-8859-1”,“ macroman”。
Android解决方案:
var bytes = default(byte[]);
AssetManager assets = Android.App.Application.Context.Assets;
using (StreamReader sr = new StreamReader(assets.Open("arialuni.ttf")))
{
using (var memoryStream = new MemoryStream())
{
sr.BaseStream.CopyTo(memoryStream);
bytes = memoryStream.ToArray();
}
}
var font = BaseFont.CreateFont("arialuni.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, false, bytes, null);
我的代码的最后一行在iOS设备上引发异常。