2017-12-20 8 views
1

UNOを使用してLibreOffice文書のページ数をJavaで計算する最も良い方法は何ですか?ページ数をUNOに設定するJava

私はグーグルで試してみましたが、役に立たないものは何も見つかりませんでした。私はUNOの初心者です。

+0

Googleで「openofficeマクロカウントページ」(引用符なし)を入力すると、いくつかの良い結果が得られます。はい、LibreOfficeですが、「openoffice」はより多くの結果を生成し、通常は関連性があります。また、「マクロ」またはおそらく「uno api」もGoogleのキーワードです。 –

答えて

0

簡単な方法:PageCountプロパティーをTextDocumentViewにします。

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を参照してください。

関連する問題