1

我对某些混合的阿拉伯语/英语数据有疑问。这是我使用的代码:

ColumnText column = new ColumnText(writer.getDirectContent()); 
column.setSimpleColumn(36, 770, 569, 36); 
column .setRunDirection(PdfWriter.RUN_DIRECTION_RTL);      
column.setArabicOptions(column.AR_NOVOWEL |                  
                      column.AR_LIG |                      
                      column.AR_COMPOSEDTASHKEEL);   

这是原始数据

2 ‏ ‎تغــيير ‎3010 E02‎</p>

pdf生成后的数据

E02 3010 رييغت ‎2

如果我更改为 column.setRunDirection(PdfWriter.RUN_DIRECTION_NO_BIDI),则该行正确,但阿拉伯语未成形。

4

2 回答 2

1

结果是正确的。数字是中性的,将遵循当前方向。在这个例子中,我们从数字 2 的 R 开始,然后是阿拉伯数字的 R,然后是数字 3010 的 R,然后是 E02 的 L。

于 2015-12-31T13:31:31.020 回答
0

IBM 比迪布局和 iText 比迪处理似乎相互干扰。我在这里使用了 RUN_DIRECTION_NO_BIDI 并使用了 JAVABIDI 标志:http: //www.ibm.com/developerworks/java/jdk/bidirectional/JAVABIDI.html
现在iText PDF 阿拉伯语在所有情况下都是完美的。

但是,我现在遇到了 PDF 元数据的问题,当我在那里混合阿拉伯语/拉丁语数据时,它现在显示相同的翻转问题,有没有办法在元数据级别关闭比迪酒?

于 2016-01-19T16:07:37.500 回答