XSL:FO仅将标题保留在第一页

时间:2019-10-11 13:09:43

标签: xsl-fo

我有一个问题,只能在首页保留“之前的区域”。查看我的代码:

    <fo:layout-master-set>
            <fo:simple-page-master master-name="first" margin-right="0.5cm" margin-left="0.5cm" margin-bottom="0.5cm" margin-top="0.75cm" page-width="21cm" page-height="29.7cm">

                <fo:region-body region-name="xsl-region-body" margin-top="{$extra-body-margin-top+15.6-$header-margin}cm" margin-bottom="3.5cm" />
                <fo:region-before region-name="xsl-region-before"  extent="17cm" overflow="hidden" />
                <fo:region-after region-name="xsl-region-after" extent="2.8cm" overflow="hidden" />
            </fo:simple-page-master>
            <fo:page-sequence-master master-name="psmA">
                <fo:repeatable-page-master-alternatives>
                    <fo:conditional-page-master-reference master-reference="first" page-position="any" />
                </fo:repeatable-page-master-alternatives>
            </fo:page-sequence-master>

    </fo:layout-master-set>

如果我更改page-position =“ first”并且我的region-body超过了第一页,则会出现错误。我的想法是仅在第一页上保留区域,但在下一页上保留region-body和region-footer。有什么容易玩的代码吗?

1 个答案:

答案 0 :(得分:1)

  1. 设置第二个没有fo:simple-page-master的{​​{1}}。
  2. 添加第二个fo:region-before,以便仅在第一页上使用fo:conditional-page-master-reference页面母版(使用first),其余页面上使用其他页面母版(使用{{ 1}})。

之所以可行,是因为格式化程序使用所有条件都为真的第一个替代方法(请参见https://www.w3.org/TR/xsl11/#fo_repeatable-page-master-alternatives)。这也是为什么您将page-position="first"放在最后的原因,因为该条件始终为真。

page-position="any"
相关问题