Botón Imprimir

Espero me puedan ayudar, necesito subir a mi página la función de imprimir un texto. La verdad yo hice algo con Flash de manera que el botón me llame un campo de texto y este es el que se imprime, pero no me sirve esto.
Lo necesito de manera que el botón me mande a imprimir un texto que no esté en flash, si no más bien desde el mismo html o que me llame un pdf o un txt o cualquier forma... La verdad no se que hacer, sea javascript, php, jsp etc. No que usar ni como hacerlo.

1 respuesta

Respuesta
1
Si no he entendido mal tienes una página en HTML y quieres que los visitantes puedan imprimirla.
En Javascript la función que se utiliza es:
window.print();
Esto te imprimirá toda la pantalla. Como supongo que solo quieres que se imprima un parte, es decir, que los menús, banner, etc. no se impriman, si no tan solo lo que tu decidas, esa función no te sirve. La solución es la siguiente:
1º Creas un "div" y le asignas un "id". En este "div" metes todo el contenido que deseas que el usuario imprima.
<span style="white-space: pre;"> </span>Ejemplo:
<div id="contenido">Contenido, texto e imágenes que se imprimirán</div>

2º Creas la función que podemos llamar Imprimir_Contenido:
<script language="Javascript">
  function Imprimir_Contenido(nombre)
  {
  var ficha = document.getElementById(nombre);
  var Ventana_Impresion = window.open(' ', 'popimpr');
  Ventana_Impresion.document.write( ficha.innerHTML );
  Ventana_Impresion.document.close();
  Ventana_Impresion.print( );
  Ventana_Impresion.close();
  } 
</script>

3º Creas en esa misma página el botón o enlace para que el usuario puede imprimir.
<a href="javascript:Imprimir_Contenido('contenido')" >Imprimir</a>
Al pulsar se abrirá la correspondiente ventana para poder elegir la impresora.
Ok, muchas gracias.
La verdad esto lo debo ensayar el día miércoles, si de pronto no logro que funcione te volveré a pedir ayuda.
Muchas gracias.
Aquí estaremos.
Kike
Mira, ya hice lo que me dijiste pero creo que algo me falta y no se que puede ser. Al darle clic en el enlace para imprimir me abre la ventana de la carpeta donde se encuentra este archivo html en mi computador y no me abre ningún cuadro de impresión. A demás la etiqueta spam style no se que es ni donde ponerla. Mira lo que hice fue esto:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<script language="Javascript">
  function Imprimir_Contenido(nombre)
  {
  var ficha = document.getElementById(nombre);
  var Ventana_Impresion = window.open(' ', 'popimpr');
  Ventana_Impresion.document.write( ficha.innerHTML );
  Ventana_Impresion.document.close();
  Ventana_Impresion.print( );
  Ventana_Impresion.close();
  } 
</script>
</head>
<body>
<div id="123">Esto es una prueba de impresión con JavaScript</div>
<a href="javascript:Imprimir_Contenido('123')" >Imprimir</a>
</body>
El Id del Div es 123.
Gracias
Tal cual lo tienes lo he probado y funciona en Firefox, IE7 y Chrome. Mira a ver si es que tu explorador no deja ejecutar Javascript, en muchas ocasiones está deshabilitado.
Prueba lo siguiente:
<head>
<script language="javascript"> 
function imprimir() { 
if (window.print != null) { 
window.print() 
} else { 
alert('No tienes habilitada esta opción en el naveador.') 


</script>
</head>
<body>
<p align=right><a href="javascript:imprimir()">Imprimir</a></p>
<body>
Si te sale un mensaje de alerta diciendo que no está habilitada esa función disminuye el nivel de seguridad en el acceso a webs (o busca si es IE en Herramientas->Opciones de Internet->Seguridad->Internet y baja el nivel a medio-alto o a bajo para probar).
Hay funciones más complicadas, pero si te cuesta no te merece la pena meterte con ello, de todas formas te dejo un enlace para que le eches un vistazo (se trata de decir que zonas son visibles para imprimir y cuales no): http://www.forosdelweb.com/629887-post176.html
PD. Lo que decías de que no sabías dónde poner la etiqueta <spam> de la respuesta anterior no me extraña, yo tampoco, eso lo incluye este editor cuando contesto a alguien y pongo tabulaciones, en vez de verse la tabulación sale ese código.
Buen Día, Nada que me funciona, Hice lo que me dijiste y de inmediato aparece la ventana de impresión, debe ser que algo que se nos está pasando por alto nos hace falta. Osea que no es el navegador ni que esté inhabilitado.
El código que te dí funciona en todos los actuales. Si tienes IE6 o anterior puede darte problemas. Prueba cualquiera de estos. Todos funcionan. Los hay mucho más complejos y trabajados, pero esto es la base de como hacerlo.
Este otro por ejemplo es más sencillo:
<style media="print" type="text/css">
#no_imprimir {
visibility:hidden
}
</style>
Todo div, spam, botón, etc. al que le asignes el estilo imprimir no aparecerá en la impresión pero si el ma página. Es decir:
<div id="no_imprimir> Esto no se imprime</div>
<div id="cualquiera"> Esto si se imprime</div>
<input type="button" name="imprimir" id="no_imprimir" value="botón imprimir (sale en la impresión)" onclick="window.print();" /> 
Si te funcionó el último este funciona también y es más completo, pero debes saber manejar bien los estilos para que todo lo que no sea imprimible no tenga el mismo aspecto. En IE6 por ejemplo y anteriores creo que no funciona.
Esta es otra solución:
Creas un estilo llamado "no_imprimir", al darle al botón o enlace imprimir todo lo que no deba salir por la impresora se hace invisible, y después de imprimir vuelve a aparecer.
<script language="JavaScript">
function Imprimir(){
document.all.item("no_imprimir").style.visibility='hidden' 
window.print()
document.all.item("no_imprimir").style.visibility='visible'
}
</script>
<div>Esto se imprime</div>
<div id="no_imprimir">todo lo de aqui no se imprimira</div>
Llamar a la función Imprimir() donde quieras, pero dentro de un contenedor con el eltilo "no imprimir" para que tampoco salga el botón.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas