Monday, 28 May 2007

Network Printing Part 2 - the 'lpr' method

Now that we know how to get the ip address of the printer and how to send files to it, lets examine another way of sending files to the printer. The 'lpr' method.

What is lpr? You might well ask. A full description can be found here and here. Basically 'lpr' is a client printing program which sends files to the server printing program, 'lpd'. An example of how an actual print server is set up can be found at this support site, where they tell staff how to set up their own computers to work with the university printers.

The thing about network printers is that some of them have built in lpd functionality. Meaning that they act like their own lpd server, accepting files sent by the client program, lpr. So to send the file using lpr type (in the command line):

lpr -S [ip address of printer] -P [ip address of printer] [path to your printable file]

and voila! the document prints.

Network Printing Part 2 - the 'ftp' method

One of the properties of a network is that any device on the network can send files to any other device on the network (unless the router is configured to block traffic). This means that bypassing the print server (computer next to the printer) becomes as easy as figuring out the ip address of the printer and sending it the file. Finding out the ip address of the printer is relatively easy. Most printers have a function to print out their settings. So in order to find the ip address, just browse through the menu on the front panel of the printer until you find an option which says 'print configuration/settings' and the printed page should have the ip address of the printer.

The next step is to get the file we want to print into the right format. To do this in Adobe Acrobat, simply go to the regular print page and place a tick in the 'print to file' tickbox in the bottom left hand corner. The file will appear in the same place as the original document. Now to send the file to the printer. First:

Open an FTP connection to the printer, (at the command line) type:

ftp open [the ip address of the printer]

Once you establish the connection, send the file:

put [path to the printable file]

And that's it! The printer should automatically print the file upon receiving it, no login, no charge.

Network Printing Part 1 - How it works

The printers in the computer science labs (and most of the university) are network printers. One of the properties of network printers is that they function just like any other device on the network i.e. they are each assigned an ip address. The printer is a simple device, its only function is receiving files and then printing them, therefore a printer by itself doesn't have the functionality to restrict access to it by ip address or by any other method. Printers also cannot be used to run any custom software e.g. software which logs you in and charges you NetAccount for the printnig costs. This poses a problem for the university, who would like to charge users for printing files. So, in order to solve this problem, when you print from any of the lab machines, the file to be printed is not sent directly to the printer but is in fact sent to the print server (the computer next to the printer). This computer has the job of logging you in and charging you before sending the file to the printer.

The printer itself receives files in one of two ways. Either:

1. a file is sent through the ftp protocol to the printer (the printer has a simple ftp server)


2. a file is sent directly to the printer port of the printer


Hi, my name is Srdan Dukic. I am a student living in New Zealand, originally from former Yugoslavia. I have a bachelors degree in Computer Science from the University of Auckland and I am currently working on my PostGraduate Diploma in Computer Science.