I finally got my Mac (Mac PowerPC G5 running OS X 10.4) to print via a Linksys print server PSUS4 to my HP OfficeJet 5510. I had to compile a number of different hints in order to do this, but wanted to make it easier for the next person.
First, find out the static IP address for your print server -- it's easy to find if you have a PC on your network (which I did; sorry I'm no help on how to figure it out with a Mac). Then do the following:
Download the open-source Linux drivers for HP printers. Make sure you download the hpijs, Foomatic-RIP, and ESP Ghostscript packages.
Install the Footmatic and Ghostscript packages, then restart. You will not be prompted to restart, but it is necessary before you can install the hpijs package.
Install the hpijs package and restart again.
Go to the Print & Fax System Preferences pane, and add a printer (click the '+' sign).
In the Add Printer window, select IP at the top of the window, and use the following settings:
PROTOCOL: HP JetDirect-Socket
ADDRESS: 192.168.2.107 -- this is the print server's IP address you figured out earlier
QUEUE: leave blank
NAME: Whatever you want
LOCATION: Whatever you want
PRINT USING: HP OfficeJet 5500 hpijs (the driver you downloaded)
Click Add to add the printer.
Essentially, you've tricked the HP printer into thinking the print server is an HP JetDirect Print Server by setting it up this way. I can print perfectly -- not sure about scanning, though, as I never use it.
My wife's Epson RX680 is used by everyone in the house via printer sharing, so she gets pretty annoyed when the Epson Print Monitor pops up suddenly on top of whatever she's working on. Today she made it annoy me enough so that I had to figure out a proper fix. The fix is to tell Launch Services to launch it in the background.
This requires editing a file within the application Epson Print Monitor, so be sure to back this application up first! The file to back up is /Library » Printers » EPSON » EPW » EPSON Printer Monitor.app.
Once that's backed up, Control-click on it and choose Show Package Contents from the contextual menu. In the Contents folder, you'll see the Info.plist file; we're going to add a new key, LSBackgroundOnly, specifying that this should be true (i.e. launch in the background).
You've probably discovered that your Dell 5100cn color laser doesn't play well with Snow Leopard. Before you list the 5100cn on Craigslist, try this:
Delete your old Dell printer in the Print & Fax System Preferences panel. Install a new printer, but select the Mac-installed Samsung CLP-770 Series PS, and presto! You are back in business, complete with duplex printing and toner supply levels. Sweet!
Because the Canon printer driver installation program will not recognize Mac OS X 10.6, you can't install your printer drivers even though Snow Leopard is a minor update.
To install your Canon printer drivers...
Download the driver disk image.
Mount the disk image and copy the installer package to your desktop.
Control-click on the package and choose Show Package Contents from the pop-up menu.
Navigate to Contents » Resources and delete the file InstallationCheck.
Now double-click the package and install the drivers normally.
[robg adds: I'm not sure if future Canon updates in 10.6 will be included in Software Update or not -- that is one of the supposed features of Snow Leopard, but I'm not sure exactly how it will all work.]
I came across this page, an archive of a mailing list post written by Kurt Pfeifle, that gives detailed instructions on how to print PostScript to a file by creating a CUPS backend using a shell script.
It took me ages to find, so I thought it should be more prominently featured. Here's what Kurt has to say about the process:
You can enable a very simple file:/ backend by putting FileDevice Yes into cupsd.conf. However it will not allow raw printing of application/octet-stream files. And the second job will overwrite the first one (because you need to give a filename to the backend, in the device URI, like file:/tmp/print.prn)
You could write your own CUPS backend. Here are the rules for that:
make sure it can read from SDIN and write to STDOUT
make sure if called with zero arguments it responds with a message similar to the other backends (see how they do it)
make sure it takes the 5 or 6 arguments all CUPS filters and backends take in the same order, i.e. backendname job-id user title copies options [job-file]
put it into /usr/lib/cups/backend/ and restart cupsd (check if it is recognized with lpinfo -v)
You can write it in Bash, Perl, C, Python or whatever you like. A very simple "filewrite" backend looks like this:
if [ $# -eq 0 ]; then
echo "direct filewrite "Unknown" "Print any job to file specified in device-URI""
cat $6 > $TARGETFILE
A more advanced one is here...
[robg adds: The code for the advanced backend is quite long, and I'm not certain of the copyrights, so I don't want to duplicate it in whole here. For those interested, please see the linked page for the more complex script. Note that I've formatted the quoted section above, for easier reading, but didn't change any of the content.]
Open System Preferences » Print & Fax, then highlight hp designjet 130nr. Select Open Print Queue, then Utility. On the left side under Maintenance, choose Advanced Functions » Update Firmware.
Do not click: "1. To see if a newer firmware version is available, click here." Despite the instructions from HP, and although you are connected to the internet, click this button instead: "If you do not have access to the Internet and would like to send a new firmware file to your printer, which you have received from HP, click here."
In the next window, do click the Update Firmware button. Do not click the Choose File button. This is mis-labelled, it should say Choose Destination, but don't click it anyway. It merely downloads a useless text file.
Do not interrrupt the firmware installation, or you will need a technician, parallel cable, and a PC. Wait until the HP 130nr printer shuts itself off.
Turn the printer back on.
Next, you need to install the printer (and driver) again; it's already in the standard installation of Mac OS X 10.5:
In System Preference » Print & Fax, delete the original 'hp designjet 130nr' printer.
Run Disk Utility and Repair Permissions.
Add a new 'hp designjet 130nr' printer in the Print & Fax System Preferences panel. You must use Bonjour, not AppleTalk or IP address.
I'm running Mac OS X 10.5.6 and bought a Canon PIXMA iP2600 printer and installed the Printer Driver for OS X (CUPS) Version 10.2.0.0 (released on 09-06-2008, file ip2600sosxcp10200ea8-2.dmg) from this European Canon site.
Supposedly, all I had to do was open System Preferences » Print & Fax, and select the Canon iP2600 series. Doing so, however, requires three properties to be set: Name, Location and Print Using. The last property Print Using was not auto-completed, and required me to select a driver. The Canon driver was not showing in the subsequent list. So here's the fix.
I used an application called Find Any File (see this hint) to search for anything with PPD in its name. This search found a PPD folder inside a Canon iP2600 series 1020.pkg located in /Library/Receipts: /Library » Receipts » Canon iP2600 series 1020.pkg » Contents » PPD. The CanonIJPPD.tgz is what is needed from this folder: /Library » Receipts » Canon iP2600 series 1020.pkg » Contents » PPD » CanonIJPPD.tgz. To reveal the contents of a package, Control-click it and select Show Package Contents from the pop-up menu. Now create this following structure in /Library/Printers, creating folders if they don't already exist:
Now move a copy of CanonIJPPD.tgz from the /Library/Receipts folder to the newly-created en.lproj in the /Library/Printers folder. Unarchive CanonIJPPD.tgz in the en.lproj folder, and that should create a file called CanonIJiP2600series.ppd. Now open System Preferences » Print & Fax, and select Canon iP2600 series and the third property Print Using should be auto-completed with Canon iP2600 series. Add the printer, execute print head alignment if necessary, and you're all done.
Well, this one had been plaguing me ever since which switched our systems over to Leopard in Summer 2008. I found very few hints and nothing that really led to a solution. The following isn't a true solution either; it's more of a brute-force work-around. As of the writing of this post, we are running 10.5.6 across the board and still require this workaround.
First, the problem: You upgraded to Leopard Server and want to push printers out to your clients. You set up your Open Directory (OD) workgroups and computer groups, configure your printers on your print server, then drag them into the User's Printer List in Workgroup Manager (WGM). Check your clients, and sure enough -- all the printers are there, happy as can be. You go on with your day.
In no time at all, everyone is calling because the printers aren't responding as intended. Printers pause for users at random, and demand administrative credentials before they'll start again. Also, if you have a fancy network printer, and want to force duplexing (great for an academic setting), none of those preferences fall through to the clients. What a mess!
Now, the workaround: By understanding what OD is telling the clients and what the clients do with this information, you can trick CUPS into doing what you want. When OD tells a client that it needs to have a certain set of printers configured, all it tells the client is the type of printer, its location, and what name you've given it. This info is dumped into /etc/cups/printers.conf.
If there is an existing printers.conf file, the system will copy it to printers.conf.0, and build a new file incorporating some of the settings from the old one with the new Info, Location, and DeviceURI from OD. So, setting OpPolicy and ErrorPolicy can be done for each printer and retained every time OD refreshes the settings. You can just push out the modified printer.conf to each machine via Apple Remote Desktop (ARD). The big issue for me was setting things like duplexing and default trays, which need to be set in the PPD file for the printer.