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 パーツに関する注意事項: コンテンツがない場合、そのテーブル行は高さ 0 に折りたたまれる場合があります。その崩壊効果を避けるために、テーブル行で block-progression-dimension.minimum="1.2em" のようなものを使用する必要があるかもしれません。

于 2010-07-01T06:28:51.837 に答える