使用iTextSharp生成PDF时出现NotSupported异常

时间:2018-07-26 12:08:57

标签: c# pdf xamarin.ios xamarin.android itext

我在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设备上引发异常。

0 个答案:

没有答案