Printing with Mac OSX over a network

    Last updated 20.05.02003

Having spent an evening with this, and found a lot of posts, none of which really covered every issue, I post the following in hopes that it will help. Specifically, I'm running OSX.2 (Jaguar), and I wanted to print to a printer hooked up to the LAN server, which is running Linux and CUPS. Most of the problems I had were on the mac end, so...

First, install the latest version of gimp-print on your Mac. Basically, this will install all the printer drivers you could possibly want. Without it, I found I could get the printer to "work" (it printed) but it spat out garbage. Installing software on the mac is truly a dream (at least, relative to other *nix systems). Download both gimp-print and Ghostscript onto your desktop (the download links for both are on the above gimp-print page).

Note that you may already have gimp-print on your system, but you may not have all the drivers that installing this package will provide. You'll know when you get to the "select model" selection of CUPS configuration - there will be few if any drivers, instead of 100's. You may also already have the ghostscript package installed, in which case skip that download.

Double-click on the resulting Ghostscript disk image icon (e.g. espgs-7.05.x-x.ppc.dmg) which will create another icon on your desktop that looks like a cardboard box, and should be titled something like "ESP Ghostscript.mpkg." Double click on this, and drag the ".pkg" file from the open window onto your desktop. Now you should have what looks like a hard drive icon title something like "Install ESP Ghostscript 7.05.5" Double click on this, and you should get an installation menu. Keep hitting ok and continue and agree until you're done.

Repeat this process for gimp-print. You can throw away all the stuff that's now on your desktop (or, being prudent, you could wait until you get it to work - I leave it to you).

There are two ways to add/configure printers on OSX. Through the print center, which you can find either by Applications/Utilities/PrintCenter, or by going to the print dialog and choosing "Edit Printer List" from the Printer menu at the top. However, I much prefer the CUPS system, and will walk you through that. Note that they both do the same thing - add a printer correctly through one, and it will show up in the other.

You get to your CUPS administration via a web browser, using: or http://localhost:631/admin

The latter choice may not work in MSIE.

CUPS screen 1

Choose "Printers" from the top menu, then "Add Printer" down below.

CUPS screen 2

The Name field is probably arbitrary, and simply identifies the printer you are setting up within the print dialog of all your applications. In other words, give this printer a name. It might be best to have the name match the printer on the printer server. Check with your sys admin if you don't know - he or she will be happy to stop baking cookies (or whatever it is they do) and help you out. Sys admins love configuring printers. They live for that shit.

The Location should be http://<hostname>/printers/<printer_name_on_remote_host>. The Description can just match the name. For <hostname>, use the host name or IP of the print server. If you don't know this, you can ask your sysadmin. If you're your sysadmin, it's whatever you type in a web browser to see that machine on the network - say, "". If you're your own sys admin and you don't know, well, what kind of sys admin are you, anyway? The <printer_name_on_remote_host> is defined on the print server itself - again, ask your sysadmin. So, for me, the correct Location is:

    or possibly

The Description is a more detailed description than the name - or you can just copy the name.

CUPS screen 3

Device: choose "Internet Printing Protocol (http)" (note that I could not get IPP (ipp) to work).

CUPS screen 4

Device URI: this is almost the same as the location:

    or possibly

Note the addition of port :631.

CUPS screen 5

Make: should be obvious.

CUPS screen 6

Model: Now you'll see why you installed gimp-print. Choose your printer model, and make certain to use the one that says <printer>,CUPS+Gimp-Print v4.2.x(en) (it's the CUPS+Gimp-Print part that's especially important).

You should now successfully have installed your printer. Now you can theoretically print by choosing the "print" option from your "file" menu, and choosing the printer you just added to the printer list.


If your print server is already up and running, you can test your printr, and your ability to print. From "Administration," choose "Manage Printers" - you should see a message like this: "Printer State: idle, accepting jobs." If you see an error message here, you might have your configuration wrong - go through it once again.

Once your see "accepting jobs," you can send a test print page directly from CUPS, or choose an application and print a page. In either case, print something, then go to your "Administration" page, and choose "Manage Jobs". This will show any jobs and their state. Once the job has been "printed" it will wind up on the "Administration" -> "manage jobs" -> "completed jobs" page. Since you're sending a page over the network, a "completed job" means it's been sent to the print server and spooled there for printing - success!

But wait - one more thing to check.

On your print server

It's been reported that Mac will sometimes send out files for printing as "raw." If you can print (admit it, you tried it already, didn't you?) but see page after page of garbage, you can fix this.

You'll need to be root on your print server, or ask your sysadmin to do this for you. On your linux print server (what, you're using some other OS as a server? Quick, reinstall the OS, and then come back to this step), edit:

    /etc/xinet.d/cups-lpr or /etc/xinet.d/cups-lpd, whichever you find

Add the line:

    server_args = -o document-format=application/octet-stream

Now restart CUPS on your printer server (/etc/init.d/cups restart) and you should be off and running! Try printing from your Mac!

The following links may also be helpful:


If you found this helpful, pass it along. If you found errors or problems, let me know so I can improve it.



search this site      open source      my home