爲了生成加蓋的PDF,我使用java上的ITextpdf,有時生成的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);
這裏所需要的變化,這使得阿拉伯語字符串消失:
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);
如果我使用PdfWriter.RUN_DIRECTION_RTL與英文字符串它以正確的格式正確顯示。如果我使用混合英文和阿拉伯文字符的字符串,只顯示英文字符。
您可以使用Spannabe。 [有關於它的詳細信息] [1] [1]:http://stackoverflow.com/a/11612380/1278748 – 2012-11-25 17:00:38
使用字體ARIAL_FONT – shareef 2012-12-19 11:55:16