如何在表格中的单个单元格中将某些文本居中对齐,将某些文本向右对齐



如何在表中的单个单元格内将某些文本居中对齐,将某些文本右对齐,仅在XSL-FO中。

将每个文本块放在一个单独的fo:block中。对第一个fo:block使用text-align="center",对第二个使用text-align="right"。看见https://www.w3.org/TR/xsl11/#text-对齐。

如果您确实需要在同一个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*字体大小(本身默认为12pt),因此您可能需要根据您的具体情况计算正确的值。

然而,我认为在许多情况下,你可以只是

  1. 使用三列表,第一列和第三列的宽度相等
  2. 将居中的文本放在第二个单元格中
  3. 将右对齐的文本放在第三个单元格中
  4. 只在表行外定义一个边框,这样三个单元格在输出中显示为一个单元格

(正如Tony Graham已经评论的那样,对所需输出进行更精确的描述,或者更好的图像显示,将有助于为您的情况提出正确的答案)

使用fo:leader(请参阅https://www.w3.org/TR/xsl11/#fo_leader)。

当在CCD_ 11上存在CCD_ 10时仅使用CCD_。

如果没有给出正确的结果,可能是因为leader-length属性的默认.soptimal值(请参阅https://www.w3.org/TR/xsl11/#leader-长度)为12pt。在这种情况下,你可能想要这样的东西:

<fo:leader leader-length.optimum="100%" />

如果使用AH格式化程序,则可以使用axf:leader-expansion="force"(请参阅https://www.antenna.co.jp/AHF/help/en/ahf-ext.html#axf.leader-扩张)以迫使领导者尽可能地扩张。

最新更新