One of the things that I have found hardest to get working over the years is printing to a printer attached to a Windows machine from my Linux machines. In general Linux will print to about everything and even has some success with those cheap GDI laser printers that rely on Windows to render pages. Postscript printers work wonderfully as do Network printing.
My particular problem has been to print to Inkjet printers attached to Windows machines. Well after a long, long search I have made progress thanks to some Ubuntu mailing lists. It turns out that Windows XP (and I guess 2000 and Vista too) have some extra facilities that you can use.
If your Windows printers are shared over your Windows network and all is working well you can get Linux printing working well by:
On the Windows XP Machine
- Go to the Install Software and Install Windows Software. Choose to install Other Network File and Print Services and choose the Unix Line-Printer service.
- Go to Management Console’s Services sections and TCP/IP Print Services. Make sure these are started and set to automatic so they run at each reboot.
- On the Windows Firewall (or other Firewall program you are running) open port 515 on the and call it LPD or something
- Finally on the printer you want to share disable bi-directional printing support as this just doesn’t seem to work over the network.
On the Linux Machine (I use KDE desktop but it should be similar in Gnome or even from the http://localhost:631 control panel)
- Create printer
- The backend should be a LPD network printer
- Give IP address or host name of printer
- For the print Queue give Windows share name of the printer
- Follow through with the installation and select the right driver for the printer.
- Give it a good name and save!
- Try a test print! Success! (I hope!)