Suite de mes aventures dans le beau monde de XSLT et FOP

J'ai fini par comprendre le problème de l'erreur du make pdf d'hier. Voici comment je suis arrivé à générer un PDF avec fop...

Le fichier .fo généré par xsltproc est un peu bordélique. J'ai donc commencé par ranger les balises une par une avec la commande sed suivante :

sed 's/>/>
/g' lfs-pdf.fo > lfs-pdf2.fo

L'erreur étant internal-destination or external-destination must be specified in basic-link, j'ai recherché tous les basic-link du fichier .fo :

grep "basic-link" lfs-pdf2.fo

ce qui me donne à peu près ceci

[... j'en coupe une grosse partie ...]
<fo:basic-link internal-destination="ch-system-pwdgroup">
</fo:basic-link>
<fo:basic-link internal-destination="ch-system-man-pages">
</fo:basic-link>
<fo:basic-link internal-destination="">
description</fo:basic-link>

Le dernier internal-destination est bien vide. Comme il ne contient rien de bien intéressant, j'ai supprimé toute la cellule, à savoir les lignes suivantes :

<fo:table-cell>
<fo:block>
<fo:basic-link internal-destination="">
description</fo:basic-link>
</fo:block>
</fo:table-cell>

La génération ne pose plus aucun problème ! J'ai un superbe PDF pour LFS que vous pouvez voir sur le site de la traduction de LFS (superbe dans le sens joli et utilisable... en effet, les liens sont disponibles, les numéros de page sont exacts... un vrai bonheur). Très content, je me suis mis en tête de faire celui du manuel de PostgreSQL. Je modifie un peu le script Makefile pour tenir compte des spécificités de ce manuel. Malheureusement, j'obtiens une erreur bien gênante :

Exception in thread "main" java.lang.OutOfMemoryError

Y compris après avoir modifié FOP_OPTS pour lui donner 1 Go de mémoire, rien à y faire, il s'arrête à la page 252.

Google me dit gentiment de changer de processeur FO... mouais, me suis déjà embêté à installer celui-là. Les autres sont soit propriétaires soit non disponibles via apt-get... pfff. Je testerais ce soir la génération d'un fichier HTML complet que je balancerais à html2ps, puis ps2pdf.

Commentaires

1. Le mardi, juin 27 2006, 11:36 par maylvin

s'lt guillaume, je voudrais savoir quels conseils tu peux donner à une personne qui apprend le langage xml, et qui souhaite transformer des fichiers xml en pdf?quels executables lui conseillerais tu?quelles versions de fop?

2. Le mardi, juin 27 2006, 12:34 par Guillaume Lelarge

Je proposerais xsltproc pour générer le fichier .fop et fop 0.20.5 pour générer le PDF... la version beta peut être une solution au cas où la version stable (la 0.20.5) ne fonctionnerait pas.

Ajouter un commentaire

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

Fil des commentaires de ce billet