                            P S F  (v3)

   PSF is a postscript print filter system designed to give reasonable
   control over text output to a postscript printer. If desired, psf can
   be installed as a filter for the lp/lpsched or lpr/lpd spooling systems.

   Printed output may be configured for:

		o  1-up, 2-up or 4-up on a page, landscape/portrait
		o  fonts/point size
		o  double sided printing
		o  pages scaled by row and column count
		o  lp banner page printing
		o  reverse order printing
		o  languages other than English

   If the printer normally stacks output paper "face up", psf
   automatically reverses the order of the printed pages to ensure
   manual reordering is not needed.

   Additional routines are provided to print nroff'ed documents, man
   pages, and mail boxes.  (troff is NOT supported: use psroff or thack)

   Printer definitions for a number of printers are user-selectable
   during installation. Unknown printers can be manually configured or
   the "simple installation" process described below can be used. By
   using "accurate" printer descriptions, psf can do quite a good job of
   page scaling, rotation and double sided printing.

   If lp/lpsched is the print spooler, various formatting options may
   be selected with the -o"<opt>" feature of lp.  
   
   If lpr/lpd is the print spooler, then multiple 'logical printers' can
   be created such that each printer has an associated set of print
   options (See Install.lpd for details).  A number of (hopefully)
   useful printer configurations are created during "make install".

   As part of the spooler system, psf filters will not re-process
   files already in postscript format (unless the -z option is used).

   The installation process is defined in the various "Install.*" files.
   General installation information for SysV r3 using lp/lpsched
   and BSD-type systems using lpr/lpd are described in Install.unix.
   Installation for SysV r4 may different: you will have to adapt
   the installation process for such systems.
  
	Install.unix	installation guide
	Install.lpd	additonal information for use with lpr/lpd
	Install.def	how to create a printer definition for a
			printer not know to psf.
	Install.dos	installation notes for MSDOS

   Installed binaries and scripts should give usage help information
   if they are executed without argument or with a "-":
   
   	psfnroff -
	Usage:  psfnroff [nroff options] doc.nroff doc.nroff ...
	  e.g.  psfnroff -ms document.ms

   This version of psf currently was developed to run under Interactive
   Unix with lp/lpsched or lpr/lpd as the spooling system. It also runs
   on various other versions of Unix as well as MSDOS.

SIMPLE INSTALLATION
^^^^^^^^^^^^^^^^^^^
   If it is too much trouble to read the Makefile and various
   Install.* files, a quick way to play with psf is to assume
   all standard defaults and:

		make psf

   Psf will generate help with:
   
		psf -
   
   Psf can be (probably) immediately used in a simple fashion.
   This assumes that the default printer is an NEC LC890 - which is
   a reasonable approximation to many other printers.  Psf can then 
   be used with:

		psf this.file  | lp


EUROPEAN LANGUAGES and PAPER SIZES
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   Rudimentary provision have been made for languages other than
   English. An example Scandinavian font setup is provided in file
   "language.PSF". This is NOT a working example: it must be modified
   for real use.  Any feedback and/or suggestions for modifications
   regarding the use of non-English languages would be appreciated.

   Documentation for this feature is minimal: some postscript knowledge
   is assumed! Refer to the Blue Book, Postscript Language Tutorial and
   Cookbook, page 111 (Program 18, Making small changes to encoding
   vectors). If Interactive Unix is used (and probably AT&T SysV 3.2),
   refer to loadfont(1) and ttymap(1) as possible guides for character
   translations.

   To use this feature, edit file "language.PSF" to reflect any font
   encoding and character translations needed for the target language.
   These lines are identified by "%%font", "%%translate" and "% ENCODE".

   Append this edited file to the end of "psfprint.def":

	   cat psfprint.def language.PSF > psfprint.new

   Test the printer.new file with some text that requires the use
   of the modified fonts:
   
           psf -u psfprint.new text.fil | lpr

   The "psfprint.new" now become the psfprint.def file for use with
   the new language description. Copy it to the destination location as
   set up in the Makefile.

   Only psf honours the font extensions correctly. If proper support is
   needed for banner printing, the source for psfbanner.c must be modified.
   Other sources are not concerned with language translation.

   The various scripts (psfnroff, psfman, psfmbox) have not been used with
   European paper sizes. If there are problems with page layout, you may
   have to adjust the "-p nn" point size, "-l nn" line-count option,
   or the "-r nn" remove-lines option passed to psfbs.

   If the "psfbanner" routine is used to print pretty printer banner
   pages, it (hopefully) should automatically adjust to the European
   sizes if it is run as part of the printer scripts.


DOUBLE SIDED PRINTING
^^^^^^^^^^^^^^^^^^^^^
   DOUBLE SIDED PRINTING IS NOT RECOMMEDED UNLESS THE PRINTER
   IS SPECIFICALLY DESIGNED FOR TO ALLOW DOUBLE SIDE PRINTING.

   Double sided printing is more convenient on printers with two paper
   trays. If two paper trays are avaliable, then psf could be compiled
   with "-DHOPPER" (see the Makefile).  Double sided printing may be
   done as part of the lp spooler system by passing the "-d" option. Psf
   internally calls psfdoub to print double sided. This assumes that the
   printer has at least two paper hoppers.

   E.g.:

	lp -o"-d" document.file

   If psf was not compiled with "-DHOPPER", then double sided printing
   is done as described in psfdoub.1.  
   
   This feature should not be used unless the paper tray is essentially
   reserved for double sided printing.

 ------------------------------------------
   Tony Field: tony@ajfcal.cuc.ab.ca

