OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] customized header and footer



Hi,

I tried for FO and it works correctly. I just change height footer with 
the region.after.extent parameter to add another image size.
It's very pleasant to customize footer.

Thanks again :)

Isa


Simon Kennedy wrote:

> Isabelle DENGHIEN - IFR49 wrote:
>
>>
>> Thanks a lot, but it is not exactly that I'm looking for.
>> In fact, I would like to customize header and footer with image, 
>> personal content .....
>> Do you know a way to do this ?
>>
>> Isa
>
>
>
> Isabelle,
>
> The xsl template I'm using for HTML is the following
>
> ---------------------- Cut Here ---------------------------------
>
> <!-- This template creates the header of a page for chunked output
>     Original definition in : chunk-common.xsl
> -->
> <xsl:template name="header.navigation">
>  <xsl:param name="prev" select="/foo"/>
>  <xsl:param name="next" select="/foo"/>
>  <xsl:param name="nav.context"/>
>
>  <xsl:variable name="home" select="/*[1]"/>
>  <xsl:variable name="up" select="parent::*"/>
>  <xsl:variable name="prt" select="ancestor::part"/>
>  <xsl:variable name="index" select="/descendant::index[1]"/>
>
>  <xsl:variable name="itext">
>    <xsl:call-template name="gentext">
>      <xsl:with-param name="key" select="'index'"/>
>    </xsl:call-template>
>  </xsl:variable>
>
>  <xsl:if test="$suppress.navigation = '0' and 
> $suppress.header.navigation = '0'">
>    <div class="navheader">
>      <table width="100%" summary="Navigation header" cellpadding="0" 
> cellspacing="0">
>        <tr>
>          <td width="15%" align="left">
>            <xsl:if test="count($prev) &gt; 0">
>              <a accesskey="p">
>                <xsl:attribute name="href">
>                  <xsl:call-template name="href.target">
>                    <xsl:with-param name="object" select="$prev"/>
>                  </xsl:call-template>
>                </xsl:attribute>
>                <xsl:call-template name="navig.content">
>                  <xsl:with-param name="direction" select="'prev'"/>
>                </xsl:call-template>
>              </a>
>              <xsl:text>&#160;&#160;</xsl:text>
>            </xsl:if>
>
>            <xsl:if test="count($up) &gt; 0  and $home != .">
>              <a accesskey="u">
>                <xsl:attribute name="href">
>                  <xsl:call-template name="href.target">
>                    <xsl:with-param name="object" select="$up"/>
>                  </xsl:call-template>
>                </xsl:attribute>
>                <xsl:call-template name="navig.content">
>                  <xsl:with-param name="direction" select="'up'"/>
>                </xsl:call-template>
>              </a>
>
>              <xsl:text>&#160;&#160;</xsl:text>
>            </xsl:if>
>
>            <xsl:if test="count($next)&gt;0">
>              <a accesskey="n">
>                <xsl:attribute name="href">
>                  <xsl:call-template name="href.target">
>                    <xsl:with-param name="object" select="$next"/>
>                  </xsl:call-template>
>                </xsl:attribute>
>
>                <xsl:call-template name="navig.content">
>                  <xsl:with-param name="direction" select="'next'"/>
>                </xsl:call-template>
>              </a>
>            </xsl:if>
>          </td>
>
>          <th width="70%" align="center">
>            <xsl:apply-templates select="/*" mode="title.markup"/>
>
>            <xsl:if test="count($prt) &gt; 0 and generate-id($up) != 
> generate-id($prt)">
>              <xsl:text>&#160;-&#160;</xsl:text>
>              <xsl:apply-templates select="$prt" mode="title.markup"/>
>            </xsl:if>
>
>            <xsl:if test="count($up) &gt; 0 and generate-id($up) != 
> generate-id($home) and $navig.showtitles != 0">
>              <xsl:text>&#160;-&#160;</xsl:text>
>              <xsl:apply-templates select="$up" mode="title.markup"/>
>            </xsl:if>
>          </th>
>
>          <td rowspan="2" width="15%" align="right">
>            <table cellpadding="0" cellspacing="0">
>              <tr>
>                <td align="center">
>                  <div class="boxed" id="llink">
>                    <xsl:choose>
>                      <xsl:when test="$haiku = 1">
>                        <a accesskey="l" href="../index.html">
>                          <xsl:value-of 
> select="$l10n.gentext.default.language"/>
>                        </a>
>                      </xsl:when>
>
>                      <xsl:otherwise>
>                        <xsl:value-of 
> select="$l10n.gentext.default.language"/>
>                      </xsl:otherwise>
>                    </xsl:choose>
>                  </div>
>                </td>
>
>                <!-- Add a link to the index if it exists -->
>                <xsl:if test="count($index) &gt; 0 and $index != .">
>                  <td align="center">
>                    <div class="boxed" id="ilink">
>                      <a accesskey="i">
>                        <xsl:attribute name="href">
>                          <xsl:call-template name="href.target">
>                            <xsl:with-param name="object" 
> select="$index"/>
>                          </xsl:call-template>
>                        </xsl:attribute>
>                        <xsl:value-of select="substring($itext,1,1)"/>
>                      </a>
>                    </div>
>                  </td>
>                </xsl:if>
>
>                <xsl:if test="$home != .">
>                  <td align="center">
>                    <a accesskey="h">
>                      <xsl:attribute name="href">
>                        <xsl:call-template name="href.target">
>                          <xsl:with-param name="object" select="$home"/>
>                        </xsl:call-template>
>                      </xsl:attribute>
>                      <xsl:call-template name="navig.content">
>                        <xsl:with-param name="direction" select="'home'"/>
>                      </xsl:call-template>
>                    </a>
>                  </td>
>                </xsl:if>
>              </tr>
>
>              <tr>
>                <td>&#160;</td>
>                <xsl:if test="count($index) &gt; 0 and $index != .">
>                  <td align="center">
>                    <a>
>                      <xsl:attribute name="href">
>                        <xsl:call-template name="href.target">
>                          <xsl:with-param name="object" select="$index"/>
>                        </xsl:call-template>
>                      </xsl:attribute>
>                      <xsl:value-of select="$itext"/>
>                    </a>
>                  </td>
>                </xsl:if>
>
>                <xsl:if test="$home != .">
>                  <td align="center">
>                    <a accesskey="h">
>                      <xsl:attribute name="href">
>                        <xsl:call-template name="href.target">
>                          <xsl:with-param name="object" select="$home"/>
>                        </xsl:call-template>
>                      </xsl:attribute>
>                      <xsl:call-template name="gentext">
>                        <xsl:with-param name="key" select="'nav-home'"/>
>                      </xsl:call-template>
>                    </a>
>                  </td>
>                </xsl:if>
>              </tr>
>            </table>
>          </td>
>        </tr>
>
>        <tr>
>          <td colspan="2">
>            <xsl:if test="count($prev) &gt; 0">
>              <xsl:call-template name="gentext">
>                <xsl:with-param name="key" select="'nav-prev'"/>
>              </xsl:call-template>
>
>              <xsl:text>:&#160;</xsl:text>
>
>              <a>
>                <xsl:attribute name="href">
>                  <xsl:call-template name="href.target">
>                    <xsl:with-param name="object" select="$prev"/>
>                  </xsl:call-template>
>                </xsl:attribute>
>
>                <xsl:apply-templates select="$prev" mode="title.markup"/>
>              </a>
>
>              <xsl:text>&#160;&#160;</xsl:text>
>            </xsl:if>
>
>            <xsl:if test="(count($up) &gt; 0) and ($home != .)">
>              <xsl:call-template name="gentext">
>                <xsl:with-param name="key" select="'nav-up'"/>
>              </xsl:call-template>
>
>              <xsl:text>:&#160;</xsl:text>
>
>              <a>
>                <xsl:attribute name="href">
>                  <xsl:call-template name="href.target">
>                    <xsl:with-param name="object" select="$up"/>
>                  </xsl:call-template>
>                </xsl:attribute>
>
>                <xsl:apply-templates select="$up" mode="title.markup"/>
>              </a>
>
>              <xsl:text>&#160;&#160;</xsl:text>
>            </xsl:if>
>
>            <xsl:if test="count($next) &gt; 0">
>              <xsl:call-template name="gentext">
>                <xsl:with-param name="key" select="'nav-next'"/>
>              </xsl:call-template>
>
>              <xsl:text>:&#160;</xsl:text>
>
>              <a>
>                <xsl:attribute name="href">
>                  <xsl:call-template name="href.target">
>                    <xsl:with-param name="object" select="$next"/>
>                  </xsl:call-template>
>                </xsl:attribute>
>
>                <xsl:apply-templates select="$next" mode="title.markup"/>
>              </a>
>            </xsl:if>
>          </td>
>        </tr>
>      </table>
>
>      <xsl:if test="$header.rule != 0">
>        <hr/>
>      </xsl:if>
>    </div>
>  </xsl:if>
> </xsl:template>
>
> ---------------------- Cut Here ---------------------------------
>
> With the output looking like HeaderExample.jpg
>
> And for XSL-FO. For FO you also need to set the margins to allow for 
> the extra logo space.
>
> ---------------------- Cut Here ---------------------------------
>
> <!-- Change footer to show
>     IssueNum, Date, Copyright       Page Number       BeOS Logo
>
>     Original in fo/pagesetup.xsl
> -->
> <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>
>    <!-- pageclass can be front, body, back -->
>    <!-- sequence can be odd, even, first, blank -->
>    <!-- position can be left, center, right -->
>    <xsl:choose>
>      <xsl:when test="$pageclass = 'titlepage'">
>        <!-- nop; no footer on title pages -->
>      </xsl:when>
>
>      <xsl:when test="$double.sided != 0 and $sequence = 'even'
>                      and $position='left'">
>        <fo:page-number/>
>      </xsl:when>
>
>      <xsl:when test="$double.sided != 0 and ($sequence = 'odd' or 
> $sequence = 'first')
>                      and $position='right'">
>        <fo:page-number/>
>      </xsl:when>
>
>      <xsl:when test="$double.sided = 0 and $position='left'">
>        <fo:block>
>          <xsl:text>Issue </xsl:text>
>          <xsl:value-of select="/article/info/issuenum"/>
>          <xsl:text>, </xsl:text>
>          <xsl:value-of select="/article/info/date"/>
>        </fo:block>
>        <fo:block>
>          &#169; 1995-2001 Be Inc.
>        </fo:block>
>      </xsl:when>
>
>      <xsl:when test="$double.sided = 0 and $position='center'">
>        <xsl:text>Page&#160;</xsl:text>
>        <fo:page-number/>
>        <xsl:text>&#160;of&#160;</xsl:text>
>        <fo:page-number-citation ref-id="lastpage"/>
>      </xsl:when>
>
>      <xsl:when test="$double.sided = 0 and $position='right'">
>        <fo:external-graphic width="100%" scaling="uniform">
>          <xsl:attribute name="src">
>            <xsl:call-template name="fo-external-image">
>              <xsl:with-param 
> name="filename">../../images/be_logo.png</xsl:with-param>
>            </xsl:call-template>
>          </xsl:attribute>
>        </fo:external-graphic>
>      </xsl:when>
>
>      <xsl:when test="$sequence='blank'">
>        <xsl:choose>
>          <xsl:when test="$double.sided != 0 and $position = 'left'">
>            <fo:page-number/>
>          </xsl:when>
>          <xsl:when test="$double.sided = 0 and $position = 'center'">
>            <fo:page-number/>
>          </xsl:when>
>          <xsl:otherwise>
>            <!-- nop -->
>          </xsl:otherwise>
>        </xsl:choose>
>      </xsl:when>
>
>
>      <xsl:otherwise>
>        <!-- nop -->
>      </xsl:otherwise>
>    </xsl:choose>
>  </fo:block>
> </xsl:template>
>
> <!-- Change footer cells to use 'display-align: center'.
>     This sets the vertical alignment.
> -->
> <xsl:template name="footer.table">
>  <xsl:param name="pageclass" select="''"/>
>  <xsl:param name="sequence" select="''"/>
>  <xsl:param name="gentext-key" select="''"/>
>
>  <!-- default is a single table style for all footers -->
>  <!-- Customize it for different page classes or sequence location -->
>
>  <xsl:choose>
>      <xsl:when test="$pageclass = 'index'">
>          <xsl:attribute name="margin-left">0pt</xsl:attribute>
>      </xsl:when>
>  </xsl:choose>
>
>  <xsl:variable name="column1">
>    <xsl:choose>
>      <xsl:when test="$double.sided = 0">1</xsl:when>
>      <xsl:when test="$sequence = 'first' or $sequence = 
> 'odd'">1</xsl:when>
>      <xsl:otherwise>3</xsl:otherwise>
>    </xsl:choose>
>  </xsl:variable>
>
>  <xsl:variable name="column3">
>    <xsl:choose>
>      <xsl:when test="$double.sided = 0">3</xsl:when>
>      <xsl:when test="$sequence = 'first' or $sequence = 
> 'odd'">3</xsl:when>
>      <xsl:otherwise>1</xsl:otherwise>
>    </xsl:choose>
>  </xsl:variable>
>
>  <xsl:variable name="candidate">
>    <fo:table table-layout="fixed" width="100%">
>      <xsl:call-template name="foot.sep.rule">
>        <xsl:with-param name="pageclass" select="$pageclass"/>
>        <xsl:with-param name="sequence" select="$sequence"/>
>        <xsl:with-param name="gentext-key" select="$gentext-key"/>
>      </xsl:call-template>
>      <fo:table-column column-number="1">
>        <xsl:attribute name="column-width">
>          <xsl:text>proportional-column-width(</xsl:text>
>          <xsl:call-template name="header.footer.width">
>            <xsl:with-param name="location">footer</xsl:with-param>
>            <xsl:with-param name="position" select="$column1"/>
>          </xsl:call-template>
>          <xsl:text>)</xsl:text>
>        </xsl:attribute>
>      </fo:table-column>
>      <fo:table-column column-number="2">
>        <xsl:attribute name="column-width">
>          <xsl:text>proportional-column-width(</xsl:text>
>          <xsl:call-template name="header.footer.width">
>            <xsl:with-param name="location">footer</xsl:with-param>
>            <xsl:with-param name="position" select="2"/>
>          </xsl:call-template>
>          <xsl:text>)</xsl:text>
>        </xsl:attribute>
>      </fo:table-column>
>      <fo:table-column column-number="3">
>        <xsl:attribute name="column-width">
>          <xsl:text>proportional-column-width(</xsl:text>
>          <xsl:call-template name="header.footer.width">
>            <xsl:with-param name="location">footer</xsl:with-param>
>            <xsl:with-param name="position" select="$column3"/>
>          </xsl:call-template>
>          <xsl:text>)</xsl:text>
>        </xsl:attribute>
>      </fo:table-column>
>
>      <fo:table-body>
>        <fo:table-row height="14pt">
>          <fo:table-cell text-align="left"
>                         display-align="center">
>            <xsl:if test="$fop.extensions = 0">
>              <xsl:attribute 
> name="relative-align">baseline</xsl:attribute>
>            </xsl:if>
>            <fo:block>
>              <xsl:call-template name="footer.content">
>                <xsl:with-param name="pageclass" select="$pageclass"/>
>                <xsl:with-param name="sequence" select="$sequence"/>
>                <xsl:with-param name="position" select="'left'"/>
>                <xsl:with-param name="gentext-key" select="$gentext-key"/>
>              </xsl:call-template>
>            </fo:block>
>          </fo:table-cell>
>          <fo:table-cell text-align="center"
>                         display-align="center">
>            <xsl:if test="$fop.extensions = 0">
>              <xsl:attribute 
> name="relative-align">baseline</xsl:attribute>
>            </xsl:if>
>            <fo:block>
>              <xsl:call-template name="footer.content">
>                <xsl:with-param name="pageclass" select="$pageclass"/>
>                <xsl:with-param name="sequence" select="$sequence"/>
>                <xsl:with-param name="position" select="'center'"/>
>                <xsl:with-param name="gentext-key" select="$gentext-key"/>
>              </xsl:call-template>
>            </fo:block>
>          </fo:table-cell>
>          <fo:table-cell text-align="right"
>                         display-align="center">
>            <xsl:if test="$fop.extensions = 0">
>              <xsl:attribute 
> name="relative-align">baseline</xsl:attribute>
>            </xsl:if>
>            <fo:block>
>              <xsl:call-template name="footer.content">
>                <xsl:with-param name="pageclass" select="$pageclass"/>
>                <xsl:with-param name="sequence" select="$sequence"/>
>                <xsl:with-param name="position" select="'right'"/>
>                <xsl:with-param name="gentext-key" select="$gentext-key"/>
>              </xsl:call-template>
>            </fo:block>
>          </fo:table-cell>
>        </fo:table-row>
>      </fo:table-body>
>    </fo:table>
>  </xsl:variable>
>
>  <!-- Really output a footer? -->
>  <xsl:choose>
>    <xsl:when test="$pageclass='titlepage' and $gentext-key='book'
>                    and $sequence='first'">
>      <!-- no, book titlepages have no footers at all -->
>    </xsl:when>
>    <xsl:when test="$sequence = 'blank' and $footers.on.blank.pages = 0">
>      <!-- no output -->
>    </xsl:when>
>    <xsl:otherwise>
>      <xsl:copy-of select="$candidate"/>
>    </xsl:otherwise>
>  </xsl:choose>
> </xsl:template>
>
> ---------------------- Cut Here ---------------------------------
>
> Which produces something like FooterExample.jpg
>
> Experimentation is the key. Don't be afraid to break the formatting.
>
> Regards
> Simon Kennedy
>
>
>
> ------------------------------------------------------------------------
>
>
> ------------------------------------------------------------------------
>
>------------------------------------------------------------------------
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
>For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>


-- 
************************
Isabelle DENGHIEN
SHFJ-IFR49
4 place du General Leclerc
91401 Orsay Cedex France

http://www.ifr49.org
Tel +33 (0) 1 69 86 77 81
Fax +33 (0) 1 69 86 78 16
Mail:denghien@shfj.cea.fr






[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]