我遇到某些混合阿拉伯语/英语数据的问题。 这是我使用的代码:
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) 这条线是正确的,但阿拉伯语是不成形的。
答案 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?