Imprimir ticket desde JavaScript sin pedir confirmación

Español | English |By Parzibyte
Al fin un plugin gratuito que imprime usando JavaScript sin pedir confirmación ni nombre de la impresora
Actualización ya existe la versión 2 de este plugin con soporte para texto con acentos e imágenes.

Modo de uso

  1. Configura tu impresora térmica, instala sus drivers (ya sean genéricos o no)
  2. Imprime una página de impresión desde el panel de control, es decir, comprueba que tu impresora funciona antes de continuar
  3. Haz que tu impresora esté compartida. Mira este tutorial
  4. Descarga el plugin (ejecutable) y ábrelo; se ejecutará en segundo plano (puedes cerrarlo desde el administrador de tareas)
  5. Opcional: Ahora puedes ir a los ejemplos, no es necesario escribir código para probar
  6. En tu proyecto, incluye el archivo Impresora.js
  7. Ahora tienes la clase Impresora. Puedes crear una instancia de la misma

Limitaciones

  • No funciona con impresoras en red. El plugin debe estar en la computadora en donde la impresora está presente físicamente

API REST

El plugin inicia un servidor web en el puerto 8000
Recuerda que eres libre de analizar el archivo Impresora.js y los ejemplos para ver cómo se realiza esta comunicación

GET /impresoras

Obtiene la lista de impresoras disponibles

GET /impresora

Obtiene la impresora predeterminada. Regresa una cadena vacía si no hay impresora configurada

POST /imprimir

Imprime en la impresora predeterminada. Recibe un arreglo de objetos (codificado como JSON) que deben tener la propiedad "accion" y "datos"

PUT /impresora

Establece una impresora como predeterminada. Recibe una cadena codificada como JSON, indicando el nombre de la impresora (preferentemente obtenida de la lista). Si es correcto, se imprime un ticket de prueba y la impresora se convierte en predeterminada, si no, se indica y no se imprime ticket

FAQ

Aquí detallo algunas preguntas frecuentes y errores

Sobre los dominios

Cuando obtiene la versión premium del plugin, tiene derecho a 3 dominios o subdominios. Cada dominio o subdominio cuentan por separado, y los subdominios de un dominio no están incluidos al registrar un dominio. También se toman por separado los puertos. Así que, por ejemplo, los siguientes dominios cuentan como separados:

  • ejemplo.com
  • subdominio.ejemplo.com
  • ejemplo.com:8080
Puede igualmente registrar a localhost, solo tome en cuenta los puertos. Pues los siguientes dominios cuentan como separados
  • localhost
  • localhost:7000
  • localhost:8080
Por poner otro ejemplo, los siguientes dominios cuentan como separados debido a que son distintos puertos
  • ejemplo.com
  • ejemplo.com:1000
  • ejemplo.com:4000
Finalmente veamos un ejemplo de 3 dominios/subdominios distintos:
  • pruebas.parzibyte.me
  • parzibyte.me
  • parzibyte.me:8080

Si anteriormente ha agregado un dominio y desea cambiarlo, el cambio tiene un costo, pues no hay forma de que yo elimine (de manera remota) el plugin que le envié anteriormente.
Nota: también puede registrar un dominio con subdominios ilimitados. Cada dominio se incluye a sí mismo y a todos los subdominios del mismo. El costo es de 25 USD por cada dominio. Recuerde que igualmente puede registrar Dominios o subdominios adicionales por 2.5 USD o 40 MXN

Preguntas y respuestas

Pregunta / problema Explicación / respuesta
Error en el servidor: sql: no rows in result set No se ha establecido la impresora, ya sea porque no se ha realizado la acción o porque no hay impresoras válidas, recuerda que si quieres imprimir primero debes establecer la impresora, y luego imprimir.
También puedes usar el método imprimirEnImpresora("nombreDeImpresoraAquí")
Quiero que el plugin se ejecute al iniciar Windows, y que no aparezca la consola En la versión 0.6 he desaparecido la consola, basta con agregar el ejecutable al startup folder. Más información aquí.
Quiero imprimir caracteres especiales como áéí o la letra ñ Por el momento no es posible imprimir estos caracteres especiales ni con la versión premium
Quiero remover el pie y el encabezado Consigue la versión premium
Costo de la versión premium 500 pesos Mexicanos (aproximadamente 26 dólares). Con la versión premium se remueve el encabezado y pie. Obtienes licencia para 3 dominios/subdominios, cada dominio/subdominio adicional cuesta 40 pesos mexicanos (aproximadamente 2.5 dólares)
Método de pago Aquí los puedes ver: Pagos y venta de software
Proceso de compra Realiza el pago en los medios listados anteriormente, después envíame un correo en mi página de contacto con los 3 dominios/subdominios que usarás
¿Es un pago único?
El costo es muy elevado Lo siento, es una forma de cobrar por el trabajo que realizo (el reconocimiento y las estrellas de GitHub no pagan mis gastos). Además, también me gusta el open source, puedes ver los proyectos que he creado y por los que no cobro ni un peso
¿Hay descuentos o promociones? No
¿Al comprar la versión premium obtengo soporte por algún tiempo? No, solo obtienes una licencia para usar el plugin. El máximo soporte que puedo dar es la documentación y los ejemplos, lo demás es responsabilidad del desarrollador. Sin embargo, puedes contratarme para que lo adapte a tu sistema
¿Funciona en Linux y Mac? Sí; teóricamente, solo que no lo he probado porque no he tenido la necesidad, pero estoy un 99.99 % seguro de que sí
Abrir el cajón de dinero Invoca al método cash dentro de tu objeto que instancia de la clase Impresora
Imprimir imagen o logotipo Por el momento no es posible
¿Es compatible con impresoras que no sean térmicas? por ejemplo, de tinta, láser, etcétera No. Es compatible únicamente con impresoras térmicas. Si quieres imprimir a otras impresoras puede que quieras generar un PDF y enviarlo a imprimir usando mi otro plugin

Proceso de compra

  1. Realice el pago en Paypal. Puede hacerlo por 500 MXN o por 25 USD
  2. Envíeme un correo o mensaje indicando el correo desde donde realizó el pago e indíqueme los dominios en donde usará el plugin. Si no cuenta con la lista de los 3 dominios, no importa, puede comenzar con uno o dos, y agregar el resto más tarde
  3. Yo confirmaré el pago y le enviaré el plugin lo más pronto posible
Por favor, lea bien y responda sus dudas antes de proceder al pago, pues no hago reembolsos