私は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);
Spannabeを使用できます。 [それについての詳細情報はあり] [1] [1]:http://stackoverflow.com/a/11612380/1278748 –
使用フォントARIAL_FONT – shareef