Imprima directamente a la impresora con JavaScript

Una consulta que aparece mucho en los diversos foros de Javascript pregunta cómo enviar la página directamente a la impresora sin mostrar primero cuadro de diálogo de impresión.

En lugar de solo decirte que no se puede hacer quizás una explicación de por qué tal opción no es posible sería más útil.

Qué cuadro de diálogo de impresión aparece cuando alguien presiona botón de imprimir en su navegador o el Javascript window.print () El método que se ejecuta depende del sistema operativo y de las impresoras instaladas en la computadora.

Como la mayoría de las personas ejecuta Windows en su computadora, describamos primero cómo funciona la configuración de impresión en ese sistema operativo. Los sistemas operativos * nix y Mac difieren ligeramente en los detalles, pero en general están configurados de manera similar.

Diálogo de impresión

Hay dos partes en el cuadro de diálogo de impresión en Windows. El primero de ellos es parte de la API de Windows (interfaz de programación de aplicaciones). La API es un conjunto de piezas de código comunes que se encuentran en los diversos archivos DLL (

instagram viewer
Biblioteca de enlaces dinámicos) archivos que forman parte de Windows sistema operativo. Cualquier programa de Windows puede (y debe) llamar a la API para realizar funciones comunes, como mostrar el cuadro de diálogo Imprimir para que funciona de la misma manera en todos los programas y no tiene diferentes opciones en diferentes lugares, como la opción de impresión en el programa DOS dias. La API Print Dialog también proporciona una interfaz común que permite que todos los programas accedan al mismo conjunto de controladores de impresora. que los fabricantes de impresoras que tienen que crear un software controlador para su impresora para cada programa individual que quieran usar eso.

Los controladores de impresora son la otra mitad del cuadro de diálogo de impresión. Hay varios idiomas diferentes que las diferentes impresoras entienden que usan para controlar cómo se imprime la página (p. Ej. PCL5 y Postscript). El controlador de impresora le indica a la API de impresión cómo traducir el formato de impresión interno estándar que el sistema operativo entiende en el lenguaje de marcado personalizado que la impresora específica entiende También ajusta las opciones que muestra el cuadro de diálogo Imprimir para reflejar las opciones que ofrece la impresora específica.

Operando la Impresora

Una computadora individual puede no tener impresoras instaladas, puede tener una impresora local, puede tener acceso a varias impresoras a través de una red, incluso puede configurarse para imprimir en PDF o impresión preformateada archivo. Cuando se define más de una "impresora", una de ellas se designa como impresora predeterminada, lo que significa que es la que muestra sus detalles en el diálogo de impresión cuando aparece por primera vez.

El sistema operativo realiza un seguimiento de la impresora predeterminada e identifica esa impresora a los diversos programas en la computadora. Esto permite que los programas pasen un parámetro adicional a la API de impresión diciéndole que imprima directamente a la impresora predeterminada sin mostrar primero el diálogo de impresión. Muchos programas tienen dos opciones de impresión diferentes: una entrada de menú que muestra el cuadro de diálogo de impresión y un botón de impresión rápida de la barra de herramientas que se envía directamente a la impresora predeterminada.

