J'utilise une feuille de style XSLT (par Antennahouse) pour convertir XHTML en un fichier XSL-FO. J'ai défini une ligne vide dans mon fichier XHTML comme 2 balises HTML consécutives. Maintenant, il n'y a pas de support natif pour une ligne vide dans le format XSL-FO. Je veux contourner cette limitation en ajoutant une hauteur au bloc fo: block que la feuille de style insère pour une balise BR. Cependant, je suis nouveau dans le langage XSLT et j'ai quelques problèmes à le faire. Je peux trouver comment insérer cette hauteur pour chaque balise BR que je rencontre, mais je veux seulement que la ligne vide soit insérée quand il y a 2 balises BR l'une après l'autre (sinon une ligne vide serait insérée après chaque texte suivi par une balise BR.)en utilisant xslt stylesheet pour convertir des lignes vides xhtml en une ligne vide XSL-FO
Je suis arrivé à faire une expression 'non-sens' (11 est supérieure à 10) qui définira quand insérer un bloc fo: normal ou un bloc fo: avec espace-après = "1em". Évidemment, cette expression n'a aucun sens, ce qu'il faut vérifier, c'est si cet élément BR est le deuxième d'affilée. Si quelqu'un pouvait m'aider ici ou me diriger dans la bonne direction, ce serait grandement apprécié. C'est ce que j'ai en ce moment:
<xsl:template match="html:br">
<xsl:choose>
<xsl:when test="11 > 10">
<fo:block space-after="1em">
<xsl:call-template name="process-common-attributes"/>
</fo:block>
</xsl:when>
<xsl:otherwise>
<fo:block>
<xsl:call-template name="process-common-attributes"/>
</fo:block>
</xsl:otherwise>
</xsl:choose>
Pour des raisons de référence, ceci est un morceau de XHTML où je veux que les balises doubles BR à se transformer en une ligne vide, mais les balises simples BR devrait simplement être un saut de ligne régulier.
<div style="color: #000000; font-family: arial; font-size: 10pt; font-style: normal; font-weight: normal;">
<span>description</span>
<br/>
<span>using</span>
<br/>
<span>multiple</span>
<br/>
<span>lines</span>
<br/>
<br/>
<span>with</span>
<br/>
<br/>
<span>blank</span>
<br/>
<br/>
<span>lines</span>
<br/>
</div>
Excellent, cela a fonctionné instantanément. Je vous remercie! –
@Bas: Vous êtes les bienvenus. :) Bonne question, BTW. – Tomalak