	NOTE: this file was contributed by a user: please contact
	George Cameron <george@bio-medical-physics.aberdeen.ac.uk>
	if you have questions.
	  Please contact Yves Arrouye <Yves.Arrouye@imag.fr> if you
	have problem with the number-of-colors part of the script.

Help on setting up an lpr filter for Ghostscript
================================================

OVERVIEW:

 "How do I set up Ghostscript to provide postscript queues in a standard lpr
 environment on Unix systems" appears as a Frequently Asked Question amongst
 Ghostscript users, and the following utilities are designed to make this
 task a little easier. The files supplied are:

 unix-lpr.txt:	this file
 unix-lpr.sh:	a flexible, multi-option print filter shell script
 lprsetup.sh:	a shell script which sets up soft links and creates a
		template insert for the printcap file


WHAT IT CAN DO:

 The print filter resides in the standard Ghostscript installation directory
 (eg. /usr/local/share/ghostscript), together with a dummy filter directory
 containing various soft links which point to the filter. It offers the
 following features:

	o  Multiple devices supported by a single filter
	o  Multiple bit-depths for the same device
	o  Multiple number of colors for the same device
	o  Direct (single-queue) and indirect (two-queue) setup
	o  Support for the standard preprocessing filters if you have the
		corresponding (whatever)-to-postscript translators
	o  Redirection of diagnostic and programmed output to a logfile in 
		the spooling directory
	o  Maintaining of printer accounting records of the numbers of pages
		printed by each user (compatible with the 'pac' command)
	o  Straightforward editing for further customisation


SETTING IT UP:

 The lprsetup.sh script needs to have two lines edited before running, to set
 the printer devices to use and the list of filters available. With this
 information, it will:

	o  Create a 'filt' subdirectory of the standard Ghostscript
		installation directory
	o  Create the links in this directory which enable the filter to
		determine the parameters for running Ghostscript
	o  Automatically generate printcap entries which should need only
		a little editing before adding to your system printcap file


EDITING THE DEVICE LIST:

 At the top of lprsetup.sh, you will find a line of the form DEVICES=" ... ".
 This should be edited to replace the example list with your own list of 
 devices, with each entry comprising the name of the device, follwed by three
 optional additional fields, separated by dots.

 The first field is only required if the printer device understands the
 qualifier -dBitsPerPixel=.., which only applies to colour devices. For
 a particular number <N> of bits per pixel, add the suffix .<N> to the
 device name, eg. cdj500.3 cdj500.24 etc.
 The second field is only required if the printer device understand the
 setting of the Colors device parameter (as in -dColors=...) which only
 applies to colour devices (and at present is only supported by the bjc*
 family of drivers). For a particluar number <C> of colors, add the suffix
 <.C> to te device name, e.g. bjc600.24.3 bjc600.8.1 etc.
 The third field is required if you wish to use two separate queues for the
 device, a 'raw' queue as well as the postscript queue (see discussion below).
 If this is required, you should add the suffix .dq ('dual-queue') to the name,
 whether or not a bits-per-pixel suffix has already been added.

 Thus, the following list supports a cdj550 device at 3 different bit-depths
 (24 bpp, 3 bpp and 1 bpp), with a dual-queue (ie. separate queue for the raw
 data); a monochrome deskjet device with a single queue; and a djet500 device
 using a separate queue:

 DEVICES="cdj550.24.dq cdj550.3.dq cdj550.1.dq deskjet djet500.dq"

 
EDITING THE FILTER LIST:

 The standard list contains only the generic 'if' filter, although there
 is a commented-out list showing the other filters which you may have 
 available. If you wish to use the support for these filters, you may
 need to edit the bsd-if file to add the directories where the translators
 are stored to the PATH, or to change the names of the filters if yours
 are different.  The bsd-if script is supplied with an example setup
 using Transcript (a commercial package from Adobe), and PBMPLUS, a PD
 package by Jeff Poskanzer and others.


EDITING THE PRINTER PORT AND TYPE

  You can set the port your printer is on and its type (parallel or printer).
  If you want to use remote printers, you'll have to modifiy the printcap
  insert file yourself.


MODIFIYING THE PRINTCAP.INSERT:

 Running the lprsetup.sh script generates a file called printcap.insert, which
 has a template setup for your printer queues. It cannot guarantee to do the
 whole job, and you will probably need to consult your system documentation
 and edit this file before you add it to your printcap file. The file has
 good defaults for serial printers, as these most often cause problems in 
 getting binary data to the printer. The setup is not guaranteed to be
 correct, but it works on my system! You may well need to change the baud
 rate, or the hardware/software handshaking used. Only a small change is
 required to edit the printcap to use a networked remote printer instead of
 a direct printer, and an example is given in the printcap.insert file.


SINGLE OR DUAL QUEUES:

 If you wish to provide a postscript-only queue (eg. so that all pages
 printed go through the accounting!), and the printer port is local to the
 host machine, a single queue is appropriate - Ghostscript simply converts
 the postscript into the printer's native data format and sends it to the
 port. If the printer is on a remote networked machine (another workstation,
 or a PC), or if you need to send raw printer data to the printer, you will
 need to use two queues. Simply specify the '.dq' option above.


BUGS:

 You will need write access to the ghostscript installation directory (eg.
 /usr/local/share/ghostscript) in order for lprsetup.sh to create the filt
 directory and soft links.

 You must list all instances of a device (if you have multiple bits-per-
 pixel for the same device) as adjacent items in the device list - if you
 do not, the printcap.insert will contain multiple entries for the same
 device.

 Multiple instances of the same device are not supported at present.
