psf - PostScript filter
[-n name] [-h host] [-w width]
[-l length] [-i indent] [-c]
is an lpd
filter for PostScript printing. psf
interprets the name it was called with to determine what filters to invoke.
First, if the string ``pap´´ appears anywhere in the name,
to talk to a printer via AppleTalk. Next, if the
string ``rev´´ appears, psf
reverse the pages of the job. Finally, if psf
was called with a
filter´s name as the leading string, it invokes that filter. If there
is no filter to run, psf
examines the magic number of the input, and if
the input is not PostScript, converts it to PostScript.
In the default configuration, psf
supports two kludges. The first causes
to check its name for the letter `m´. If this letter is
found and accounting is turned on, psf
twice, once to
get an initial page count and to print the job, and another time to get a
final page count. This is a work-around for bugs in a variety of PAP
implementions that cause printers to never properly close the PAP output file.
A notable example is any printer by Hewlett-Packard.
The second kludge causes psf
to examine its name for the letter
`w´. If this letter is found and accounting is turned on, psf
with the -w
flag. This flag causes pap
until the printer´s status contains the string `idle´. Once this
string is found, the job is printed as normal. This kludge is a work-around
for printers, notably Hewlett-Packard´s LaserJet IV, which will report
a page count while a previous jobs is still printing.
The sample printcap
entry below invokes psf
to print text files,
PostScript files, troff
´s C/A/T output, and TeX
DVI output, to an AppleTalk connected LaserWriter Plus. Since the LaserWriter
Plus stacks pages in descending order, we reverse the pages and print the
burst page last.
laser|lp|LaserWriter Plus on AppleTalk:\
Note that if the host in question spools to more than one AppleTalk printer,
/dev/null should not be used for the lp
capability. Instead, a null
device should be created with mknod
for each printer, as has been done
Finally, there is a file in the spool directory, /var/spool/lpd/laser, called
, which pap
reads for the AppleTalk name of the printer.