Reprise d'un ancien travail en XSLT
À la suite d'une éventuelle embauche par une entreprise genevoise, j'ai rafraîchi mes connaissances en XSLT en reprenant un travail ayant servi à générer mes rapports durant mes études.
Cette feuille XSLT transforme du xHTML en XSL-FO, le langage de description de document.
XSL-FO est un langage d'une haute technicité qui 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.
Grâce à FOP (Formating Object Processor) on obtient des fichiers PDF propres. XSL-FO convient bien pour la génération automatisée de rapports et de documents dont la qualité de mise en page est importante.
J'ai enrichi les fonctionnalités déjà présentes dans une ancienne version avec la gestion des liens internes, externes, et des bookmarks pour les fichiers PDF.
Le problème avec le langage xHTML c'est qu'il est plutôt délicat à manipuler avec XSLT. Il m'a fallu pas mal de travail pour pouvoir numéroter correctement les titres par exemple.
xHTML est certe plus difficile à traiter que DocBook, le format de prédilection pour générer du XSL-FO, mais c'est également un langage bien reconnu. Il est facile de convaincre ses collègues de travail d'écrire
un rapport commun avec xHTML.
Le fichier xHTML doit tout de même suivre un formalisme
particulier. C'est nécessaire car le langage est trop faible sémantiquement pour pouvoir
exprimer une bilbiographie ou une page de titre. Ces sections spéciales sont identifiées par
des éléments div avec une classe particulière.
Liste des fonctionnalités de cette feuille de transformation
- Gestion de la plupart des balises xHTML courantes (titres, paragraphes, liens, tableaux, listes, images, gras, italiques ...)
- Gestion de balises moins courantes (citations, listes de descriptions, ...)
- Génération automatique de la table des matières, de la table des illustrations.
- Numérotation automatique des pages et des titres sur 3 niveaux.
- Page de titre, bibliographie format ISO, indication de la section courante dans l'en-tête, ...
- Liens internes, externes, et bookmarks PDF.