计算页面UNO Java

问题描述 投票:1回答:1

使用LibreOffice计算Java中UNO文档中页面数的最佳方法是什么?

我试过谷歌搜索,但没有任何有用的东西出现。我是UNO的初学者。

java libreoffice uno
1个回答
0
投票

更简单的方法:获取TextDocumentView的PageCount属性。

xComponent = xDesktop.getCurrentComponent();
xTextDocument = (com.sun.star.text.XTextDocument)
    UnoRuntime.queryInterface(
        com.sun.star.text.XTextDocument.class, xComponent);
XController xController = xTextDocument.getCurrentController();
XPropertySet xPropertySet = UnoRuntime.queryInterface(
    XPropertySet.class, xController);
int nPageCount = AnyConverter.toInt(
    xPropertySet.getPropertyValue("PageCount"));
System.out.println("There are " + nPageCount + " pages.")

更难的方法:在XDocumentProperties列表中找到PageCount值。

xComponent = xDesktop.getCurrentComponent();
xTextDocument = (com.sun.star.text.XTextDocument)
    UnoRuntime.queryInterface(
        com.sun.star.text.XTextDocument.class, xComponent);
XDocumentPropertiesSupplier xSupplier = (XDocumentPropertiesSupplier)
    UnoRuntime.queryInterface(
        XDocumentPropertiesSupplier.class, xTextDocument);
XDocumentProperties xProps = (XDocumentProperties)
    xSupplier.getDocumentProperties();
NamedValue [] aStats = xProps.getDocumentStatistics();
for (int i = 0; i < aStats.length; i++) {
    if (aStats[i].Name.equals("PageCount")) {
        System.out.println("Page Count " + aStats[i].Value);
    }
}

https://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=56507也回答了这个问题。另见https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=17358,主要是在Basic中找到答案。

© www.soinside.com 2019 - 2024. All rights reserved.