Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/04/2013, 05:41
Sevillacode
 
Fecha de Ingreso: abril-2013
Ubicación: Sevilla
Mensajes: 23
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: como hacer centrar una imagen en cada hoja?

Hola
No se si te servira la anterior solucion, en caso negativo puedo decirte una manera a ver que tal. Eso si, esa imagen central no puede ir de fondo porque como has descubierto las impresiones del navegador no imprimen por defecto los fondos. Si la quieres, vas a tener que currarte la maquetacion un poco mas y con suerte lo conseguiras aunque nunca lo he hecho...

mi solucion es la siguiente:

Código PHP:

for( LOQUESEA ){


if(isset(
$rompe)){
    echo 
'<div style="page-break-before: always;"><img src="imagenes/transparente.gif" style="width:1px;" /></div>';
}else{
    echo 
'<img src="imagenes/transparente.gif" style="width:1px;" />';
}

// se monta el html como sea, pero la cuestion es establecer una imagen de cabecera para la hoja a imprimir
<table width="680" border="0" align="center" cellpadding="0" cellspacing="0">
    <
tr>
        <
td width="680"><img src="imagenes/logo.jpg" alt=""  border="0" /></td>
    </
tr>
etc....................
</
table>

// y al final del bucle
$rompe 1

lo que te quiero mostrar:
· Fijate que en lugar de background-imagen, establezco la cabecera como una imagen. Esa si la imprimirá.
· Fijate tambien que crea una tabla por cada pagina, no una continuacion de tr td infinita pagina a pagina.
· Por ultimo, mira el codigo que hace que en la impresion tome una nueva hoja, esta supeditado a $rompe que se declara a 1 al final de cada pasada, lo que hará que siempre añada X registros y cambie al folio siguiente, donde montará otra cabecera. He añadido un gif transparente dentro del div de salto de pagina por problemas de compatibilidad con algun navegador al dejar el div vacio.

Con esto vas a consegir una hoja con cabecera y los registros abajo.
Ahora bien, para el fondo tipo marca de agua corpoativa supongo que puede intentar jugar con los z-index y los position, porque supongo que debe admitir que se escriba encima de ella y debe ser una imagen y no un fondo, si dejas abajo la imagen y encima la tabla/div con el contenido puede que te funcione.

espero te sirva al menos como guia. Suerte!
un saludo