You should learn the command language your target printer supports (e.g. ESC/P, ZPL, EPL, etc) to get fast printing performance and then use any of these tools or create one by yourself
qzprint[
^]: free or paid options. requires JAVA VM at the client
WebClientPrint[
^]: paid, requires jQuery & ASP.NET