There are a number of things that you can't do with JavaScript. Printing directly to a printer without displaying the print dialog box first is one of them. JavaScript can't tell which printer your visitor wants to print to or even whether they have a printer at all. There are a number of very good reasons for this and it makes perfect sense that JavaScript not be able to write directly to the printer.

If i want to create a web based KIOSK where I call a webpage to print a ticket?
that is a very good reason to allow the print directly to printer
– it might be a good reason but programming languages don’t care if you have a good reason or not for doing something. Javascript can’t write directly to the printer no matter how good your reason is –