The built-in print sharing based on Internet Printing Protocol (ipp://) seems to work pretty well. In terms of configuring the server and Ubuntu clients, it is the easiest to manage, as no editing of a text file is needed.
Another problem I had with Ubuntu clients talking to a Windows machine sharing a printer was that it would keep failing. The problem was on the Ubuntu side, and the solution was to use usernames and passwords to connect to the print server, but still, it was annoying.
The following is based on the Ubuntu documentation wiki NetworkPrintingWithUbuntu
On the machine sharing the printer - the server
Open the System -> Administration -> Printing launcher for
In the "Printer configuration" dialog box, select the Server -> Settings menu.
In the "Basic Server Settings" dialog box, select the option Publish shared printers connected to this system
Going back to the "Printer configuration" dialog box, open the Properties dialog box for your printer
Open the "Policies" view and make sure that Enabled, Accepting Jobs, and Shared are selected
On the Ubuntu 9.10 or 9.04 machine needing to print - the Ubuntu Client
- The easy way: System -> Administration -> Printing, select the Server -> Settings menu, and select the option Show printers shared by other systems.
- If the machines are on the same subnet, and perhaps even farther afield from each other, the remote printer should just show up
- If you look at the properties of the printer, you will see that the device URI is of the form:
- The more secure way, because you aren't auto-laoding things from the network:
- System -> Administration -> Printing, hit the +New button
- Under the Network Printer menu, select Internet Printing Protocol (ipp)
- In the IPP Printer sub dialog box,
- for the Host: field, enter a name or IP address for the desired printer, e.g., 10.10.10.52
- for the Queue: fiend, append the given name of the printer (you will need to look at the server's "Printer configuration** dialog box to find it, e.g., Office
- The Verify button should light up. Click it. Wait for some affirmation that the remote printer is good to go.
- Click the Forward button and follow the wizard to complete the configuration of the printer.
On the Windows machine needing to print - the Windows clinet (tested with XP)
The Windows client has the ability to print to a remote printer via ipp.
- Add a printer
- Set to "A network printer"
- Select the option Connect to a printer on the Internet or on a home or office network and simply enter the URI to the printer, e.g., ipp://10.10.10.52/printers/Office.
- Select your driver. It may take a bit of hunting, but it seems to be the same scenario as with accessing a printer with Microsoft's SMB protocol
On the Mac OS X machine needing to print - the Mac client
This was pretty easy. The only problem I found was that the Mac OS X did not want to use the specific driver for the printer. The machine has the driver installed, as we have directly attached the printer to the macintosh in the past, but when connecting over IPP, Mac OS X seems to only want to use the Generic Postscript Printer driver.
work in progress