Quiero poner encabezado y pie de página en cada página en el modo de impresión. Hice muchas investigaciones sobre eso.Encabezado y pie de página personalizados en la página html
He encontrado dos soluciones. Pero no son de navegador cruzado (quiero que funcione en IE, Firefox y Chrome)
La primera solución: estoy estableciendo márgenes en la parte superior e inferior de mi tabla de contenido. Luego escribo encabezado y pie de página en estos espacios con posición fija. Funciona perfecto en Firefox. Pero en IE y Chrome no establece márgenes. También en Chrome no escribe encabezado y pie de página en cada página.
Aquí está mi código:
pagination.php
<!DOCTYPE HTL>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<meta name="robots" content="noindex, nofollow">
<meta name="googlebot" content="noindex">
<meta http-equiv="cache-control" content="no-cache">
<title>Brove.NET ISO Yazılımı</title>
<link rel="stylesheet" type="text/css" href="css/pagination.css" />
</head>
<body>
<table class="header" cellpadding="0" cellspacing="0">
<tr>
<td>header
</td>
</tr>
</table>
<table class="content" cellpadding="0" cellspacing="0">
<tr>
<td valign="top">
content
</td>
</tr>
</table>
<table class="footer" cellpadding="0" cellspacing="0">
<tr>
<td>footer
</td>
</tr>
</table>
</body>
</html>
pagination.css
@media screen{
.header{
width:768px;
height:100px;
border:2px solid #000;
}
.content{
width:768px;
margin-top:10px;
margin-bottom:10px;
height:1000px;
}
.footer{
width:768px;
height:100px;
border:2px solid #000;
}
}
@media print {
.header{
position:fixed;
top:0;
left:0;
width:768px;
height:100px;
border:2px solid #000;
}
.content{
width:768px;
margin-top:120px;
margin-bottom:120px;
height:1000px;
}
.footer{
position:fixed;
left:0;
bottom:0;
width:768px;
height:100px;
border:2px solid #000;
}
@page{
margin-bottom:150px;
}
}
Y esta es la segunda solución:
En esta solución im usando table-header-group
y atributos table-footer-group
. Funciona Firefox y IE. Pero Chrome no entiende de nuevo. No repite el encabezado y el pie de página en todas las páginas en el modo de impresión.
Aquí hay otro código: Is there a way to get a web page header/footer printed on every page?
<style type="text/css">
thead { display: table-header-group; }
tfoot { display: table-footer-group; }
</style>
<body>
<table>
<thead><tr><td>Your header goes here</td></tr></thead>
<tfoot><tr><td>Your footer goes here</td></tr></tfoot>
<tbody>
<tr><td>
Page body in here -- as long as it needs to be
</td></tr>
</tbody>
</table>
</body>
¿Hay algún truco para resolver estos problemas navegador o tienes alguna sugerencia para mí?
No. Usted compila un PDF y lo pasa al administrador de impresión, o vive con el comportamiento predeterminado. – MetalFrog
También estoy creando PDF, pero es muy lento. Entonces quiero hacer esto con html –
Usando '' y '
' no funcionó en Chrome? –Respuesta
¡Intente crear su página en la etiqueta div en lugar de cualquier etiqueta de tabla! div es más ligero que la tabla
¡Gracias!
Fuente
2012-01-21 17:09:24 Chintan
No estoy consultando con la posición! Trate de usar absoluto si es posible :) – Chintan
que no entiende mi pregunta Quiero hacerlo en modo de impresión para cada página –
En mi opinión, este sitio web que tiene api een y muchas opciones como el encabezado y pie de página funciona muy bien para la impresión:
http://pdfmyurl.com
En mi caso, la velocidad es excelente y no cambia nada en el diseño.
Solución dos (mucho trabajo): Utilice la posición absoluta en todos los elementos.
Fuente
2014-07-20 05:44:54 tkon99
Cuestiones relacionadas