首页 > 解决方案 > 如何在表格中的单个单元格内将某些文本居中对齐,将某些文本右对齐

问题描述

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

标签: xsl-fo

解决方案


如果您确实需要将居中文本和右对齐文本放在同一个中,则可以在两个元素之间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. 使用 3 列表,第一个和第三个具有相同的宽度
  2. 将居中的文本放在第二个单元格中
  3. 将右对齐文本放在第三个单元格中
  4. 仅在表格行之外定义边框,因此三个单元格在输出中显示为一个单元格。

(正如托尼·格雷厄姆(Tony Graham)已经评论的那样,对所需输出的更精确描述,或者甚至更好的显示它的图像,将有助于为您的情况提出正确的答案)


推荐阅读