【发布时间】:2018-05-01 23:10:59
【问题描述】:
我正在使用 i-text 从我的 android 应用程序生成 pdf。但它适用于英文字体。当我试图为我的语言环境 Bangla 生成 pdf 时,我遇到了一些问题。从一些博客中获得一些提示后,我得到了下面提到的实现方式:
String fontName = "Nikosh.ttf";
InputStream is = context.getAssets().open(fontName);
int size = is.available();
byte[] buffer = new byte[size];
int a = is.read(buffer);
BaseFont customFont = BaseFont.createFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true, buffer, buffer);
Font banglaFont = new Font(customFont, 12);
现在输出如下所示:
这是使用孟加拉字体的孟加拉文本的输出
但输出文本已损坏。而原来的看起来像这样:
孟加拉语原文
任何有关如何在 android 中解决此类 unicode 问题的帮助将不胜感激。 注:我正在使用 i-text 5.5.x
【问题讨论】:
-
您使用的是 iText 5 或更早版本。输出损坏是正常的,因为 iText 5 不支持孟加拉语文本。如果你想支持印度语言,你需要升级到 iText 7 并使用pdfCalligraph add-on。阅读pdfCalligraph white paper 了解更多信息。 iText 7 与 iText 5 具有相同的许可证,但 pdfCalligraph 已保持封闭源代码以避免滥用。
标签: java android pdf fonts itext