iText阿拉伯语翻转并重新安排RTL

时间:2015-12-31 12:36:38

标签: itext arabic bidirectional bidi

我遇到某些混合阿拉伯语/英语数据的问题。 这是我使用的代码:

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

pdf生成后的数据

E02 3010رييغت2

如果我更改为column.setRunDirection(PdfWriter.RUN_DIRECTION_NO_BIDI) 这条线是正确的,但阿拉伯语是不成形的。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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