XSLT - 块必须适合表格单元格

时间:2017-09-15 11:19:24

标签: xml xslt xsl-fo

我的问题是基于一个包含两个单元格的表。如果一个单元格中有更多文本,则向下扩展。在这种情况下,另一个块更短(注意表格单元格与另一个一样大)。

基本上我想在表格单元格周围做一个边框。但它应该是一个边界的图像。我在表格单元格中填充,内部块的背景颜色为白色。有了这个策略,它看起来有点像边界。问题是,第二个单元格中的块较小,因此其下方有更多空间。边界变得不一致。

The output looks like this:

有没有办法缩放块以适应?

2 个答案:

答案 0 :(得分:1)

包含单元格中文本的块的大小适合文本。这就是您当前背景不均匀的原因 您需要的是整个表格的背景颜色:表格的大小将适合最大的单元格。

如果图像位于fo:块内,并且同一个块也包含该表,则可以得到所需的结果。

伪代码:

<fo:block background-image="image.png">
    table goes here, with background-color="white" and a transparent border around the table to set the width/height of the visible portion of the background image.
</fo:block>

修改:评论显示更具体的内容 添加的约束条件是边框应仅围绕表头:

  1. 定义无边框的表格。
  2. 将背景图像插入标题单元格中。
  3. 将标题单元格文本放在一个边框中,例如各边各5毫米。
  4. 对于正文行,还指定边距以将正文文本与标题文本对齐。

答案 1 :(得分:0)

由于您使用的是Antenna House,因此您可以使用<fo:block-container column-count="2">并在第二个break-before="column"上添加fo:block。请参阅https://www.antennahouse.com/product/ahf64/ahf-ext.html#axf.column-counthttps://www.w3.org/TR/xsl/#break-before