0

我正在尝试在 FOP 中的表中添加一些额外的行,以使用以下代码将它们填充到 13 行:

      <!-- Fill Up Empty space -->
      <c:forEach var="i" begin="${position_id}" end="13" step="1">
        <fo:table-row height="4.4mm" border-bottom-color="black"
          border-bottom-style="fixed" border-bottom-width="0.2mm">
          <fo:table-cell border-bottom-style="solid"
            border-bottom-width="0.2mm" border-top-style="solid"
            border-top-width="0.1mm">
            <fo:block font-size="8pt" text-align="center">
            </fo:block>
          </fo:table-cell>
          <fo:table-cell border-bottom-style="solid"
            border-bottom-width="0.2mm" border-top-style="solid"
            border-top-width="0.1mm">
            <fo:block />
          </fo:table-cell>
          <fo:table-cell border-bottom-style="solid"
            border-bottom-width="0.2mm" border-top-style="solid"
            border-top-width="0.1mm">
            <fo:block />
          </fo:table-cell>
          <fo:table-cell border-bottom-style="solid"
            border-bottom-width="0.2mm" border-top-style="solid"
            border-top-width="0.1mm">
            <fo:block />
          </fo:table-cell>
          <fo:table-cell border-bottom-style="solid"
            border-bottom-width="0.2mm" border-top-style="solid"
            border-top-width="0.1mm">
            <fo:block />
          </fo:table-cell>
        </fo:table-row>
      </c:forEach>

问题是我不断收到异常:

org.apache.fop.fo.ValidationException: file:/tmp/fop_1613051806105460695.fo:289:126: Error(289/126): fo:table-row is not a valid child element of forEach.
 at org.apache.fop.fo.FONode.invalidChildError(FONode.java:435)
 at org.apache.fop.fo.FONode.invalidChildError(FONode.java:420)
 at org.apache.fop.fo.XMLObj.validateChildNode(XMLObj.java:70)
    ...

谷歌搜索也无济于事。有任何想法吗?

4

1 回答 1

2

"c:forEach" 不是 FOP 可以处理的。那是某种专有的 XML 转换语言吗?无论如何,您必须确保转换在 FOP 之前运行,并且 FOP 只接收普通的 XSL-FO。那么这个错误应该会消失。

只是对 FO 部分的注释:如果没有内容,该表行可能会折叠到零高度。您可能需要在 table-row 上使用类似 block-progression-dimension.minimum="1.2em" 的东西来避免这种折叠效果。

于 2010-07-01T06:28:51.837 回答