在Java语言中使用UNO计算LibreOffice文档的页数的最佳方法是什么
我试着用谷歌搜索,但没有找到有用的东西。我是UNO的初学者。
发布于 2017-12-21 17:27:18
更简单的方法是:获取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,以获取大多数基本版本的答案。
https://stackoverflow.com/questions/47902899
复制相似问题