2011-10-16 78 views
5

He terminado de crear un informe y el siguiente paso es crear un encabezado que se imprimirá en cada página. He intentado utilizar las soluciones que se ofrecen en How to use HTML to print header and footer on every printed page of a document?, pero no parecen funcionar bien en los navegadores webkit.Imprimir encabezado en cada página

¿Tiene alguna idea de implementar esta opción en mi informe?

+0

Es su informe una serie de archivos HTML? –

+0

Mi informe es una salida de datos que recibí de la base de datos, nada especial.Todo lo que necesito es un encabezado que se imprimirá en cada página –

Respuesta

4

cabeceras y pies de página de impresión en cada página es tarea muy difícil, si utiliza etiquetas div. En mi proyecto, busqué casi la totalidad de la web y encontré que para imprimir los encabezados y pies de página en cada página debe usar tablas y reglas de CSS, sin usar la tabla y CSS no puede imprimir encabezados en cada página. Te estoy proporcionando el código para hacerlo, conforme a:

<style> 
    @media screen{thead{display:none;}} 
    @media print{thead{display:table-header-group; margin-bottom:2px;}} 
    @page{margin-top:1cm;margin-left:1cm;margin-right:1cm;margin-bottom:1.5cm;}} 
</style> 

regla CSS En primer lugar hacer que la culata en T de la mesa no se mostrará en la pantalla para el usuario y la segunda regla define que durante la culata en T impresión se muestra como mesa- header-group como esta regla mostraría encabezado en cada página si omite esto, los encabezados no se imprimirán en cada página y la tercera regla es para mantener los márgenes de página de la superposición de encabezado o pie de página y su código html sería como bajo:

<table> 
    <thead> 
     <tr> 
      <th> <--- Your header text would be placed here ---> </th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td> 
       <--- Your printing text would be place here ---> 
      </td> 
     </tr> 
    </tbody> 
</table> 

Última cosa, he intentado código de cosas en IE, Safari, Firefox y Chrome y me gustaría decirte que en Chrome la cabecera r está impreso solo en la primera página. También he informado sobre el error muchas veces, pero Chrome no está haciendo nada al respecto.

+0

funciona solo en la primera página ... –

1

Puedes usar iframes pero no lo recomiendo, nadie lo usa.

Si crea dinámicamente los informes, lo mejor sería agregar el encabezado a la página creada en la creación. Esta es la técnica más utilizada después de todo.

La otra opción podría estar utilizando la propiedad css content.

div#main:before { 
    content: "<p>I appear before the div tag</p><hr />" 
} 

Nota: IE8 sólo admite the content property Si se especifica un !DOCTYPE.

0

A día de hoy todavía no se resuelve el error en webkit.org: https://bugs.webkit.org/show_bug.cgi?id=17205

que tenían el mismo problema en trabajar con un motor WebKit HTML que convierte a PDF. Esto funcionó para mí:

En primer lugar hacer su css disponible para todos los tipos de medios

<style type="text/css" media="all"> 

Asegúrese de que la propiedad de presentación de la culata en T se establece:

thead { display: table-header-group;} 

última, para solucionar los problemas donde las filas de la tabla se superponen con los encabezados o filas cortadas por la mitad en el salto de página

table { page-break-inside:auto } 
tr { page-break-inside:avoid; page-break-after:auto } 
thead tr th{ height: 50px;} 
Cuestiones relacionadas