159 votes

En-tête et pied de page d'impression HTML

Est-il possible d'imprimer des pages HTML avec des en-têtes et des pieds de page personnalisés sur chaque page imprimée ?

J'aimerais ajouter le mot "UNCLASSIFIED" en rouge, Arial, taille 16pt en haut et en bas de chaque imprimé page, quel que soit son contenu.

Pour clarifier, si le document a été imprimé sur 5 pages, chaque page doit avoir l'en-tête et le pied de page personnalisés.

Quelqu'un sait-il si cela est possible en utilisant HTML/CSS ?

Merci d'avance !

142voto

Infotekka Points 4668

Si vous prenez l'élément qui sera le pied de page et que vous le définissez comme étant position:fixed et bottom:0, lorsque la page sera imprimée, cet élément sera répété au bas de chaque page imprimée. Le même principe s'applique à un élément d'en-tête, mais il suffit de définir top:0 à la place.

Par exemple :

<div class="divFooter">UNCLASSIFIED</div>

CSS :

<style type="text/css">
    @media screen {
        div.divFooter {
            display: none;
        }
    }
    @media print {
        div.divFooter {
            position: fixed;
            bottom: 0;
        }
    }
</style>

21voto

Ian Boyd Points 50743

Je pense que la réponse correcte est que HTML 5 et CSS3 ne prennent pas en charge l'impression des en-têtes et des pieds de page dans les pages de l'UE. print médias.

Et bien que vous puissiez être capable de le simuler avec :

  • tableaux
  • blocs à position fixe

ils présentent tous des défauts qui les empêchent d'être la solution générale idéale.

3voto

JYelton Points 14014

Est-ce que c'est quelque chose que vous voulez imprimer seulement ? Vous pouvez l'ajouter à chaque page de votre site et utiliser le CSS pour définir la balise comme un média à imprimer uniquement.

Il pourrait s'agir d'un exemple d'en-tête :

<span class="printspan">UNCLASSIFIED</span>

Et dans votre CSS, faites quelque chose comme ceci :

<style type="text/css" media="screen">
    .printspan
    {
        display: none;
    }
</style>
<style type="text/css" media="print">
    .printspan
    {
        display: inline;
        font-family: Arial, sans-serif;
        font-size: 16 pt;
        color: red;
    }
</style>

Enfin, pour inclure l'en-tête/le pied de page sur chaque page, vous pouvez utiliser les inclusions côté serveur ou, si vous avez des pages générées avec PHP ou ASP, vous pouvez simplement les coder dans un fichier commun.

Edit :

Cette réponse est destinée à fournir un moyen d'afficher un élément sur la version physique imprimée d'un document sans l'afficher autrement. Cependant, comme le suggèrent les commentaires, elle ne résout pas le problème d'avoir un pied de page sur plusieurs pages imprimées lorsque le contenu déborde.

Je le laisse ici au cas où il serait néanmoins utile.

3voto

sparkalow Points 146

Si vous pouvez utiliser javascipt, demandez au client de se charger de la mise en page du contenu en utilisant javascript pour placer les éléments en fonction de l'espace disponible.

Vous pouvez utiliser le plugin jquery columnizer pour disposer dynamiquement votre contenu dans des blocs de taille fixe et positionner vos en-têtes et pieds de page dans le cadre de la routine de rendu. http://welcome.totheinter.net/columnizer-jquery-plugin/

Voir l'exemple 10 http://welcome.totheinter.net/autocolumn/sample10.html

Le navigateur ajoutera toujours ses propres en-têtes ou pieds de page s'il est activé dans le système d'exploitation. Une mise en page cohérente entre les plates-formes et les navigateurs nécessitera probablement des css conditionnels.

2voto

jous Points 738

J'ai essayé de mener cette bataille futile en combinant les règles tfoot et css mais cela ne fonctionnait que sur Firefox :(. En utilisant les règles css simples, le contenu s'écoule au-dessus du pied de page. En utilisant tfoot, le pied de page de la dernière page ne reste pas bien en bas. Cela est dû au fait que les pieds de page des tableaux sont destinés aux tableaux, pas aux pages physiques. Testé sur Chrome 16, Opera 11, Firefox 3 & 6 et IE6.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Header & Footer test</title>

<style>

  @media screen {
    div#footer_wrapper {
      display: none;
    }
  }

  @media print {
    tfoot { visibility: hidden; }

    div#footer_wrapper {
      margin: 0px 2px 0px 7px;
      position: fixed;
      bottom: 0;
    }

    div#footer_content {
      font-weight: bold;
    }
  }

</style>
</head>

<body>

<div id="footer_wrapper">
  <div id="footer_content">
    Total 4923
  </div>
</div>

<TABLE CELLPADDING=6>

<THEAD>
<TR> <TH>Weekday</TH> <TH>Date</TH> <TH>Manager</TH> <TH>Qty</TH> </TR>
</THEAD>

<TBODY>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
<TR> <TD>Mon</TD> <TD>09/11</TD> <TD>Kelsey</TD>  <TD>639</TD>  </TR>
<TR> <TD>Tue</TD> <TD>09/12</TD> <TD>Lindsey</TD> <TD>596</TD>  </TR>
<TR> <TD>Wed</TD> <TD>09/13</TD> <TD>Randy</TD>   <TD>1135</TD> </TR>
<TR> <TD>Thu</TD> <TD>09/14</TD> <TD>Susan</TD>   <TD>1002</TD> </TR>
<TR> <TD>Fri</TD> <TD>09/15</TD> <TD>Randy</TD>   <TD>908</TD>  </TR>
<TR> <TD>Sat</TD> <TD>09/16</TD> <TD>Lindsey</TD> <TD>371</TD>  </TR>
<TR> <TD>Sun</TD> <TD>09/17</TD> <TD>Susan</TD>   <TD>272</TD>  </TR>
</TBODY>

<TFOOT id="table_footer">
<TR> <TH ALIGN=LEFT COLSPAN=3>Total</TH> <TH>4923</TH> </TR>
</TFOOT>

</TABLE>

</body>
</html>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X