CSS: Imprimiendo saltos de página

14.mar 2008 Envía un trackback

Imaginemos un informe de 200 hojas generado con PHP por pantalla. Supongamos que lo queremos archivar y guardar coherentemente en un típico A-Z de los que tanto gustan a la gente. Igual a la hora de imprimir esa pequeña vista nos llevamos una sorpresa viendo cómo las páginas se cortan por donde corresponda.

Aquí un pequeño css-tip para que estas cosas no pasen. Cuando imprimimos una página web el navegador la procesa -renderiza- y envía a la impresora un postscript para que ésta no tenga mucho que pensar. El pequeño hack consiste en aplicar un css distinto para la impresión.

Para ello primero debemos definirlo en la web y luego hacer los ajustes correspondientes:
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>Prueba de Impresión</title>
 <link href="pantalla.css" rel="stylesheet" type="text/css" media="all" />
 <link href="impresora.css" rel="stylesheet" type="text/css" media="print" />
</head>
Ahora tenemos dos archivos de estilos, uno que afecta a todo -all- y otro a la impresión -print-. Ajustamos colores, fuentes, links, backgrounds y demás elementos que puedan ser conflictivos y, para los saltos de página -usando un contenedor- podemos hacer lo siguiente:
.clase3 { page-break-after: always; }
De forma que justo despues de clase3 haga un salto y empiece clase4 (o la que corresponda) en el siguiente folio. Ahora un ejemplo completo y entendible, pantalla.css:
body { background-color: #fff; color: #000 }
.clase2 { page-break-after: always; }
.clase4 { page-break-after: always; }
El html correspondiente:
<div class="clase1">Esto sale en la primera página</div>
<div class="clase2">Esto sale en la primera página</div>
<div class="clase3">Esto sale en la segunda página</div>
<div class="clase4">Esto sale en la segunda página</div>
<div class="clase5">Esto sale en la tercera página</div>
Hay varios tipos de page-break, page-break-after, page-break-before, page-break-inside... más información. Y todo ello contando con el beneplácito de la W3C. Me encanta el css.
html page-break page-break-before

Comentarios
Gravatar movil@14.03.2008, 'Re: CSS: Imprimiendo saltos de página'

y el madrid q? sucumbirá otra vez en riazor? XDD
buen fin de semana..


Escribe tu comentario
 
 
Guardar datos
Escribe tu comentario:
captcha


Intenta que tu comentario sea interesante y con información relevante al tema de la entrada. BBCodes disponibles: [url=http://direccion]texto[/url], negrita: [b]texto[/b], itálica: [i]texto[/i], subrayada: [u]texto[/u]. Para mencionar o citar a alguien (quote): [cita]texto[/cita]