[Home] [About Me] [My Software] [Acknowledgements]

Lpr Client Homepage


Lpr is a remote print job submision program written, in 'C'. Although derived from BSD sources, hence K&R C, the source has been ANSI-ised quite a lot in a attempt to make it portable. However a number of platform specific fucntions are used. Currently only available for Acorn RISC-OS

This is mostly of historic interest but the Raspberry Pi has a lot new RISC_OS users so it hhas been kept here.


Lpr is the protocol most commonly used for networking printers under Un*x, many other platforms including Os/2, WinNT and Jetdirect cards also have servers for this protocol.

This program implements the protocol at it's most basic level as described by RFC1179, with few changes. The devaitions from the RFC are:-

  1. lpr always sends the control file second.
  2. The source port of the connection is allocated from the auto allocate block in the normal way, as a result the source port will never be in range 721-731 as spec'd by the RFC.
  3. No checking is made on the variable lpr$usr which is used for the control file username, as a result that variable must not start with a digit. If it does not exist it is set by lpr to 'root'.
Hopefully none of these restrictions are important in your application.

Currently this is a command line program, although care has been taken to ensure they are no race-conditions when run from inside a task-window. (Of course they may be some left - but this is the normal way the program is run).

If you want a desktop frontend Liam Gretton has written one which is quite nice, and acn be found on his web site.


Or rather the lame excuse why there is no available source for this (yet). Most importantly it is because the BSD license lets me do this, but just as important is that the code is in real mess at the moment, and you need a strong somach to read it. This because the project started out as a quick and dirty hack to allow me to print from my A5000. However I do intend to release the source code as soon as it stops making me sick when I look at it.

I wouldn't want to be responsible for your medical bills when reading it ;-).


Lpr V0.13

This is the latest version is v0.13 Improvements in this version include auto-filetyping of jobs, which fix some problem with postscipt files on some linux distributions. And also a more BSD like command line, most of the old BSD switches which were missing in v0.11 are now back. Note however these are just instructions to the server on how to handle the file, the client does nothing different.

[ManPage] [Download Binary]

Mailling List

Like all the pieces of software on this site lpr has it's own dedicated mailling list hosted right here. Please feel free to browse, post, subscribe or even heaven above unsubscribe.

[Lpr] [HTML::AutoWidget] [Syslogger] [NetThrow] [SocketFS] [DumbFS] [Odds and Ends Page]