XSL : eXtensible Stylesheet Language

XSL-FO

1. Généralités

XSL-FO signifie XSL Formatting Objects

XSL-FO est le dernier volet de la norme XSL, qui consiste en un format XML de mise en page, permettant de préparer des documents adaptés à l’impression. Il permet ainsi aux éditeurs d’incorporer des données reposant sur XML, afin de créer des doc au contenu visuel riche.

2. Principe

Pour générer un document PDF imprimable, voici la démarche à suivre :

XML + XSLT => XSL-FO => PDF

3. Le document XSL-FO

Voici un exemple de document XSL-FO :

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
	<fo:layout-master-set>							[1]
		<fo:simple-page-master						[2]
			master-name="simple"   
			page-height="29.7cm"
			page-width="21cm"
			margin-left="2.5cm"
			margin-right ="2.5cm">
			<fo:region-body margin-top="3cm"/>        
		</fo:simple-page-master>
	</fo:layout-master-set>

	<fo:page-sequence master-reference="simple">				[3]
		<fo:flow flow-name="xsl-region-body">				[4]
			contenu							[5]
		</fo:flow>
	</fo:page-sequence>
</fo:root>

[1] : Afin de bien placer les composants du document sur la page, le formatteur XSL-FO nécessite de connaître certains informations

[2] : Ici sont définis les paramètres de la page (ici format A4 avec des marges latérales de 2,5cm)

[3] : L'élément page-sequence permet le support de la pagination complexe.

[4] : xsl-region-body est le corps principal du document.

[5] : Ici est défini le contenu du document. D'autres balises sont disponibles afin de définir le format du contenu (tableau, simple texte...).

4. Formatteur FO

L'un des formatteurs FO les plus répandu est FOP d'Apache. Il permet de créer des documents PDF à partir de fichiers XML, ou à partir d'une approche Objet (sous Java).

Un exposé ayant fait l'objet de cette technologie (dans le cadre des exposés Système de la promotion 2005 Informatique & Réseaux - Ingéniers2000), veuilez-vous y référer pour plus d'informations quant à son mode d'utilisation.

Des articles plus complets sur XSL-Fo sont aussi disponibles sur la page de liens.