psf is an lpd filter for PostScript printing.  The example
configuration is able to handle text, postscript, and troff, printing
via AppleTalk (not a serial line), with or without reversing.  All
pathnames are set at the top of psf.c. Of particular interest is the
pappath variable, the revpath variable, and the filters array.  The
example configuration uses troff2ps (from "Chris' psroff") to convert
C/A/T to PostScript. If you have TranScript, you should be able to use
pscat, tho I've never tried it.

psf interprets it's argv[0], to determine what filters to invoke.
First, if the string "pap" appears anywhere in argv[0], psf invokes pap
to talk to the printer via AppleTalk. Next, if the string "rev"
appears, psf invokes the PostScript reverser. Finally, if psf finds a
filter's name as the leading string in argv[0], it invokes that
filter.  If there is no filter to run, psf examines the magic number of
the input, and if it's not already in PostScript, converts it to
PostScript.

A later version of psf will include the equivalent of pap for
communicating with a serial connected printer. There is a very simple
handshake that is required, such that psf can not "just do it."
