As Dominik Brettnacher wrote:
> Wie sieht es eigentlich mir Drucken unter FreeBSD aus? Ich hab einen
> uralten Epson LQ-850, was kann ich mit dem anfangen?
Postscript ausdrucken, was sonst? :-)
Im Ernst, ich habe meinen LQ-850 erst vor kurzem in den Ruhestand
geschickt. Angesichts seiner Grafikgeschwindigkeit würde ich nicht
unbedingt dazu raten, alles via Postscript und apsfilter abzuwickeln,
wie man das bei allen modernen Druckern problemlos empfehlen kann.
Ich hatte für den LQ-850 einen Sack voll logischer Drucker. Einen für
raw stuff (1:1 Filter), einen für Postscript (ghostscript in der Pipe
mit den entsprechenden Parametern), und ein halbes Dutzend, die zuvor
verschiedene ESC-Folgen an den Drucker geschickt haben für die
Schriftarteinstellung. Die hießen dann lp10, lp12, lp15 und lp20
(10/12/15/20 dpi). Ich glaube, einen für LQ hatte ich auch noch, kann
aber auch sein, daß der lp10 das automatisch mit gemacht hat.
Mit dem lp20 konnte man zusammen mit ``pr -2 ...'' auch mühelos
zweispaltig drucken.
Hier sind meine alten lpr-Filter und die alte /etc/printcap. Wie Du
siehst, werden die Parameter des Textfilters über pl# und pw#
gesteuert. Vorsicht, da stehen ESC's direkt als Steuerzeichen in der
Mail. (Ich werde sie daher lieber als quoted-unreadable schicken.)
lp|lp12|Standard line printer 12 cpi:\
:if=/usr/local/libexec/lpr/textfilter:lf=/var/log/lpd-errs:\
:vf=/bin/cat:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/lp12:pl#96:pw#96:px#1440:py#2100:mx#0:
lq|Letter quality printer (180 dpi grafx):\
:if=/usr/local/libexec/lpr/textfilter:lf=/var/log/lpd-errs:\
:vf=/bin/cat:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/lq:pl#72:pw#80:px#1440:py#2100:mx#0:
lp15|Draft printer 15cpi:\
:if=/usr/local/libexec/lpr/textfilter:lf=/var/log/lpd-errs:\
:vf=/bin/cat:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/lp15:pl#96:pw#120:px#1440:py#2100:mx#0:
lp10|Draft printer 10cpi:\
:if=/usr/local/libexec/lpr/textfilter:lf=/var/log/lpd-errs:\
:vf=/bin/cat:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/lp10:pl#96:pw#80:px#1440:py#2100:mx#0:
lp20|Draft printer 20cpi:\
:if=/usr/local/libexec/lpr/textfilter:lf=/var/log/lpd-errs:\
:vf=/bin/cat:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/lp20:pl#96:pw#160:px#1440:py#2100:mx#0:
PS|ps|PostScript printer:\
:if=/usr/local/libexec/lpr/psfilter:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/ps:pl#72:pw#80:px#1440:py#2100:mx#0:
raw|Raw printer:\
:if=/bin/cat:\
:sh:lp=/dev/lp:sd=/var/spool/lpd/raw:pl#72:pw#80:px#1440:py#2100:mx#0:
/usr/local/libexec/lpr/textfilter:
#!/bin/sh
#
# Textfilter (`if' printcap entry) for lpd service
#
PATH=/bin:/usr/bin
USAGE="usage: textfilter [-c] -w width -l length -i indent -n login -h host [acctfile]"
COPT=0
WIDTH=-1
LENGTH=-1
INDENT=-1
LOGIN=""
HOST=""
ACCTFILE=""
phase="opts"
remjob="false"
###echo "$*" 1>&2
set -- `getopt cw:l:i:n:h: $*`
if [ $? != 0 ] ; then
echo $USAGE 1>&2
exit 2
fi
for i in $*
do
case $i in
-c)
COPT=1
shift
;;
-w)
WIDTH=$2
shift 2
;;
-l)
LENGTH=$2
shift 2
;;
-i)
INDENT=$2
shift 2
;;
-n)
LOGIN="$2"
shift 2
;;
-h)
HOST="$2"
shift 2
;;
--)
phase="posargs"
shift
;;
esac
done
if [ -z "$LOGIN" -o -z "$HOST" -o $phase != posargs -o $# -gt 1 ] ; then
echo $USAGE 1>&2
exit 2
fi
if [ $# -eq 1 ] ; then
ACCTFILE=$*
fi
if [ $COPT -eq 1 ] ; then
# simply shortcut it
cat
else
echo -n "@"
if [ -n "$INDENT" -a $INDENT -ne 0 ] ; then
awk 'BEGIN {printf "\033l%c", '$INDENT'; exit}'
fi
if [ -n "$LENGTH" ] ; then
if [ $LENGTH -le 72 ] ; then
echo -n "2"
# assume user wants to pretty-print
echo -n "Pk0x1"
else
echo -n "x0"
if [ $LENGTH -le 96 ] ; then
echo -n "0"
fi
fi
else
# default: 8 lpi
echo -n "0"
fi
if [ -n "$WIDTH" ] ; then
if [ $WIDTH -le 80 ] ; then
# 10 cpi
echo -n "P"
elif [ $WIDTH -le 96 ] ; then
# 12 cpi
echo -n "M"
elif [ $WIDTH -le 120 ] ; then
# 15 cpi
echo -n "g"
else
# 20 cpi
echo -n "M"
fi
else
# default: 12 cpi
echo -n "M"
fi
# iso8859 ==> ibm437
#iso2ibm
tr '\344\366\374\304\326\334\337\361\321\341\351\355\363\372\277\241' \
'\204\224\201\216\231\232\341\244\245\240\202\241\242\243\250\255'
fi
/usr/local/libexec/lpr/psfilter:
#!/bin/sh
#
# postscript filter (`tf' printcap entry) for lpd service
#
PATH=/bin:/usr/bin:/usr/local/bin
USAGE="usage: psfilter -xwidth -ylength -n login -h host [acctfile]"
WIDTH=1440
LENGTH=-1
LOGIN=""
HOST=""
ACCTFILE=""
phase="opts"
remjob="false"
###echo "$*" 1>&2
set -- `getopt cw:l:i:x:y:n:h: $*`
if [ $? != 0 ] ; then
echo $USAGE 1>&2
exit 2
fi
for i in $*
do
case $i in
-x)
WIDTH=$2
shift 2
;;
-y)
LENGTH=$2
shift 2
;;
-n)
LOGIN="$2"
shift 2
;;
-h)
HOST="$2"
shift 2
;;
# dummies
-w) shift 2 ;;
-l) shift 2 ;;
-i) shift 2 ;;
-c) shift ;;
--)
phase="posargs"
shift
;;
esac
done
if [ -z "$LOGIN" -o -z "$HOST" -o $phase != posargs -o $# -gt 1 ] ; then
echo $USAGE 1>&2
exit 2
fi
if [ $# -eq 1 ] ; then
ACCTFILE=$*
fi
gs -sOUTPUTFILE=- -sDEVICE=stcolor -dQUIET -dNOPAUSE -dSAFER - quit.ps
-- cheers, J"org joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-)Received on Sun 15 Mar 1998 - 21:51:58 CET