Page Number Extensions

Top Previous Topic Next Topic  Print this topic

You can set different options for page numbers using extensions like: xf:skip-blank-pages, xf:initial-page-number, xf:use-sheet-number, xf:increment-by.

The example below display the way these can be used:

 

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"

                       xmlns:xf="http://www.ecrion.com/xf/1.0"> (1)

       <fo:layout-master-set>

               <fo:simple-page-master master-name="FirstPage"

               page-width="5in" page-height="1in" margin="0.2in">

                       <fo:region-body region-name="PageBody"/>

                       <fo:region-after region-name="Footer"

                                                       extent="0.2in"/>

               </fo:simple-page-master>

               <fo:simple-page-master master-name="LetterPage"

               page-width="5in" page-height="1in" margin="0.2in">

                       <fo:region-body region-name="PageBody"/>

                       <fo:region-after region-name="Footer"

                                                       extent="0.2in"/>

               </fo:simple-page-master>

               <fo:simple-page-master master-name="BlankPage"

               page-width="5in" page-height="1in" margin="0.2in">

                       <fo:region-body region-name="PageBody"/>

                       <fo:region-after region-name="Footer"

                                                       extent="0.2in"/>

               </fo:simple-page-master>

               <fo:page-sequence-master master-name="alternate">                        

                       <fo:repeatable-page-master-alternatives

                                               maximum-repeats="no-limit">

                               <fo:conditional-page-master-reference

                                               master-reference="FirstPage"/>

                               <fo:conditional-page-master-reference

                               master-reference="BlankPage"

                               blank-or-not-blank="blank"

                               odd-or-even="even"/>

                               <fo:conditional-page-master-reference

                               master-reference="LetterPage"

                               odd-or-even="odd"/>

                       </fo:repeatable-page-master-alternatives>

               </fo:page-sequence-master>

       </fo:layout-master-set>

       <fo:page-sequence master-reference="alternate" font="10pt Arial">

               <fo:static-content flow-name="Footer">

                       <fo:block text-align="right" border-top="1pt

                                       solid black" padding-top="1mm">

                               Page

                               <fo:page-number xf:skip-blank-pages="true" (2)

                               xf:initial-page-number="1" (3)

                               xf:use-sheet-number="false" /> (4)

                               of

                               <fo:page-number-citation ref-id="theEnd"

                               xf:skip-blank-pages="true"/>

                       </fo:block>

               </fo:static-content>

               <fo:flow flow-name="PageBody">

                       <fo:block>

                               The text content of the first page.

                       </fo:block>

                       <fo:block break-before="page">

                               The text content of the second page.

                       </fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block break-after="page"></fo:block>

                       <fo:block id="theEnd">

                               The text content of the last page.

                       </fo:block>

               </fo:flow>

       </fo:page-sequence>

</fo:root>

 

Things to notice:

 

(1) In order to work with extension you must have the corresponding xml namespace defined.

(2) xf:skip-blank-pages can be applied to fo:page-number and fo:page-number-citation also; it takes boolean values and if is set on "true" that means that blank  pages won't have page-numbers.

(3) xf:initial-page-number can be applied only to fo:page-number. It can take one of the following values: "auto" | "auto-odd" | "auto-even" or a integer value.

This extension sets the page number for the first page that will be incremented for every page that follows with the value set by xf:increment-by (5) which has the default value "1".

(4) xf:use-sheet-numbers is used when you need to number sheets, not every page.