2012-02-09 138 views
9

¿Es posible tener una opción de impresión que elude el cuadro de diálogo de impresión?HTML/Javascript One Click Imprimir (sin cuadros de diálogo)

Estoy trabajando en un sistema cerrado y me gustaría ser capaz de predefinir la configuración de diálogo de impresión; y procese la impresión tan pronto como haga clic en el botón.

Según lo que estoy leyendo, la forma de hacerlo varía según el navegador. Por ejemplo, IE usaría ActiveX. Chrome/Firefox requeriría extensiones. Basado en esto, parece que tendré que escribir una aplicación en C++ que pueda manejar los parámetros pasados ​​por el navegador para imprimir automáticamente con el formato adecuado (para las etiquetas). Entonces tendré que volver a escribirlo como una extensión para Chrome/Firefox. El resultado final es que los usuarios de nuestro sistema cerrado tendrán que descargar/instalar estas funciones según el navegador que utilicen.

Espero que haya otra manera de hacerlo, pero esta tarea muy probablemente viole los problemas de seguridad del navegador.

+0

¿qué terminaste usando? Estamos tratando de usar Firefox o el navegador Chrome. –

+0

@ReazPatwary Terminamos usando algo llamado jZebra que ahora se llama qz (http://qzindustries.com/download) Sin embargo, busqué/encontré otra forma posible de hacerlo, pero requiere una descarga del lado del cliente. Esto implicaría que el usuario instale una aplicación que utiliza un protocolo personalizado (https://msdn.microsoft.com/en-us/library/ie/aa767914%28v=vs.85%29.aspx) – teynon

+0

gracias por su rápida respuesta. . Pero nuestra plataforma principal es Mac OSX. Parece que es un archivo .exe para la plataforma de Windows :(. –

Respuesta

5

Terminé implementando una aplicación personalizada que funciona muy similar al Administrador de Modificación Nexus. Escribí una aplicación C# que registra un Application URI Scheme personalizado. Así es como funciona:

  1. El usuario hace clic en "Imprimir" en el sitio web.
  2. Web Enlaces de usuario "CustomURL:. // Imprimir/{ID}
  3. aplicación es lanzada por las ventanas a través del esquema URI encargo
  4. aplicación se comunica con el servidor pre-configurado para confirmar la solicitud de impresión y en mi caso obtenga el comando de impresión real.
  5. La aplicación utiliza la clase C# RawPrinterHelper para enviar comandos directamente a la impresora.

Este enfoque requirió una descarga inicial por parte del usuario, y un único mensaje de seguridad desde Windows al iniciar la aplicación por primera vez. También implementé algo de magia Javascript para que detectara si el trabajo de impresión se manejó o no. Si no fue así, les pide que descarguen la aplicación.

8

Sé que esta es una respuesta tardía, pero aquí hay una solución que estoy usando. Solo lo he usado con IE y no lo he probado con ningún otro navegador.

Este golpe de impresión secundaria reemplaza de manera efectiva la función de impresión predeterminada.

<script language='VBScript'> 
Sub Print() 
     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> 

A continuación, utilice Javascript window.print(); vínculos a un hipervínculo o un botón para ejecutar el comando de impresión.

Si desea imprimir automáticamente cuando se carga la página, coloque el código debajo de la etiqueta near.

+0

VBScript no funcionará en ningún otro navegador, punto. Pero es un buena solución para IE – eis

+1

Solo para seguir, terminé implementando una aplicación Java llamada jZebra. Esta aplicación requiere la primera aprobación de instalación/seguridad. https://code.google.com/p/jzebra/ – teynon

3

Encontré un excelente plugin de Firefox que solucionó este problema. prueba el seamless printing plugin de firefox que imprimirá algo desde una aplicación web sin mostrar un cuadro de diálogo de impresión.

  1. abierto Firefox
  2. Buscar por nombre de complemento de impresión sin problemas e instalarlo
  3. Después de la instalación exitosa conseguirá por alto la ventana de impresión cuando el usuario quiere imprimir nada.
Cuestiones relacionadas