Maria
Maria

Reputation: 23

XSL: force-page-count="end-on-even" displays page number on the even blank page

So I have this case: I am using antenna house for generating pdf from xml/xsl. The problem is that the generated pdf contains multiple N documents with X pages each. When printed if a document ends on odd page, a blank page must be inserted at the end of the document, so the next document starts on a new sheet. To do so I am using: force-page-count="end-on-even", but the blank page that is inserted has a page number, which I don't want to be shown, as there is no content on the page. Here is the xsl part:

<xsl:template match="document"> 
      <fo:page-sequence master-reference="myDoc"  initial-page-number="1" force-page-count="end-on-even" >
            <fo:static-content flow-name="xsl-region-after" font-size="8pt" font-family="Arial" >
                <fo:block>
                    <fo:block text-align="right" margin-right="10mm">
                        <fo:inline text-align="right">                                                                            
                            Page: <fo:page-number /> of <fo:page-number-citation-last ref-id="{generate-id(.)}"/>
                        </fo:inline>
                    </fo:block>        

                    <xsl:variable name="footervar" select=".//footertxt" /> <!-- Gets text betwen <footertxt> tags in XML file -->                   
                            <fo:block text-align="left" margin-left="15mm"> 
                                <fo:inline>
                                    <xsl:value-of select="$footervar" />
                                </fo:inline>                    
                            </fo:block> 
                </fo:block>    
            </fo:static-content>
        </fo:page-sequence>
    </xsl:template>   

And the xml part looks like this:

  <document>
    <footertxt>  </footertxt>
    <section>
      <paragraf>1</paragraf>
    </section>
  </document>
  <document>
    <footertxt>  </footertxt>
    <section>
      <paragraf>2</paragraf>
    </section>
    <pagebreak />
     <section>
      <paragraf>3</paragraf>
    </section>
  </document>

Any ideas how to remove the page number from the blank pages? Thanks

Upvotes: 1

Views: 2911

Answers (1)

Tony Graham
Tony Graham

Reputation: 8068

You can set up an fo:page-sequence-master (https://www.w3.org/TR/xsl11/#fo_page-sequence-master) that contains an fo:repeatable-page-master-alternatives (https://www.w3.org/TR/xsl11/#fo_repeatable-page-master-alternatives) containing multiple fo:conditional-page-master-reference (https://www.w3.org/TR/xsl11/#fo_conditional-page-master-reference). The first fo:conditional-page-master-reference can have blank-or-not-blank="blank" and refer to an fo:simple-page-master that does not have an fo:xsl-region-after.

More simply, you could do something like:

<fo:simple-page-master master-name="BlankPage"
                       page-height="265mm"
                       page-width="215mm">
    <fo:region-body region-name="blank" />
</fo:simple-page-master>
...
<fo:page-sequence-master master-name="myDoc">
  <fo:repeatable-page-master-alternatives>
    <fo:conditional-page-master-reference master-reference="BlankPage"
                                          blank-or-not-blank="blank" />
    <fo:conditional-page-master-reference master-reference="OddPage"
                                          odd-or-even="odd" />
    <fo:conditional-page-master-reference master-reference="EvenPage"
                                          odd-or-even="even" />
  </fo:repeatable-page-master-alternatives>
</fo:page-sequence-master>

Upvotes: 2

Related Questions