Suite du passage en XML : génération HTML et PDF

Maintenant que xsltproc génère sans erreur, il est temps de se pencher sur la qualité de la génération. Je souhaite avoir à peu près le même rendu qu'avec openjade. Commençons par le HTML. J'ai utilisé le fichier stylesheets.xsl du répertoire des sources du manuel de PostgreSQL. J'ai simplement mis en commentaire la ligne spécifiant l'emplacement réseau des feuilles de style XSLT de base. Je préfère utiliser celles dont je dispose en local. J'ai donc ajouté une ligne pour pointer vers le bon répertoire. Ensuite, j'ai récupéré le Makefile du projet de traduction LFS et je l'ai légèrement modifié. Voici le contenu simplifié :

BASEDIR=~/lfs-book
DUMPDIR=~/lfs-commands
CHUNK_QUIET=0
PDF_OUTPUT=LFS-BOOK.pdf
NOCHUNKS_OUTPUT=LFS-BOOK.html
XSLROOTDIR=/usr/share/xml/docbook/xsl-stylesheets-current
html:
       xsltproc --xinclude --nonet \
         -stringparam profile.condition html \
         -stringparam chunk.quietly $(CHUNK_QUIET) \
         -stringparam base.dir $(BASEDIR)/ \
         stylesheet.xsl postgres.sgml

On voit d'ailleurs que je n'ai pas vraiment tout modifier (les noms de variable font furieusement penser à LFS :-) ). Un simple make html me génère la documentation au format HTML avec de nombreux fichiers. Pour être franc, c'est super long... mais c'est bien meilleur, notamment avec la création d'un index. Pour ceux qui veulent voir le résultat, c'est ici.

Ensuite, j'ai essayé de générer un PDF. Alors là, c'est galère. J'ai installé fop après avoir déclaré un dépôt non libre dans mon /etc/apt/sources.list :

deb ftp://ftp.tux.org/java/debian/ sarge non-free

Voir ce document pour plus d'infos. Après ça, j'ai récupéré Jimi pour le traitement des images à intégrer dans le PDF. Oui, je sais, le manuel de PostgreSQL ne contient aucune image... sauf que la génération des documents HTML importe des images pour les notes, avertissements, etc. Ceci fait, j'ai pu lancer la génération du PDF avec cet ajout dans le Makefile :

pdf:
       xsltproc --xinclude --nonet --stringparam profile.condition pdf \
               --output $(BASEDIR)/lfs-pdf.xml stylesheets/lfs-profile.xsl index.xml
       xsltproc --nonet --output $(BASEDIR)/lfs-pdf.fo stylesheets/lfs-pdf.xsl \
               $(BASEDIR)/lfs-pdf.xml
       fop $(BASEDIR)/lfs-pdf.fo $(BASEDIR)/$(PDF_OUTPUT)
       rm $(BASEDIR)/lfs-pdf.xml $(BASEDIR)/lfs-pdf.fo

Évidemment, ça devait bien planter à un moment. C'est maintenant avec ce joli message d'erreur :

[ERROR] file:/home/guillaume/lfs-book/lfs-pdf.fo:4040:429972 internal-destination or external-destination must be specified in basic-link

Et là, je suis perdu. Je ne trouve rien de bien intéressant dans Google. Les fichiers générés ne m'apportent rien. Aucune idée. Je ferais mieux d'aller me coucher...

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet