Reputation: 41
I'm using XSL-fo to output from DITA bookmaps to PDF, and I want a unique header that appears on the first page of the document, but not on the first page of every chapter. I've tried using the page-position attribute of the conditional-page-master-reference element, but this results in my custom header appearing on the first page of every chapter, whereas I want the custom header to appear only a single time, on the first page of the document, with another header appearing on every other page of the document, irrespective of chapter boundaries.
Upvotes: 3
Views: 7008
Reputation: 3903
You need to use 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>
Then for each conditional-page-master-reference, define your simple-page-master for each one:
<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>
Then in your page sequence define your regions for each region-name. For example:
<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>
Without seeing your FO, this is the best I can offer in terms of how to resolve your problem
Upvotes: 3