2016-08-06 1 views
2

에있는 문서의 텍스트 방향 변경 (단락 맞춤이 아님) 아파치 포 워드 3.8을 사용하여 페르시아어/아랍어로 워드 문서를 만들려고합니다. 제 질문은 : 문서에서 텍스트 방향을 바꾸는 방법은 무엇입니까? (단락 텍스트 정렬 만 변경하는 것이 아니라 텍스트 방향 변경) MS Word에서 오른쪽에서 왼쪽 방향의 텍스트 방향 을 사용하여 텍스트 방향을 변경하고 오른쪽 정렬 을 사용하여 정렬을 설정할 수 있습니다. poi set 속성에서 첫 번째 것에 해당하는 것은 무엇입니까?아파치 포이 워드 (XWPF)

답변

2

이것은 양방향 텍스트 방향 지원 (bidi)이며 기본값 인 Apache poi에는 아직 구현되지 않았습니다. 그러나 기본 객체 인 org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPrBase이이를 지원합니다. 따라서 우리는이 기본 객체를 XWPFParagraph에서 가져와야합니다.

예 :

import java.io.FileOutputStream; 

import org.apache.poi.xwpf.usermodel.*; 

import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP; 
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr; 
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STOnOff; 

public class CreateWordRTLParagraph { 

public static void main(String[] args) throws Exception { 

    XWPFDocument doc= new XWPFDocument(); 

    XWPFParagraph paragraph = doc.createParagraph(); 
    XWPFRun run = paragraph.createRun(); 
    run.setText("Paragraph 1 LTR"); 

    paragraph = doc.createParagraph(); 

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

    run = paragraph.createRun(); 
    run.setText("السلام عليكم"); 

    paragraph = doc.createParagraph(); 
    run = paragraph.createRun(); 
    run.setText("Paragraph 3 LTR"); 

    doc.write(new FileOutputStream("WordDocument.docx")); 

} 
}