Développer des projets en XML

Transcription

Développer des projets en XML
Développer des projets en XML
Introduction à XSL-FO,
eXtensible Formatting Objects
© Expert-IT s.a.
[email protected] - http://www.expert-it.com
Page 1
eXtensible Formatting Objects
Introduction à XSL-FO
XSL-FO : langage basé sur XML
Spécification de paramètres de présentation
„
mise en forme, pagination
„
styles à appliquer sur le contenu
Utilisation
„
„
génération de sorties en différents formats (PDF,
RTF, PS…)
principalement pour des sorties papiers
Page 2
eXtensible Formatting Objects
Utilisation de XSL-FO
XSL-FO s'utilise en combinaison avec XSL-T
XSL-T génère un document XSL-FO
„
par transformations sur un document XML
Le document résultat contient
„
des instructions XSL-FO de formatage
Š la présentation
„
les données à présenter
Š le contenu
Ce document est ensuite transmis à un processeur
XSL-FO
Page 3
eXtensible Formatting Objects
Utilisation de XSL-FO
Feuille de style
XSLT
Document
XML
Processeur XSLT
Feuille de style
XSL-FO:
instructions de présentation
+ contenu
Processeur XSL-FO
PDF, PS
RTF…
Page 4
eXtensible Formatting Objects
Processeurs XSL-FO
FOP d'Apache
„
"open source" (disponible sous licence Apache Software
License, version 1.1)
XSL Formatter de Antenna House
Solutions commerciales
„
XEP de renderx: sortie en PDF ou PS
„
divers : PassiveTex, CueXSL
Editeur graphique
„
Formatting Object Authoring
Š http://sourceforge.net/projects/foa/
Page 5
eXtensible Formatting Objects
Composition d'un document XSL-FO
Espace de nom
„
http://www.w3.org/1999/XSL/Format
Préfixe: fo
Racine
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
…
</fo:root>
Page 6
eXtensible Formatting Objects
Composition d'un document XSL-FO
L'élément "layout-master-set"
„
mise en forme du document de sortie
L'élément "page-sequence"
„
mise en page du contenu
Page 7
eXtensible Formatting Objects
Composition d'un document XSL-FO
Feuille de style XSL-FO (fo:root)
fo:layout-master-set
mise en forme du document
fo:page-sequence
mise en page du contenu
fo:page-sequence
…
Page 8
eXtensible Formatting Objects
Modèles de pages
Plusieurs modèles possibles pour un même
document de sortie
„
à définir dans le "fo:layout-master-set"
„
en utilisant l’élément "fo:simple-page-master"
Modélisation
„
décrire l’ensemble des détails techniques
nécessaires au rendu graphique des pages
Page 9
eXtensible Formatting Objects
Modèles de pages
Feuille de style XSL-FO (fo:root)
fo:layout-master-set
fo:simple-page-master
…
fo:simple-page-master
…
Page 10
eXtensible Formatting Objects
Syntaxe
Document XSL-FO avec un "fo:layout-master-set"
<fo:layout-master-set>
<fo:simple-page-master master-name="premier">
<!-- …définition du layout de la page " premier " -->
</fo:simple-page-master>
<fo:simple-page-master master-name="autres">
<!-- …définition du layout de la page "autres" -->
</fo:simple-page-master>
<fo:page-sequence-master master-name="unJournal" >
<!-- …définition la séquence de pages " unJournal " -->
</fo:page-sequence-master>
</fo:layout-master-set>
Page 11
eXtensible Formatting Objects
Exemple
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="premier"
page-height="21cm"
page-width="29.7cm"
margin-top="1cm"
margin-bottom="2cm"
margin-left="2.5cm"
margin-right="2.5cm">
<fo:region-body margin-top="3cm"/>
<fo:region-before extent="3cm"/>
<fo:region-after extent="1.5cm"/>
</fo:simple-page-master>
<!-- suite du document -->
Page 12
eXtensible Formatting Objects
Les composants d'une page selon XSL-FO
Page 13
eXtensible Formatting Objects
Caractéristiques d’une page
Définir la mise en forme d’une page
„
spécifier ses différentes caractéristiques
Les dimensions
Les marges
Les cinq zones de contenu
„
BEFORE, START, BODY, END, AFTER
Page 14
eXtensible Formatting Objects
Détails du layout des pages
Les marges sont des zones non-utilisées
Régions de la zone de contenu
„
region-before
haut, début de page
„
region-start
début de côté de page
„
region-end
fin de côté de page
„
region-after
bas, fin de page
„
region-body
corps de page
Classes d'éléments des zones de contenu
„
"fo:block"
blocs commençant à une nouvelle ligne
(paragraphe…)
„
"fo:inline"
insertion dans le flux de sortie
Page 15
eXtensible Formatting Objects
Détails du layout des pages
"fo:block-progress-direction"
„
indiquer l'ordre de placement des blocs
"fo:inline-progress-direction"
„
indiquer l'ordre d'apparence des caractères
L'alignement se fait en spécifiant
„
si les données sont écrites au début ou à la fin
„
et non pas à droite ou gauche
Page 16