我正在使用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这类问题的帮助将不胜感激。
N.B.我正在使用i-text 5.5.x
最佳答案
也使用显示的字体。
BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI);
Font font = new Font(base, 11f, Font.BOLD);