Miimagen.print()
2 seguidores
hola a todos...
tengo el siguiente script para imprimir una pantalla...
<code>
<SCRIPT LANGUAGE="JavaScript">
<!-- inicio
function printWindow() {
bV = parseInt(navigator.appVersion);
if (bV >= 4) window.print();
}
// Fin -->
</script></code>
desde mi ignoracia...
¿puedo sustituir window.print() por Miimagen.print() donde Miimagen es la Id de una imagen... es decir...
<code><img src="foto.jpg" name="imagen" id="imagen"></code>
para que me imprima solo la imagen?
GRACIAS!!!!!!!!!!!!!!!!
meddle
¿que mas hay en la pagina? ¿Tienes un ejemplo?
Respuesta rapida: se puede, pero de una manera un poco distinta.
Respuesta larga: hay que añadir un CSS con media="print" que deshabilite (para impresion) los demas elementos de la pagina al imprimir. A veces (si se ha hecho uso de dhtml) hay que hacer un apaño escondiendo hojas de estilo y volviendolas a mostrar, es un bug del dhtml per se, no de ningun navegador.
black
Pues el codigo que tengo es básicamente este... una imagen dentro de unas tablas y quiero que se imprima sólo la foto...
<code><html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- inicio
function printWindow() {
bV = parseInt(navigator.appVersion);
if (bV >= 4) document.getElementById("imagen").print();
}
// Fin -->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="css/explorer.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" background="../img/fondo2.gif">
<table width="100%" border="0" cellspacing="0" cellpadding="0" height="100%">
<tr>
<td valign="middle" align="center">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td><img src="img/corte_arriba_izq.gif" width="20" height="20"></td>
<td>&nbsp;</td>
<td><img src="img/corte_arriba_dch.gif" width="20" height="20"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><img src="mifoto.jpg" name="imagen" id="imagen"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td><img src="img/corte_abajo_izq.gif" width="20" height="20"></td>
<td>&nbsp;</td>
<td><img src="img/corte_abajo_dch.gif" width="20" height="20"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td align="center"><a href="javascript:printWindow()">Imprimir</a> | <a href="javascript:window.close()">cerrar</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html></code>
meddle
prueba esto, pero no te aseguro nada:
HTML (el head de tu pagina):
<code></code>
black
me sale una hoja con las letras IB impresas....
una duda... que es
document.getElementsByTagName("link")?
es alguna propiedad del link o algo así? tipo Id de la imagen?
no contolo mucho de esto.. se nota no?
meddle
IB? raro... no existe ese texto en la pagina, no?
Bueno, ¿has borrado el antiguo script, no? y has añadido el print.css, verdad?
<fieldset>una duda... que es
document.getElementsByTagName("link")?
</fieldset>
Eso lo que hace es buscar en el documento por cualquier elemento link (es decir todos los enlaces a paginas de estilos externas). Entonces lo mete en un array, que como ves lo recorremos depues para seleccionar la hoja de estilos que nos interesa y habilitar/deshabilitar las que no son "print"
black
he borrado mi antiguo script y he pegado el tuyo, con lo del print.css incluido... la llamada la sigo haciendo igual.... con
<code><a href="javascript:printWindow()">Imprimir</a></code>
y la imagen se sigue llamando igual tb...
<code><img src="mifoto.jpg" name="imagen" id="imagen"></code>
...
ni idea, chico... :)
meddle
pero has pegado el css en un archivo y lo has subido a css/print.css, supongo...
black
pozi.... :)
meddle
pues no se, la verdad. en TEORIA no te haria falta ni siquiera el javascript (ya que no usas dhtml y por tanto no cambias estilos de ningun elemento, que es lo problematico en estos casos), solamente te hace falta el css externo y el link con media="print"
Vamos a ver, modifica el css:
<code>script { display: none; }
@page {
/* marcar A4 a les opcions d'impresora! */
size: auto;
margin: 2cm;
marks: cross;
}
body {
font-family: georgia, Verdana, Lucida, Geneva, Helvetica, Arial, sans-serif;
background: white;
color: black;
font-size: 1em;
}
body * {display: none;
visibility: hidden;
}
#imagen {display: block;
visibility: visible;
}</code>
meddle
por cierto, prueba a imprimir via javascript via boton del navegador, a ver si pasa lo mismo.
black
he probado todo lo que me has comentado... y con el último código me imprime los encabezados de la página... creo que voy a desistir...
:(
Gracias de todas formas!
a todo esto...
<code>document.getElementById("imagen").print(); </code>
está mal no? .print solo vale como window.print() verdad?
meddle
si, solo vale para toda la pagina. pero el css te permite decir que elementos quieres imprimir y cuales no, posiciones, colores, tamaños, etc. Lo que creo que es tu problema: las tablas. y no voy a decir mas al respecto porque ya sabeis que no me gustan, ahora teneis una razon de peso para no usarlas, ;)
black
posi, me parece que es hora de actualizarse...
¿algún libro recomendado?
Muchas gracias meddle! :)
meddle
libros no tengo (solo uno de javascript):
http://www.thenoodleincident.com/tutorials/box_lesson/boxes.html http://css.maxdesign.com.au/ http://www.glish.com/css/ http://meyerweb.com/eric/css/ http://meyerweb.com/eric/css/edge/
suerte
black
gracias gracias gracias! :)