Ver Mensaje Individual
  #6  
Antiguo 15-08-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Aunque un pdf puede ser más adecuado, lo cierto también es que es una monserga crearlos, al menos con herramientas como el fpdf. En algunas ocasiones puede bastar un uso adecuado de las hojas de estilo.

Digamos que generas el reporte en HTML y lo presentas en una página que, además, tiene otros elementos. Lógicamente, estos elementos extras no deseas que se impriman. Pues bien, esto lo puedes lograr incluyendo una hoja de estilo específica para la impresión:

Código:
<html>
<head>
<title>Reporte</title>
<link rel='stylesheet' type='text/css' href='impresion.css' media='print'>
<body>

...

<input type='button' name='btnImprimir' id='btnImprimir' onclick='window.print();' value='Imprimir'>
</body>
</html>
En dicha hoja ocultas los elementos que no desees imprimir. Por ejemplo, en el código anterior, está el botón para mandar imprimir, y no queremos que éste se imprima. Bastará ocultarlo así en la hoja de estilo de impresión:

imprimir.css
Código:
input#imprimir
{
  display: none;
}

Puedes ocultar cualquier elemento, incluso un <div>, de manera que puedes ocultar porciones completas de la página que estén dentro de un <div>.

Las hojas de estilo de impresión te sirven, además, para otro tipo de formatos específicos para la impresión. Por ejemplo; una tabla, vista en el navegador, quizá ajustes sus columnas de manera proporcional de manera que abarque el ancho de la pantalla. Esto no siempre queda correcto al imprimir, por lo que es mejor dar medidas absolutas en pulgadas.

Otra cosa. Algo que puede ser muy útil es hacer uso del atributo page-break-after. Si un reporte es muy largo, puedes programarlo (desde el script del lado del servidor) para que cada tantas filas, la etiqueta <tr> lleve este atributo con el valor 'always'. Esto hará que la impresión cambie a una nueva página.

// Saludos
Responder Con Cita