Bonjour à tous,
Je vous explique mon problème. J'ai un extrait de la DTD de mon fichier xml:
Je souhaite créer un PDF avec XSL-FO, j'utilise fop 1.0 je créé mon PDF avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <!ELEMENT movies (movie*)> <!ELEMENT movie (title,year,...) > <!ATTLIST movie id ID #REQUIRED >
J'ai essayé de créer un sommaire avec le titre des films dans le but de cliquer dessus pour aller à la page ou se trouve le film.( j'utilise au minimum une page par films).
Code : Sélectionner tout - Visualiser dans une fenêtre à part fop -xml movies.xml -xsl styleFo.xsl -pdf cat.pdf
J'ai testé avec se template pour mon sommaire:
Avec un autre template je créé toutes les pages pour chaque films en utilisent le block avec l'id correspondent.( template simplifier ici ):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <xsl:template match="title"> <fo:block text-decoration="underline"> <fo:basic-link internal-destination= "../@id" ><xsl:value-of select="text()"/></fo:basic-link> </fo:block> </xsl:template>
Le résultat est la liste des titres sur une page(s) puis un titre par page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <xsl:template match="movie" > <fo:block text-align="center" break-after="page" id="./@id" >Titre : <xsl:value-of select="title"/> ( <xsl:value-of select="year"/> ) </fo:block> </xsl:template>
Le truc c'est que le problème vient de <fo:basic-link internal-destination= "../@id" > et <fo:block text-align="center" break-after="page" id="./@id" >
car il fait une ancre sur la chaîne de caractère "../@id" et "./@id" , moi j'aimerai utiliser l'id de la DTD pour avoir accés directement à la bonne page.
J'ai testé avec des variables j'ai pas réussi non plus. Je suis débutant xslt et fo. Je suis aller sur se site ici, mais pas plus d'explications.
Merci d'avance.
Partager