QCprint - A print job release and tracking system for LPRng
-----------------------------------------------------------

QCprint is a web-based print release and tracking system designed
to be used with LPRng and a web-server.

How it Works
------------
A user submits a print job to an LPRng queue.  They can submit the job via
lpr, samba, or any other mechanism as long as the job gets in the queue. 
The print queue is configured to "auto-hold" all print jobs via the AH flag.

The user then visits the "queue control print" web-site and authenticates
to the system.  

Once they have authenticated, they are given a list of the available print 
queues.  Once the user has selected the queue, they can then see all jobs
in a queue.  From that page they can then select a job to release.

When they select the job, the system will then check to see if they are
allowed to print.  If so, the software will then speak to the LPRng lpd
and tell it to release the job and log the activity.

I would like to apologize for the following things:

   I apologize for the fact that much of this code is in a sad
   shape.  I know some routines should be more abstracted to
   allow easier adaptation to different environments.  It is 
   my intention to abstract the authentication method, 
   logging method, and approval to print method into the QCplot.pm
   module at some future point in time.
 
   Additionally, I would like to extend the printer definition file
   to include different control (allowed) files.  This would be
   useful in the abstraction of the approval method to have different
   control files for different printers.

   I apologize I use logger rather than library routines.  When I first
   started QCprint I had 4 hours to develop, write, implement, this
   project before it went into production.  I did get rid of the LPC
   system calls and replace them with LPRng.pm socket calls instead.

   Documentation.  This and "internal-desc.html" are about it.  The
   documentation in "internal-desc.html" is also a little erroneous
   in regards to printer page counting..  We do not use page counting
   with QCprint because we're using it to control the plotters in our
   studios, however if you wish to use it in conjunction with ifhp
   and printer accounting then your printcap entries should have
   something like:  
      "lp=printer.foo.bar%9100:filter=ifhp:ifhp=model=hp4050"
   _instead of_
      "rm=printer.foo.bar:rp=:"

I would consider the code to be version "0.02".  It works flawlessly in my 
environment, and our faculty are extremely happy with it.  I currently plan
on spending a day or two during the December holidays abstracting the code
more, providing better documentation, and reporting tools that will mesh
the LPRng accounting file with the QCprint log.

For more information (including some configuration file info), please
feel free to read the internal-desc.html file included with this archive.

DISCLAIMER:

I make no warranty of the validity and usability of this software.  It
works for me on my systems, but it may not work for you.  The only claim
I will make is that this software will indeed consume disk space if you
store it somewhere.  

However, if the software works for you, and you think it's cool, drop me
a note to say "thanks".

Ken Sallot
11/5/2001
ken@sallot.org
