FO:XSL 上的动态列数量

Dynamic columns quantity on FO:XSL

有什么方法可以让例如连续 2 列,然后在下一行制作 3 列?

      <fo:block font-size="16pt" font-weight="bold" space-after="5mm">Company employees: <xsl:value-of select="companyname"/>
      </fo:block>
      <fo:block font-size="10pt">
      <fo:table table-layout="fixed" width="100%" border-collapse="separate">    
        <fo:table-column column-width="4cm"/>
        <fo:table-column column-width="4cm"/>
        <fo:table-column column-width="5cm"/>
        <fo:table-body>
          <xsl:apply-templates select="client"/>
        </fo:table-body>
      </fo:table>
      </fo:block>
    </fo:flow>

如果您希望一个 table 单元格跨越两列,那就是 number-columns-spanned 属性(请参阅 https://www.w3.org/TR/xsl11/#number-columns-spanned,并且永远不要这样说XSL-FO 是简洁的)。例如:

<fo:table-cell number-columns-spanned="2">...</fo:table-cell>

如果您想要在任何行中有两个相等的列或三个相等的列,那么您可以制作一个六列 table 并让每个 fo:table-cell 跨越两列或三列,或者您可以制作一个单列table,并在外层table.[=17=的每一行的单个fo:table-cell中放置一个单独的两列或三列table ]

如果您使用的是 AH Formatter,那么您可以使用 axf:tab(请参阅 https://www.antenna.co.jp/AHF/help/v70e/ahf-ext.html#text-tab)并设置适当的制表位,但我还没有尝试过。