将XSL-FO块放在下一页而不是跨页面拆分

时间:2011-12-28 12:37:00

标签: xsl-fo

我创建了一个XSL-FO模板,它打印了几个包含动态变化的文本的块。有时块被分割为两页,因为页面上没有足够的空间。有没有办法将块放在下一页上,而不是在不适合的情况下在页面上拆分它?我试着将它放在一个表中,保持在一起=“总是”但是然后每个文本都在单行(没有换行)并溢出右页边距消失。提前谢谢!

  <fo:table table-layout="fixed" width="100%">
    <fo:table-column column-width="proportional-column-width(1)"/>
    <fo:table-body>
      <fo:table-row keep-together="always">
        <fo:table-cell
          border-width="1px"
          border-color="black"
          border-style="solid"
          background-color="#ffffff"
          text-align="left">
          <fo:block>
            Text 1
          </fo:block>
          <fo:block>
            Text 2
          </fo:block>
          <fo:block>
            Text 3
          </fo:block>
        </fo:table-cell>
      </fo:table-row>
    </fo:table-body>        
  </fo:table>   

1 个答案:

答案 0 :(得分:14)

最有可能的是,您可以使用page-break-inside属性:

<fo:block page-break-inside="avoid">
  ...
</fo:block>

还存在其他page-break属性。拿最好的一个: