2011-04-25 5 views
4

OpenOffice Impress 프레젠테이션에서 슬라이드를 조작하는 OOo SDK를 사용하여 Java 응용 프로그램을 작성합니다. 단일 슬라이드를 포함하는 객체를 얻는 방법을 알고 있습니다. 이제 프레젠테이션에서 다른 슬라이드로 슬라이드를 복사하는 방법을 찾고 있습니다. 내가 파일을 열고 슬라이드를 선택하는 일을한 프레젠테이션에서 다른 프레젠테이션으로 OpenOffice 슬라이드 복사

(단축) 것

:

String filename = "file://....odp"; 
int offset = 2; 

XComponent xSourceComponent = xComponentLoader.loadComponentFromURL(filename, "_blank", 0, loadProps); 
XComponent xTargetComponent = xComponentLoader.loadComponentFromURL("private:factory/simpress", "_blank", 0, loadProps); 

XDrawPages xDrawPages = ((XDrawPagesSupplier)UnoRuntime.queryInterface(
     XDrawPagesSupplier.class, xSourceComponent)).getDrawPages(); 

XPresentationPage xPage = (XPresentationPage)UnoRuntime.queryInterface(XPresentationPage.class, 
     xDrawPages.getByIndex(offset)); 

I을 바탕으로이 같은 전송 가능한 객체 얻기 위해 노력 :

XTransferable t = (XTransferable)UnoRuntime.queryInterface(
     XTransferable.class, xPage); 

을하지만 그 '아무튼 지지를받는 ​​것처럼 보입니다. 아무도이 일을하는 방법을 알고 있습니까?

답변

1

아, 행운을 빈다. 1 년 전에 이런 일을하려고했는데 대신 Apache POI를 사용하는 것으로 끝났습니다 .OO SDK가이 작업을 수행 할 수 없다고 확신 할 수는 없지만 API 문서는 매우 수수합니다. 아웃. POI에서 그건 쉽게 당신이 OO하지 PPT 상대하고 있기 때문에 정말 당신을 도울 수 있지만,이 솔루션을위한 필사적와 오픈 오피스의 전면에 도움을 받고 있지 않은 경우, 당신은 아마 수하지 않을 수 있습니다

SlideShow ss1 = new SlideShow(new FileInputStream(inputFile1)); 
Slide newSlide = ss.createSlide(); 
for (Shape shape : ss.getSlides()[0].getShapes()) { 
    newSlide.addShape(shape); 
} 

로 문자열을 함께 JODConverter (http://www.artofsolving.com/opensource/jodconverter) 및 POI.

+0

실제로 설명서를 쉽게 사용할 수 없습니다. 목표는 OO의 플러그인으로 마법사를 사용하여 일부 슬라이드를 생성하고 채우는 것이므로 OO의 UNO API에 바인딩됩니다. 대부분의 것들이 작동하지만 현재 만들어진 슬라이드의 레이아웃은 사용자가 편집 할 수있는 템플릿을 갖고 싶습니다. – johannes

+0

ODFDOM을 보셨습니까? 슬라이드 복사 작업이있는 것 같습니다 (OdfPresentationDocument.copyForeignSlide). – jkraybill

관련 문제