Ich nutze keine besondere Bibliothek in Python dafür. Grob gesagt brauche ich nur
zipfile und dann eben
ElementTree um das XML zu bearbeiten. Zusammen mit der
Dokumentation und einem schlauen Klassenkonzept kann man dann wunderbar rekursiv auf dem XML-Baum arbeiten und alles mögliche tun.
Ich wollte nicht sagen, dass du den
<text:soft-page-break/>-Tag vermeiden sollst, aber ich würde mich glaube ich auch nicht unbedingt darauf verlassen. Aber wenn du ein Dokument mit Writer speicherst und dann nichts mehr daran änderst und das XML ausliest, müsste es ja eigentlich richtig sein und man kann die Seitenumbrüche erkennen. Schwieriger wird es dann, wenn ein Absatzformat nochmal selbst einen Seitenumbruch macht. Ich glaube dann wird das
<text:soft-page-break/>-Tag nicht mehr extra reingeschrieben. Das müsste ich jetzt ausprobieren. Das heißt wenn im Dokument echte Seitenumbrüche vorkommen, musst du dir auch noch zählen. Eventuell musst du dafür dann sogar die styles.xml auswerten, je nachdem in welchem Absatzformat der Seitenumbruch definiert wurde.
Falls du mit Python etwas machen willst, hilft dir vielleicht auch das Package
odfpy, das speziell mit dem OpenDocument-Formaten zurecht kommt und alles noch etwas vereinfacht.
Man kann aber auch LibreOffice als Server starten und dann mittels PyUno-Bridge auf die laufenden Instanz zugreifen. Damit kannst du das gleiche machen wie den Macros, die man in LibreOffice selbst schreiben kann, allerdings mit Python und nicht etwa mit StarBasic. Leider ist hier die Dokumentation echt schlecht. Du findest erst mal nur Sachen über OpenOffice, die teilweise schon gut veraltet sind und anderen Stellen irgendwelche Codeschnipsel, die du erst mal umbauen musst für das, was du eigentlich haben willst, usw. Damit hab ich bisher auch nur echt wenig gemacht, nur ein bisschen herumgespielt, denn für manche Dinge braucht man ein laufendes LibreOffice, damit man das Layout in Echtzeit bearbeiten kann.