我正在使用OOo SDK构建Java应用程序,我正在操作OpenOffice Impress演示文稿中的幻灯片。我知道如何获得包含单个幻灯片的对象,现在我正在寻找一种将幻灯片从演示文稿复制到另一个幻灯片的方法。
这是(缩短)我打开文件和选择幻灯片的方法:
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));
基于我试图获得这样的可转移对象:
XTransferable t = (XTransferable)UnoRuntime.queryInterface(
XTransferable.class, xPage);
但似乎没有支持。任何人都知道如何做到这一点?
答案 0 :(得分:1)
SlideShow ss1 = new SlideShow(new FileInputStream(inputFile1));
Slide newSlide = ss.createSlide();
for (Shape shape : ss.getSlides()[0].getShapes()) {
newSlide.addShape(shape);
}
由于你处理OO而不是PPT,这可能并没有真正帮助你,但是如果你迫切需要一个解决方案并且没有得到OpenOffice前端的帮助,你可能会把JODConverter(http:// www。 artofsolving.com/opensource/jodconverter)和POI。