Dieses Script scant Dokumente vom Dokumentenscanner, speichert sie als PNG-Datei und Kovertiert diese in eine PDF-Datei.
Der „scanimage“ Befehl ist auf einen „Fujitsu ScanSnap S1500“ Scanner ausgelegt.
Der eigene Scanner muss von „sane“ unterstützt sein.
Welche Geräte „sane“ erkannt hat, prüft man mit dem Befehl scanimage -L
.
Die Scanner-Optionen können mit dem Befehl scanimage –help -d <GERÄT>
ausgelesen werden.
Gibt man dem Scanscriptbefehl den Parameter „1“, werden für jede PNG-Datei einzelne PDF-Dateien erstellt.
Ohne den Parameter werden alle PNG-Dateien in eine PDF-Datei zusammengefasst.
#!/bin/bash # ## Parameter "1": wenn gesetzt, werden im Stapelscan einzelne PDFs erzeugt ## Parameter "2": wenn gesetzt, wird für jede zu scannende Seite gefragt; erleichtert Stapelscan # DESTDIR=~/Dokumente/scanns TEMP=${DESTDIR}/tmp DONE=${DESTDIR}/processed LOGTS () { date +%Y%m%d_%H%M%S } FILENAME=$(LOGTS) if [ ! -d "${DESTDIR}" ]; then mkdir -p ${DESTDIR} fi if [ ! -d "${TEMP}" ]; then mkdir -p ${TEMP} fi if [ ! -d "${DONE}" ]; then mkdir -p ${DONE} fi if [ ! -x $(command -v scanimage) ]; then echo "Befehl "scanimage" nicht gefunden" echo "Bitte installieren: sudo apt install sane-utils" exit fi if [ ! -x $(command -v convert) ]; then echo "Befehl "convert" nicht gefunden" echo "Bitte installieren: sudo apt install imagemagick" exit fi # fragen ob weitergescannt werden soll if [[ $1 == "2" ]]; then scanimage --device="fujitsu:ScanSnap S1500:71873" --format=png --source="ADF Duplex" --mode="Lineart" --resolution=150dpi --swskip=5% --batch=${TEMP}/${FILENAME}_p%d.png --batch-prompt else scanimage --device="fujitsu:ScanSnap S1500:71873" --format=png --source="ADF Duplex" --mode="Lineart" --resolution=150dpi --swskip=5% --batch=${TEMP}/${FILENAME}_p%d.png fi # ein pdf für jede einzelne Seite oder aus allen Seiten if [[ $1 == "1" ]]; then for i in `ls ${TEMP}`; do FILENAME_PRE=$(echo ${i}|sed 's/\..*$//') convert ${TEMP}/${i} ${DESTDIR}/${FILENAME_PRE}.pdf done else convert $(ls -1v ${TEMP}/${FILENAME}_p*.png) ${DESTDIR}/${FILENAME}.pdf fi # aufräumen mv ${TEMP}/* ${DONE}