2015-01-08 2 views
1

아파치 poi api를 사용하여 단어 문서를 생성하려하고 단어에 아랍어 문장을 설정하고 싶지만 단어가 주문에 남아 있지 않았습니다 !!! 에 대신 "شهادة بالملك"내가 얻을 بالملك شهادة이 답이다Apache poi를 사용하여 아랍어 문장을 단어로 설정하려고합니까?

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(); 
    } 
    } 
} 
+0

당신의 말은 정확히 동일합니다 ... 그것이 – Dici

+0

내 질문을 수정 단지 실수 – geosevda

+0

아랍어 왼쪽에서 오른쪽으로가 아니라 오른쪽에서 왼쪽으로 이동합니다. XWPFDocument는 쓰기 방향이 변경되었음을 알고 있습니까? –

답변

2

:

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); 
     } 
} 
관련 문제