Traiter les fichier DocBook
Comme il a été dit en cours, un fichier DocBook est un document XML qui peut être transformé en une multitude de formats. En particulier, des outils et librairies existent pour le transformer en XHTML et en XSL-FO (format qui peut être traité en lisant la section suivante).
Pour manipuler un fichier DocBook, on a besoin des outils suivants :
- Les feuilles de style XSLT de nwalsh.com ;
- un interpreteur XSLT aussi proche que possible de la spécification, par exemple l'outil Xalan du projet Apache ;
- un peu d'huile de coude.
Suivez les instructions:
-
Créez un dossier DocBook quelque part dans votre espace personnel.
-
Récupérez le fichier xalan-j_2_7_1-bin.zip sur le site de téléchargement ftp://ftp.inria.fr/pub/Apache/xml/xalan-j/.
-
Décompressez-le : vous trouverez quatres archives java .jar, que vous allez placer dans votre dossier DocBook.
-
Téléchargez le fichier docbook-xsl-1.75.2.zip sur le site http://sourceforge.net/projects/docbook/files/. ATTENTION au nom de fichier ! Ne prenez pas docbook-xsl-doc-1.75.2.zip, ça n'est pas la même chose !
-
Décompressez-le, renommez-le docbook-xsl et placez-le dans votre dossier DocBook.
-
Vous avez maintenant un dossier docbook-xsl et quatre fichiers .jar dans le dossier DocBook. Vous êtes prêt à transformer des fichiers DocBook.
Analysons le dossier docbook-xsl. Il contient une série de sous-dossiers, en particulier fo et xhtml. Dans ces deux dossiers, vous trouverez un fichier docbook.xsl et un fichier params.xsl. Le premier est la feuille de style à utiliser pour passer de DocBook à respectivement XSL-FO et XHTML et le deuxième est un fichier de paramètres, que vous pouvez modifier à votre guise pour modifier l'affichage des résultats.
Trève de bavardages.
-
Ouvrez une console de ligne de commande et placez-vous dans le répertoire DocBook.
-
Placez-y un fichier DocBook. Par exemple, le fichier source du TD-2. (Dans ce cas, assurez-vous de mettre dans l'entête un chemin de localisation de DTD valide. Par exemple docbook.org/xml/4.4/docbookx.dtd. Ou http://inf356.monoidal.net/simple-docbook.dtd).
-
Composez la commande (Si ça plante reportez-vous à la fin de la ligne du dessus...)
java -cp xalan.jar org.apache.xalan.xslt.Process -in TD-2.xml -xsl docbook-xsl/fo/docbook.xsl -out TD-2-fo.xml
- La première ligne indique à java de chercher des packages dans xalan.jar.
- La deuxième ligne appelle la fonction main de la classe Process qui se trouve dans le package org.apache.xalan.xslt.
- -in demande le fichier DocBook d'entrée.
- -xsl demande la feuille de style XSLT. Ici, on a appelé la feuille de transformation en XSL-FO. On aurait pu faire appel à docbook-xsl-1.70.1/xhtml/docbook.xsl pour une transformation en XHTML.
- -out indique le fichier de sortie. Si cet argument n'est pas donné, le programme imprime le résultat sur la sortie standard.
En Bref, on a ici transformé le fichier DocBook TD-2.xml en un fichier XSL-FO TD-2-fo.xml. Pour avoir un fichier XHTML (lisible avec Firefox par exemple), il aurait fallu faire:
java -cp xalan.jar org.apache.xalan.xslt.Process -in TD-2.xml -xsl docbook-xsl-1.70.1/xhtml/docbook.xsl -out TD-2.xhtml
Note : en ligne de commande, en principe les flèches ← et → permettent de se déplacer dans la ligne et les flèches ↑ et ↓ permettent de se déplacer dans l'historique des commandes.
Transformation de documents XSL-FO
Supposez que vous ayez un document XSL-FO, soit écrit par vous, soit produit par la méthode du dessus. Comme il a été dit en classe, il est la description d'un document imprimé, avec des marges, ... Il est donc possible de le transformer en PDF.
Pour ce faire, nous allons utiliser l'outil FOP du projet Apache. Une méthode simple pour le faire fonctionner est la suivante.
-
Dans http://apache.multidist.com/xmlgraphics/fop/binaries/ téléchargez le fichier fop-0.95-bin.zip.
-
Décompressez-le et placez-vous dans le dossier à l'aide de la ligne de commande.
- Si vous êtes sous Windows, le programme à utiliser est fop.bat.
- Si vous êtes sous Unix/Linux, le programme à utiliser est fop.
Tous deux sont des scripts qui vont faire ce qu'il faut.
-
Vous pouvez transformer un fichier XSL-FO (par exemple TD-2-fo.xml de la section précédante) en format PDF, PS, RTF, ...
La commande à utiliser est (pour Windows, fop.bat à la place de fop)
fop -fo fichier.fo -pdf fichier.pdf
ou
fop -fo fichier.fo -ps fichier.ps
ou
fop -fo fichier.fo -rtf fichier.rtf
suivant le format de sortie souhaité.
Note sur les formats :
- RTF est un format de traitement de texte vieux comme les rues. Utilisez OpenOffice ou Microsoft Office pour ouvrir un tel fichier.
- PS est un langage de programmation (PostScript) utilisé comme format de fichiers pour des documents à imprimer. Les imprimantes de l'IMAG parlent PostScript, par exemple.
- PDF est un sous-langage de PostScript, utilisé comme vous le savez comme format d'échange sur le web.
Note: FOP peut raler et produire des erreurs dites SEVERE. Vous pouvez en général les ignorer, elles ne gènent en rien la production du fichier de sortie.