I'm sorry to bump this thread.
I've done an application that can print to a client on LAN. It is a barcode labeling system that has maximum of 4 clients that do the printing, and few others that handles data.
you can actually open a network printer via this:
printer_open("\\\\client.ip.address\\sharename");
and send printer commands to it given these requirements:
1. apache (php on apache) is run by a normal user that has network privilege and has access to the lan printer. (To make it complicated, I set that user's username and password available to every client that has printing job. That is because Windows XP SOMETIMES denies access to shared resource whatever permission you set.)
2. php printer extension is installed.
Of course the server must know where to print. I've done this by having a printer database for each client along with the printer share name.
Our application has been running already a year.
PS: It is error prone (network / windows issues)