Re: [docbook-apps] adding a footer only to last page

From
Bob Stayton <>
Date
2012-03-04T19:47:05+00:00
ID
002301ccfa3f$8d102170$6600a8c0@pazu
Thread
Re: [docbook-apps] adding a footer only to last page
You can put a footnote at the end of each article 
that would appear at the bottom of the last page. In XSL-FO, the fo:footnote 
element is typically used for floats that are to appear at the bottom of the 
page.  You would want to customize the footnote a bit to avoid the footnote 
number.

 

Bob Stayton
Sagehill Enterprises


 

 

  
----- Original Message ----- 

  
From: 
  robert 

  
To: Bob Stayton ;  
  

  
Sent: Sunday, March 04, 2012 6:12 
AM

  
Subject: Re: [docbook-apps] adding a 
  footer only to last page

  

Thanks Bob for your help.
  

  
I'm wondering if there is other way do achive a similar result. I want to 
  have an image and some text at the bottom of each page that ends an article. I 
  though a footer would be an obvious solution, but maybe there is other way to 
  put that content at the bottom of a page. My book is generated dynamically, so 
  for example, I'm able to add that content to each article, if that would allow 
  me to use some other mechanism and simplify the solution.

  

  
Robert

  
On Fri, Mar 2, 2012 at 6:23 PM, Bob Stayton <> wrote:

  
    

    
Hi Robert,

    
Ah, sorry, this is actually a bit more complicated 
    than I remembered.  The DocBook XSL stylesheets  are not set up 
    with page-masters for 'last', and so that all has to be set up before the 
    $sequence='last' in footer.content will work.  I'll see if I can dig up 
    an example of a working version.

    

    
 

    
Bob Stayton
Sagehill Enterprises


    
 

    
 

    
      

      
----- Original Message ----- 

      
From: robert 

      

      

      
To: Bob Stayton 

      
Sent: Friday, March 02, 2012 1:16 
      AM

      
Subject: Re: [docbook-apps] adding a 
      footer only to last page

      

      
Hi Bob,

      

      
I can't get this working and have no idea what I'm doing wrong.

      
My customization layer contains the following:

      

      
<xsl:param name="footer.rule" 
      select="0"></xsl:param>

      

      
<xsl:attribute-set name="footer.content.properties">

      
  <xsl:attribute 
      name="background-color">red</xsl:attribute>

      
</xsl:attribute-set>

      

      
<xsl:template name="footer.content">

      
  <xsl:param name="pageclass" select="''"/>

      
  <xsl:param name="sequence" select="''"/>

      
  <xsl:param name="position" select="''"/>

      
  <xsl:param name="gentext-key" select="''"/>

      
  <fo:block>

      
    <xsl:choose>

      
      <xsl:when test="$double.sided = 0 and 
      $position='left' and self::d:article and $sequence = 'last'">

      
        www.foo.com

      
      </xsl:when>

      
      <xsl:otherwise>

      
        <!-- nop -->

      
      </xsl:otherwise>

      
    </xsl:choose>

      
  </fo:block>

      
</xsl:template>

      

      
When I apply this do a book with several articles, i.e.:

      

      
<book xmlns:xi="http://www.w3.org/2001/XInclude"

      
  xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook"

      
  version="5.0">

      
  <info>

      
    <title>Media Access Proxy™</title>

      
  </info>

      
  <article xml:id="a1">

      
    ...

      
  </article>

      
  <article xml:id="a2">

      
    ...

      
  </article>

      
</book>

      

      
I would like to see (in a PDF file) the 'www.foo.com' text at the left bottom of the page on the 
      red background twice (i.e. at the end of each article). But I see a box 
      with the red background on all pages and the text never appears.

      

      

      

      
Thanks for your help.

      
Robert

      

      

      

      
On Thu, Mar 1, 2012 at 6:57 PM, Bob Stayton <> wrote:

      
        

        
Hi Robert,

        
The general instructions for customizing 
        headers and footers can be found here:

        
 

        
http://www.sagehill.net/docbookxsl/PrintHeaders.html

        
 

        
The footer.content template is a big xsl:choose 
        statement that sets conditions for which pages have which output.  
        In your case, each article generates a page-sequence, so that is the 
        context when the template is called. The xsl:when statement might look 
        something like this:

        
 

        
<xsl:when test="self::d:article and ($sequence 
        = 'last' or $sequence = 'blank')">

        
 

        
You would need the 'blank' condition if you are 
        doing double-sided output that may generate a blank page as the 
        last page at the end of an article.

        
 

        
Bob Stayton
Sagehill Enterprises


        

        

        
 

        
 

        
          
----- Original Message ----- 

          
From: robert 

          
To:  

          
Sent: Thursday, March 01, 2012 
          3:21 AM

          
Subject: Re: [docbook-apps] 
          adding a footer only to last page

          

To simplify the problem. Let's only consider the case 
          when there is a book with a number of articles, and the footer must 
          only be added to the last page of each article.

          
On Thu, Mar 1, 2012 at 10:57 AM, robert <> wrote:

          Hi All,

I have two 
            somehow similar problems. Both relate to printed 
            output.

1. I have a book with a number of 
            articles and want to have a footer
only on the last 
            page of each article and the last page of the 
            whole
book.
2. Similarly, I have a 
            set of books, and want to have a footer only on
the 
            last page of each book.

Have can I do 
            it?

Thanks,
Robert