Salut,

Comme c'est pas long je mets un de mes smbprint, trouv� sur le net et
bricol� par mes soins. Perso, j'avais trouv� pleins d'HOWTO
sur le net, mais tous supposaient que l'imprimante �tait postscript,
ce qui n'�tait pas le cas.

A+

Olivier
#!/bin/sh -x

# Ce script est un filtre d'entr�e sur l'impression avec printcap sur une
# machine Linux. Il utilise le programme smbclient pour imprimer le fichier au
# serveur et service sp�cifi�.
# Par exemple, vous pouvez avoir une entr�e printcap comme celle-ci~:
#
# smb:lp=/dev/null:sd=/usr/spool/smb:sh:if=/usr/local/samba/smbprint
#
# qui cr�erai une imprimante Unix appel�e "smb" qui imprimerait par
# l'interm�diaire de ce script. Vous devrez cr�er le r�pertoire de spool,
# /usr/spool/smb avec les permissions qui conviennent et le bon propri�taire,
# pour votre syst�me.

# Mettez les valeurs pour le serveur et le service sur lequel vous voulez
# imprimer.  Dans cet exemple, j'utilise un PC sous Windows pour Workgroups
# nomm� "laplan" ayant une imprimante appel�e "printer" sans mot de passe.

#
# Script modifi� par [EMAIL PROTECTED] (Michael Hamilton) afin que le
# serveur, le service et le mot de passe puissent �tre lus depuis un fichier
# /usr/var/spool/lpd/PRINTNAME/.config
#
# Pour que ceci puisse fonctionner, l'entr�e du /etc/printcap doit inclure un
# fichier d'accounting (af=...)~:
#
#   cdcolour:\
#       :cm=CD IBM Colorjet au 6eme etage:\
#       :sd=/var/spool/lpd/cdcolour:\
#       :af=/var/spool/lpd/cdcolour/acct:\
#       :if=/usr/local/etc/smbprint:\
#       :mx=0:\
#       :lp=/dev/null:
#
# Le fichier /usr/var/spool/lpd/PRINTNAME/.config devrait contenir~:
#   server=SERVEUR_PC
#   service=NOM_IMPRIMANTE
#   password="mot_de_passe"
#
# Pas exemple~:
   user="machin"
   server="MICKEY"
   service="dj840c"
   password="fuckthesystem"

#
# Fichier de log pour debuggage, changez le � /dev/null si vous le voulez
#
logfile=/tmp/smb-print.log
# logfile=/dev/null


#
# Le dernier param�tre du filtre est le nom du fichier d'accounting
#
# spool_dir=/var/spool/lpd/lp
# config_file=$spool_dir/.config

# Les variables suivantes devraient �tre lues depuis le fichier de
# configuration~:
#   server
#   service
#   password
#   user
# eval `cat $config_file`

#
# Des informations de d�bogage, changez le >> en > si vous voulez �conomiser
# de la place.
#
echo "server $server, service $service" >> $logfile

/usr/bin/psnup -2 | /etc/magicfilter/dj840c-filter |

# Le /usr/bin/psnup -2 | c'est le filtre pour mettre 2 pages sur une
# on peut l'enlever
# Le /etc/magicfilter/dj840c-filter | c'est le filtre pour l'imprimante 
# distante ; on peut l'enlever si c'est une postscript

(
# NOTE Vous voudrez peut �tre ajouter la ligne "echo translate" si vous voulez
# une conversion automatiques des CR/LF lors de l'impression

#        echo translate

# ouais ben moi si je mais l'echo, j'ai des trucs tr�s moches ...

        echo "print -"
        cat
) | /usr/bin/smbclient "\\\\$server\\$service" $password -U $user -N -P >> 
$logfile

Répondre à