Cuando tiene una página web en Internet que sus visitantes van a imprimir, no tiene casi ninguna información sobre las impresoras que tienen disponibles. La mayoría de las impresoras de todo el mundo están configuradas para imprimir en papel A4, pero no puede garantizar que la impresora esté configurada con ese valor predeterminado. Un país de América del Norte utiliza un tamaño de papel no estándar que es más corto y más ancho que A4. La mayoría de las impresoras están configuradas para imprimir en modo vertical (donde la dirección más estrecha es el ancho, pero algunas se pueden configurar en el paisaje donde la dimensión más larga es el ancho. Por supuesto, todas y cada una de las impresoras también tienen diferentes márgenes predeterminados en la parte superior, inferior y laterales de la impresora. página incluso antes de que los propietarios entren y cambien todas las configuraciones para que la impresora tenga la forma en que desear.

Teniendo en cuenta todos estos factores, no tiene forma de saber si la impresora predeterminada con su configuración predeterminada imprimirá su sitio web página en A3 con márgenes insignificantes o en A5 con márgenes enormes (dejando poco más que un área del tamaño de un sello de correos en el medio del página). Probablemente pueda suponer que la mayoría tendrá un área de impresión en la página de aproximadamente 16 cm x 25 cm (más o menos 80%).

Necesidades de impresión

Dado que las impresoras varían mucho entre sus visitantes potenciales (¿alguien mencionó impresoras láser, impresoras de inyección de tinta, color o blanco y negro solo, calidad de foto, modo borrador y mucho más) no tiene forma de decir qué necesitarán hacer para imprimir su página de manera razonable formato. quizás tienen una impresora separada o un segundo controlador para la misma impresora que proporciona configuraciones totalmente diferentes específicamente para páginas web.

Luego, viene el asunto de lo que pueden querer imprimir. ¿Quieren la página completa o han seleccionado solo una parte de la página que desean imprimir? Si su sitio usa marcos, ¿quieren imprimir todos los marcos de la forma en que aparecen en la página, quieren imprimir cada marco por separado o simplemente quieren imprimir un marco específico?

La necesidad de responder a todas estas preguntas hace que sea casi esencial que el cuadro de diálogo de impresión aparezca siempre que desea imprimir algo para asegurarse de que todos los ajustes sean correctos antes de que lleguen a la impresión botón. La mayoría de los navegadores también ofrecen la posibilidad de agregar un botón de "impresión rápida" a una de las barras de herramientas del navegador para permitir la página que se imprimirá en la impresora predeterminada utilizando la configuración predeterminada del navegador en cuanto a lo que se imprimirá y cómo.

Javascript

Los navegadores no hacen que esta multitud de configuraciones de navegador e impresora estén disponibles para Javascript. Javascript se ocupa principalmente de modificar el actual página web por lo que los navegadores web proporcionan información mínima sobre el navegador en sí y casi no hay información sobre el sistema operativo disponible para Javascript porque Javascript no necesita saber esas cosas para realizar las cosas que Javascript pretende hacer.

La seguridad básica dice que si algo como Javascript no necesita saber sobre el sistema operativo y configuración del navegador para manipular la página web, entonces no se debe proporcionar con eso información. No es que Javascript deba cambiar la configuración de la impresora a los valores apropiados para imprimir la página actual porque no es para eso que está Javascript, ese es el trabajo de impresión diálogo. Por lo tanto, los navegadores solo ponen a disposición de Javascript aquellas cosas que Javascript necesita saber, como el tamaño de la pantalla, el espacio disponible en la ventana del navegador para mostrar la página y cosas similares que ayudan a Javascript a determinar cómo se presenta la página. La página web actual es la única preocupación de Javascript.

Intranets

Las intranets son, por supuesto, una cuestión completamente diferente. Con una intranet, sabes que todos accediendo a la página está utilizando un navegador específico (generalmente una versión reciente de Internet Explorer) y tiene una resolución de pantalla específica y acceso a impresoras específicas. Esto significa que tiene sentido en una intranet poder imprimir directamente en la impresora sin mostrando el cuadro de diálogo de impresión porque la persona que escribe la página web sabe qué impresora será impreso en.

Por lo tanto, el sustituto de Internet Explorer para Javascript (llamado JScript) tiene un poco más de información sobre el navegador y el sistema operativo que Javascript mismo. Las computadoras individuales en la red que ejecutan la intranet pueden configurarse para permitir el JScript window.print () comando escribir directamente a la impresora sin mostrar el cuadro de diálogo de impresión. Esta configuración debería configurarse individualmente en cada computadora cliente y está mucho más allá del alcance de un artículo sobre Javascript.

Cuando se trata de páginas web en Internet, no hay forma de que pueda configurar un Comando Javascript para enviar directamente a la impresora predeterminada. Si sus visitantes desean hacerlo, deberán configurar su propio botón de "impresión rápida" en la barra de herramientas de su navegador.

instagram story viewer