我正在使用XSL-fo从DITA书签输出到PDF,我想要一个独特的标题出现在文档的第一页,但不是在每章的第一页。我已经尝试使用conditional-page-master-reference元素的page-position属性,但这导致我的自定义标题出现在每章的第一页上,而我希望自定义标题只出现一次,在文档的第一页上,文档的每个其他页面上都出现另一个标题,不论章节边界如何。
答案 0 :(得分:2)
您需要使用page-sequence-master
<fo:page-sequence-master master-name="recto-verso-document">
<fo:repeatable-page-master-alternatives>
<fo:conditional-page-master-reference odd-or-even="odd" master-reference="page-odd" blank-or-not-blank="not-blank"/>
<fo:conditional-page-master-reference blank-or-not-blank="not-blank" odd-or-even="odd" page-position="first" master-reference="last-page-odd"/>
<fo:conditional-page-master-reference blank-or-not-blank="not-blank" odd-or-even="even" page-position="rest" master-reference="last-page-even"/>
<fo:conditional-page-master-reference odd-or-even="even" master-reference="page-even" blank-or-not-blank="not-blank"/>
</fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>
然后,对于每个条件页面主参考,为每个参数定义simple-page-master:
<fo:simple-page-master master-name="first-page-odd" page-height="11in" page-width="8.5in" margin-top="0.5in" margin-left="1.0in" margin-right="0.5in">
<fo:region-body region-name="xsl-region-body" margin-top="0.80in" margin-bottom=".5in" overflow="auto"/>
<fo:region-before region-name="xsl-region-before-first" extent="1in"/>
<fo:region-after region-name="xsl-region-after" extent="0.6in"/>
</fo:simple-page-master>
<fo:simple-page-master master-name="page-odd" page-height="11in" page-width="8.5in" margin-top="0.5in" margin-left="1.0in" margin-right="0.5in">
<fo:region-body region-name="xsl-region-body" margin-top="0.80in" margin-bottom=".5in" overflow="auto"/>
<fo:region-before region-name="xsl-region-before" extent="1in"/>
<fo:region-after region-name="xsl-region-after" extent="0.6in"/>
</fo:simple-page-master>
然后在您的页面序列中为每个region-name定义您的区域。例如:
<fo:static-content flow-name="xsl-region-before-first">
<fo:block>do something for your header</fo:block>
</fo:static-content>
<fo:static-content flow-name="xsl-region-before">
<fo:block>do something for your header</fo:block>
</fo:static-content>
在没有看到您的FO的情况下,这是我能提供的最佳解决方案