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
[email protected]


  ----- Original Message ----- 
  From: robert 
  To: Bob Stayton ; [email protected] 
  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 <[email protected]> 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
    [email protected]


      ----- 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 <[email protected]> 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
        [email protected]


          ----- Original Message ----- 
          From: robert 
          To: [email protected] 
          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 <[email protected]> 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 





Reply via email to