8.4.2 Wie kann man die Seitenvorlagen eines Dokumentes ermitteln, löschen oder einfügen?
Um alle Seitenformat eines Dokumentes zu ermitteln muss man über die Elemente der PageStyles gehen. Der Container mit den PageStyles befindet sich im Service com.sun.star.style.StyleFamilies. Dieser Service beinhaltet auch die Formatierungen für Paragraphen, Nummerierung, Zeichen, Rahmen und Seiten.
Um auf die richtige zuzugreifen muss man sich den Container aus den StylesFamilies holen.

Doc = thiscomponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")

Innerhalb des PageStyles-Container sind die Seitenformate hinterlegt die in dem Dokument verwendet werden.
Der Aufruf erfolgt über den Namen oder über den Index. getbyName oder getbyIndex.

PageFormat = PageStyles.getByName("Standard")
Oder
PageFormat = PageStyles.getByIndex(0)

An dieser Stelle darf man sich nicht verwirren lassen. Liest man den Namen aus, erscheint bei den Standard-Seitenformaten die englische Bezeichnung, erst ab der Version 2.0 werden die deutschen Bezeichnungen angezeigt. Der Zugriff geht aber auch über die deutsche Bezeichnung. Diese Seitenformate lassen sich auch nicht aus dem Dokument entfernen. removebyname() wird ignoriert.

Englisch
Deutsch
Standard
Standard
Left Page
Linke Seite
Right Page
Rechte Seite
First Page
Erste Seite
Envelope
Umschlag
Index
Verzeichnis
Footnote
Fussnote
Endnote
Endnote
HTML
HTML

Um ein Seitenformat zu löschen verwendet man die Methode removebyname().

PageStyles.removeByName("MeineSeite")

Existiert das Format nicht kommt es zu einer Fehlermeldung. Besser man prüft vorher den Namen mit hasbyname(). Bei den Namen kommt es auf die exakte Schreibweise an.

if pagestyles.hasByName("MeineSeite") then pagestyles.removebyname("MeineSeite")

Wie bereits gesagt die Standard-Seitenformate können nicht gelöscht werden und es wird keine Fehlermeldung erzeugt.

Einfügen eines neuen Formates geht über die createinstance-Methode des Dokumentenobjektes und die Einfügung mit insertByName().

newstyle=doc.createinstance("com.sun.star.style.PageStyle")
pagestyles.insertbyname("MeineSeite",newstyle)