Advanced Topics

localhost Printing

If you don’t like the idea of using an older version of a system printing file, the LPRIOM.plugin file that we replaced earlier, then this topic may be of interest to you.

The Mac OS using the LPD system is inherently network-capable – it’s just part of the operating system. Similarly, because the whole BSD system is inherently network-capable, your computer is addressable on the network to itself. In standard Unix parlance, your local, physical computer always has the domain name localhost (well, you can change this, but you’d better know what you’re doing. Since I don’t, I won’t tell you how). Your local, physical computer additionally always has the IP address 127.0.0.0.

For some reason, LPRIOM.plugin is only broken when NetInfo is missing two parameters, rp, the remote p rinter name argument, and rm, the remote m achine argument. Hence, if we want to print to a remote printer, we can use the proper LPRIOM.plugin, and supply rp and rm. So what if we do the following? Add to your ghostscript printer definition in NetInfo Manager the following parameters and arguments:

rm localhost
rp ghostscript

We would be printing to the “remote” printer localhost, which is really the local machine. The job would go into the queue called ghostscript, which we’ve already defined.

Unfortunately, Unix, being a secure operating system, won’t allow us the permission to do so. The computer, responding to a network request (even though it’s the same physical computer) will not accept the job. We need to give the LPD system the permission to accept jobs from certain computers. In this case, we want LPD to accept remote jobs from the computer “localhost.” To do so, as root, do the following in the terminal:

pico /etc/hosts.lpd

When pico starts, add this line by itself:

localhost

Save your work and restart. You will now have the ability to print using this guide and the official Mac OS X LPRIOM.plugin file.

Note: some say there may be security implications in allowing localhost into your hosts.lpd file. I don’t know the implications, and I’m behind a NAT firewall/router, so I don’t worry about it.