XSL-FO (eXtensible Stylesheet Language - Formatting Objects) dans la recommandation XSL du W3C est le vocabulaire qui décrit les mises en forme de documents XML quel que soit le support : écran, papier, audio, etc.
XSL-FO s'adresse principalement aux typographes afin de fournir avec les outils de gestion de documents, un outil typographique du niveau attendu par les publications imprimées. Il n'est pas prévu que les documents originaux soient rédigés avec XSL-FO, mais plutôt dans des dialectes adaptés (XHTML, DocBook, TEI, etc.). Ils peuvent alors être convertis en XSL-FO à l'aide de XSLT, une autre composante de la recommandation XSL. Finalement, un processeur XSL-FO permet de générer les documents finaux (par exemple pages imprimables en PDF ou PostScript).
L'objectif de XSL-FO est de créer un arbre d'aires où une aire est une zone d'affichage (visuelle ou auditive).
Les aires sont de 2 types :
XSL-FO fournit l'ensemble des commandes de contrôle de chaque aire : présentation du contenu, direction de l'empilement (écriture de gauche à droite ou inversement, de haut en bas )
<?xml version="1.0" encoding="utf-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="A4"
page-height="29.7cm"
page-width="21cm"
margin-top="5mm"
margin-bottom="10mm"
margin-left="20mm"
margin-right="20mm">
<fo:region-body margin-top="10mm" margin-bottom="10mm" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="A4">
<fo:flow>
<fo:block>Hello world</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>