I am working on the same thing right now. I have done some testing with Browser Print (
https://www.zebra.com/us/en/support-downloads/printer-software/by-request-software.html), as well as qz (
https://qz.io/).
I think I am going to skip it all and use my own browser to do it though. I have build a few different browsers in the past using cefSharp. This will allow me to use javascript to pass the data straight to the .net side of the app, and then I can send the raw ZPL to the printer.
I am not sure if this can be used with Mac though.