Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Impresión de imagenes de fondo (https://www.clubdelphi.com/foros/showthread.php?t=36876)

roman 26-10-2006 22:24:24

Impresión de imagenes de fondo
 
Hola,

Tengo la siguiente página:

Código:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title> Prueba - Logo </title>
<style type='text/css'>
body
{
  background-image: url(logo.png);
  background-position: 32px 32px;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

@media print
{
  body
  {
    background-position: 1in 1in;
  }
}
</style>
</head>

<body>

</body>
</html>

Es decir, una página en blanco con un logo en la esquina superior izquierda.

Para impresión, el logo se situa a una pulgada de los bordes. ¿Qué bordes? Esta es la cuestión. En FireFox parece que la distancia se mide desde el borde de la página mientras que en Internet Explorer se hace desde el margen (especificado en la configuración de página).

El caso es entonces que no puedo situar el logo de manera que se vea igual si lo imprimo desde uno u otro navegador.

¿Cómo podría definir estilos dependiendo de si es FF o IE?

Por otra parte pero relacionado con esto (creo), en FireFox la imagen se imprime en versión reducida (muy reducida) en lugardel tamaño natural. ¿Saben a qué pueda deberse?

// Gracias

kayetano 26-10-2006 23:03:45

Hola

prueba a añadir al estilo del body lo siguiente:
Código:

.body {
  padding:0px;
  border:0px;
  margin:0px;
 ...
}


roman 26-10-2006 23:14:02

Gracias. No parece cambiar nada :(

// Saludos

dec 26-10-2006 23:34:19

Hola,

Cuando dices que la imagen se imprime pequeña en Firefox... ¿se imprime más pequeña que los 32 píxeles que indicas?

No sé... Prueba con algo así Román:

Código:

body {
        background-position: top left;
}

Actualización: Se me olvidaba... quita también el:

Código:

@media print
{
  body
  {
    background-position: 1in 1in;
  }
}

(La idea es que no se establezcan medias absolutas para la imagen, aunque, pensándolo bien... esto no debería influir... vamos, digo yo...)

Actualización: Prueba también con algo así Román:

Código:

position: absolute;
Para mantener una posición absoluta... en todo caso, en lugar de:

Código:

background-attachment: fixed;

roman 26-10-2006 23:41:33

Los 32 pixeles no influyen, son el margen para pantalla. Pensando en que de alguna manera influyesen, los acabo de quitar y sucede lo mismo. También he pensado que pueda deberse a un problema con la impresora en específica pero si veo directamente la imagen con FF, sí la imprime bien.

En cuanto a lo de top left, pues si pongo eso, la imagen se coloca a distancia 0, y en FF significa que no se ve por que queda fuera de los margenes de impresión.

// Saludos

dec 26-10-2006 23:46:36

Hola,

Hum... el margen para el cuerpo del documento (que creo que es el "marco" para la página Web) puedes establecerlo con "margin", es decir:

Código:

margin: 32px 0px 0px 32px;
O con sus:

Código:

margin-top: 32px;
margin-left: 32px;

Por otro lado, tratando de responder a tu pregunta de cómo se puede "programar" para un navegador u otro... creo que una de las técnicas es la que menciona Kayetano, es decir, anteponer un punto al elemento en cuestión,... pero, no es la única técnica y, bueno, estas cosas tienen el inconveniente de que puede que vayan bien en IE6, pero acaso no en IE7... qué sé yo... sería cuestión de probar, naturalmente.

Echa un vistazo a este artículo de Minid.net: Reglas especiales para IE7 que creo que vale también para versiones anteriores de Internet Explorer y acaso pueda servirte de algo Román.

Edito: Creo que lo dicho para el margen del documento... o sea, lo que digo más arriba... puede que no tenga que ver, ahora que lo pienso mejor...

roman 27-10-2006 05:16:10

Bueno, margin parece no afectar la posición de una imagen de fondo. Lo del punto lo había probado pero al no ver cambios pensé que era una errata y que lo importante era lo del margin, padding etc. Ahora lo he vuelto a probar con más calma pero lo mismo, no parece funcionar. Lo que sí ha funcionado es anteponer el guión bajo a la propiedad background-position:

Código:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title> Prueba - Logo </title>
<style type='text/css'>
body
{
  background-image: url(logo_cele.png);
  background-position: 32px 32px;
  background-repeat: no-repeat;
  background-attachment: fixed;
}

@media print
{
  body
  {
    background-position: 1in 1in;
    _background-position: 0in 0in;

    height: 200px;
    border: 1px solid red;
  }
}
</style>
</head>

<body>
</body>
</html>

Pero lo más grave es lo de la impresión. En la vista preliminar se ve bien, pero al imprimir, en FF la imagen queda microscópica. ¿Podría alguno probar y confirmar o refutar esto?

Gracias por la ayuda

// Saludos


La franja horaria es GMT +2. Ahora son las 05:27:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi