Vous êtes sur la page 1sur 25

1

Quest-ce que XSL-FO (Formatting Object) ? Cest un langage qui permet de gnrer des documents de
format complexe tels que le PDFetc. Il est le langage de description de page utilisant la syntaxe XML Complmentaire XSLT

Dcrit la prsentation de donnes XML

Architecture
Processeur XSLT
Processeur XSL-FO

XSL-FO
XSLT

PDF

Structure globale
Un document XSL-FO est un document xml. Lespace de nom associ est : http://www.w3.org/1999/XSL/Format Il est form d'un lment racine fo:root qui comprend deux parties bien distinctes : une description des structures en page (fo:layout-master-set) une description du contenu (fo:page-sequence)
4

Exemple dun document XSL-FO

Structure globale
Racine (fo:root) Mise en page (fo:layout-master-set)

Contenu du document (fo:page-sequence)

Model de page unique

Model de page unique


L'lment fo:simple-page-master permet de spcifier les rgions d'une simple page l'attribut master-name=" " sert de rfrence pour associer le contenu

les attributs page-height et page-width dfinissent le format


de la page d'autres attributs fixent les marges, le sens d'criture, etc.
8

Exemple de page unique

Rgions Le model de page comprend jusqu 5 rgions: Une rgion centrale : region-body Quatre rgions priphriques: region-before region-after region-start region-end

10

Rgions
Nous utiliserons les noms des rgions pour prciser o placer le texte. En principe chaque rgion doit tre nomme. Toutefois, il existe des noms par dfaut : xsl-region-body

xsl-region-before xsl-region-after xsl-region-start


11

Rgion centrale
La page ainsi que la region ont des marges: margin dfinit une marge pour tous les cts margin-top,margin-bottom, margin-left, margin-right dfinissent les marges sparment

12

Rgions priphriques Les dimensions des rgions priphriques sont dtermines par
l'attribut extent qui dtermine sa "largeur" (dans le sens orthogonal au cot considr) sa "longueur" est dtermine par la rgion centrale

13

Gnration du contenu
Le contenu d'un document se trouve dans un lment fo:page-sequence avec l'attribut master-reference=" " rfrencer le modle de page pour

Le contenu est plac dans des flux reprsents par


fo:flow (destin la rgion centrale) Les informations qui se rptent sur chaque page sont places dans fo:static-content (pour les en-ttes, etc.)
14

Niveaux de contenu On distingue deux niveaux de contenu


les botes de blocs de type fo:block (pour les titres, paragraphes, listes, ...) les botes de lignes de type fo:in-line (pour des chanes de caractres, des (petites) images)

15

Boites
La mise en page est dcrite l'aide de botes (blocs ou lignes) imbriques Chaque bote est forme d'un contenu (content), d'un espace interne (padding), d'une bordure (border) et d'un

espace externe (space)


Les quatre cts sont nomms relativement au sens d'criture (before, after, start, end)
16

Boites de blocs Les botes de blocs sont des lments rcursifs de type fo:block et correspondent des sections, titres, paragraphes, listes, tableaux, etc. Les principaux attributs sont : text-align avec comme valeurs start (ou left), end (ou right), center, justify, ... line-height text-indent, start-indent space-before, space-after, border, color, background-color, background-image

17

Boites de lignes Les botes de lignes sont places de gauche droite et dcoupes en lignes si ncessaire. Elles sont rcursives et peuvent contenir des blocs Les principaux attributs sont : font-family, font-size, font-style, font-weight, font-variant, text-decoration, ... letter-spacing, word-spacing, ... color, background-color, ...

18

Structure globale dune liste fo:list-block


fo:list-item

fo:list-item-label

fo:list-item-body

19

Structure globale de tableaux Similaire au modle de tableau de HTML

20

Structure globale de tableaux


fo:table: la table proprement dite. Elle contient header et footer option et un body. fo:table-column: permet de spcifier notamment la longueur dune colonne fo:table-header: Ligne entte, contient des lignes ou cellules fo:table-footer: Ligne "footer", contient des lignes ou cellules fo:table-body: contient des lignes ou cellules fo:table-row: contient des cellules qui contiennent des fo:table-cell
21

Structure globale de tableaux Lattribut table-layout (de fo:table) dfinit comment faire le
rendu du tableau : fixed : la taille des colonnes est dfinie partir de tailles prcises auto : la taille des colonnes est dfinie partir des

donnes prsentes dans les colonnes

22

Images et graphiques externes Deux lments peuvent tre utiliss pour inclure des lments
de type graphique: fo:external-graphic fo:instream-foreign-object Ils peuvent tre placs dans fo:block, soit verticalement dans la page

fo:inline, soit sur une ligne de texte


23

Images et graphiques externes Lattribut content-type permet de spcifier le type de


graphique Exemple: <fo:external-graphic content-type="content-type:image/gif" src="resultat.gif">

24

Hyperliens Deux types de liens peuvent tre crs avec fo:basic-link : Liens internes travers lattribut internal-destination en lui affectant lID du block atteindre Liens externes travers lattribut external-destination en lui affectant lURL

25