5

OpenOffice Impress プレゼンテーションでスライドを操作する OOo SDK を使用して Java アプリケーションを構築しています。単一のスライドを含むオブジェクトを取得する方法を知っています。現在、プレゼンテーションから別のプレゼンテーションにスライドをコピーする方法を探しています。

これは、ファイルを開いてスライドを選択するために私が行うことです(短縮):

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);

しかし、それはサポートされていないようです。誰でもこれを行う方法を知っていますか?

4

1 に答える 1

1

ああ、頑張ってください。私は約 1 年前にこのようなことをしようとしていて、代わりに Apache POI を使用することになりました.アウト。POIでは、次のように簡単です

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

PPT ではなく OO を扱っているため、これはあまり役に立たないかもしれませんが、解決策がどうしても必要で、OpenOffice の前で助けが得られない場合は、おそらく JODConverter (http://www.artofsolving.com) をつなぎ合わせることができます。 /opensource/jodconverter) と POI。

于 2011-05-09T05:50:48.847 に答える