Newbie lpd printing

Malcolm Kay Malcolm.Kay at
Fri Apr 11 22:44:04 PDT 2003

On Fri, 11 Apr 2003 14:15, Gary Schenk wrote:
> This FreeBSD newbie has even learned  how to print! I'm using lpd to print
> and it works fine from the console. I'm using an old Epson with the hpif
> filter from the FreeBSD handbook, using uniprint as the device.
> However, it does not work in KDE. I've read the KDE printing handbook, but
> have not found much there.
> It seems to be an input filter problem. My /etc/printcap file calls on
> hpif, which does print text  files to the Epson just fine, yet the results
> I get in KDE seem to indicate that the input filter is not working. Does
> KDE use /etc/printcap?  Have I missed something in setting up printing for
> KDE? Basically all I've done is click "print" in the application, choose
> lpd, and ok.
> I'm not good at scripts yet, so maybe that is the problem? Here is my input
> filter file:
> #!/bin/sh
> # Treat LF as CR+LF
> printf "\033&k2g" || exit 2
> # Now read first two characters of the file to determine if PostScript or
> not # and apply the appropiate massaging
> IFS="" read -r first_line
> first_two_chars=`expr "$first_line" : '\(..\)'`
> if [ "$first_two_chars" = "%!" ]; then
>         exec 3>&1 1>&2
>         /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=uniprint \
>                 -sOutputFile=/dev/fd/3 - && exit 0
> #
>         /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=uniprint \
>                 -sOutputFile=- - && exit 0
>         else
>                 echo "$first_line" && cat && printf "\033&10H" &&
>         exit 0
>         fi
>         exit 2

The parameters given to gs here are quite insufficient; ghostscript needs a 
number of parameters specific to the particular printer model to be processed
through the uniprint device.

The norm is to supply these in a file (*.upp) selected from the ghostscript 
library (/usr/local/share/ghostscript/x.xx/lib) to match your particular 
printer model. This is referenced as say:

	/usr/local/bin/gs @stc.upp -q -sOutputFile=- - && exit 0

where stc.upp is the lbrary file matching your printer. -dSAFER; -dNOPAUSE
and -sDEVICE=uniprint are normally setup in the *.upp file.

An alternative, which I use for an Epson C80 with gnu ghostscript, is the stp 
device. Have a look at /usr/local/share/ghostscript/x.xx/gimp-print/README.
(I don't think stp is directly available in the Aladdin ghostscript 

Malcolm Kay

More information about the freebsd-questions mailing list