Raspberry Pi/Scan Server

From Wiki
  • tiff2pdf
    • apt-get install ghostscript libtiff-tools
    • tiff2pdf -o output.pdf input.tiff


  • /etc/scanbuttond/initscanner.sh (for Canon LIDE)
#!/bin/sh
sane-find-scanner
scanimage -n
  • /etc/scanbuttond/buttonpressed.sh
#!/bin/sh

BUTTON="$1"
DEVICE="$2"

TMPDIR="/tmp/scanned"
LOCKFILE="/tmp/${DEVICE}.lock"
DATE=$(date +"%Y-%m-%d_%H-%M")

if [ -f ${LOCKFILE} ]
  then
    echo "Error: Device already in use."
fi

touch ${LOCKFILE}
mkdir -p ${TMPDIR}

case ${BUTTON} in
	1)
		echo "button 1 has been pressed on ${DEVICE}"
		/etc/scanbuttond/button1.sh ${TMPDIR} ${DEVICE}
		echo "done"
		;;
	2)
		echo "button 2 has been pressed on ${DEVICE}"
		/etc/scanbuttond/button2.sh ${TMPDIR} ${DEVICE}
		echo "done"
		;;
	3)
		echo "button 3 has been pressed on ${DEVICE}"
		/etc/scanbuttond/button3.sh ${TMPDIR} ${DEVICE}
		echo "done"
		;;
	4)
		echo "button 4 has been pressed on ${DEVICE}"
		/etc/scanbuttond/button4.sh ${TMPDIR} ${DEVICE}
		echo "done"
		;;
esac

rm -f ${LOCKFILE}


  • /etc/scanbuttond/button1.sh
#!/bin/sh

TMPDIR=$1
DEVICE=$2
DATE=$(date +"%Y-%m-%d_%H-%M-%S")

scanimage -n

scanimage --format pnm --device-name ${DEVICE} --mode Gray --depth 8 --resolution 300 -l 0 -t 0 -x 210mm -y 297mm --lamp-off-time 15 > ${TMPDIR}/image.pnm
pnmtojpeg -quality 85 -optimize ${TMPDIR}/image.pnm > ${TMPDIR}/image.jpeg
cp ${TMPDIR}/image.jpeg /srv/scanner/${DATE}-scan.jpg

rm -f ${TMPDIR}/*

scanimage -n