如何通过UNO更改文档名称?

时间:2018-05-20 12:41:20

标签: java libreoffice uno

我使用Java中的UNO来控制LibreOffice(5.3) 如何更改窗口标题栏中显示的文档名称?

到目前为止,我尝试使用XDocumentProperties,但它只在文档的嵌入属性中设置标题,而不是在窗口标题中设置:

// Sets only meta data, not the window title.
XDocumentPropertiesSupplier xDocumentPropertiesSupplier = UnoRuntime.queryInterface(XDocumentPropertiesSupplier.class, openedDocument);
XDocumentProperties xDocumentProperties = xDocumentPropertiesSupplier.getDocumentProperties();
xDocumentProperties.setTitle(retrievedFile.name);

1 个答案:

答案 0 :(得分:1)

通常,只需从XStorable拨打setTitle()

但是,对于流式传输等特殊情况,您可能需要使用XDocumentProperties。如以下来自https://forum.openoffice.org/en/forum/viewtopic.php?f=25&t=70156的C ++代码中那样调用Reference<XModel> xModel(xComponent, UNO_QUERY); Reference<XTitle> xTitle(xModel, UNO_QUERY); xTitle->setTitle(constOUString("Title"));

XTitle xTitle = UnoRuntime.queryInterface(XTitle.class, xComponent /* e.g. from xComponentLoader.loadComponentFromURL(...) */);
xTitle.setTitle("Title");

修改

以下是您拒绝编辑的XTitle代码。

limits(){
    var a = 0;

    for (int i = 0; i < 1000; i++) {
        for (int ii = 0; ii < 1000; ii++) {
            setTimeout(function(){
               document.getElementById('foo').innerHTML += "<p>" + a + "</p>";
               a * 2;
            }, 0);

        }
    }
}

注意:正如评论者所写,这应该在评论或单独的答案中添加,而不是编辑。在这个网站上编辑别人的代码几乎绝不是一个好主意。但是,回答你自己的问题是完全可以接受的。