next up previous contents
Nächste Seite: 4.4 Inhalte einer Seite Aufwärts: 4 XSL-FO Vorherige Seite: 4.2 Grundlagen   Inhalt

4.3 Seitendefinition

Jedes XSL-FO-Dokument besteht aus mindestens einer Seite. Diese muss im Layout-Master-Set definiert werden. Dazu wird die Seitengröße angegeben, die Ränder werden abgesteckt und die beschreibbaren Regionen werden festgelegt.

Beispiel 4.3.1:
Es soll eine einfache DIN A4 Seite definiert werden. Der Rand nach oben und unten beträgt 2cm und der nach rechts und links 2,5cm. Innerhalb der Seite wird im Region-body der Hintergrund auf grau gesetzt.
<fo:simple-page-master master-name="einfach" 
    page-height="29.7cm" page-width="21cm" 
    margin-top="2cm" margin-bottom="2cm" 
    margin-left="2.5cm" margin-right="2.5cm">
  <fo:region-body background-color="grey"/>
</fo:simple-page-master>
Der Region-body stellt die eigentliche Schreibzone des Dokumentes dar. Neben ihm lassen sich aber noch vier weitere Regionen definieren. Nur in diesen Regionen kann Inhalt eingefügt werden. Die anderen Regionen liegen über, unter, links und rechts vom Region-body. Sie eignen sich somit besonders für alle festen Angaben, wie Kopf- oder Fußzeilen, Seitenzahlen oder Titel. In Abbildung 8 wird der Aufbau einer Seite mit den Regionen dargestellt (vgl. [Paw2002, S.34]). Die Ränder wurden zuvor mittels der margin-Attribute bei der Seitendefinition festgelegt. Die Elemente zur Seitendefinition werden alle nur über ihre Attribute festgelegt, der Inhalt dieser Elemente bleibt leer.

Abbildung 8: Die zu definierenden Regionen einer einzelnen Seite in XSL-FO.
\includegraphics[scale=0.60]{bilder/xslfoSinglePage}

Die Veränderungen, die an einer Seite vorgenommen werden können, sind aber noch viel weitreichender. Die absoluten und relativen Richtungen der Seitenelemente können bestimmt werden. Dadurch ist es möglich die Regionen so zu drehen, dass sie auf dem Kopf oder auf der Seite liegen. Gleichzeitig lässt sich auch noch die Schreibrichtung bestimmen. Standardmäßig ist diese von links nach rechts und von oben nach unten definiert. Aber sie lässt sich auch auf rechts nach links und auf unten nach oben festlegen. Die ganzen Angaben bezogen sich auf die Definition einer einzelnen Seite. Wenn nun aber mehrere Seiten erzeugt werden, so müssen diese auch beschrieben werden können. Das wird beispielsweise durch die Anwendung mehrerer einzelner Seiten realisiert. Diese Seiten können alle gleich aufgebaut sein oder jede einzeln definiert werden. Doch das reicht noch nicht aus. So kann im Vorfeld häufig nichts über die Menge des Inhaltes gesagt werden und wie dieser über verschiedene Seiten verteilt werden soll. Um trotzdem zu berücksichtigen, dass beispielsweise alle linken Seiten anders aussehen als alle rechten oder die erste anders als die restlichen, lassen sich Seiten-Sequenzen definieren. Mit ihnen wird die Reihenfolge, Häufigkeit und Auswahl der einzelnen Seiten festgelegt. So lassen sich Bedingungen ähnlich dem choose-Element in XSLT definieren, anhand derer eine bestimmte einzelne Seite benutzt wird. Die Bedingungen sind abhängig von der Seitenposition, beispielsweise ob es sich um die erste oder letzte Seite handelt, dem Auftreten der Seite, an gerader oder ungerader Stelle, und dem eventuell auf einer Seite vorhanden fliessenden Inhalt.

Beispiel 4.3.2:
Eine Sequenz von Seiten, die für die erste Seite eine definierte Titelseite aufruft und für die restlichen die eben schon definierte Beispielseite einfach, wird folgendermaßen erstellt:
<fo:page-sequence-master master-name="viele">
 <fo:repeatable-page-master-alternatives>
  <fo:conditional-page-master-reference 
      master-reference="titel" page-position="first"/>
  <fo:conditional-page-master-reference 
      master-reference="einfach" page-position="rest"/>
 </fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>

next up previous contents
Nächste Seite: 4.4 Inhalte einer Seite Aufwärts: 4 XSL-FO Vorherige Seite: 4.2 Grundlagen   Inhalt
Tanja Schniederberend 2003-06-11