2011-03-07 30 views
6

¿Es posible imprimir algo con una impresora con javascript en el navegador?Imprimir desde el navegador javascript?

Quiero imprimir un número de recibo, así que si es posible, ¿cuál es la impresora más rápida para que cuando el usuario haga clic en un botón se imprima, por ejemplo. "1234" en un papel pequeño.

Gracias

Respuesta

11

No puede acceder a la impresora directamente desde Javascript pero puede llamar al window.print() que iniciará el comportamiento de impresión estándar del navegador. Con esto, puede probar dos técnicas para lograr lo que busca:

Justo antes de llamar al window.print(), inyecte una hoja de estilos de impresión dinámica que solo muestre los elementos con el texto que desea imprimir. Debería tener cuidado de limpiar las hojas de estilo de impresión anteriores. O, de hecho, podría simplemente usar un elemento <div id="printable">, que es el único elemento visible en su hoja de estilo de impresión e insertar cualquier texto que se imprima en eso. (Tenga en cuenta que este es un sitio web que los usuarios pueden querer imprimir)

También es posible llamar al print() directamente en una ventana iframe, que puede rellenar con el texto que desee. Por ejemplo:

var iframe = document.createElement('iframe'); 

iframe.onload = function() { 
    var doc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; 
    doc.getElementsByTagName('body')[0].innerHTML = "<p>1234</p>"; 

    iframe.contentWindow.focus(); // This is key, the iframe must have focus first 
    iframe.contentWindow.print(); 
} 

document.getElementsByTagName('body')[0].appendChild(iframe); 
4

No puede acceder a la configuración de impresión desde el navegador.

Esto se debe a consideraciones de seguridad, de lo contrario las impresoras de todo el mundo imprimirían sin parar.

Lo único que puede hacer con respecto a la impresión en javascript en la llamada window.print();.

Cuestiones relacionadas