Est-il possible d'utiliser l'équivalent de «rowspan» dans XSL-FO?
Je veux afficher un texte avec une police de plus grande taille dans la colonne de gauche d'un <fo:table>
. Les colonnes à droite cependant devrait être composé d'un couple de lignes avec le texte plus petit.
C'est la façon dont le code XSL ressemble avant tout ajout de colonne la plus à gauche avec plus de texte:
<xsl:template name="printAddress">
<xsl:param name="subDocument" />
<fo:table table-layout="fixed" background-color="#e0e0e0" keep-with-next.within-page="always">
<fo:table-column column-width="7.0cm" />
<fo:table-column column-width="7.0cm" />
<fo:table-column column-width="2.0cm" />
<fo:table-body>
<!-- Begin Row 1 -->
<fo:table-row keep-with-previous="always">
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>Value 1</fo:block>
</fo:table-cell>
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>Value 2</fo:block>
</fo:table-cell>
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block />
</fo:table-cell>
</fo:table-row>
<!-- Begin Row 2 -->
<fo:table-row keep-with-previous="always">
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>
<xsl:value-of select="$subDocument/someAttribute" />
</fo:block>
</fo:table-cell>
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>
<xsl:value-of select="$subDocument/someOtherAttribute" />
</fo:block>
</fo:table-cell>
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block />
</fo:table-cell>
</fo:table-row>
<!-- Begin Row 3 -->
<fo:table-row keep-with-previous="always">
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>value 3</fo:block>
</fo:table-cell>
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>Value 4</fo:block>
</fo:table-cell>
<fo:table-cell margin-left="0.2cm" padding-before="0.1cm" padding-after="0.1cm">
<fo:block>Value 5</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>
Je veux ajouter une colonne à gauche mais je ne trouve pas la syntaxe pour elle. Dans le code HTML ci-dessus serait écrit quelque chose comme ceci:
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td></td>
</tr>
<tr>
<td>{someAttribute}</td>
<td>{someOtherAttribute}</td>
<td></td>
</tr>
<tr>
<td>Value 3</td>
<td>Value 4</td>
<td>Value 5</td>
</tr>
Et à accomplir ce que je veux, nous aurions seulement besoin de le modifier comme ceci:
<tr>
<td rowspan="3" style="font-weight:bold;font-size:14pt">New Text</td>
<td>Value 1</td>
<td>Value 2</td>
<td></td>
</tr>
<tr>
<td>{someAttribute}</td>
<td>{someOtherAttribute}</td>
<td></td>
</tr>
<tr>
<td>Value 3</td>
<td>Value 4</td>
<td>Value 5</td>
</tr>
Mais comment serait-ce mieux de le faire avec de XSL-FO?
source d'informationauteur Niklas
Vous devez vous connecter pour publier un commentaire.
<fo:table-cell number-rows-spanned="3">
avez-vous pas juste comment verbeux XSL est?
La réponse sélectionnée ci-dessus est juste, vous ajoutez le "nombre-lignes-fractionné=" clause de la définition de la cellule du tableau.
Cependant, à la différence du HTML, vous ne les laissez pas dans l'espace réservé cellules du fractionné les lignes ci-dessous. Si vous le faites, FO va se plaindre de l'existence d'un trop grand nombre de cellules définie dans la ligne.
Nombre d'utilisation-lignes-fractionné ou de numéro de colonne-fractionné. Mais pourquoi ne pas utiliser un concepteur visuel?
Je suis à l'aide de la Ecrion XF Designer et il fait assez bon travail.