具有多列的 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 区域主体,强制块在新列上开始的主要内容,如果未能解决你的问题,请参考以下文章

在另一列上查找最近的时间戳并在新列中添加值 PySpark

从 Spark DataSet 中的单个列派生多个列并在新列上分组 [重复]

在 Pandas 数据框中找到最小值并在新列上添加标签

如何在 pyspark 数据框列上拟合内核密度估计并将其用于创建具有估计的新列

将具有多个参数的函数应用于多列以创建新列[重复]

如何比较多列,并在单个新列中生成值,在 Pandas 中使用 Apply 函数