我有一个业务需求,我在PDF中呈现表数据。要求是表的内容不得超过一页,包括页眉/页脚。表格的每一行都可以在高度上变化,因此它不像仅限制输出的行数那么简单。它现在的工作原理是表格内容溢出到渲染表所需的页数。
有谁知道如何将表的输出限制为只有一页?顺便说一下,我对xsl和xsl-fo很新。
非常感谢!
答案 0 :(得分:1)
如果你没有明确说明你想要什么,如果你只想切断溢出,你有几种方法。由于它只有一页,我根本不会打扰页眉/页脚区域。我会将所有内容放在绝对定位的块容器中,大小与您希望的大小相同。
对于“中间”一个,将表放在块容器中并在其上设置overflow =“hidden”。
我使用RenderX XEP和Apache FOP进行了测试,非常适合剪掉溢出。
像这样:
<fo:page-sequence master-reference="first">
<fo:flow flow-name="xsl-region-body">
<fo:block-container position="absolute" top="3in" left="1in" height="1in" width="7in" overflow="hidden" border="1pt solid black">
<fo:block>
<fo:table border="solid 1pt blue">
<fo:table-column column-number="1" column-width="1.25in"/>
<fo:table-column column-number="2" column-width="3in"/>
<fo:table-body>
<fo:table-row border="solid 1pt red">
<fo:table-cell >
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>1.25in</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>3in</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block>
</fo:block-container>
</fo:flow>
</fo:page-sequence>