Libre Office

Writer: Dokument neu layouten / korrekte Seitenzahl finden

Alles zur Programmierung im LibreOffice.
Antworten
martho
Beiträge: 11
Registriert: Mi 19. Dez 2012, 16:09

Writer: Dokument neu layouten / korrekte Seitenzahl finden

Beitrag von martho » Fr 20. Mai 2016, 11:11

Hallo!

Ich verwende diesen C++-Code, um die Seitenzahl in einem Writer-Doc zu erhalten:

Code: Alles auswählen

Reference<XModel> rModel (rDoc, UNO_QUERY);
Reference<XTextViewCursorSupplier> rCurSup (rModel->getCurrentController(), UNO_QUERY);
Reference<XPageCursor> rCursor (rCurSup->getViewCursor(), UNO_QUERY);
rCursor->jumpToLastPage();
return rCursor->getPage();
Das funktioniert solala, denn: Wenn ich vorher etwas eingefügt habe und das LibreOffice-Fenster gerade im Hintergrund ist, wird die falsche Anzahl von Seiten zurückgegeben. Sieht man auch schön, wenn man LibreOffice in den Vordergrund holt: Dann steht noch kurz die falsche Seitenzahl da, bevor diese aktualisiert wird.

Wir kann ich die Aktualisierung erzwingen, ohne das Fenster (manuell) in den Vordergrund holen zu müssen? Ich habe versucht:

Code: Alles auswählen

Reference <XTextDocument> rTxtDoc ( rDoc, UNO_QUERY );		
rTxtDoc->reformat();
Und auch:

Code: Alles auswählen

Reference<XModel> rModel(rDoc, UNO_QUERY);
rModel->lockControllers();
rModel->unlockControllers();
... alles ohne Effekt, die Seitenzahl bleibt falsch.

musikai
Beiträge: 263
Registriert: Do 14. Mai 2015, 17:53

Re: Writer: Dokument neu layouten / korrekte Seitenzahl finden

Beitrag von musikai » Fr 20. Mai 2016, 12:51

In Basic bekommt man die Gesamtseitenzahl auch mit:

Code: Alles auswählen

ThisComponent.CurrentController.PageCount
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

martho
Beiträge: 11
Registriert: Mi 19. Dez 2012, 16:09

Re: Writer: Dokument neu layouten / korrekte Seitenzahl finden

Beitrag von martho » Mi 25. Mai 2016, 09:02

Danke für Deine Antwort. Das funktioniert wesentlich besser als mit XPageCursor zu arbeiten - danke!

Open Office
Antworten