How to print from a UNIX/Linux/Mac OS X Managed Desktop

List of Printers and Setting my Default Printer

Obviously it is most convenient to use the printer closest to where you are actually working. You may check what printer is closest to you either by looking around the neighboorhood of your office or by checking

Once you know the name of the printer of your choice (that should be something like "magpie") you can set it to be your default printer by setting the PRINTER environment variable, which you do by editing your ~/.env_extra file.

Applications will pick up your default printer from this file. Printing from a X windows application should be straightforward.

Managing your printer jobs

When a file is "printed" it first enters a queuing system for transmission to the printer. In fact two queues may be involved. First, the file is queued for transmission over the network to the computer which actually controls the printer. This normally happens so quickly that you are not aware that it has happened. Then the file sits in a queue on the controlling computer until the printer becomes available. A file, when in the printer queue is called a "job". You may only add and remove jobs you own, but you can see what jobs are waiting in the printer queue. Controlling your jobs and being aware of the waiting list on a printer queue not only avoids wasting your time, but it prevents unwanted duplication of jobs and hence, the waste of toner and paper. You can check the status of a printer, location and printing queue by pointing your browser to

You can inspect the queue as well from a terminal with lpq, but with CUPS the jobs normally only stay on the queue for a very short time unless there is a problem. You are allowed to remove your own jobs from a queue by using lprm job-number, with job-number listed by lpq etc. Only the owner of a job may remove a job from the queue.

If a printer isn't working the best thing to do is remove your job from the printer queue and send it to a different printer. Do not re-send the job, since that will merely cause the queue to build up and result in a large amount of wasted paper when the printer finally comes back on line.

Printing using a terminal

Sending files to the printer can also be done from a terminal by using a variety of commands:

lpr
send a file directly to the printer, can use all the CUPS options by use of -o option
dvips
convert a .dvi file to Postscript and print it, can't directly use CUPS features since -o means something else
a2ps
(Ascii to Postscript) convert a plain text file to Postscript, with various formatting options, and print it, can't directly use CUPS features since -o means something else
guiprint
graphical utility to set options for printing a file

All the above commands accept the option -Pprinter_name which will override the value of the PRINTER setting.

See the man pages for full details of the options for these commands.

Note that all DAMTP's public printers accept the PostScript language (some accept PCL too) and things may go wrong if you send incorrect data to a printer. The printer controller software attempts to verify that the data is in the correct format and, if necessary, will convert plain text files to a two-up format before printing.

Printing OHPs

OHPs for the inkjets attached to public pcs are obtained from reception. These printers are not accessible via the network and the machines connected to them are running Windows. Please see How to print from a Windows desktop for more info.