Reputation: 35
This is a newbie question for xslt 1.0 FO
My requirement: Print the page number as footer on each page
I followed this template:
<?xml version="1.0" encoding="iso-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body margin="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:static-content flow-name="xsl-region-before">
<fo:block text-align="end">
Page <fo:page-number/>
of <fo:page-number-citation ref-id="terminator"/>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello, world!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
I expect to see page number at the top of each page (even if its just 1 page) But all I see is
Page of Hello, world!
How do I correct my xslt for showing the page number?
Upvotes: 1
Views: 1795
Reputation: 8877
First: You have not defined any region-before in your page-master.
<fo:simple-page-master master-name="my-page">
<fo:region-body margin="1in"/>
<fo:region-before extent="1in"/>
</fo:simple-page-master>
Now you have a region to place that content.
Next, this:
<fo:page-number-citation ref-id="terminator"/>
Will never work unless you have some "id" in your document named "terminator". Below is a complete example.
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body margin="1in"/>
<fo:region-before extent="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:static-content flow-name="xsl-region-before">
<fo:block text-align="end">
Page <fo:page-number/>
of <fo:page-number-citation ref-id="terminator"/>
</fo:block>
</fo:static-content>
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello, world!</fo:block>
<fo:block id="terminator"></fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
Upvotes: 1