Here is the thing. XSLT and XSL-FO are independent. XSL-FO has no more
special meaning to XSLT than does MathML or DocBook or SVG. XSLT understands
its own elements (including extensions of course). It understands no others.

<fo:page-number/> (or as Ken Holman points out, <page-number/> in the
http://www.w3.org/1999/XSL/Format namespace, since we may assign any prefix
we like, or none) is not acted on by the XSL-FO formatter to produce a
number until after XSLT is done. Period.

And note that <fo:page-number/> never actually _is_ a number, and in fact
the formatter is not required to even generate a stringified page-number.

This is what the XSL Recommendation allows or does not allow you to do. If
you feel that there is a compelling use case for being able to do what you
want to do, I'd suggest writing it up and submitting it to the
[EMAIL PROTECTED] list.

Hope this clears things up.

Regards,
Arved Sandstrom

-----Original Message-----
From: Wayne Elliott [mailto:[EMAIL PROTECTED]
Sent: March 29, 2002 10:15 PM
To: [EMAIL PROTECTED]
Subject: Re: When a page is not a page


Thanks for the tips guys. However <fo:page-number/> does
not like being treated like a number, as it does not assign
to a variable numerically. This was surprising. The following
snippet

 <fo:block space-after="5mm" text-align="justify">
    - <fo:page-number/>
    -  <xsl:variable name="curpage"><fo:page-number/></xsl:variable>
       <xsl:value-of select="$curpage"/>
    -  <xsl:value-of select="$curpage * 2"/>
    - <xsl:value-of select="floor($curpage) * 2"/>
    - <xsl:value-of select="column-number"/>
    - <xsl:value-of select="(2 * $curpage) + 1"/>
    - <xsl:number/>
  </fo:block>

produces the following output

On page (sheet) 1.

- 1 - - NaN - NaN - - NaN - 1

On sheet 2.

- 2 - - NaN - NaN - - NaN - 1

i.e On sheet n.

- n - - NaN - NaN - - NaN - 1

Expected for sheet n was

- n - n - 2n - 2n - 2n? - 2n+1- 1?

Not sure why page-number behaves non-numerically. Perhaps it
is something to do with the number formatting, e.g 1 = i = a
etc. Perhaps there is a low level function that can extract
the number part from fo:page-number?

What I really need is a way of determining the number of the
current column, based on column count and page number,but
this also eludes me.

WPE

----- Original Message -----
From: "Matthew L. Avizinis" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, March 30, 2002 9:42 AM
Subject: RE: When a page is not a page


> I believe this will not work as Wayne intends.
> Page numbers will be generated sequentially starting with the
> initial-page-number.
> So, this might work better:
>
> <fo:page-sequence initial-page-number="0">
>
> then
>
> <xsl:variable name="currentpage"><fo:page-number/></xsl:variable>
>
> then
>
> Then <xsl:value-of select="(2 * $currentpage) + 1"/> for the left page
> number
> and <xsl:value-of select="(2 * $currentpage) + 2"/> for the right page
> number
> hth,
>
>    Matthew L. Avizinis <mailto:[EMAIL PROTECTED]>
> Gleim Publications, Inc.
>    4201 NW 95th Blvd.
>  Gainesville, FL 32606
> (352)-375-0772 ext. 101
>       www.gleim.com <http://www.gleim.com>
>
>
> > -----Original Message-----
> > From: David Wood [mailto:[EMAIL PROTECTED]
> > Sent: Friday, March 29, 2002 8:03 PM
> > To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> > Subject: Re: When a page is not a page
> >
> >
> > Just speculating, but have you tried putting the page-number
> > element inside
> > a variable?
> >
> > i.e.:
> >
> > <xsl:variable name="currentpage"><fo:page-number/></xsl:variable>
> >
> > Then <xsl:value-of select="$currentpage * 2"/>, etc...
> >
> > I haven't tried this, but it's just what pops into my head...
> >
> > -David
> >
> > At 08:44 AM 3/30/2002 +0800, Wayne Elliott wrote:
> > >A picture paints a thousand words...
> > >
> > >       -----------------------------------
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      | ............... : ..............  |
> > >      |        1        :        2        |
> > >       -----------------------------------
> > >
> > >The picture above represents a single sheet of A4 (Letter)
> > >paper. However it also represents two pages in a book, and
> > >if the page is folded down the dotted line it even starts to
> > >look like a book. My problem is this; I need the page number
> > >sequence as displayed in the  picture - ie. 2 pages per page (sheet)
> > >
> > >I have no trouble laying out the text flow correctly using
> > >stuff like
> > >
> > >     <fo:simple-page-master master-name="content"
> > >                            page-height="{$pageheight}mm"
> > >                            page-width="{$pagewidth}mm"
> > >                            margin-left="{$marginleft}mm"
> > >                            margin-right="{$marginright}mm"
> > >                            margin-top="{$margintop}mm"
> > >                            margin-bottom="{$marginbottom}mm">
> > >
> > >       <fo:region-before extent="10mm"/>
> > >
> > >       <fo:region-after extent="10mm"/>
> > >
> > >
> > >       <fo:region-body margin-top="10mm"
> > >                       margin-bottom="10mm"
> > >                       column-count="2"
> > >                       column-gap="20mm"/>
> > >
> > >
> > >
> > >     </fo:simple-page-master>
> > >
> > >and I defined a static region for the page number values
> > >using the following
> > >
> > >   <fo:static-content flow-name="xsl-region-after"
> > >                      font-family="serif"
> > >                      font-size="9pt">
> > >
> > >     <fo:table table-layout="fixed">
> > >       <fo:table-column column-width="120mm"/>
> > >       <fo:table-column column-width="120mm"/>
> > >       <fo:table-body>
> > >         <fo:table-row>
> > >           <fo:table-cell>
> > >             <fo:block text-align="center">
> > >       <fo:page-number/> <!-- 2x -->
> > >              </fo:block>
> > >           </fo:table-cell>
> > >           <fo:table-cell>
> > >             <fo:block text-align="center">
> > >       <fo:page-number/> <!-- 2x + 1 -->
> > >              </fo:block>
> > >           </fo:table-cell>
> > >         </fo:table-row>
> > >       </fo:table-body>
> > >     </fo:table>
> > >
> > >   </fo:static-content>
> > >
> > >but I do not know how to get the <fo:page-number/> to play
> > >the game and give me more than one page number per page.
> > >
> > >Perhaps I am wrong in my approach and there is a way of
> > >specifying two page regions per page/sheet, but I have
> > >not found it yet.
> > >
> > >Any ideas?
> > >
> > >WPE
>
>

Reply via email to