2017-12-20 3 views
1

Wie kann man die Anzahl der Seiten in einem LibreOffice Dokument in Java mit UNO am besten zählen?Seiten zählen UNO Java

Ich habe versucht zu googeln, aber nichts nützliches aufgetaucht. Ich bin ein Anfänger bei UNO.

+0

Die Eingabe von "OpenOffice-Makrozählungsseiten" (ohne Anführungszeichen) in Google bringt einige gute Ergebnisse. Ja, es ist LibreOffice, aber "OpenOffice" erzeugt mehr Ergebnisse und sie sind normalerweise relevant. Auch "Makro" oder möglicherweise "Uno-API" sind gute Keywords für Google. –

Antwort

0

Der einfachere Weg: Holen Sie sich die PageCount-Eigenschaft 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.") 

Je härter Weg: Finden Sie den Pagecount-Wert in der Liste der XDocumentProperties.

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); 
    } 
} 

Diese Frage wurde auch auf https://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=56507 beantwortet. Siehe auch https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=17358 für Antworten meist in Basic.