Page XSL-FO

XSL-FO utilise des modèles de page nommés "Page Masters" pour définir la mise en page des pages.

Modèle de page XSL-FO

XSL-FO utilise des modèles de page nommés "Page Masters" pour définir la mise en page des pages. Chaque modèle doit avoir un nom unique :

<fo:simple-page-master master-name="intro">
  <fo:region-body margin="5in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="left">
  <fo:region-body margin-left="2in" margin-right="3in" />
</fo:simple-page-master>
<fo:simple-page-master master-name="right">
  <fo:region-body margin-left="3in" margin-right="2in" />
</fo:simple-page-master>

Dans l'exemple ci-dessus, trois éléments <fo:simple-page-master> définissent trois modèles différents. Chaque modèle (page-master) a un nom différent.

Le premier modèle s'appelle "intro" et peut être utilisé comme modèle de page d'introduction.

Les deuxièmes et troisièmes modèles s'appellent "left" et "right" et peuvent être utilisés pour les pages pair et impair.

Taille de page XSL-FO

XSL-FO utilise les attributs suivants pour définir la taille de la page :

page-width
Définir la largeur de la page
page-height
Définir la hauteur de la page

Marges de page XSL-FO

XSL-FO utilise les attributs suivants pour définir les marges de la page :

margin-top
Définir la marge du haut
margin-bottom
Définir la marge du bas
margin-left
Définir la marge de gauche
margin-right
Définir la marge de droite
margin
Définir les marges de tous les côtés

Zones de page XSL-FO (Page Regions)

XSL-FO utilise les éléments suivants pour définir les zones de la page :

region-body
Définir la zone principale
region-before
Définir la zone du haut (en-tête de page)
region-after
Définir la zone du bas (pied de page)
region-start
Définir la zone de gauche (colonne de gauche)
region-end
Définir la zone de droite (colonne de droite)

Remarque :region-before、region-after、region-start et region-end font partie de la zone principale. Pour éviter que le texte de la zone principale ne couvre ces zones, les marges de la zone principale doivent être au moins égales à la taille des autres zones.

Illustration :

Exemple XSL-FO

Ceci est un extrait extrait d'un document XSL-FO :

<fo:simple-page-master master-name="A4">
 page-width="297mm" page-height="210mm"
 margin-top="1cm"   margin-bottom="1cm"
 margin-left="1cm"  margin-right="1cm">
  <fo:region-body   margin="3cm"/>
  <fo:region-before extent="2cm"/>
  <fo:region-after  extent="2cm"/>
  <fo:region-start  extent="2cm"/>
  <fo:region-end    extent="2cm"/>
</fo:simple-page-master>

Le code suivant définit un "Simple Page Master Template" nommé "A4".

La largeur de la page est de 297 mm, la hauteur est de 210 mm.

Les marges des quatre côtés de la page sont de 1 cm.

Les marges du corps principal sont de 3 cm (tous les quatre côtés).

Les zones before, after, start et end sont de 2 cm.

La largeur du corps principal dans l'exemple précédent peut être calculée en soustrayant la largeur de la page, les marges latérales et les marges de region-body :

297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm.

Remarque :La zone region (region-start et region-end) n'est pas prise en compte. Comme précédemment expliqué, ces zones (region) font partie du corps principal.