具有多列的 XSLT 区域主体,强制块从新列开始

XSLT region-body with multiple columns, force block to start on a new column

我正在使用 XSLT 创建用于生成 PDF 的模板。我希望我的横向页面分为三列,我使用的是:

<fo:layout-master-set>
     <fo:simple-page-master master-name="page" page-height="210mm" page-width="297mm"
     margin="5mm 25mm 5mm 25mm">
     <fo:region-body column-count="3" margin="30mm 0mm 30mm 0mm"/>
     </fo:simple-page-master>
</fo:layout-master-set>

在我的一个模板中,我有一个 for-each 函数来编写一个块。当我生成我的 pdf 时,这有效并且我的数据分布在多个列中。但是由于我的块的性质,看起来很乱。

有没有办法让每个 'for-each' 部分都从一个新列开始?我找不到任何方法来做到这一点。

在第一个块上使用 break-before="column"(参见 https://www.w3.org/TR/xsl11/#break-before)。类似于:

<fo:block>
  <xsl:if test="position() = 1">
    <xsl:attribute name="break-before">column</xsl:attribute>
  </xsl:if>
  ...