首页 > 解决方案 > 在java中的docx文件中从右到左写入的问题

问题描述

我在希伯来语的 java 中创建了一个 docx 文件。我从右到左定义了这个文件中的书写。我有一个问题:当我写其他不是希伯来字母的字符时,它们是在我创建的 docx 文件中从左到右写的。我正在寻找一种解决方案,无论书面字符(希伯来字母或其他字符)如何,始终保持从右到左书写的连续性

我的代码非常简化是:

    String[] lines = { "שלו_ _רוך א_ד ש_יים", "של_ש אר_ע" };

    File fichier = new File("C:\\Users\\David\\Documents\\מבחנים" + "\\הסתרה" + ".docx");
    FileOutputStream outStream = null;
    try {
        outStream = new FileOutputStream(fichier);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    XWPFDocument doc = new XWPFDocument();
    XWPFRun run;
    XWPFParagraph par;

    par = doc.createParagraph();
    par.setAlignment(ParagraphAlignment.LEFT);
    par.setSpacingBefore(0);
    par.setSpacingAfter(350);

    CTP ctp = par.getCTP();
    CTPPr ctppr = ctp.getPPr();
    if (ctppr == null) {
        ctppr = ctp.addNewPPr();
    }
    ctppr.addNewBidi().setVal(STOnOff.ON);

    run = par.createRun();
    run.setFontSize(16);
    for (String line : lines) {
        for (String word : line.split("\\s+")) {
            run.setText(word);
            run.setText(" ");
        }
        run.addCarriageReturn();
    }

    try {
        doc.write(outStream);
        outStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

标签: java

解决方案


把这个扔到桌子上。

您可能想要查看双向文本,因为 Java 文档的详细信息比我在这个答案中所能收集的要多。

Microsoft 也有关于双向文本的文档,可以帮助您的实施,并且还有希伯来语示例。

如果您能够在一个简单的独立 JComponent 中开发概念证明,您也许可以在 Microsoft 中做同样的事情。


推荐阅读