我正在使用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);

10-08 14:42