List Info

Thread: customized header and footer




customized header and footer
user name
2006-03-28 08:55:23
Hi,

Thanks for your help, I didn't have time to try it, I will
give you my 
result as soon as I make it.

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:attrib
ute>
>            </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:attrib
ute>
>            </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:attrib
ute>
>            </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-unsubscribelists.oasis-open.org
>For additional commands, e-mail: docbook-apps-helplists.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:denghienshfj.cea.fr





------------------------------------------------------------
---------
To unsubscribe, e-mail: docbook-apps-unsubscribelists.oasis-open.org
For additional commands, e-mail: docbook-apps-helplists.oasis-open.org

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )