具有多列的 XSLT 区域主体,强制块在新列上开始
Posted
技术标签:
【中文标题】具有多列的 XSLT 区域主体,强制块在新列上开始【英文标题】:XSLT region-body with multiple columns, force block to start on a new column 【发布时间】:2021-09-13 17:44:39 【问题描述】:我正在使用 XSLT 创建用于生成 PDF 的模板。我希望我的横向页面分成三列,我使用的是:
<fo:layout-master-set>
<fo:simple-page-master master-name="page" page- page-
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”部分都从一个新列开始?我找不到任何方法来做到这一点。
【问题讨论】:
你能提供一个minimal reproducible example吗? 【参考方案1】:在第一个块上使用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>
...
【讨论】:
以上是关于具有多列的 XSLT 区域主体,强制块在新列上开始的主要内容,如果未能解决你的问题,请参考以下文章
从 Spark DataSet 中的单个列派生多个列并在新列上分组 [重复]