Perhaps the simplest and most convienient way to manage the printer would be a dedicated website hosted by the printer itself that would allow uploading of files to print as well as general administrative tasks.


Unfortunately, due to the way hardware systems work, it is impossible to have a completely driverless system and still have it function as a traditional printer. Also, it would be very hard to have a completely transparent installation of the printer, network attached or otherwise. The closest you could do is make it compatible with a generic driver. There might be a generic Linux driver, and its possible that windows has one.

Calling a driver "generic", however, is too simplistic. The application software has to describe the contents of the page to the printer, telling it which characters or pixels go in which locations on the paper. This is commonly known as a page description language. The two most common ones are PostScript and PCL. PostScript is a vendor-independent standard. PCL was designed by Hewlett-Packard, but has been widely adopted by many printer manufacturers.

PostScript is the closest thing to a generic printer driver that currently exists in the Linux and Windows worlds.


The software that is needed is: A web server, for administration over the network. A NFS server and a Windows Share Server for networked file storage. Some sort of print server software.

The webserver for a small embedded system like this can be a lighttpd server. While not immensely powerful, it covers all the bases and is very lightweight. The obvious choice for file sharing is nfsd for NFS file sharing, and Samba for windows file sharing. The print server software may need to be written custom for this project.

If the software is based, for example, on an embedded Linux core, it could use CUPS to accept network connections using either LPR or IPP protocols. It could use GhostScript to accept generic PostScript and translate into whatever the specific printer engine needs.