APIs d'export en PDF

les balises du language XSL-FO

Structure d'un document XSL-FO

generation document FO

<fo:root>

C'est (comme son nom l'indique) l'élément racine du document XSL-FO. Voici un exemple qui montre une structure typique de document :

<fo:root xmlns :fo="http://www.w3.org/1999/XSL/Format">
--- --- ---
le reste du document
--- --- ---
</fo:root>

<fo:layout-master-set>

(layout en anglais signifie disposition, arrangement, formation) il spécifie des définitions de pages. Dans un document simple, un seul "layout" peut être suffisant, mais les documents complexes en ont généralement plusieurs. Par exemple, on peut vouloir que les pages paires et impaires d'un document ne soient pas présentées de la même façon. Peut-être la première page d'un chapitre ou la table des matières nécessitent un layout propre. On se sert de <fo:simple-page-master> pour définir chacun des layouts dont on a besoin, puis on les place dans un <fo:layout-master-set>.

<fo:simple-page-master>

Cet élément définit le layout d'une page particulière. voici un exemple de mise en page de document.

<fo:layout-master-set>
    <fo:simple-page-master master-name="simpleA4" page-height="21cm" page-width="29.7cm">
      <fo:region-body/>
    </fo:simple-page-master>
  </fo:layout-master-set>

On définit à l'intérieur de cette balise toutes les pages de notre document. On y fait ensuite référence grâce à leur nom.

<fo:page-sequence>

Cet élément définit une séquence de layouts à utiliser dans le document.
Si nous voulons utiliser le simple-page-master appelé simpleA4 pour toutes nos pages, il suffit de faire :

<fo:page-sequence master-reference="simpleA4">

<fo:flow>

L'élément fo-flow définit le contenu qui sera placé dans les marges, polices courantes. Jusqu'à présent nous n'avons fait que définir la page dans laquelle nous voulions travailler, il s'agit maintenant d'insérer du contenu. C'est au logiciel (ou à la librairie) de rendu, FOP dans notre cas, de calculer les saut de lignes, sauts de pages, colonnes etc. automatiquement ou en fonction des paramètres spécifiés.

<fo:table>

L'élément fo-table n'est pas tres différent du model de table en HTML. Il y a 8 éléments permettant de définir une table:

L'élément fo:table peut contenir des éléments optionnels fo:table-column, fo:table-header, fo:table-body, fo:table-footer. Chacun de ces éléments pouvant contenir une ou plusieurs fo:table-row, et une ou plusieurs fo:table-cell. Exemple d'utilisation de tableau

Valid HTML 4.01!