从openoffice API控制Impress演示窗口

时间:2012-03-15 23:41:59

标签: java openoffice.org

我目前正在尝试使用openoffice API来显示来自Java的powerpoint演示文稿 - 我有一个公平的方式,因为我已经设法打开一个演示文稿并显示它。但是,我希望能够做到的一些事情我无法理解API:

  • 我不希望出现主Impress窗口,只显示演示窗口。现在,我可以启动它最小化没有属性的问题,但然后实际的演示窗口也被最小化,这是我不想要的。我也可以抓住窗口并在其上调用setVisible(false),但在加载时它仍然可见一秒左右。

  • 我希望能够控制演示文稿出现的显示器(我在多显示器设置中使用它。)我想我可以抓住演示文稿的窗口并移动它在我需要的那条路上,但我看不出怎样 - 对于主窗口,我可以做类似的事情:

    XModel xModel = UnoRuntime.queryInterface(XModel.class, xDrawDoc); xModel.getCurrentController().getFrame().getContainerWindow().blah();

    ...但我还没有找到一种获得演示窗口的方法。我希望能够直接设置窗口的边界(x,y,宽度,高度),而不是仅仅通过在单个监视器上定位来约束。

我可以接受第一点,我需要为我的用例解决的关键问题是第二点。

关于上述的任何想法?我是一名经验丰富的Java程序员,但对UNO来说是新手。

1 个答案:

答案 0 :(得分:0)

似乎第二点可以解决,ish,显示属性:

public void start() { 
    try { 
        xPresentation.setPropertyValue("Display", 1); 
    } 
    catch (Exception ex) { 
        ex.printStackTrace(); 
    } 
    xPresentation.start(); 
}

请注意一些事情 - 首先显示索引是基数1,而不是0.其次,尝试在数组中设置属性并在创建时将它们传递给xPresentation似乎没有任何影响 - 它只能工作对我来说,如上所述设置属性。第三,它不允许对窗口进行细粒度控制,只需控制显示器的显示效果。