Alternative to Jzebra/QZ Java Raw Print Plugin after NPAPI being dropped on Chrome Browser
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?
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.
You could try PrintNode which has a simple desktop client and json API. It's really quick and has lots of libs: https://github.com/PrintNode/