为了生成加盖的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