user4310642
user4310642

Reputation: 35

xslt:fo Page-number not working

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

Answers (1)

Kevin Brown
Kevin Brown

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

Related Questions