🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

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!


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten