作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 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);
但这似乎不被支持。任何人都知道如何做到这一点?
最佳答案
哦,伙计,祝你好运。大约一年前,我试图尝试做这样的事情,但最终改用 Apache POI——不一定确定 OO SDK 不能做到这一点,但 API 的文档太深奥了,我无法理解出去。在 POI 中很简单
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。
关于java - 使用 Java 将 OpenOffice 幻灯片从一个演示文稿复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5782423/
我是一名优秀的程序员,十分优秀!