So I bought a new printer recently: a Canon PIXMA iP1600. I have a computer running dual-boot Windows XP and Gentoo, and a Mac Mini. Clearly the most logical setup is to put the printer on the Mac, and have my other computer share the printer; I just have to set up Gentoo and XP both to look for the Mac printer. Then I can print from all three operating systems.
In case you haven't guessed at this point, no, this is not going to be pretty.
Of course, sharing a printer from OS X is so simple a brain damaged dog with no legs could set it up. System Preferences, Sharing, click Printer Sharing. The end.
Of course, getting XP to recognize that printer is never that simple. Start Menu, Control Panel, Printers and Faxes, "Add a printer", Next, "A network printer, or a printer attached to another computer", Next, "Browse for a printer", Next, and then to my amazement, the printer was actually listed there! So I picked it and clicked Next, hoping for a miracle.
Yeah right. I got some ridiculous message about "The server does not have the correct driver installed" and then I got a list of about a billion printers I had to pick from. My printer was not listed, so I clicked "Have Disk..." which is really an intuitive name for a button, isn't it? (sarcasm)
For whatever reason, this defaults to looking at the A: drive. There is no A drive on my computer. I don't have a floppy drive. Good to know that Windows XP is still stuck in 1989. So I fished out the DVD that came with the printer, had to go into the "Win2000" folder (I know that Win2k drivers are likely to work on WinXP; how many other people would be likely to know this?), searched through 6 levels of subfolders until I found ip1600.inf. Blindly, I double-clicked it. Windows then apparently did some voodoo and the driver appeared in a separate window. I selected it and clicked Next a bunch of times until I got a Finish, and then a new printer appeared in the Control Panel. Excellent!
So I opened up Notepad, and tried to print something. It went through just fine, and XP reported no errors. OK, great. But nothing printed. Then I noticed the printer was off. PEBKAC, or in this case I guess PEBPAC. So I turned it on and printed again. Again, no errors. My printer made a slight noise (I think the roller inside was turning) but nothing printed.
So I checked OS X. I looked in the print Queue, which again, is exactly where you'd expect (System Preferences, Print & Fax, Print Queue). There are two big tabs, Active or Completed. Active said "No job printing". Completed showed two jobs finished. Both were called crap like "smbprn.00000003", which I assume means my printer is being shared via Samba. OK. It said State is Finished, and the correct time. But nothing printed!
So I googled. Reading macosxhints I saw a bunch of stuff. I skipped down to where someone writes about how to use CUPS.
So, I looked at http://127.0.0.1:631 in Firefox on my Mac, and I saw the printer I already added. It was simple enough to add a new one, selecting "raw" as the type. After adding all that, I went back to XP and went through the long list of Next's until I got to a part where I could put in a printer address on the network. Typing in http://mini:631/printers/CUPS (CUPS is what I called the "new printer" I added in OS X) I kept on Next'ing until I got to the end. Success, a new printer.
So I tried one more time in Notepad to print something. And lo and behold, it worked!
Now, my only worry is whether or not the printer is going to work in XP next time I reboot. You see, every time I reboot, XP forgets the Samba password for my Mac. So when I try to play some music in XP that resides on my Mac's hard drive, it gives all kinds of stupid errors. If I go into My Computer and double-click the drive I have mapped to the Mini, it asks for a password. If I then try to play music, it magically works.
This is the kind of crap that makes me want to break my Windows XP install CD in half and flush it down the toilet. The most ironic thing here is that a freaking LINUX program (CUPS) saved the day. I'm laughing on the outside. Even if I'm crying on the outside.