Alternative to Jzebra/QZ Java Raw Print Plugin after NPAPI being dropped on Chrome Browser
google-chrome, java, javascript, printing
Solution
Is there a Chrome API (HTML5 and Javascript) that will be able to replace the communication between the browser and the locally installed POS printers in USB or Ethernet?
Update: A pure HTML5 solution exists for USB devices, but examples are currently hard to find and browser adoption has been slow:
- WebUSB USB devices only, select browsers.
In regards to HTML5 and JavaScript, since the removal of NPAPI, the solution tends to involve WebSocket to localhost, or cloud-enabled printers.
This HTTP/WebSockets design is used by:
- Zebra Link-OS and Cloud Connect (for label printing, etc)
- Epson ePOS-Device (for receipts, display, barcode scanner)
- Dymo JavaScript Framework 2.0 (for label printing, etc)
- PrintNode
- Google Cloud Print (Slated for retirement Dec 2020)
- Neodynamic TLClient Print (.NET-based for thermal printers)
- QZ Tray software (the successor to "JZebra/QZ-Print", labels, receipts, anything raw, PDFs, HTML, USB Scales, USB barcode readers, serial devices)
In regards to Point-Of-Sale specific printing, I have been unable to locate a ready solution that meets these needs (pure HTML5 and JavaScript, widely adopted), so either a Desktop-installed middle-ware or a server-side middle-ware is currently the way to achieve what you are describing.
Full disclaimer, we're the authors of QZ Tray.
Problem
We all know that NPAPI will be completely removed from Chrome in a few months. What would be an alternative to the Jzebra/QZ Java plugin that makes raw printing (sending raw ESC/P commands) to POS printers? Is there a Chrome API (HTML5 and Javascript) that will be able to replace the communication between the browser and the locally installed POS printers in USB or Ethernet?