Imprimir en IE sin mostrar cuadro de diálogo de impresora.

jueves, 22 de marzo de 2012
Publicado por Ivan

Primero que nada decir que este problema me surgió particularmente para poder imprimir en un punto de autoatención. En él se abre una navegador donde se muestra una página con las opciones, y se mandaría a imprimir un número o algo a la impresora. Cuando uno manda a imprimir en javascript con el clásico window.print() se levanta el cuadro de diálogo de la impresora para seleccionar las opciones para realizar la impresión. Y obviamente en este caso sería muy feo mostrar esa ventana al usuario y darle la opción de escoger qué hacer. Por eso lo primero que pillé por ahí fué una opción para firefox, entrando a la configuración de este se podía habilitar un modo de impresión “silencioso” donde no se muestra el diálogo de impresión. Hasta ahí todo bien, pero luego surgió el inconveniente de que debía usarse Internet Explorer, y no Firefox.

El caso es que luego de mucho investigar no pude dar con una solución satisfactoria, hasta que pillé el siguiente código que se pone en la misma página HTML:

<script language='VBScript'>
Sub imprimir()
       OLECMDID_PRINT = 6
       OLECMDEXECOPT_DONTPROMPTUSER = 2
       OLECMDEXECOPT_PROMPTUSER = 1
       call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>

Y luego, es cosa de llamar a la función imprimir(); desde javascript. Y funciona excelente!!. Así que ahí queda el dato por si a alguien le sirve, y espero que así sea.

6 comentarios:

Anónimo dijo...

El código no funciona

Anónimo dijo...

Ivan sos un maestro!! Suprimió el cuadro de diálogo de impresión. Ahora solo me falta eliminar el encabezado y pie de páginas. Es para imprimir etiquetas de codigos de barra desde una aplicacion ASP/html.

DIEGO ROMERO dijo...

Y desde otros navegadores como le hago

Anónimo dijo...

funciona bien y como imprimo un archivo pdf de la misma manera

Anónimo dijo...

Funciona excelente. Gracias.

Anónimo dijo...

Funciona, pero recuerden agregar:

window.imprimir()
window.close()


Gracias totales!