Comment aligner du texte au centre et du texte à droite sur la même ligne dans une seule cellule d'un tableau En XSL-FO uniquement.
3 Réponses :
Mettez chaque bloc de texte dans un fo: block
distinct. Utilisez text-align = "center"
sur le premier fo: block
, et utilisez text-align = "right"
sur le second. Voir https://www.w3.org/TR/xsl11/#text-align .
Si j'utilise deux fo: block séparés, ce texte apparaîtra dans une nouvelle ligne. Je veux dans la même ligne s'il vous plaît aidez-moi
Désolé, mon erreur. Veuillez voir mon autre réponse. Cela m'aurait peut-être sauvé de moi-même si vous aviez montré un exemple de XML et peut-être une sortie falsifiée, mais cela n'excuse pas ma lecture erronée.
Utilisez fo: leader
(voir https: // www .w3.org / TR / xsl11 / # fo_leader ).
En utilisant uniquement
quand il y a text-align = "justify" code> sur le
fo: block
peut être suffisant.
Si cela ne donne pas le bon résultat, c'est peut-être parce que la valeur par défaut .optimum pour le leader -length
(voir https://www.w3.org/ TR / xsl11 / # leader-length ) est de 12 pt. Dans ce cas, vous voudrez probablement quelque chose comme:
<fo:leader leader-length.optimum="100%" />
Si vous utilisez AH Formatter, vous pouvez utiliser axf: leader-expansion = "force" code > (voir https://www.antennahouse.com /product/ahf66/ahf-ext.html#axf.leader-expansion ) pour forcer le leader à se développer autant que possible.
Je ne suis pas sûr de comprendre comment cela fonctionnerait: utiliser un seul fo: leader
permettrait d'obtenir du texte aligné à gauche et aligné à droite sur la même ligne, mais ce n'est pas le résultat souhaité; avoir fo: leader
+ text1 + fo: leader
+ text2 placerait text1 au milieu entre la marge gauche et le début de text2 , pas au centre entre les marges.
Si vous avez vraiment besoin d'avoir à la fois le texte centré et le texte aligné à droite dans le même fo: table-cell
, vous pouvez utiliser un négatif espace entre deux éléments fo: block
pour les mettre apparemment sur la même ligne:
<fo:table-cell> <fo:block text-align="center" space-after="-14.4pt">in the center</fo:block> <fo:block text-align="right">to the right</fo:block> </fo:table-cell>
Cela devrait fonctionner (je l'ai testé avec FOP), mais cela peut être considéré comme un sale tour; la valeur exacte de space-after
dépend de la hauteur de ligne du premier bloc, qui est par défaut de 1,2 * font-size (elle-même par défaut à 12pt), vous devrez peut-être calculer la valeur correcte pour votre situation spécifique.
Cependant , je pense que dans de nombreuses situations, vous pouvez simplement
(comme Tony Graham l'a déjà commenté, une description plus précise de la sortie souhaitée, ou encore mieux une image la montrant, aiderait à suggérer la bonne réponse pour votre situation)
Pouvez-vous ajouter un rendu graphique ou ASCII Art de ce que vous voulez? J'ai fourni deux réponses, et chaque réponse a suscité de nouveaux détails sur ce que vous voulez. @Ifurini a également suggéré qu'une description plus précise serait utile. Nous essayons d'aider, mais nous n'avons pas suffisamment d'informations.