首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算页数UNO Java

计算页数UNO Java
EN

Stack Overflow用户
提问于 2017-12-20 17:38:38
回答 1查看 341关注 0票数 1

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

我试着用谷歌搜索,但没有找到有用的东西。我是UNO的初学者。

EN

回答 1

Stack Overflow用户

发布于 2017-12-21 17:27:18

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

代码语言:javascript
复制
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值。

代码语言:javascript
复制
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,以获取大多数基本版本的答案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47902899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档