【问题标题】:Control Impress presentation window from openoffice API从 openoffice API 控制 Impress 演示窗口
【发布时间】:2012-03-15 23:41:59
【问题描述】:

我目前正在尝试使用 openoffice API 从 Java 显示一个 powerpoint 演示文稿 - 我有一个公平的方法,我已经设法打开一个演示文稿并显示它。但是,有几件事我希望能够做到,但我无法通过 API 来解决:

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

  • 我希望能够控制显示演示文稿的显示器(我在多显示器设置中使用它。)我想我可以抓住演示文稿的窗口并以这种方式移动它我需要,但我看不到如何 - 对于主窗口,我可以执行以下操作:

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

    ...但是我还没有找到获取演示窗口的方法。我希望能够直接设置窗口的边界(x、y、宽度、高度),而不仅仅是在单个显示器上定位。

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

对以上内容有什么想法吗?我是一位经验丰富的 Java 程序员,但对 UNO 不熟悉。

【问题讨论】:

    标签: java openoffice.org


    【解决方案1】:

    似乎第二点可以通过 display 属性解决:

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

    但请注意一些事情 - 首先显示索引是基数 1,而不是 0。其次,尝试在数组中设置属性并在创建时将它们传递给 xPresentation 似乎没有任何效果 - 它只起作用对我来说,稍后设置属性如上所述。第三,它不允许像我想要的那样对窗口进行细粒度控制,只是控制演示文稿出现的显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多