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!!!!!!!!!!!!!!!!
black
gracias gracias gracias! :)
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
posi, me parece que es hora de actualizarse...
¿algún libro recomendado?
Muchas gracias meddle! :)
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
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
por cierto, prueba a imprimir via javascript via boton del navegador, a ver si pasa lo mismo.
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>
black
pozi.... :)
meddle
pero has pegado el css en un archivo y lo has subido a css/print.css, supongo...
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
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
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
prueba esto, pero no te aseguro nada:
HTML (el head de tu pagina):
<code></code>
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
¿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.