← Back to team overview

sslug-teknik team mailing list archive

Re: Udskrivning...

 

On Sun, Nov 21, 1999 at 12:42:42PM +0100, Ole Tranberg wrote:

> Er det muligt at få 'lpr' til at køre et script hver gang der bliver
> skrevet ud på printeren? -og hvordan?
> 
> Det er egentlig fordi jeg har en printer på et netværk, som der derfor 
> er flere der benytter. Jeg ville så gerne kunne se hvem der skriver
> noget ud når der bliver skrevet ud på den (vha. en lille xmessage
> eller noget). Men det kræver jo at jeg på en eller anden måde ved at
> der bliver skrevet til printeren ;-)

Det afhænger hvad du vil have af oplysninger.
Men i /etc/printcap er de standard "filtre" der anvendes fra lpr/lpd.

Jeg har f.eks:
lp|hpj|lpj|HP Laserjet III:\
        :lp=/dev/lp1:sd=/var/spool/lpd/lp1:\
        :sh:pw#80:pl#72:px#1440:mx#0:\
        :df=/usr/local/lib/lpr/hpdvi:\
        :if=/usr/local/lib/lpr/hpif:\
        :vf=/usr/local/lib/lpr/hpvf:\
        :af=/var/log/lp-acct:lf=/var/log/lp-errs:

Og som eksempel /usr/local/lib/lpr/hpvf :

#!/bin/sh
# Filter for HP printers to treat LF as CRLF
# the ``echo -ne'' assumes that /bin/sh is really bash
echo lpr \-v $* >> /var/spool/lpd/lp2/hplog

Eller vil man have en hpif med special funktion :

#!/bin/sh
# Filter for HP printers to treat LF as CRLF
# the ``echo -ne'' assumes that /bin/sh is really bash
echo normal $* >> /var/log/lpr/hplog
if [ "$1" != -c ]; then
        # select CR=CR, LF=CR+LF, FF=CR+FF and latin1 character set 
        echo -ne \\033\&k2G\\033\(0N
fi
cat
if [ "$1" != -c ]; then
        echo -ne \\f
fi

Jeg har også tilføjet et "magic filter" :

lpm|HP Laserjet III MagicFilter:\
        :lp=/dev/lp1:sd=/var/spool/lpd/lp1:\
        :sh:pw#80:pl#72:px#1440:mx#0:\
        :if=/etc/magicfilter/ljet3-filter-fd-2.1:\
        :af=/var/log/lp-acct:lf=/var/log/lp-errs:

Men generelt så kan du lave lidt ekstra linier i dit filter-script.
Måske det også virker på netværksprintere.

-- 
mvh Frank Damgaard  | http://home3.inet.tele.dk/frda/



References