如何在表格的单个单元格内的同一行中将某些文本居中对齐,而将某些文本向右对齐仅在XSL-FO中。
答案 0 :(得分:0)
将每个文本块放在单独的fo:block
中。在第一个text-align="center"
上使用fo:block
,在第二个text-align="right"
上使用。参见https://www.w3.org/TR/xsl11/#text-align。
答案 1 :(得分:0)
使用fo:leader
(请参阅https://www.w3.org/TR/xsl11/#fo_leader)。
在<fo:leader />
上有text-align="justify"
时仅使用fo:block
即可。
如果未给出正确的结果,则可能是因为leader-length
属性(请参见https://www.w3.org/TR/xsl11/#leader-length)的默认.optimum值为12pt。在这种情况下,您可能想要类似的东西:
<fo:leader leader-length.optimum="100%" />
如果您使用的是AH Formatter,则可以使用axf:leader-expansion="force"
(请参阅https://www.antennahouse.com/product/ahf66/ahf-ext.html#axf.leader-expansion)来强制领导者尽可能地扩展。
答案 2 :(得分:0)
如果您确实需要在同一fo:table-cell
中同时包含居中文本和右对齐文本,则可以在两个文本之间使用负空格 fo:block
个元素可以将它们放在同一行上:
<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>
这应该可以工作(我在FOP上进行了测试),但可能被认为是一个肮脏的把戏。 space-after
的确切值取决于第一个块的行高,默认为1.2 * font-size(其自身默认为12pt),因此您可能必须针对特定情况计算正确的值。>
但是,我认为在许多情况下您可以
(正如Tony Graham所说的那样,对所需输出的更精确描述,或者甚至更好地显示它的图像,将有助于为您的情况提供正确的答案)