从 openoffice API 控制 Impress 演示窗口
Posted
技术标签:
【中文标题】从 openoffice API 控制 Impress 演示窗口【英文标题】:Control Impress presentation window from openoffice API 【发布时间】: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 不熟悉。
【问题讨论】:
【参考方案1】:似乎第二点可以通过 display 属性解决:
public void start()
try
xPresentation.setPropertyValue("Display", 1);
catch (Exception ex)
ex.printStackTrace();
xPresentation.start();
但请注意一些事情 - 首先显示索引是基数 1,而不是 0。其次,尝试在数组中设置属性并在创建时将它们传递给 xPresentation 似乎没有任何效果 - 它只起作用对我来说,稍后设置属性如上所述。第三,它不允许像我想要的那样对窗口进行细粒度控制,只是控制演示文稿出现的显示。
【讨论】:
以上是关于从 openoffice API 控制 Impress 演示窗口的主要内容,如果未能解决你的问题,请参考以下文章
OpenOffice Basic 宏与 openoffice API
如何使用 OpenOffice API 将 HTML 文本放入 OpenOffice 文档
OpenOffice.org API 还是 LibreOffice API?