Mit einem Tastdruck scannen – Raspberry Pi und Dokumentenarchivierung

Mittels eines (alten) (Flachbett-) Scanners und einem Raspberry Pi lässt sich eine bequeme Dokumentenarchivierung einrichten.

Zum Beispiel mittels eines Tastendrucks scannen und per E-Mail verschicken oder auf einem Netzwerkshare ablegen.

Im Folgenden beschreibe ich wie.

Ich setze voraus, dass auf dem Raspberry bereits Raspbian läuft, ihr als root angemeldet seid und der Scanner (am besten über einen aktiven USB HUB) am Raspberry angeschlossen ist.

Zuerst sollte noch ein bisschen Zusatzsoftware installiert werden:

apt-get install lockfile-progs scanbuttond sane libtiff-tools netpbm

Wechselt dann in das Verzeichnis (mittels cd)
/etc/scanbuttond

und kopiert die Dateien  initscanner.sh.example und buttonpressed.sh.example und macht sie anschließend ausführbar.
cp initscanner.sh.example initscanner.sh

cp buttonpressed.sh.example buttonpressed.sh
chmod +x initscanner.sh buttonpressed.sh

Bearbeitet die Datei initscanner.sh (z.B. mit nano)
nano initscanner.sh

und uncommented (das #-Zeichen entfernen) die Zeile
sane-find-scanner

Danach kann auch schon ein erster Testlauf gestartet werden. Gebt
scanbuttond -f

ein, euer Scanner sollte daraufhin als gefunden vermeldet werden:
found USB scanner (vendor=0x04a9 [Canon], product=0x220d [CanoScan], chip=LM9832/3) at libusb:001:005

found USB scanner (vendor=0x0424, product=0xec00) at libusb:001:003

Drückt ihr dann eine Taste am Scanner,  so sollte ungefähr sowas erscheinen:
button 2 has been pressed on plustek:libusb:001:005

button 3 has been pressed on plustek:libusb:001:005
button 1 has been pressed on plustek:libusb:001:005

Je nachdem welche Taste gedrückt wird. Wenn das der Fall ist kanns weitergehen. Anderenfalls wird euer Scanner wohl nicht unterstützt.

Jetzt muss festgelegt werden, was bei welchem Tastendruck passieren soll.

Dazu bearbeitet die Datei

buttonpressed.sh

im Verzeichnis
/etc/scanbuttond

Unter dem Punkt
echo "button 1 has been pressed on $2"

fügt ihr
/etc/scanbuttond/scripts/button1.sh $TMPFILE $DEVICE

ein.

Ganz oben habe ich noch die TMPFILE angepasst:

TMPFILE="/tmp/scan_`date +%Y%m%d`-`date +%H%M%S`"

 

Im Verzeichnis

/etc/scanbuttond

legt ihr einen neuen Unterordner nahmens scripts an und wechselt hinein
mkdir scripts

cd scripts

Dort legt ihr dann die Datei button1.sh an
nano -w button1.sh

und fügt
#!/bin/sh


TMPFILE=$1
scanimage --format pnm --mode Color --depth 8 --resolution 200 -l 0 -t 0 -x 210mm -y 297mm | pnmtojpeg -quality 85 -optimize > $TMPFILE.jpeg

ein. Das Ganze könnt ihr natürlich nach euren Wünschen anpassen, z.B. kann hier das Bild gleich weiterverarbeitet oder verschickt werden.

Danach die Datei wieder ausführbahr machen.

chmod +x button1.sh

Mittels
service scanbuttond start

startet ihr den scanbuttond service.

Sobald ihr jetzt die belegte Taste auf eurem Scanner drückt, sollte der Scan beginnen. Auch nach einem Neustart des Raspberrys sollte alles noch funktionieren.

Analog dazu können dann weitere Tasten eures Scanners belegt werden.

15 Comments

  1. Daniel

    Hi. Echt klasse Anleitung. Für mein Projekt ist das schonmal eine sehr gute Basis.
    Vieleicht kannst Du oder andere hier mir noch Tips oder hilfreiche Links geben.
    Also kurz die Anforderungen zu meinem Projekt:

    Zielsetzung ist ein papierloses Büro.
    Es müssen Täglich Patientenakten und weitere Dokumente eingescannt und Archiviert werden. Diese müssen revisionssicher (read only mit Signatur oder so) und redundant archiviert werden.

    Das mal grob zu meinen Vorhaben. Ich weiß das es für sowas genug fertige lösungen gibt. Aber diese sind oftmal sehr beschränkt, zu teuer….

    Ausserdem möchte ich mal ein individuelles Projekt mit dem Pi machen.

    MfG Daniel Wer Fehler findet darf sie behalten. 😉

  2. Tom

    Hi, da müsste ich leider selbst erst nach entsprechenden Links suchen. Kann dir da bei deinem Vorhaben leider nicht weiterhelfen.
    Trotzdem viel Erfolg.

  3. Guitarhead

    Hi Tom,
    danke für die tolle Anleitung. Das Scannen klappt gut. Kannst Du mir irgendwie helfen die Dateien aus dem /tmp Verzeichnis in /home/pi/scan per script zu kopieren.
    In die button1.sh geschrieben klappt es nicht. Per shell auch nur mit sudo.
    Vielen Dank!
    Gruß Guitarhead

  4. Tom

    Hi, funktioniert es denn wenn du gleich das
    TMPFILE
    (d.h. den Pfad) änderst?

    Wie oben beschrieben?

  5. Guitarhead

    Habe ich alles probiert. Bei user habe ich auch mal pi statt saned angegeben, klappt alles nicht.
    Hat noch jemand ne Idee?

  6. Heinz

    Hallo,

    “apt-get install lockfile-progs scanbuttond sane libtiff-tools netpbm” hat funktioniert. Wie wechselt man in das
    Verzeichnis “/etc/scanbuttond”? Entschuldigung für die vielleicht simple Frage, aber ich bin Neuling.

    Schönen Abend noch!

  7. Heinz

    also um das Verzeichnis zu wechseln benutzt man cd wie bei DOS
    “cd /etc” hat funktioniert, aber das Verzeichnis “scanbuttond” wird nicht gefunden
    ???????????

  8. sam

    Hallo habe alles so gemacht wie beschrieben bekomme aber die Meldung das der scan Button desabel ist was nun?

  9. Sianuk

    Hallo Tom,
    wo kann ich nachlesen wie die Button konfiguriert werden?
    Ich brauche die Konfig für:
    1. Mail senden an eine feste Adresse als PDF Datei
    2. In einem festen Verzeichnis ablegen als PDF Datei
    3. Scannen und auf einem Netzwerkdrucker ausgeben.

    Das wars auch schon.

    Grüße

    Sianuk

  10. Oliver G.

    Hallo,

    Anscheinend funktioniert die Anleitung nicht mehr. Habe Scanbuttond über apt-get installiert, was auch geklappt hat. Leider aber befindet sich kein entsprechendes Verzeichnis in /etc/ und konnte such die entsprechenden Dateien über find nicht erörtern..

    Gibts etwas, was ich übersehe?

    Grüsse
    Oliver

  11. Matthias

    Hallo!

    Welchen Canon Scanner benutzt du mit deinem Raspberry Pi? Und welche Raspbian Version? Und funktioniert es jetzt im November 2016 noch? (Zum Beispiel wurde scanbuttond bei einigen Distributionen durch scanbd ersetzt.)

    Vielen Dank schon mal 🙂

    Gruß
    Matthias

Leave a Reply

Your email address will not be published. Required fields are marked *