J'ai trouvé comment envoyer par email un PDF au lieu d'un JPG avec le bouton Scan de l'imprimante.
J'ai commencé par pester mais en fait ce système de bouton est bien fait.
Comme pré-requis il faut simplement que la fonction Scan vers Email fonctionne déjà, c'est à dire que vous recevez correctement un fichier JPG par email.
En fait brscan-skey appelle un script configurable quand on sélectionne une des fonctions du bouton Scan:
- scan "Fichier" -> /opt/brother/scanner/brscan-key/script/scantofile-X.X.X-X.sh (avec X.X.X-X = 0.2.4-0 chez moi)
- scan "Email" -> /opt/brother/scanner/brscan-key/script/scantoemail-X.X.X-X.sh
- scan "Image" -> /opt/brother/scanner/brscan-key/script/scantoimage-X.X.X-X.sh
- scan "OCR" -> /opt/brother/scanner/brscan-key/script/scantoocr-X.X.X-X.sh
J'ai installé les paquets "mutt" pour envoyer facilement un email avec une pièce jointe et le paquet "graphicsmagick" pour convertir le ou les images au format PDF.
J'ai supprimé du script initial toute la partie d'envoi d'email (trop complexe à comprendre) et je l'ai remplacée par mes quelques lignes.
J'ai aussi modifié les lignes "scanimage ...." en ajoutant le paramètre --batch (qui permet d'utiliser le chargeur de documents), et en ajoutant les paramètres -x et -y (taille de la page en mm) sinon j'avais un format bizarre.
Et voilà ! Au lieu de recevoir un JPG par email, je reçois un PDF, multi-pages si besoin 🙂
#! /bin/sh
set +o noclobber
#
# $1 = scanner device
# $2 = friendly name
# $3 = email address
#
# 100,200,300,400,600
#
DIR=/home/wlad/brscan
DATE=`date +%Y-%m-%d-%H-%M-%S`
EMAIL=email_de_reception@domaine.com
SENDMAIL="`which sendmail 2> /dev/null`"
if [ "$SENDMAIL" = '' ];then
SENDMAIL="/usr/sbin/sendmail"
fi
if [ ! -e ];then
echo "sendmail is not available."
fi
#-----------------------
debug_log=''
scanimage_disable='no'
sendmail_disable='no'
sendmail_log='0'
#-----------------------
log=''
resolution=100
device=$1
mkdir -p ~/brscan
if [ "`which usleep 2>/dev/null `" != '' ];then
usleep 10000
else
sleep 0.01
fi
output_file=~/brscan/brscan_"`date +%Y-%m-%d-%H-%M-%S`"".pnm"
#echo "scan from $2($device)"
#if [ -e "`which pnmtojpeg 2>/dev/null `" ];then
# FILTER=pnmtojpeg
# FILENAME=brscan_skey.jpg
#else
FILTER=cat
FILENAME=scan-$DATE.pdf
#fi
email_debug_option=''
if [ "$scanimage_disable" != 'yes' ];then
cd $DIR
if [ "$device" = '' ];then
scanimage -x 210 -y 297 --batch --resolution $resolution 2>/dev/null | $FILTER
else
scanimage -x 210 -y 297 --batch --device-name "$device" --resolution $resolution 2>/dev/null | $$
fi
else
echo DEBUG DATA :012345678901234567890123456789 > $output_file
fi
if [ -e "`which gm 2>/dev/null `" ];then
gm convert $DIR/*.pnm $DIR/scan-$DATE.pdf
sleep 5
mutt -s "Scan $DATE" -a $DIR/scan-$DATE.pdf -- $EMAIL < /dev/null
rm $DIR/*
fi
Si vous voulez vous en servir, vous devez adapter quelques lignes :
Au début, modifiez :
DIR=/home/votre_user/brscan
EMAIL=
votre_email@domaine.com