Is there a Chrome API (HTML5 and Javascript) that can facilitate communication between the browser and locally installed POS printers in USB or Ethernet?
Update: While a pure HTML5 solution exists for USB devices, examples are currently scarce and browser adoption has been slow:
- WebUSB is limited to USB devices and select browsers.
With the removal of NPAPI, the prevalent solution involves WebSocket connections to localhost or cloud-enabled printers using HTML5 and JavaScript.
This approach is utilized 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 (to be retired in Dec 2020)
- Neodynamic TLClient Print (.NET-based for thermal printers)
- QZ Tray software (successor to "JZebra/QZ-Print", supports labels, receipts, raw data, PDFs, HTML, USB scales, USB barcode readers, serial devices)
In terms of Point-Of-Sale specific printing, a comprehensive solution meeting requirements of pure HTML5 and JavaScript with wide adoption remains elusive. Utilizing desktop-installed middleware or server-side options is presently the recommended approach to achieve the desired functionality.
It is important to note that we are the creators of QZ Tray.