The "problem" is that PHP's work is finished once it generates the page to be sent to the browser. PHP is run on the server,
You *could* work out a system where the PHP script establishes a TCP connection to the client's computer and sends a file to the client's own printer (e.g. using a combination of popen() and ssh), but
(a) there are going to be major security issues here,
(b) you need tight control over *both ends* of the connection (client and server); you will simply not find a solution that will work on most client's machines.