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