Printers are bad. Even beyond the surreal yellow dots of the Illuminati, they just waste paper, i.e. trees, and they cause clutter and general confusion and delay. They train people to behave as if computers didn’t really exist or perhaps as if computers weren’t reliable.

When it comes to unreliable, nothing beats a printer. Today I had someone ask me about a paper jam error. We cleanly removed the paper jam and it kept complaining about it, never to work again. Toner levels are notorious reliability buzz kills too.

The most reliably insane part of printing in my experience is configuring printers to work with Windows. Perhaps I’m spoiled by configuring printers for Linux (I support a dozen Linux workstations that can all print just fine). Linux uses the Common Unix Printing System. Sounds very Unixy, right? Well, Apple created it so setting up Macs to print is also quite easy and reasonable. This is double mind-blowing to me because Windows is the OS. If the printer vendors aren’t actually taking care to make their hardware work with Windows, what exactly are they doing? Today I was also asked to help a simple normal Windows computer print to a simple laser printer on the ethernet. Simple right? Not with Windows! This task is like a grand spectacle of WTF.

Here are the more memorable surreal issues I encountered while trying to do this ridiculously simple thing.

  • "Devices and Printers" is the Windows control panel category. Not "Devices" with a subcategory of "Printers". No. That would make sense. This way, it’s more fun to find when you’re looking for "Printers" in an alphabetical list.

  • Need a remote network printer? The options are "Add a local printer" and "Add a network, wireless, or Bluetooth printer". Well, duh, obviously you’d choose the second one. But in bizarro Windows land that would be wrong! Don’t believe me? See step 3 of this Microsoft guide to installing a remote printer. To add a normal TCP/IP printer that’s available and waiting to print from an ordinary IP address, you choose "Add a local printer". Then when you choose "Create a new port" you select the TCP/IP option. Oh ya, very local. When I learned this trick I immediately had to take deep breaths and think of puppies.

  • Speaking of ports, the concept of a "port" to Windows might as well be referring to beverages because it is not at all obvious what it has to do with TCP/IP networking ports, if anything. From Microsoft themselves: "In the Port Name box, type a port name, which can be any character string, or use the default name that the wizard supplies." The default is actually the value of the "Hostname or IP address" field. That would be like saying the port of this web site is "xed.ch" (and not 80). How weird. Yet Microsoft does kind of understand that a port should be a number. I could learn more about this I suppose but I could also learn more about the merits of Scientology too.

  • Printer sharing. Why would I ever want people to connect to my computer to use a printer that is sitting on the open network ready for anyone to use? Windows knows this is true because I just told it.

  • "Install the printer driver" has an option for "Windows Update"; why not a "list of available printers update"? I don’t necessarily want to spend the next 6 hours (don’t laugh) updating the entire wretched OS. Just tell me if there is a printer driver.

  • Normally I prefer a succinct explicit and repeatable command line technique. And while researching this topic, I found Windows actually sort of supports this. I’m not usually timorous about command line syntax, but wow…

    rundll32 printui.dll,PrintUIEntry /if /b "printer" ^
    /f %windir%\inf\prnhp002.inf /r "IP_10.0.0.100" ^
    /m "HP LaserJet 4200/4300 PCL6" /Z

And what is that inf file? Where can I find the correct one for my printer?

  • One way to find it, apparently, is by clicking "Have disk". Like it’s 1999. And even if you had the disk that came with the printer, would it have the magic inf file? Most likely not in an obvious way. Most likely it would be packed with the printer vendor’s abusive bloatware executable. The one from HP I looked at today had a EULA that, for example, mentioned some affiliation and sell-out to coupons.com as well as no less than eight HP "utilities" that did god-knows-what.

  • Although it’s probably quite a bad idea, these printers are their own web servers. Why not simply host their own drivers? That’s the one file that would make sense for the printer to serve in this way!

  • Well, HP is not 100% brain dead in this respect because I found something today on the printer’s web server that was basically a link to HP Smart Install which is a generic installer thing, not even supported any more. Trying to use that, unfortunately, ended in frustration after it asked for the IP of the printer and then said that it couldn’t find the printer. Remember this is the exact same IP address I used to connect to that very printer’s web server to download this exact program which is telling me it can’t connect to that printer. Actually, yes, 100% brain dead. My guess is the problem was that it asked for an IP address but assumed the printer would be on the same subnet. It’s not. This sounds like an exotic set up, but it’s just that the printer is on a sensible local only address in our system and, on the same switch, the printer’s client computer is on a real IP address, both perfectly accessible to each other but unforeseen enough by HP to fatally confuse the driver installer.

  • Often in these cases, I just give up and start choosing available drivers that I hope are similar to the one I really need based on name similarity. Is "HP Color LaserJet 4000" similar to "HP Color LaserJet CP451dn"? Who knows. Keep guessing until one works. Fun!

  • Now "Print a test page". Cross your fingers! OMG! It prints! Great! Wait, the bottom of the page is cut off halfway through a line of text. Is that a success or a failure? I give printing with Windows an F.

Although my lack of Windows printing expertise is no doubt obvious to some, my expert advice, which serves me well, is still the best cure to the problem: Don’t print and don’t use Windows!