Search code examples
xmlxsltxpathxsl-fo

How to start page numbering from page 2 or 3?


This is my code:

<fo:static-content flow-name="xsl-region-after">
  <fo:block text-align="right" font-size="20pt" margin-right="0.5cm">
    <fo:page-number/></fo:block>
</fo:static-content>

There is only one sequence of slides, but I want to start numbering from number one but from slide 2 or slide 3. Can somenone help me how?


Solution

  • Make a separate fo:simple-page-master for the first page that does not have a fo:region-after and use an fo:page-sequence-master to specify the special fo:simple-page-master for the first page and then uses the regular fo:simple-page-master for the rest of your slides. E.g.:

    <fo:layout-master-set>
        <fo:simple-page-master master-name="first">
            <fo:region-body margin="36pt" />
        </fo:simple-page-master>
        <fo:simple-page-master master-name="rest">
            <fo:region-body margin="36pt" />
            <fo:region-after extent="36pt" />
        </fo:simple-page-master>
        <fo:page-sequence-master master-name="psm">
          <fo:single-page-master-reference master-reference="first" />
          <fo:repeatable-page-master-reference master-reference="rest" />
        </fo:page-sequence-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="psm">
      <fo:static-content flow-name="xsl-region-after">
        <fo:block text-align="right" font-size="20pt" margin-right="0.5cm">
          <fo:page-number/>
        </fo:block>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
          <xsl:apply-templates />
        </fo:flow>
    </fo:page-sequence>
    

    For an unnumbered first slide and a second slide numbered '1', put the first slide in a separate fo:page-sequence:

    <fo:layout-master-set>
        <fo:simple-page-master master-name="first">
            <fo:region-body margin="36pt" />
        </fo:simple-page-master>
        <fo:simple-page-master master-name="rest">
            <fo:region-body margin="36pt" />
            <fo:region-after extent="36pt" />
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="first" force-page-count="no-force">
        <fo:flow flow-name="xsl-region-body">
          <fo:block>Title slide</fo:block>
        </fo:flow>
    </fo:page-sequence>
    <fo:page-sequence master-reference="rest" initial-page-number="1">
      <fo:static-content flow-name="xsl-region-after">
        <fo:block text-align="right" font-size="20pt" margin-right="0.5cm">
          <fo:page-number/>
        </fo:block>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
          <fo:block>Slide 1</fo:block>
        </fo:flow>
    </fo:page-sequence>
    

    Which, if the presence of the page number is the only difference, could be simplified to:

    <fo:layout-master-set>
        <fo:simple-page-master master-name="spm">
            <fo:region-body margin="36pt" />
            <fo:region-after extent="36pt" />
        </fo:simple-page-master>
    </fo:layout-master-set>
    <fo:page-sequence master-reference="spm" force-page-count="no-force">
        <fo:flow flow-name="xsl-region-body">
          <fo:block>Title slide</fo:block>
        </fo:flow>
    </fo:page-sequence>
    <fo:page-sequence master-reference="spm" initial-page-number="1">
      <fo:static-content flow-name="xsl-region-after">
        <fo:block text-align="right" font-size="20pt" margin-right="0.5cm">
          <fo:page-number/>
        </fo:block>
        </fo:static-content>
        <fo:flow flow-name="xsl-region-body">
          <fo:block>Slide 1</fo:block>
        </fo:flow>
    </fo:page-sequence>