Foros del Web » Programando para Internet » Javascript »

Imprimir sólo una porción de un HTML

Estas en el tema de Imprimir sólo una porción de un HTML en el foro de Javascript en Foros del Web. Güenas, la otra vez creo que fue Don KarlanKas quién me pasó un pequeño script para copiar una tabla al portapapeles de windows. Ahora vengo ...
  #1 (permalink)  
Antiguo 13/11/2003, 13:52
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 10 meses
Puntos: 535
Imprimir sólo una porción de un HTML

Güenas, la otra vez creo que fue Don KarlanKas quién me pasó un pequeño script para copiar una tabla al portapapeles de windows.

Ahora vengo por otro tema, aunque de características similares:

Quisiera que haciendo click en un botón, se lance el diálogo de imprimir pero que sólo se imprima el contenido de una tabla determinada (esto para que no salga impreso el botón de imprimir ni otros enlaces que sirven para administrar la aplicación y que no deben estar en el reporte impreso)

Será que es posible hacer eso?
Si la respuesta es "si", pues estaría genial que venga acompañada de la solución

Bueno, me faltó aclarar que no sé si este tema es de javascript o de CSS. Por lo que le pido al moderador de turno del magnífico foro javascript que en caso de ser necesario modere a su colega y traslade el mensaje al foro que mejor corresponda

Gracias
  #2 (permalink)  
Antiguo 13/11/2003, 14:16
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años
Puntos: 61
Amantisimo moderador de ASP (a ver quien de los dos es más pelota):

Le comunico que está bien posicionado. Esta labor corresponde a JS. Permítame comentarle una posible solución que tal vez resuelva su pequeño problema.

Ha de saber, mi siempre acertado colega, que esta solución sólo funcionará con las versiones más avanzadas de los distintos navegadores. Pero, hoy por hoy, quién usa el NS 4.78?

La solución sería esta función:

