ticket texto que mantenga los imprimir impresora hacer estilos div directamente contenido con como javascript jquery printing

texto - Impresión de recibos de Javascript utilizando la impresora POS



imprimir ticket jquery (8)

En una aplicación web, quiero imprimir un recibo usando una impresora POS (punto de venta). Quiero hacer eso con Javascript. ¿Alguien puede darme un ejemplo para eso?


Si está hablando de una aplicación POS basada en el navegador, básicamente no se puede hacer de inmediato. Hay una serie de alternativas.

  1. Use un applet como dice Scott Selby
  2. Imprimir desde el servidor. Si se trata de un servidor en la nube, es decir, no se puede conectar a la impresora de recibos, entonces lo que puede hacer es
    • Desde el servidor generarlo como un pdf que se puede hacer para abrir un cuadro de diálogo de impresión en el navegador
    • Use algo como Google Cloud Print que permita conectar impresoras a un servicio en la nube

Voy a dar un paso aquí, ya que su pregunta no fue muy detallada, que a) su impresora de recibos es una impresora térmica que necesita datos brutos, b) que "desde javascript" está hablando de imprimir desde el navegador web y c) que no tiene acceso para enviar datos brutos desde el navegador

Aquí hay un Applet de Java que resuelve todo eso por ti, si estoy en lo correcto con respecto a esas suposiciones, entonces necesitas Java, Flash o Silverlight http://code.google.com/p/jzebra/


Imprimí un formulario javascript en una impresora térmica Star Micronics Webprnt TSP 654ii. Esta impresora es una impresora de red con cable y puede dibujar el contenido en un lienzo HTML y realizar una solicitud HTTP para imprimir. La única advertencia es que esta impresora aún no es compatible con el protocolo HTTPS, por lo que obtendrá una advertencia de contenido mixto en producción. Se contactó con el soporte de Star Micronics y dijeron que están trabajando en compatibilidad con HTTPS y que pronto estará disponible una actualización de firmware. Además, parece que la impresora Epson Omnilink TM-88V con TM-I admitirá la impresión de javascript.

Aquí hay un código de muestra: https://github.com/w3cloud/starwebprint





Recientemente implementé la impresión de recibos simplemente presionando un botón en una página web, sin tener que ingresar las opciones de la impresora. Lo hice usando EPSON javascript SDK para ePOS . Lo he probado en la impresora de recibos EPSON TM-m30 .

Aquí está el código de ejemplo.

var printer = null; var ePosDev = null; function InitMyPrinter() { console.log("Init Printer"); var printerPort = 8008; var printerAddress= "192.168.198.168"; if(isSSL) { printerPort = 8043; } ePosDev = new epson.ePOSDevice(); ePosDev.connect(printerAddress, printerPort, cbConnect); } //Printing function cbConnect(data) { if(data == ''OK'' || data == ''SSL_CONNECT_OK'') { ePosDev.createDevice(''local_printer'', ePosDev.DEVICE_TYPE_PRINTER, {''crypto'':false, ''buffer'':false}, cbCreateDevice_printer); } else { console.log(data); } } function cbCreateDevice_printer(devobj, retcode) { if( retcode == ''OK'' ) { printer = devobj; printer.timeout = 60000; printer.onreceive = function (res) { //alert(res.success); console.log("Printer Object Created"); }; printer.oncoveropen = function () { //alert(''coveropen''); console.log("Printer Cover Open"); }; } else { console.log(retcode); isRegPrintConnected = false; } } function print(salePrintObj) { debugger; if(isRegPrintConnected == false || printer==null) { return ; } console.log("Printing Started"); printer.addLayout(printer.LAYOUT_RECEIPT, 800, 0, 0, 0, 35, 0); printer.addTextAlign(printer.ALIGN_CENTER); printer.addTextSmooth(true); printer.addText(''/n''); printer.addText(''/n''); printer.addTextDouble(true, true); printer.addText(CompanyName + ''/n''); printer.addTextDouble(false, false); printer.addText(CompanyHeader + ''/n''); printer.addText(''/n''); printer.addTextAlign(printer.ALIGN_LEFT); printer.addText(''DATE: ''+currentDate+''/t/t''); printer.addTextAlign(printer.ALIGN_RIGHT); printer.addText(''TIME: ''+currentTime+''/n''); printer.addTextAlign(printer.ALIGN_LEFT); printer.addTextAlign(printer.ALIGN_RIGHT); printer.addText(''REGISTER: ''+RegisterName+''/n''); printer.addTextAlign(printer.ALIGN_LEFT); printer.addText(''SALE # ''+SaleNumber+''/n''); printer.addTextAlign(printer.ALIGN_CENTER); printer.addTextStyle(false, false, true, printer.COLOR_1); printer.addTextStyle(false, false, false, printer.COLOR_1); printer.addTextDouble(false, true); printer.addText(''* SALE RECEIPT */n''); printer.addTextDouble(false, false); .... .... .... }


EDITAR: 27 DE NOVIEMBRE DE 2017 ─ ENLACES ROTOS

Los enlaces a continuación sobre las publicaciones escritas por David Kelley están rotos .

Hay versiones en caché del repositorio, solo agrega cache: antes de la URL en el navegador Chrome y presiona enter.

Esta solución es solo para navegadores basados en Google Chrome y Chromium .

EDITAR:

(*) Los enlaces están rotos. Afortunadamente, encontré este repositorio que contiene el origen de la publicación en los siguientes archivos de marcación: A | segundo

Este enlace * explica cómo hacer una interfaz de Javascript para impresoras ESC / POS utilizando Chrome / Chromium USB API (1) (2) . Este enlace * explica cómo conectarse a dispositivos USB usando la API chrome.usb.* .