XSL-FO在设置表格单元格背景时会覆盖/重叠表格边框

时间:2011-04-06 21:53:53

标签: pdf-generation xsl-fo apache-fop

我遇到了问题,并且没有找到解决方案/解决方法(虽然有类似的问题已提出)与细胞背景的XSL-FO问题。我们正在使用Apache FOP 0.25并快速升级到新版本,目前另一种PDF处理器是不可行的。

当我在单元格上设置背景颜色时,新的背景填充覆盖了表格的边框,否则是可见的(0.5pt实体)。我尝试了几种方法来克服它,但它们都导致了不理想的结果:

  • 将边框设置为1pt - 边框变为可见但具有不同的宽度,具体取决于它是否沿着具有背景颜色或没有背景颜色的单元格运行。它显然太胖了。
  • 分别在具有背景颜色的每个表格单元格上设置边框。这有效但我看到在没有背景的单元格上设置的边框之间的间隙和带有的边框之间的间隙。 在下面的示例中,单元格1.1和单元格2.1的垂直边界之间会出现明显的间隙,但不会介于2.1和3.1之间。

    __________________________
    |cell 1.1: background    | 
    |cell 2.1: no background |
    |cell 3.1: no background |
    --------------------------
    

是否有任何实用的解决方法可以解决这个问题?我在table-cell元素上设置background-color,这应该是正确的,对吗?

非常感谢

1 个答案:

答案 0 :(得分:5)

适用于Apache FOP的边框和填充模式的好例子

    <fo:table border="1pt solid black">
        <fo:table-body border="inherit">
          <fo:table-row border="inherit">
            <fo:table-cell border="inherit" background-color="#F2F2F2" number-rows-spanned="2">
              <fo:block>data</fo:block>
            </fo:table-cell>
            <fo:table-cell border="inherit" background-color="#D9D9D9">
              <fo:block>data2</fo:block>
            </fo:table-cell>
          </fo:table-row>
          <fo:table-row border="inherit">
            <fo:table-cell border="inherit" background-color="#C0C0C0">
              <fo:block>data3</fo:block>
            </fo:table-cell>
          </fo:table-row>
        </fo:table-body>
    </fo:table>