¿Cómo utilizar HTML para imprimir el encabezado y el pie de página en cada página impresa de un documento?

¿Es posible imprimir páginas HTML con encabezados y pies de página personalizados en cada página impresa?

Me gustaría añadir la palabra "UNCLASSIFIED" en rojo, Arial, tamaño 16pt a la parte superior e inferior de cada página impresa, independientemente del contenido.

Para aclarar, si el documento se imprimió en 5 páginas, cada página debe tener el encabezado y el pie de página personalizados.

¿Alguien sabe si esto es posible usando HTML/CSS?

Si tomas el elemento que quieres que sea el pie de página y le pones position:fixed y bottom:0, cuando la página se imprima repetirá ese elemento en la parte inferior de cada página impresa. Lo mismo funcionaría para un elemento de cabecera, sólo hay que poner top:0 en su lugar.

Por ejemplo:

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

CSS:

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

Creo que la respuesta correcta es que HTML 5 y CSS3 no admiten la impresión de encabezados y pies de página en medios print.

Y mientras que usted podría ser capaz de simular con:

  • tablas
  • bloques de posición fija

cada uno de ellos tiene fallos que impiden que sean la solución general ideal.

Comentarios (4)

¿Es algo que quieres imprimir solamente? Podría añadirlo a todas las páginas de su sitio y utilizar CSS para definir la etiqueta como un medio de comunicación sólo para impresión.

Como ejemplo, esto podría ser una cabecera de ejemplo:

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

Y en su CSS, hacer algo como esto:


    .printspan
    {
        display: none;
    }


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

Finalmente, para incluir la cabecera/pie de página en todas las páginas puedes utilizar server-side includes o si tienes alguna página generada con PHP o ASP puedes simplemente codificarla en un archivo común.

Editar:

Esta respuesta pretende proporcionar una manera de mostrar algo en la versión física impresa de un documento mientras no se muestra de otra manera. Sin embargo, tal como sugieren los comentarios, no resuelve el problema de tener un pie de página en varias páginas impresas cuando el contenido se desborda.

Lo dejo aquí por si, no obstante, resulta útil.

Comentarios (2)