2012-04-12 11 views
3

私はITmed PDFをスタンプされたPDFを生成するためにjavaで使用しますが、生成されるPDFはアラビア語で、面白い問題に直面しています。 右から左(RTL)からアラビア語ページを作成するには、PdfPCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL)というプロパティを持つテーブルとセルを使用します。このプロパティを使用すると、アラビア文字がまったく表示されません。アラビア語の文字列が正しく表示されていれば、フォントに問題はないはずです。実際にITextまたはIの問題があるかどうかは分かりません。ちょうど何かが足りない。ここでITextPdf:右から左(RTL)からアラビア文字列を印刷

正しくアラビア語の文字列を示すコードの小さな平和:ここ

BaseFont bf = BaseFont.createFont(Application.getBASEPATH() + "fonts/arabic.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
Font trebuchetSmaller = new Font(bf, 10, 0); 

PdfPTable tbl = new PdfPTable(1); 
PdfPCell cell = new PdfPCell(); 
Paragraph paragraph = new Paragraph(); 
paragraph.add(new Phrase("ربط صفحة على شبكة الإنترنت"), trebuchetSmaller)); 
cell.addElement(paragraph); 
tbl.addCell(cell); 

アラビア語の文字列が表示されなくなります必要な変更:私はPdfWriter.RUN_DIRECTION_RTLを使用する場合は

BaseFont bf = BaseFont.createFont(Application.getBASEPATH() + "fonts/arabic.ttf",BaseFont.IDENTITY_H, BaseFont.EMBEDDED); 
Font trebuchetSmaller = new Font(bf, 10, 0); 

PdfPTable tbl = new PdfPTable(1); 
PdfPCell cell = new PdfPCell(); 
cell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); 
Paragraph paragraph = new Paragraph(); 
paragraph.add(new Phrase("ربط صفحة على شبكة الإنترنت"), trebuchetSmaller)); 
cell.addElement(paragraph); 
tbl.addCell(cell); 

を英語の文字列は、それが想定していた形式で正しく表示されます。英語とアラビア語が混在する文字列を使用すると、英語の文字列だけが表示されます。

new Phrase("آزمايش", font) 

はまた、あなたが直接フレーズを追加することができます:

PdfPCell pdfCell = new PdfPCell(new Phrase("آزمايش", font)); 
pdfCell.setRunDirection(PdfWriter.RUN_DIRECTION_RTL); 
+0

Spannabeを使用できます。 [それについての詳細情報はあり] [1] [1]:http://stackoverflow.com/a/11612380/1278748 –

+0

使用フォントARIAL_FONT – shareef

答えて

3

変更あなたのコードが登録されたフォントを含めます。 実際問題は、RTLで切り替えたときに悪い動作をするフォントが使用されていたことです。私は、この住所に非常に興味深いユニコードのアラビア語フォントをたくさん見つけました:興味がある人はhttp://cooltext.com/Fonts-Unicode-Arabicです。

+0

これは、iTextの5サンプルです。 itextについてはどうしたらいいのですか?7.それを7章でどのように変えることができますか? –

+1

https://developers.itextpdf.com/examples/font-examples/clone-language-specific-examples – VahidN

+0

私はそれをテストしましたが、変更はありません。 –

1

どうもありがとう

+0

をお試しください。こんにちは、お手伝いできますか?私はアラビア語でpdfを作成し、アラビア語の文字の上にあるコードはLTRから分離しています –

関連する問題