2017-11-18 11 views
2

私はアンドロイドアプリケーションからpdfを生成するためにi-textを使用しています。しかし、英語のフォントではうまくいきました。私のロケール、Banglaのためにpdfを生成しようとしていたとき、私はいくつか問題がありました。私は怒鳴る言及した方法で実装を持っているいくつかのブログからいくつかのヒントを取得した後:アンドロイドのBanglaテキストにitextを使用して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); 

を今すぐ出力は次のようになります。

これは

バングラフォントを使用してバングラテキストの出力であります

image

ただし、出力テキストが壊れています。オリジナルのものはこの1つのように見えるのに対し:バングラ

image2

元のテキストアンドロイドにユニコードのためにこの種の問題を解決する方法に関するすべてのヘルプは非常にいただければ幸いです。 N.B.私はi-text 5.5.xを使用しています

+0

iText 5以前を使用しています。 iText 5はBanglaのテキストをサポートしていないので、出力が壊れているのは正常です。インド語をサポートしたい場合は、iText 7にアップグレードし、[pdfCalligraphアドオン](https://itextpdf.com/itext7/pdfcalligraph)を使用する必要があります。詳細については、[pdfCalligraph white paper](https://developers.itextpdf.com/sites/default/files/attachments/Whitepaper_pdfCalligraph_2017.pdf)を参照してください。 iText 7はiText 5と同じライセンスを持っていますが、虐待を避けるためにpdfCalligraphはクローズソースになっています。 –

答えて

0

同様に表示するフォントを使用してください。

BaseFont base = BaseFont.createFont("c:/windows/fonts/arial.ttf", BaseFont.WINANSI); 
Font font = new Font(base, 11f, Font.BOLD); 
関連する問題