Comment utiliser le HTML pour imprimer l'en-tête et le pied de page sur chaque page imprimée d'un document ?

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&#8217aimerais ajouter le mot "UNCLASSIFIED" en rouge, Arial, taille 16pt en haut et en bas de chaque page imprimée, 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 ?

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 :

@media screen {
  div.divFooter {
    display: none;
  }
}
@media print {
  div.divFooter {
    position: fixed;
    bottom: 0;
  }
}
Commentaires (22)

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 médias print.

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

  • des tableaux
  • des blocs à position fixe

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

Commentaires (4)

S'agit-il de quelque chose que vous souhaitez imprimer uniquement ? Vous pouvez l'ajouter à chaque page de votre site et utiliser le CSS pour définir la balise comme un média à imprimer uniquement.

À titre d'exemple, il pourrait s'agir d'un en-tête :

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

Et dans votre CSS, faites quelque chose comme ceci :


    .printspan
    {
        display: none;
    }


    .printspan
    {
        display: inline;
        font-family: Arial, sans-serif;
        font-size: 16 pt;
        color: red;
    }

Enfin, pour inclure l'en-tête/pied de page sur chaque page, vous pouvez utiliser des 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 a pour but de fournir un moyen d'afficher quelque chose sur la version physique imprimée d'un document sans le montrer 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.

Commentaires (2)