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)