Cómo forzar saltos de página en la impresión de documentos HTML. Código CSS que nos servirá para realizar saltos de página que solamente se verán al imprimir una página web desde el navegador.
Como quizás sepamos ya, cuando realizamos el CSS para una página web podemos indicar tanto el CSS que se utilizará al visualizar la página, como el CSS que se aplicará al imprimirla. Esto es algo que ya vimos en el artículo CSS para imprimir páginas web del Taller de CSS. En esta ocasión vamos a mostrar un truquillo, apoyados por esta utilidad de creación de un CSS específico para imprimir páginas web, que nos permitirá agregar saltos de página (o quiebras de página, como queráis llamarle) que se vean sólo cuando se imprime el documento.
Hay ocasiones que se realizan aplicaciones web que hacen salida de documentos preparados específicamente para impresión y en los que una vez imprimidos experimentamos que se realiza en varias páginas y que éstas no se rompen exactamente por donde desearíamos. Por poner un ejemplo, hoy estaba mejorando una aplicación de facturación y quería mostrar todas las facturas de un cliente y que al imprimirlas se imprimiese una factura por página. Esta necesidad, que puede ser bastante habitual en ciertas aplicaciones es muy sencilla de implementar por medio de CSS y lo vamos a mostrar a continuación.
Como paso previo, antes de ponernos manos a la obra, tenemos que saber cómo funciona la regla @media, que nos permite definir estilos distintos en una misma declaración CSS. Una vez sabemos ese detalle, podemos ver estos estilos CSS que funcionarían de manera distinta para cada medio (visualización de la página en el navegador e impresión en papel).
@media all {
div.saltopagina{
display: none;
}
}
@media print{
div.saltopagina{
display:block;
page-break-before:always;
}
}
Con esto hemos definido que en cualquier tipo de medio no se muestre ningún DIV con la clase "saltopagina". A continuación, definimos con otra regla @media un estilo específico para la impresión en papel. En este caso sobreescribimos el estilo div.saltopagina, para que en la impresora sí se tenga en cuenta.
Vemos que con la regla de estilo page-break-before estamos indicando un salto de página que se aplica antes del elemento DIV con clase "saltopagina".
Ahora podemos utilizar esta clase CSS sobre las etiquetas DIV, para generar un salto de página que sólo se verá a la hora de imprimir con la impresora:
<div class="saltopagina"></div>
Simplemente tendremos que escribir ese DIV cada vez que queramos hacer un salto de página. Por ejemplo, podríamos hacer esa quiebra de página entre cada una de las facturas de mi aplicación de facturación:
```htmConclusión sobre los saltos de página al imprimir
Con esta técnica conseguirás mejores resultados al imprimir las páginas web. Puede venirte bien para que tus páginas muestren una mejor disposición cuando se imprimen directamente desde el cuadro de diálogo de impresión del navegador. Pero además esta práctica yo la uso también cuando estoy haciendo PDF mediante una librería como DOMPDF, tal como explico en el artículo de PDF con DOMPDF y Laravel
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...