2010-11-27 38 views
14

La continuación snippet trabajando bien, pero abriendo la ventana de cuadro de diálogo,Javascript impresión sin cuadro de diálogo de impresión

pero no quiero para abrir el cuadro de diálogo de impresión,

acaba de impresión debe hacerse sin cuadro de diálogo,

lo fragmento debería añadir en el siguiente fragmento de código,

Y también una duda, quiero llevar a cabo la impresión en impresoras matriciales, el siguiente fragmento de código trabajará saber?

var prtContent = document.getElementById(strid); 
var WinPrint = 
window.open('','','left=0,top=0'); 
WinPrint.document.write(prtContent.innerHTML); 
WinPrint.document.close(); 
WinPrint.focus(); 
WinPrint.print(); 
WinPrint.close(); 
prtContent.innerHTML=strOldOne; 

he desarrollado la aplicación de facturación,

si muestro el cuadro de diálogo de impresión, a continuación, se consumen unos segundos para dar la impresión, consulte i hecho tener más impresora, tengo sólo una impresora, que es de matriz de puntos, cuando cada vez que dé la orden de impresión, entonces se debe imprimir la factura sin abrir el cuadro de diálogo de impresión,

+2

¿Cómo esperas que el usuario elija la impresora para imprimir? –

+1

@Ignacio Vazquez-Abrams: la mayoría de los sistemas tienen la noción de una "impresora predeterminada". Sin embargo, imprimir desde un navegador sin la confirmación del usuario suena como una idea no muy buena ("¡pero POR SUPUESTO, todos los visitantes de nuestro sitio web querrán tener una copia impresa de nuestro nuevo anuncio!" - se visualizaron ventanas emergentes en la pantalla suficientemente malo) – Piskvor

+0

Firefox se puede configurar para imprimir directamente sin mostrar el diálogo, ver http://forums.mozillazine.org/viewtopic.php?t=48336 – Nelson

Respuesta

9

Esto es totalmente posible. Trabajo en la banca y tenía una página web que los cajeros necesitaban para imprimir automáticamente cuando se contabilizaba una transacción. Como hacen transacciones todo el día, los ralentizarían si tuvieran el cuadro de diálogo en pantalla cada vez. Este código seleccionará su impresora predeterminada e imprimirá directamente en ella sin cuadro de diálogo.

<form> 
<input type="button" value="Print Page" onClick="window.print()"> 
</form> 


<script language="VBScript"> 
// THIS VB SCRIP REMOVES THE PRINT DIALOG BOX AND PRINTS TO YOUR DEFAULT PRINTER 
Sub window_onunload() 
On Error Resume Next 
Set WB = nothing 
On Error Goto 0 
End Sub 

Sub Print() 
OLECMDID_PRINT = 6 
OLECMDEXECOPT_DONTPROMPTUSER = 2 
OLECMDEXECOPT_PROMPTUSER = 1 


On Error Resume Next 

If DA Then 
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1) 

Else 
call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","") 

End If 

If Err.Number <> 0 Then 
If DA Then 
Alert("Nothing Printed :" & err.number & " : " & err.description) 
Else 
HandleError() 
End if 
End If 
On Error Goto 0 
End Sub 

If DA Then 
wbvers="8856F961-340A-11D0-A96B-00C04FD705A2" 
Else 
wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B" 
End If 

document.write "<object ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:" 
document.write wbvers & """> </object>" 
</script> 
+0

pregunta rápida, este trabajo en toda la plataforma. (Win, linux, mac) – Bharanikumar

+0

No estoy seguro. Solo uso IE en una PC con Windows. – JoBaxter

+12

Eso es específico de IE. – thejh

2

no es posible, y hay algunas buenas razones para ello:

  • el usuario podría querer elegir una impresora
  • El usuario podría querer controlar cuándo se activará su impresora (imagínese popups autodescriptivos desagradables, ARRGH!)
  • el usuario podría querer especificar la configuración de la impresora (en escala de grises o en color, resolución, tamaño, ...)
+1

Es posible. Por favor mira mi comentario. Y mis usuarios son cajeros que necesitan imprimir automáticamente cuando se publica una transacción. Imprimen en la misma impresora con la configuración predeterminada. Nada cambia nunca más que la siguiente persona que se acerca a la ventana de los escrutadores. – JoBaxter

+4

-1 Esta no es la respuesta. Alguien sabe por qué necesitamos diálogo. Pero hay muchos escenarios donde la impresión sin diálogo ahorra tiempo y dinero. En la banca, por ejemplo. –

+0

no compro esto como una respuesta, más como un comentario de "no deberías hacer eso". Necesito exactamente lo que el OP está pidiendo porque estoy tratando de escribir un programa que imprima cheques, y no puedo permitir que el usuario use el diálogo de impresión para esto. la respuesta aceptada está cerca de lo que estoy buscando. –

8

parece que la mayoría de personas se concentraron en los aspectos negativos de esta característica.

Sí, en la mayoría de los casos no sería deseable que un sitio web pudiera suprimir el cuadro de diálogo.

Pero en algunos casos, como este ejemplo, donde está tratando de imprimir un recibo de su negocio desde el navegador. Como entiendo en un caso así, cada segundo es demasiado valioso como para desperdiciarlo, confirmando potencialmente cientos de recibos por día.

¡Después de todo, es un negocio, donde el tiempo es dinero!

Hay un sinnúmero de otros casos en los que uno quisiera suprimir el cuadro de diálogo, como que los vendedores de eBay impriman sus etiquetas antes del envío.

De modo ideal, el desarrollador del sitio web debería poder especificar algunos parámetros básicos como el nombre de la impresora, el color/monocromático, la calidad y el tamaño del papel. Y ordene la impresión por completo desde el servidor de origen sin requerir ninguna acción del usuario, excepto, por supuesto, configurar estos parámetros solo una vez. Desafortunadamente, la mayoría de los navegadores aún no están disponibles, ya que sus desarrolladores aún no han desarrollado todas las posibilidades de alojamiento de aplicaciones en la nube, incluidas aplicaciones que utilizan impresoras como POS y software de impresión de etiquetas. Por cierto, ¡aquí hay un gran nicho para el software como servicio!

La buena noticia es que ya es posible lograr algo similar en Firefox, donde puedes cambiar la configuración del navegador para habilitar lo que ellos llaman "Impresión silenciosa", debes configurarlo como "Siempre" y estarás bien .

Estoy seguro de que IE también podría tener alguna forma de hacerlo, pero aún no lo he encontrado.

¿Alguien sabe cómo está el estado de la impresora y las características de impresión ofrecidas por otros navegadores convencionales como Chrome y Opera?

2

Descargar Google Chrome versión 18.xx.xx.xx y se puede utilizar banderas de desconectar la impresora de diálogo

--kiosk-noprint

Algo de esa manera no puedo recordar bien la parte superior de mi cabeza, pero google ayudará en eso. Eso permitirá que el diálogo permanezca fuera del camino cuando selecciones lo que quieras imprimir.

Cuestiones relacionadas