2010-08-18 5 views
4

OpenOffice Java API를 사용하여 문서 섹션을 복사하여 다른 문서 섹션 위에 붙여 넣어야합니다. 지금까지 원본 문서 섹션의 텍스트를 복사하여 대상 문서의 섹션 위에 붙여 넣었습니다 (아래 예제 참조).OpenOffice Java API (UNO API)를 사용하여 ODT (Openoffice Writer) 문서 섹션을 다른 문서로 복사

그러나 문제는 텍스트가 아닌 요소 (그래픽, 형식, 표 등)가 대상 문서에 붙여지지 않는다는 것입니다.

// Read source file text 
XComponent xComponentSource = this.ooHelper.loadDocument("file://" + fSource); 
// Get sections 
XTextSectionsSupplier textSectionsSupplierSource = (XTextSectionsSupplier)UnoRuntime.queryInterface(XTextSectionsSupplier.class, xComponentSource); 
XNameAccess nameAccessSource = textSectionsSupplierOrigen.getTextSections(); 
// Get sections by name 
XTextSection textSectionSource = (XTextSection)UnoRuntime.queryInterface(XTextSection.class, nameAccessOrigen.getByName("SeccEditable")); 
//Get section text 
String sectionSource = textSectionSource.getAnchor().getString(); 

은, 코드 섹션이 동일 선택 대상 섹션을 통해 텍스트를 붙여 넣으려면, 나는 문자열을 설정합니다

나는 소스 섹션의 텍스트를 추출하는 데 사용한 코드는 :

textSectionDest.getAnchor().setString(sectionSource); 

API Javadoc을 읽었으며 전체 섹션을 복사하는 방법을 찾지 못했습니다. 그것을 할 방법이 있습니까?

+0

이 OOOForum 자습서는 도움이됩니다. [내용을 가져 와서 다른 문서로 전송] (http://www.oooforum.org/forum/viewtopic.phtml?t=71000). –

답변

1

동일한 문제가있었습니다. 필자는 두 개의 커서를 생성하여 해결했습니다. 하나는 처음에 복제하고자하는 내용의 시작 부분이고, 다른 하나는 내용의 끝에서 사용하고 첫 번째 부분부터 두 번째 부분까지 커서 선택을 확장합니다. 첫 번째 커서에서 gotoRange 메서드를 사용하여 두 번째 커서를 전달하고 True를 사용하여 선택 영역을 확장합니다.

커서 예 : http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_1_1_Editing_Text

그러면 I 선택을 포함하는 상용구 컨테이너 그룹 소자를 만들었다. 자동 텍스트 항목의 applyTo 메소드를 사용하여 커서 위치에 내용을 삽입/붙여 넣습니다. 나는 autoText 컨테이너의 이름에 대해 guid를 사용했기 때문에 유일 할 것이고 컨테이너를 삭제할 때 삭제 될 것이다.

상용구 예 : http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_1_6_Auto_Text

당신이 원한다면 나는 내 코드를 게시 할 수 있습니다, 그러나 그것은 파이썬으로 작성된 것.

+1

코드를 게시하십시오. – hjdm

관련 문제