Thanks Bob. I'll try to make it work.

Robert

On Fri, Mar 9, 2012 at 6:27 AM, Bob Stayton <[email protected]> wrote:

> Unfortunately, that example I had was work I did for a client, so I'm not
> at liberty to copy you on it.
>
> It involved several pieces that I can outline for you.
>
> 1.  Customize the template named 'user.pagemasters' to define a new
> simple-page-master for the last page, with a master-name such as
> 'body-last".  On that master, set the bottom page and body margins to make
> room for your footer.  Modify its fo:region-after to have an extent large
> enough for your text.  Also, rename the region-name to something new like
> "xsl-region-after-last".
>
> 2.  Define a new page-sequence-master that copies the body master but adds
> the last page as another conditional reference:
>
> <fo:conditional-page-master-**reference master-reference="body-last"
>                                               page-position="last"/>
>
> 3.  Customize the template named 'running.foot.mode' from fo/pagesetup.xsl
> to add another xsl:static-content element with attribute
>  flow-name="xsl-region-after-**last". The content of that element would
> be your last page content.  You might just have it call a template, and
> then write the template to generate the content.  Because it is in a
> separately named region that only appears on the last page master, it would
> not appear on other pages.
>
> 4.  Customize the 'select.user.master' template from fo/pagesetup.xsl to
> apply your new page master for articles.
>
> As you can see, this is a lot of pieces, and if it does not work it may
> not be clear where it is going wrong.
>
>
> Bob Stayton
> Sagehill Enterprises
> [email protected]
>
>
> ----- Original Message ----- From: robert
> To: Bob Stayton
> Sent: Sunday, March 04, 2012 12:12 PM
> Subject: Re: [docbook-apps] adding a footer only to last page
>
>
> Footnote is an option, but it will not work well for more complicated
> cases. Let's say the same footer on all pages in the right corner, and some
> content that should appear within the footer area only on the last article
> page. I'm still very curious have to achive that using the footer mechanism.
>
>
> Robert
>
>
> On Sun, Mar 4, 2012 at 8:46 PM, Bob Stayton <[email protected]> wrote:
>
> 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].**org<[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<http://www.w3.org/2001/XInclude>
> "
>  xmlns:xlink="http://www.w3.**org/1999/xlink<http://www.w3.org/1999/xlink>"
> xmlns="http://docbook.org/ns/**docbook <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<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].**org<[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