Código PHP:
function imprimir(soloEsto){

contenido=document.getElementById(soloEsto).outterHTML;
ventana=window.open("about:blank","ventana","width=700,height=600,top=0;left:3000");
ventana.title="Imprimiendo..."
ventana.document.open();
ventana.document.write(contenido);
ventana.document.close();
ventana.print;
ventana.onprint=ventana.close();



y en el botón pones un onclick="imprimir(nombreDeLaTabla)"

No lo he probado porque estoy vaguete, pero igual funciona y todo.

Dime si te va!

Saludooos!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 13/11/2003, 14:26
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años
Puntos: 61
Tras revisarlo quedaría así:

Código PHP:
<html>
<
head>
<
script>
function 
imprimir(soloEsto){
var 
contenido document.getElementById(soloEsto).outerHTML;
ventana=window.open("about :blank","ventana","width=700,height=600,top=0,left=3000");
ventana.document.open();
ventana.document.write('<html><head><title>Imprimiendo...</title></head><body onprint="self.close()">');
ventana.document.write(contenido);
ventana.document.write('</body></html>');
ventana.document.close();
ventana.print();
ventana.focus();
ventana.close();

}
</script>
    <title>Untitled</title>
</head>

<body>
<div id="pepe">Hola soy pepe.</div>
<input type=button value="EE" onclick="imprimir('pepe')">
</body>
</html> 
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 13/11/2003, 15:24
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 10 meses
Puntos: 535
O_o!!!!

Maistro! Funciona pipí-cucú Ñ_ñ

Sólo que no me respeta los estilos de la tabla ¬¬
Sería demaciado ">_<" pedir qué se imprima con los estilos? (están definidos en un CSS externo y el nombre del class es "contenido")


K!
__________________
...___...
  #5 (permalink)  
Antiguo 13/11/2003, 15:33
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 10 meses
Puntos: 535
Weeeeee!!! Ya'stá:


Código:
ventana.document.write('<html><link href="../../../estilos.css" rel="stylesheet" type="text/css"><head><title>Imprimiendo...</title></head><body class="contenido" onprint="self.close()">');

Gracias, muchas
  #6 (permalink)  
Antiguo 13/11/2003, 17:34
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años
Puntos: 61
No veas como me alegra de que te sirva mi solución!

De nadas muchas también!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #7 (permalink)  
Antiguo 13/11/2003, 17:36
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años
Puntos: 61
Ahora que lo veo creo que puedes quitar lo de onprint=self.close... porque ya lo cierra desde el opener...

Ayos
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #8 (permalink)  
Antiguo 29/06/2006, 02:07
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 20 años
Puntos: 10
Buenas, estoy mirando como imprimir una parte de un pagina web y me di con esto pero no consigo q ande.... tengo lo siguiente:
Código PHP:
function imprimir(soloEsto){ 
    var 
contenido document.getElementById(soloEsto).outerHTML
    
ventana=window.open("about :blank","ventana","width=700,height=600,top=0,left=3000"); 
    
ventana.document.open(); 
    
ventana.document.write('<html><head><title>Imprimiendo...</title></head><body onprint="self.close()">'); 
    
ventana.document.write(contenido); 
    
ventana.document.write('</body></html>'); 
    
ventana.document.close(); 
    
ventana.print(); 
    
ventana.focus(); 
    
ventana.close(); 

y lo llamo de la siguiente manera:
Código HTML:
<form  id="miform" method="post" action="consultes/expedicions/resexpedimagatzem.php">
<table border="1">
<tr>
<td>
	<select name="magatzem" class="caixes" onchange="if (this.value>0) myajax.Select('consultes/expedicions/cons_dataexpedi.php?magatzem='+this.value, 'datexp')">
			<option value="0">Escoje un Almacen...</option>
			<?
			while($res_magatzem=mysql_fetch_row($sql_magatzem)){
				echo "<option value=".$res_magatzem[0].">".$res_magatzem[1]."</option>";
			}
			?>
		</select>
</td>
<td>
	<select id="datexp" name="datexp" class="caixes">
			<option value="0">Escoje un Almacen...</option>
	</select>
</td>
<td>
<input type="button" class="boto" name="enviar" value="Consultar"  onClick="javascript:validaconsultaexpedi(this.form)">
</td>
<td>
<input type="button" class="boto" name="imprimir" value="Imprimir" onclick="javascript:imprimir('main4')"> 
</td>
</tr>
<tr>
<td colspan="4"><div id="main4" class="dive" align="center"></div></td>
</tr>
</table>
</form> 
cuando cargo algo en el div, luego le doy a imprimir y la consola de javscript de firefox me devuelve un error diciendome q--> imprimir is not a function. y no hace nada...

alguien sabe el motivo?

gracias de antemano!

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #9 (permalink)  
Antiguo 29/06/2006, 02:55
Avatar de axiertxo  
Fecha de Ingreso: octubre-2005
Ubicación: España
Mensajes: 387
Antigüedad: 19 años, 2 meses
Puntos: 0
err....

llamale solo asi

onclick="imprimir('main4')">
__________________
El mundo exige resultados. No le cuentes a otros tus dolores del parto. Muéstrales al niño.
  #10 (permalink)  
Antiguo 29/06/2006, 02:57
Avatar de axiertxo  
Fecha de Ingreso: octubre-2005
Ubicación: España
Mensajes: 387
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por Al Zuwaga
Güenas, la otra vez creo que fue Don KarlanKas quién me pasó un pequeño script para copiar una tabla al portapapeles de windows.

Ahora vengo por otro tema, aunque de características similares:

Quisiera que haciendo click en un botón, se lance el diálogo de imprimir pero que sólo se imprima el contenido de una tabla determinada (esto para que no salga impreso el botón de imprimir ni otros enlaces que sirven para administrar la aplicación y que no deben estar en el reporte impreso)

Será que es posible hacer eso?
Si la respuesta es "si", pues estaría genial que venga acompañada de la solución

Bueno, me faltó aclarar que no sé si este tema es de javascript o de CSS. Por lo que le pido al moderador de turno del magnífico foro javascript que en caso de ser necesario modere a su colega y traslade el mensaje al foro que mejor corresponda

Gracias
En estos caso suele ser emjor crear otra hoja de estilos en al que oculte los botones y demás que no se quieran imprimir. Sino tambien puedes mediante DHTML cambiar el class a la hora de imprimir

document.nombredelobjeto.style.visibility:hidden

Saludos
__________________
El mundo exige resultados. No le cuentes a otros tus dolores del parto. Muéstrales al niño.
  #11 (permalink)  
Antiguo 29/06/2006, 03:57
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 20 años
Puntos: 10
ya esta solucionado...
el codigo javascript keda asi:
Código PHP:
function imprime(soloesto){ 
    var 
ficha document.getElementById(soloesto);
    var 
ventimp window.open(' ''popimpr');
    
ventimp.document.writeficha.innerHTML );
    
ventimp.document.close();
    
ventimp.print( );
    
ventimp.close();

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #12 (permalink)  
Antiguo 29/06/2006, 04:31
Avatar de axiertxo  
Fecha de Ingreso: octubre-2005
Ubicación: España
Mensajes: 387
Antigüedad: 19 años, 2 meses
Puntos: 0
ok, me alegro
__________________
El mundo exige resultados. No le cuentes a otros tus dolores del parto. Muéstrales al niño.
  #13 (permalink)  
Antiguo 23/10/2006, 10:00
Avatar de leeja  
Fecha de Ingreso: octubre-2005
Mensajes: 82
Antigüedad: 19 años, 2 meses
Puntos: 0
a mi no me funciona esto:
ventana=window.open("about :blank","ventana","width=700,height=600,top=0,left =3000");

tengo q poner esto:
ventana=window.open("http://lotus:8080/print.html","ventana"," width=700,height=600,top=0,left=3000");

tengo q indicarle q abra una pagina en blanco... porq sera?
__________________
www.datasegura.net
  #14 (permalink)  
Antiguo 23/10/2006, 10:45
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 20 años
Puntos: 10
Hola!
probaste el ultimo codigo q se puso?
Código PHP:
function imprime(soloesto){  
    var 
ficha document.getElementById(soloesto); 
    var 
ventimp window.open(' ''popimpr'); 
    
ventimp.document.writeficha.innerHTML ); 
    
ventimp.document.close(); 
    
ventimp.print( ); 
    
ventimp.close(); 

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 18:58.