Re: [OpenBSD] Remote Drucken mit lpd

Autor: Michael Lestinsky <michael.lestinsky_at_mpi-hd.mpg.de>
Datum: 07.02.2005
Nur fuers Protokoll:

Am 04.02.'05 schrieb Michael Lestinsky:
> Ich verstehe jedoch nicht so ganz, was das soll.

So, ich habe jetzt einen Weg gefunden auf dem ich if-Eintraege fuer
Remote-Drucker verwenden kann:

Ich habe folgende /etc/printcap:

.----
| lp|fake:\
|         :lp=/dev/null:sh:\
|         :if=/usr/local/libexec/lp2_filter:\
|         :sd=/var/spool/lpd/lp:lf=/var/log/lpd-errs:
|         :mx=0:
| 
| pcl|buero|HP Laserjet 4 Plus:\
|         :lp=:sh:rm=149.217.5.150:rp=raw:\
|         :sd=/var/spool/lpd/pcl:lf=/var/log/lpd-errs:\
|         :mx=0:
`----

und /usr/local/libexec/lp2_filter macht folgendes:

.----
| #!/bin/sh
| # Michael Lestinsky, Feb 2005
| 
| TMPFILE=`mktemp /tmp/pclout.XXXXXXXX`
| IFS="" read -r first_line
| first_two_chars=`expr "$first_line" : '\(..\)'`
| 
| ( if [ "$first_two_chars" = "%!" ]; then
|     /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sPAPERSIZE=a4 -sDEVICE=ljet4 \
|         -sOutputFile=- - && exit 0
|     exit 2
|   else
|     #
|     #  Plain text or HP/PCL, so just print it directly; print a form feed
|     #  at the end to eject the last page.
|     #
|     echo "$first_line" && cat && printf "\033&l0H" && 
|     exit 0
|   fi
| ) > $TMPFILE || exit 2
| 
| lpr -Ppcl $TMPFILE
| 
| rm $TMPFILE
| exit 0
`----

Es nimmt den Input an; wenn er als PS-Datei erkannt wird, wird gs mit ein
paar passenden Parametern fuer die Konvertierung aufgerufen um einen
PCL-Datenstrom zu erzeugen. Dieser Datenstrom wird per "lpr -Pbuero" neu
in einer anderen Queue gespoolt, wo er nicht mehr weiter gefiltert werden
muss. Durch den lp=/dev/null-Eintrag fuer die Queue "lp" habe ich den lpd 
ausgetrickst und ihm einen lokalen Drucker vorgegaukelt.

Inspiriert hat mich dazu ein Slashdot-Artikel in dem beschrieben wurde,
wie "lpd" als MP3-Server umfunktioniert wurde.

Bye
Michael

-- 
Michael Lestinsky                   Max-Planck-Institut fuer Kernphysik
michael.lestinsky@mpi-hd.mpg.de     Saupfercheckweg 1; 69117 Heidelberg
Phone +49 6221 516-504 Fax: -602    http://www.mpi-hd.mpg.de
Received on Mon Feb 7 14:28:21 2005

Dieses Archiv wurde generiert von hypermail 2.1.8.
Zurück zur UUGRN-Homepage.