提问人:Zahraa Issa 提问时间:8/30/2022 最后编辑:vimuthZahraa Issa 更新时间:9/2/2022 访问量:136
使用 Java 的 Word 2019 在 DOCX4J 中进行 RTL
RTL in DOCX4J with Word 2019 using Java
问:
我正在尝试使用 docx4j 库生成从 xhtml 网页发送到 .docx 文件(2019 版本)的文本(阿拉伯语 + 英语)。但似乎该库不支持 Word 2019 上的 RTL 方向。
但是,它使用 Word 2013 效果很好。
截图:
Word2013 生成
Word2019-生成
答:
0赞
JasonPlutext
9/2/2022
#1
您如何创建生成的 2013.docx 和生成的 2019.docx 并不明显,但是您的 2013 docx(我知道看起来符合您的期望)和 2019 年之间的区别是 rtl rPr 的存在。
2013 年文档的相关部分:
<w:p>
<w:pPr>
<w:bidi/>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:cs="Calibri"/>
<w:rtl/>
</w:rPr>
<w:t>يجب</w:t>
</w:r>
<w:r>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:cs="Calibri"/>
<w:rtl/>
</w:rPr>
<w:t>إدخال</w:t>
</w:r>
与 2019 年的 docx 相比:
<w:p>
<w:pPr>
<w:bidi/>
</w:pPr>
<w:r>
<w:t>يجب</w:t>
</w:r>
<w:r>
<w:t xml:space="preserve"> </w:t>
</w:r>
<w:r>
<w:t>إدخال</w:t>
</w:r>
评论
0赞
Zahraa Issa
9/2/2022
非常感谢!!我通过格式化字符串解决了这个问题。字符串[] 行 = s.split(“\n”);StringBuilder sb = 新 StringBuilder();for (int i = 0; i < lines.length; i++) { sb.append(“\u202B”); // 从右到左嵌入 sb.append(lines[i]); sb.append(“\u202C\n”); // 弹出定向格式 } s = sb.toString();
评论