java - 尝试使用 Apache poi 在单词中设置阿拉伯语句子?

标签 java eclipse apache-poi

我正在尝试使用 apache poi api 生成一个 word 文档,我想在这个词中设置一个阿拉伯语句子,但是这些词没有保留在订单上!!!因为我得到了 بالملك شهادو ,而不是“شهادة بالملك”

public class word {

    public static void main (String [] args) {
    XWPFDocument docx = new XWPFDocument();

    try {

    XWPFParagraph tmpParagraph = docx.createParagraph();   
    XWPFRun tmpRun = tmpParagraph.createRun();   
    tmpRun.setText("شهادة بالملك");
    tmpRun.setFontSize(18);  
    tmpRun.setFontFamily("Calibri (Corps)");
    tmpRun.setBold(true);
    tmpRun.setColor("003894");
    tmpParagraph.setAlignment(ParagraphAlignment.LEFT);
    tmpRun.setUnderline(UnderlinePatterns.SINGLE);
    tmpParagraph.setSpacingAfter(300);

    FileOutputStream fos = new FileOutputStream("Word2.docx");
    docx.write(fos);
    fos.close();
    }
    catch (Exception e ) {
        e.printStackTrace();
    }
    }
}

最佳答案

这是答案:

public class word {

    public enum TextOrientation {
          LTR,
          RTL
       }

    public static void main (String [] args) {

    XWPFDocument docx = new XWPFDocument();

    try {

    XWPFParagraph tmpParagraph = docx.createParagraph();   
    XWPFRun tmpRun = tmpParagraph.createRun();   
    tmpRun.setText("شهادة بالملك");
    tmpRun.setFontSize(18);  
    tmpRun.setFontFamily("Calibri (Corps)");
    tmpRun.setBold(true);
    tmpRun.setColor("003894");
    tmpParagraph.setAlignment(ParagraphAlignment.CENTER);
    tmpRun.setUnderline(UnderlinePatterns.SINGLE);
    tmpParagraph.setSpacingAfter(300);
    setOrientation(tmpParagraph, TextOrientation.RTL);

    FileOutputStream fos = new FileOutputStream("Word2.docx");
    docx.write(fos);
    fos.close();
    }
    catch (Exception e ) {
        e.printStackTrace();
    }
    }

    private static void setOrientation(XWPFParagraph par, TextOrientation orientation) {
          if ( par.getCTP().getPPr()==null ) {
              par.getCTP().addNewPPr();
          }
          if ( par.getCTP().getPPr().getBidi()==null ) {
             par.getCTP().getPPr().addNewBidi();
          }
          par.getCTP().getPPr().getBidi().setVal(orientation==TextOrientation.RTL?STOnOff.ON:STOnOff.OFF);
       }
}

关于java - 尝试使用 Apache poi 在单词中设置阿拉伯语句子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27831749/

相关文章:

java - 我有使用 JavaCC v4 的旧产品,从那时到 v6 有何变化?

eclipse - 如何在 Eclipse 中设置 ${user} 以获得正确的 @author 标签?

Eclipse 4 朱诺主题

java.lang.NoClassDefFoundError : org/apache/poi/xssf/usermodel/XSSFWorkbook

java - 解决 Alexa 自定义技能重复出现响应的问题

java - 如何为JPA L2缓存配置WIldfly infinispan子系统?

java - 无法在macOS Sierra上启动Eclipse Neon

java - 运行 jar 文件/.class 文件以及属性文件

java - 如何使用 HSSFFont 以十进制数设置字体

java - 如何使用 Apache POI 将 300 万行写入 Excel 文件