Ce blog n'est plus maintenu

Les articles de ce blog ont été écrits entre 2008 et 2010, et sont peut-être obsolètes. Veuillez consulter la documentation ou le forum francophone d'Ubuntu pour obtenir de l'aide si vous êtes utilisateur d'Ubuntu.

jeudi 5 novembre 2009

Utiliser les boutons d'un scanner sous Linux avec Scanbuttond

Scanbbuttond permet d'utiliser et de configurer les boutons d'un scanner sous Linux. Voici un tutoriel pour installer et configurer les boutons d'un scanner Epson Perfection 1240U sous Ubuntu.



Ce tutoriel a été testé sous Ubuntu 9.10 "Karmic Koala" et un scanner Epson Perfection 1240U.


Installation

  • Il faut installer le paquet scanbuttond (cliquer sur le lien pour l'installer).

Test des boutons

Lancer scanbuttond dans un terminal (menu Applications > Accessoires > Terminal), taper:

scanbuttond -r 500000
Appuyer sur le(les) bouton(s) du scanner, et vérifier s'il(s) est(sont) reconnu(s) en tapant dans un terminal:

grep -R scanbuttond /var/log
Le terminal devrait renvoyer le numéro du(des) bouton(s) pressé(s) avec un horodatage.

Configuration de scanbuttond


Attention, c'est la partie la plus difficile! En effet il va falloir adapter chaque bouton à une utilisation spécifique, suivant ce qui est marqué sur les buttons ou suivant le choix de chacun. Cet exemple est valable pour le scanner Epson Perfection 1240U qui possède trois boutons configurés pour:

Bouton n°1: scanner avec Simple-Scan (à partir d'Ubuntu 10.04) ;
Bouton n°2: photocopier en noir et blanc en 150 dpi (nécessite l'installation du paquet libtiff-tools) ;
Bouton n°3: scanner et éditer avec Gimp en 600 dpi.

Le tout avec enregistrement du fichier avec date dans le dossier personnel.

Pour configurer scanbuttond, il va falloir éditer le fichier /etc/scanbuttond/buttonpressed.sh (nécessite le mot de passe):

  • appuyer sur Alt+F2 et taper: gksudo gedit /etc/scanbuttond/buttonpressed.sh
  • le fichier pour un scanner Epson Perfection 1240U qui possède trois boutons est le suivant (ce fichier n'est pas parfait mais marche):
#!/bin/sh

# This script is started by scanbuttond whenever a scanner button has been pressed.
# Scanbuttond passes the following parameters to us:
# $1 ... the button number
# $2 ... the scanner's SANE device name, which comes in handy if there are two or
# more scanners. In this case we can pass the device name to SANE programs
# like scanimage.

# *** WARNING ***
# The example code below contains just simple examples how things may get done.
# Don't simply uncomment the code on systems with untrusted users! This would
# make your button scanning vulnerable to various kinds of attacks by local users.
# *** WARNING ***

#TMPFILE="/tmp/scan.tiff"
#LOCKFILE="/tmp/copy.lock"

BUTTON="$1"
DEVICE="epson:libusb:003:003"
PICDIR="/home/laurent/"
TMPFILE="${PICDIR}/Numérisation_du_`date`_`+%Y%m%d%H%M%S`"
LOCKFILE="/tmp/${DEVICE}.lock"

if [ -f ${LOCKFILE} ]; then
zenity --error --title="Erreur: le périphérique est occupé." --text="La précédente numérisation n'est pas terminée. \
Si ce n'est pas le cas, exécutez la commande suivante 'rm -f ${LOCKFILE}'." || \
echo "Erreur: le périphérique est occupé. La précédente numérisation n'est pas terminée. \
Si ce n'est pas le cas, exécutez la commande suivante 'rm -f ${LOCKFILE}'."
exit
fi

case $1 in
1)
echo "button 1 has been pressed on $2"
simple-scan
;;
2)
echo "button 2 has been pressed on $2"
scanimage -d epson:libusb:003:003 --format=tiff --mode=Gray --depth=8 --resolution=150 > $TMPFILE && \
tiff2ps -z -w 8.27 -h 11.69 $TMPFILE | lpr &
;;
3)
scanimage -d epson:libusb:003:003 --format=pnm --mode=Color --depth=8 --resolution=600 > $TMPFILE && \
gimp $TMPFILE &
;;
4)
echo "button 4 has been pressed on $2"
;;
esac

chgrp scanner ${TMPFILE}.*
chmod g+rw ${TMPFILE}.*
rm -f ${LOCKFILE}
  • changer la ligne PICDIR="/home/nom_utilisateur/" avec le bon nom d'utilisateur (ou le répertoire au choix)
  • changer le paramètre DEVICE pour chaque bouton (epson:libusb:003:003 pour mon cas, à vérifier avec la commande: grep -R scanbuttond /var/log)
  • une fois les modifications faites, cliquer sur Enregistrer et fermer l'éditeur de texte.
Les boutons devraient être reconnus, suivant les options assignées.

Remarque: ne pas oublier de rendre le fichier buttonpressed.sh exécutable! Pour cela, ouvrir le navigateur avec les droits d'administration (attention à ce que vous faites):

  • appuyer sur Alt+F2 et taper: gksudo nautilus
  • naviguer jusqu'à /etc/scanbuttond, et faire un clic droit sur buttonpressed.sh, choisir Propriétés
  • dans l'onglet Permissions, cocher la case: Autoriser l'exécution du fichier comme un programme.
  • fermer la fenêtre.

Démarrer automatiquement scanbuttond

Enfin il faut ajouter scanbuttond au démarrage:

  • aller dans le menu Système > Préférences > Applications au démarrage
  • cliquer sur le bouton Ajouter
  • rentrer Scanbuttond dans la case Nom, et mettre /usr/local/bin/scanbuttond -r 500000 dans la case Commande
  • cliquer sur Fermer.
Source
http://en.gentoo-wiki.com/wiki/Scanner_buttons_and_one-touch_scanning

1 commentaires:

  1. merci, je cherchais un scanner, et je l'ai trouver grâce à toi, bon retour d'expérience Merci à toi Man

    RépondreSupprimer