My thorough research on the web provided me with a couple of ideas, but none of them seem to work correctly in my particular use case. Here is what I have:
1) Zebra
Zebra created an application called (BROWSER PRINT) they released April 2016. It appears to be a local JAVA service that runs on your computer and exposes a pseudo rest api. They provide a javascript api to hide the details and simplify usage.
Currently supports (ZD500, ZD410, LP2824+, ZT230, ZT420, QLn320, GX420)
It allows you to select the printer if there are multiple. Also allows 2 way communication where you can ask the printer it's status and get the result. They recently added support for printers connected to Ethernet but do not support printers mapped via Windows UNC path.
https://www.zebra.com/us/en/products/software/barcode-printers/link-os/browser-print.html