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