Here is a complete example I made to test fo:marker :

XML file :

<?xml version="1.0" encoding="iso-8859-1"?>
<document> 
   <page>Page 1</page>
   <page>Page 2</page>
   <page>Page 3</page>
</document>



XSL file :

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                xmlns:fo="http://www.w3.org/1999/XSL/Format";
                xmlns:svg="http://www.w3.org/2000/svg";>

   <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
   
   <xsl:attribute-set name="page.dimensions">
      <xsl:attribute name="page-width">297mm</xsl:attribute>
      <xsl:attribute name="page-height">210mm</xsl:attribute>
      <xsl:attribute name="margin-top">1cm</xsl:attribute>
      <xsl:attribute name="margin-bottom">1cm</xsl:attribute>
      <xsl:attribute name="margin-left">1cm</xsl:attribute>
      <xsl:attribute name="margin-right">1cm</xsl:attribute>
   </xsl:attribute-set>

   <xsl:attribute-set name="region.header">
      <xsl:attribute name="extent">3cm</xsl:attribute>
   </xsl:attribute-set>

   <xsl:attribute-set name="region.body">
      <xsl:attribute name="margin-top">3cm</xsl:attribute>
      <xsl:attribute name="margin-bottom">3cm</xsl:attribute>
   </xsl:attribute-set>

   <xsl:attribute-set name="region.footer">
      <xsl:attribute name="extent">2cm</xsl:attribute>
      <xsl:attribute name="background-color">#DDDDDD</xsl:attribute>
   </xsl:attribute-set>

   <xsl:template match="/">
      <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>
         <fo:layout-master-set>
            <!-- ============================================================ 
-->
            <fo:simple-page-master master-name="model"
                                   xsl:use-attribute-sets="page.dimensions">
               <fo:region-before xsl:use-attribute-sets="region.header"/>
               <fo:region-body xsl:use-attribute-sets="region.body"/>
               <fo:region-after xsl:use-attribute-sets="region.footer"/>
            </fo:simple-page-master>
            <!-- ============================================================ 
-->
         </fo:layout-master-set>
         
         <!-- ============================================================ -->
         <fo:page-sequence master-reference="model">
            <!-- ============================================================ 
-->
            <fo:static-content flow-name="xsl-region-before">
               <fo:block text-align="start">Page header</fo:block>
            </fo:static-content>
            <!-- ============================================================ 
-->
            <fo:static-content flow-name="xsl-region-after">
               <fo:block>
                  <fo:retrieve-marker retrieve-class-name="footer"
                                      
retrieve-position="last-ending-within-page"
                                      retrieve-boundary="page-sequence"/>
               </fo:block>
            </fo:static-content>
            <!-- ============================================================ 
-->
            <fo:flow flow-name="xsl-region-body">
               <xsl:apply-templates/>
               <xsl:call-template name="svg.example"/>
               <xsl:call-template name="footer.last"/>
            </fo:flow>
         </fo:page-sequence>
         <!-- ============================================================ -->
      </fo:root>
   </xsl:template>

   <xsl:template match="page">
      <fo:block font-size="16pt"
                break-before="page">
         <xsl:value-of select="."/>
         <fo:marker marker-class-name="footer">
            <xsl:call-template name="footer.standard"/>
         </fo:marker>
      </fo:block>
   </xsl:template>

   <xsl:template name="footer.standard">
      <fo:block>General footer</fo:block>
      <fo:block text-align="center">
         Page <fo:page-number/>
         of  <fo:page-number-citation ref-id="last-page"/>
      </fo:block>
   </xsl:template>

   <xsl:template name="footer.last">
      <fo:block>
         <fo:marker marker-class-name="footer">
            <fo:block>Footer of the last page</fo:block>
            <fo:block text-align="center">
               Page <fo:page-number/>
               of  <fo:page-number-citation ref-id="last-page"/>
               ===> This is the last.
            </fo:block>
         </fo:marker>
         <fo:block id="last-page"/>
      </fo:block>
   </xsl:template>

   <xsl:template name="svg.example">
      <fo:block> 
         <fo:instream-foreign-object>
            <svg:svg width="60" height="40" xml:space="preserve">
               <svg:g style="fill:red;stroke:black">
                  <svg:rect x="0" y="0" width="40" height="40"/>
               </svg:g>
            </svg:svg>
         </fo:instream-foreign-object> 
      </fo:block>
      <fo:block> 
         <fo:instream-foreign-object> 
            <svg:svg width="100pt" height="100pt"> 
               <svg:circle cx="50pt" cy="50pt" r="30pt" style="fill:blue;"/> 
            </svg:svg> 
         </fo:instream-foreign-object> 
      <fo:inline>
         <fo:instream-foreign-object>
            <svg:svg width="150pt" height="150pt">
               <svg:g style="fill:green;stroke:black">
                  <svg:rect x="20pt" y="20pt" width="100pt" height="100pt"/>
               </svg:g>
               <svg:line x1="20pt" y1="20pt" x2="120pt" y2="120pt"/>
               <svg:line x1="120pt" y1="20pt" x2="20pt" y2="120pt"/>
               <svg:text x="20pt" y="150pt">Hello SVG!</svg:text>
            </svg:svg>
         </fo:instream-foreign-object>
      </fo:inline>
      </fo:block>
   </xsl:template>

</xsl:stylesheet>

Hope this help.

Regards
A. ROY


----- Original Message -----
From: <[EMAIL PROTECTED]>
Date: Mon, 30 Aug 2004 10:20:00 +0200
To: <[EMAIL PROTECTED]>
Subject: AW: Create special Last Page

> Hi,
> 
> i used footnote as Britta Bargel has described. I canÂt use this workaround, 
> because the footer must always positioned at the end of the page.
> My content is flexilble, so i never know the position of my last entry and 
> therefore if there is enough space on the bottom for the footer text. As i 
> use page-break as Britta said, it is possible that the footer text will be 
> print on next page without any content.
> 
> Could you tell me please a little bit more about the workaround with markers?
> 
> Regards
> Martin
> 
> -----UrsprÃngliche Nachricht-----
> Von: J.Pietschmann [mailto:[EMAIL PROTECTED]
> Gesendet: Freitag, 27. August 2004 21:08
> An: [EMAIL PROTECTED]
> Betreff: Re: Create special Last Page
> 
> 
> [EMAIL PROTECTED] wrote:
> > i need to create a special last page which is different to the other ones.
> > So i want to use page-position="last" and page-position="any" within the 
> > conditional-page-master.
> > Now i read in the list that page-position="last" is not really implemented.
> >  
> > Has anyone a workaround for this issue?
> > How is it possible to create a separate last page?
> 
> There are several workarounds, depending on the actual
> requirements. A specific footer can be implemented using
> markers or a footnote.
> 
> J.Pietschmann
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 

-- 
___________________________________________________________
Sign-up for Ads Free at Mail.com
http://promo.mail.com/adsfreejump.htm


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to