计数页面 UNO Java
Posted
技术标签:
【中文标题】计数页面 UNO Java【英文标题】:Count pages UNO Java 【发布时间】:2017-12-20 09:38:38 【问题描述】:使用UNO
在Java 中计算LibreOffice
文档中页数的最佳方法是什么?
我尝试使用谷歌搜索,但没有发现任何有用的信息。我是UNO
的初学者。
【问题讨论】:
在 Google 中输入“openoffice 宏计数页面”(不带引号)会带来几个不错的结果 是的,它是 LibreOffice,但“openoffice”会产生更多结果,而且它们通常是相关的。 “macro”或“uno api”也是 Google 的好关键字。 【参考方案1】:更简单的方法:获取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 中的答案。
【讨论】:
以上是关于计数页面 UNO Java的主要内容,如果未能解决你的问题,请参考以下文章
Arduino UNO + 74HC595+数码管实现0-9循环计数显示+ Proteus仿真
Arduino UNO + 74HC595联级+数码管实现00-99循环计数显示+ Proteus仿真
Arduino UNO + 74HC595联级+数码管实现0000-9999循环计数显示+ Proteus仿真