0

FOP で、最後のページの本文セクションが異なる PDF を生成するようにします。この動作を次のように実装しようとしました。

<xsl:template match="/fatture">
  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

    <fo:layout-master-set>
      <fo:simple-page-master master-name="main" page-height="297mm" page-width="210mm"
                             margin-top="0mm" margin-bottom="5mm" margin-left="5mm" margin-right="5mm">
        <fo:region-body margin-top="110mm" margin-bottom="75mm"/>
        <fo:region-before extent="110mm"/>
        <fo:region-after extent="75mm"/>
      </fo:simple-page-master>

      <fo:simple-page-master master-name="main-other" page-height="297mm"
                             page-width="210mm" margin-top="0mm" margin-bottom="5mm" margin-left="5mm"
                             margin-right="5mm">
        <fo:region-body margin-top="110mm" margin-bottom="75mm"
                        region-name="xsl-region-body"/>
        <fo:region-before extent="110mm" region-name="xsl-region-before"/>
        <fo:region-after extent="75mm" region-name="xsl-region-footer"/>
      </fo:simple-page-master>
      <fo:simple-page-master master-name="main-last" page-height="297mm"
                             page-width="210mm" margin-top="0mm" margin-bottom="5mm" margin-left="5mm"
                             margin-right="5mm">
        <fo:region-body margin-top="110mm" margin-bottom="75mm"
                        region-name="xsl-region-body-last"/>
        <fo:region-before extent="110mm" region-name="xsl-region-before"/>
        <fo:region-after extent="75mm" region-name="xsl-region-footer"/>
      </fo:simple-page-master>

      <fo:page-sequence-master master-name="sintetica">
        <fo:repeatable-page-master-alternatives>
          <fo:conditional-page-master-reference master-reference="main-last" 
                                                page-position="last"/>
          <fo:conditional-page-master-reference master-reference="main-last"/>
        </fo:repeatable-page-master-alternatives>
      </fo:page-sequence-master>

    </fo:layout-master-set>
    <xsl:for-each select="fattura">
      <fo:page-sequence master-reference="sintetica">
        <xsl:call-template name="main-document.header"/>
        <xsl:call-template name="main-document.footer"/>
        <xsl:call-template name="main-document.body"/>
        <xsl:call-template name="main-document-last.body"/>
      </fo:page-sequence>
    </xsl:for-each>

    <!--        
    -->
  </fo:root>
</xsl:template>

しかし、2 つの異なるボディを呼び出そうとしているため、ページ シーケンス セクションにエラーがあると思います。エラーは次のとおりです。

フロー 'xsl-region-body' は、page-master 'main-last' の region-body にマップされません。FOP は現在これをサポートしていません。

私の問題を解決する方法はありますか?ページ シーケンスでflowタグを使用する場合、2 つのボディを宣言できますか?

4

1 に答える 1

0

最初の fo:conditional-page-master-reference にタイプミスがあります - 両方の master-reference 属性が「main-last」に設定されています - これで問題は解決しますか?

さらに、おそらくこの他の質問はすでに適切な答えを提供していますか? リンク: ドキュメントの最後のページを検出する方法は?

于 2012-11-28T16:49:49.260 に答える