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)