Fujitsu Scansnap ix500 mit Raspbian (Raspberry Pi) als Scanserver nutzen

Ich träume schon lange von einem papierlosen Büro. Alle meine Dokumente habe ich damit zu jeder Zeit digital, überall und vor Allem ohne lästiges Suchen griffbereit. Zum Beispiel benötige ich ein mal im Jahr alle Unterlagen, um meine Steuererklärung erstellen zu können. Mit nur einem Klick liefert mir mein Digitales Zuhause alle notwendigen Unterlagen.

311CwTn7zQL

Dazu habe ich mir den Fujitsu Scansnap ix500 gekauft. Dieses Gerät hat eine WLAN-Anbindung und ich habe gehofft, damit direkt (ohne zusätzlichen Rechner) auf mein NAS (N54L) zu scannen. Leider ist das so trotz WLAN nicht möglich, es wird immer eine Windows-Software von Fujitsu benötigt. Zusätzlich kann man nicht einfach einen beliebigen Rechner mit dem Scann „koppeln“. Ist ein Rechner per WLAN verbunden, so verhindert das, dass man einen anderen Rechner „koppelt“.

Damit ich dennoch meine Scans ohne einen Rechner auf ein SMB Share speichern kann, nehme ich den Raspberry Pi zur Hilfe. Folgender Plan: Über USB wird der ix500 an den RPi angeschlossen und der RPi speichert die Scans zuerst auf der SD-Karte und schiebt diese auf ein NAS.

Benötigte Technologie:

Die ersten (schematischen) Schritte sind also:

  • SD-Karte beschreiben mit Raspbian Wheezy
    • Bspw. Verwendung von Win32DiskImager
  • sudo raspi-config
    • Expand Filesystem
    • Ggf. overclocking
  • sudo rpi-update
  • aktivieren der sourcen in der sources.list ( sudo nano /etc/apt/sources.list ). Wir benötigen später den Quellcode einiger Pakete zusätzlich
  • apt-get update && apt-get upgrade
  • Upgrade von Wheezy auf Jessie (Howto hier)

Installation von sane für den Fujitsu Scansnap ix500

Ist alles vorbereitet, so muss sane (die Bibliothek für den Zugriff auf Scanner unter Linux) installiert werden. Für den ix500 wird eine sehr aktuelle Version benötigt, also installieren wir diese von den aktuellen Sourcen (Sourcecode).

Wir loggen uns dazu in den RPi über SSH ein und werden für die nächsten Schritte root

sudo -s

Der user pi soll den Scanner nutzen dürfen. Dazu muss die Gruppe scanner erstellt werden und der Benutzer pi hinzugefügt werden.

addgroup scanner
adduser pi scanner

Installation der Pakete für die Installation von sane

apt-get install libusb-dev

In das Arbeitsverzeichnis wechseln, dann den Quelltext aus dem Git Repository holen

cd /usr/local/src
git clone git://git.debian.org/sane/sane-backends.git

Jetzt wechseln wir in das heruntergeladene sane-backends-Verzeichnis und konfigurieren die Dateien. Das kann nun auf dem RPi eine kleine Weile dauern =)

cd sane-backends
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var

Jetzt kann sane kompiliert und installiert werden. Auch das kann wieder einige Minuten dauern =)

make
make install

Nicht mehr benötigt werden die Pakete aus dem Repository, die können entfernt werden:

apt-get remove libsane

Jetzt noch schnell testen, ob die korrekte Library präferiert wird. Wichtig ist hier, dass die 1.0.25 oben steht (sollte mehr als eine libsane library vorhanden sein)

ldconfig -v | grep libsane
		         libsane.so.1 -> libsane.so.1.0.25
         libsane.so.1 -> libsane.so.1.0.23

Sind zwei Libraries vorhanden und die Reihenfolge ist nicht korrekt, hilft folgender Befehl. Danach nochmals mit dem Vorigen testen, ob die Reihenfolge nun korrekt ist.

echo "/usr/local/lib" | sudo tee -a /etc/ld.so.conf.d/1-sane.conf

Testen von Scanimage – hier soll bei beiden Versionsangaben die Version 1.0.25 stehen

scanimage -V
scanimage (sane-backends) 1.0.25git; backend version 1.0.25

Als nächstes die Sprachdateien (Deutsch = de) verlinken

cd /usr/share/locale/de/LC_MESSAGES
ln -sf /usr/local/share/locale/de/LC_MESSAGES/sane-backends.mo .
cd -

Die udev Regeln müssen aktualisiert werden. Danach den Scanner kurz abstecken und wieder anstecken (USB-Port)

cd /usr/local/src/sane-backends
cp tools/udev/libsane.rules /etc/udev/rules.d

Der erste Test kann nun erfolgen, ob der Scanner erkannt wird. Dazu muss der Scanner an sein, das bedeutet, dass das blaue Licht leuchten muss.

scanimage -L
device `fujitsu:ScanSnap iX500:40404' is a FUJITSU ScanSnap iX500 scanner

Als nächster Test loggen wir uns als Administrator aus und führen den Test als unprivilegierter Benutzer „pi“ durch. Hier sollte das selbe Ergebnis angezeigt werden. Eventuell hilft hier zuvor ein beherzter reboot.

exit
scanimage -L
device `fujitsu:ScanSnap iX500:40404' is a FUJITSU ScanSnap iX500 scanner

Test erfolgreich. Jetzt wissen wir, dass der Scanner funktioniert.

Installation und Konfiguration von scanbd

Scanbd ist dafür zuständig die Buttons des Scanners zu überwachen und bei Status-Änderungen ein Skript zu starten. Die Voraussetzungen für das bauen dieses Daemon sind:

sudo -s
cd /usr/local/src
ln -s /bin/sed /usr/bin/sed
apt-get install gawk libconfuse-dev libsane-dev libudev-dev libusb-dev -y

Als root die Dateien für scanbd des letzten Releases (aktuell 1.4.3) downloaden, entpacken, konfigurieren und installieren.

wget -O scanbd-1.4.3.tgz http://downloads.sourceforge.net/project/scanbd/releases/scanbd-1.4.3.tgz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fscanbd%2Ffiles%2Freleases%2F&ts=1438690952&use_mirror=netcologne
tar xvzf scanbd-*.tgz
cd 1.4.3
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
USE_SANE=yes make -e clean all
USE_SANE=yes make install

Dann werden die Konfigurationsdateien kopiert (scanbd wird client, sane wird server)

cp /etc/sane.d/dll.conf /etc/scanbd/

In der dll.conf von sane: alles entfernen außer net

nano /etc/sane.d/dll.conf

in der dll.conf von scanbd: net Zeile deaktivieren (setzen einer # davor)

nano /etc/scanbd/dll.conf

Sane Konfigurieren (Aktivieren von connect_timeout = 60 und localhost in den Einstellungen)

nano /etc/sane.d/net.conf

Backend Dateien von sane nach scandb kopieren (ACHTUNG: Nichts überschreiben!!!)

cp -i /etc/sane.d/*.conf /etc/scanbd/

Zur besseren Übersicht aktivieren wir das debugging und setzen das Level auf 5. Zusätzlich muss dem Parameter group der Wert scanner zugewiesen werden, denn nur diese Gruppe darf scannen:

nano /etc/scanbd/scanbd.conf

Jetzt der erste Testlauf, ob Scanbd startet:

export SANE_CONFIG_DIR=/etc/scanbd
/usr/sbin/scanbd -f -d -c /etc/scanbd/scanbd.conf

Jetzt sollte die Konsole von Meldungen überflutet werden. Daran erkennt man, dass der Scanner abgefragt wird. Wie gewohnt kann mit STRG+C das Programm beendet werden.

Jetzt wird das Startscript kopiert und als Service registriert und aktiviert:

cp /usr/local/src/1.4.3/integration/scanbd.debian /etc/init.d/scanbd
chmod 755 /etc/init.d/scanbd
update-rc.d scanbd defaults
systemctl enable scanbd.service

Jetzt kann man mit /etc/init.d/scanbd start den Deamon starten und er wird auch beim Systemstart geladen. Eine kleine Einstellung muss in dieser Daemon-Datei vorgenommen werden, damit der Binäre Pfad zu diesem System passt: DAEMON=/usr/sbin/$NAME

nano /etc/init.d/scanbd

Nun kann der Daemon getestet werden:

/etc/init.d/scanbd start

[ ok ] Starting scanbd (via systemctl): scanbd.service.

Debug Level zurücksetzen in /etc/scanbd/scanbd.conf auf 2 und Umstellen vom Parameter scriptdir auf /etc/scanbd:

nano /etc/scanbd/scanbd.conf

Damit werden alle mit ausgelieferten Skripte, beispielsweise test.script aktiv. Ein tapferer Reboot, dann prüfen, ob alles funktioniert:

sudo /etc/init.d/scanbd status

scanbd.service – Scanner button polling Service
Loaded: loaded (/lib/systemd/system/scanbd.service; enabled)
Active: active (running) since Tue 2015-08-04 13:37:21 UTC; 4min 46s ago
Main PID: 497 (scanbd)
CGroup: /system.slice/scanbd.service
/usr/sbin/scanbd -f -c /etc/scanbd/scanbd.conf

tail -f /var/log/syslog

Noch schnell auf den Scan-Button drücken und man kann diese Ausgabe sehen:

Aug 4 13:38:42 raspberrypi systemd[1408]: Starting Timers.
Aug 4 13:38:42 raspberrypi systemd[1408]: Reached target Timers.
Aug 4 13:38:42 raspberrypi systemd[1408]: Starting Sockets.
Aug 4 13:38:42 raspberrypi systemd[1408]: Reached target Sockets.
Aug 4 13:38:42 raspberrypi systemd[1408]: Starting Basic System.
Aug 4 13:38:42 raspberrypi systemd[1408]: Reached target Basic System.
Aug 4 13:38:42 raspberrypi systemd[1408]: Starting Default.
Aug 4 13:38:42 raspberrypi systemd[1408]: Reached target Default.
Aug 4 13:38:42 raspberrypi systemd[1408]: Startup finished in 37ms.
Aug 4 13:38:42 raspberrypi systemd[1]: Started User Manager for UID 1000.
Aug 4 13:40:22 raspberrypi scanbd: /usr/sbin/scanbd: trigger action for scan for device fujitsu:ScanSnap iX500:40404 with script test.script
Aug 4 13:40:22 raspberrypi rsyslogd-2007: action ‚action 17‘ suspended, next retry is Tue Aug 4 13:40:52 2015 [try http://www.rsyslog.com/e/2007 ]
Aug 4 13:40:22 raspberrypi scanbd: /etc/scanbd/test.script: Begin of scan for device fujitsu:ScanSnap iX500:40404
Aug 4 13:40:23 raspberrypi scanbd: /etc/scanbd/test.script: End of scan for device fujitsu:ScanSnap iX500:40404

Übersetzt bedeutet das: Der Scanner wird gefunden und wenn auf den Scanbutton gedrückt wird, erkennt das scanbd und startet das Skript „test.script“ =)

Verwendung eines Scanner-Skripts

Jetzt kann mit dem Script gestartet werden. Damit eine Umwandlung von TIFF auf PDF durchgeführt werden kann, wird folgendes Paket benötigt.

sudo apt-get install libtiff-tools -y

Für OCR kann tesseract verwendet werden. Hier installieren wir auch gleich alle Sprachpakete mit (wegen korrekter Erkennung von Umlauten etc.)

sudo apt-get install tesseract\* -y

Damit Multi-Page Tiffs erkannt und mit OCR überprüft werden können, wird noch ein Paket benötigt:

sudo apt-get install libtiff-dev -y

Für die Bearbeitung (bspw. drehen von PDFs) wird folgendes Programm benötigt und installiert:

sudo apt-get install pdftk imagemagick -y

Jetzt kann mit diesen Paketen ein kleines Skript geschrieben werden, welches mehrere Seiten über den Fujitsu Scansnap ix500 in Lineart / S/W einscannen kann und daraus ein PDF mit Texterkennung erstellen kann.

#!/bin/bash

##########################################
## SCRIPT VERSION	1.0.3		##
## AUTHOR:		MARKUS		##
## Requires apt-get install:		##
##		libtiff-tools		##
##		tesseract\*		##
##		libtiff-dev		##
##		pdftk			##
##		imagemagick		##
##########################################

#startdir=$(pwd)
startdir=/home/pi
RANDOMNUMBER=$(cat /dev/urandom | tr -dc A-Za-z0-9 | head -c${1:-16})
outname=$RANDOMNUMBER.pdf
tmpdir=scan-$RANDOMNUMBER
# For deleting blank pages
threshold=0.99
# Regex to check for orientation = 180 degree
regex="\s+Orientation in degrees: ([0-9]{3})\s+"

echo "####### TMPDIR $tmpdir ##########"
cd /tmp
mkdir $tmpdir
cd $tmpdir
echo "################## Scanning ###################"
sudo scanimage --page-width 221.121 --page-height 876.695 -l 0 -t 0 -x 221.121 -y 876.695 --ald=yes --overscan On --prepick=On -b --format=tiff --mode Lineart --resolution 600 --source 'ADF Duplex' --swcrop=yes --buffermode On --swdespeck 2 --swdeskew=yes --swskip 5% --offtimer 0
echo "################### OCRing ####################"
i=1
for page in $(ls -v *.tif); do
	x=`printf "%04d" $i`
	echo "---PAGE: $i -BEGIN-----"
	echo "---PAGE: $i -TIFF2PDF--"
	tiff2pdf -o tiff2pdf_$x.pdf -z -u m -p "A4" -F $page
	echo "---PAGE: $i -PDFTK-----"
	echo "---PAGE: $i -FLATTEN---"
	pdftk tiff2pdf_$x.pdf cat output pdftk_$x.pdf flatten
	pdftk pdftk_$x.pdf dump_data > pdftk_$x.info
	# Test if it is a blank page
	convert pdftk_$x.pdf -colorspace Gray greyscale_$x.tif
	test=`convert "greyscale_$x.tif" -format "%[fx:mean>$threshold?1:0]" info:`
	echo "---PAGE: $i is blank for %: " `convert greyscale_$x.tif -format "%[fx:mean]" info:`
	if [ $test -eq 1 ]; then
		echo "---PAGE: $i -SKIP------"
	else
		echo "---PAGE: $i -NORMALIZE-"
		convert -normalize -density 300 -depth 8 pdftk_$x.pdf $x.png
			echo "---PAGE: $i -TESSERACT-"
		tesseract -psm 0 -l deu+eng $x.png result_$x 1>tesseract_$x.info 2>&1
		tesseract -psm 1 -l deu+eng $x.png result_$x pdf quiet 1>/dev/null 2>&1
		echo "---PAGE: $i -METADATA--"
		pdftk result_$x.pdf dump_data > pdftk_$x.info2
		pdftk result_$x.pdf update_info pdftk_$x.info output final_$x.pdf
		# Orientation check
		file="tesseract_$x.info"
		file_content=$( cat "${file}" )
		if [[ " $file_content " =~ $regex ]]; then
			case "${BASH_REMATCH[1]}" in
				'180' | '270')
					# 180 is upside down - 270 is not readable from right side
					echo "Detected wrong orientation:" ${BASH_REMATCH[1]}
					mv final_$x.pdf wrong_orientation_$x.pdf
					pdftk wrong_orientation_$x.pdf rotate oddsouth output final_$x.pdf
				;;
				*)
					echo "---PAGE: $i has Orientation ${BASH_REMATCH[1]}"
				;;
			esac
		fi
	fi
	echo "---PAGE: $i -END------"
	i=$(expr $i + 1)
done


echo "############ Combine all pdf to one ###########"
pdftk final_*.pdf cat output $startdir/$outname


#echo "################ Cleaning Up ################"
cd ..
rm -rf $tmpdir
cd $startdir

Das Script muss ausführbar gemacht, in der scanbd.conf referenziert und über die scanbd.conf immer dann ausgeführt werden, wenn der Scan-Button gedrückt wird.

chmod +x /etc/scanbd/scnDuplex.script
nano /etc/scanbd/scanbd.conf

Fragen und Zusammenfassung

Mein Hauptproblem ist immer noch die Bildbearbeitung und OCR bei Farb-Scans. Beim Scanner ist die Windows-Lösung von ABBYY mit dabei und diese Funktioniert (auf Windows) hervorragend. Aber sie funktioniert leider nicht auf dem Raspberry Pi, da es ein Windows Programm ist. Die Linux Variante von ABBYY OCR hat genau das gleiche Problem – sie läuft nicht auf dem Raspberry Pi (wg der ARM Architektur).

Somit ist das Problem: Zuverlässige Texterkennung bei Scans in Farbe. Aktuell führe ich OCR auf Lineart (S/W) Bildern durch, was eine sehr gute Erkennungsrate hat. Bei Farbei ist das Ergebnis deutlich schlechter. Mein Gedanke wäre nun, OCR und Bilddrehung auf S/W-Ebene durchzuführen und dann die OCR Informationen zum eingescannten Farb-Bild zu migrieren. Hierfür habe ich jedoch leider noch nicht die passende Lösung gefunden.

Die Dateiablage kann in einem ersten Schritt über eine sinnvolle Ordner-Struktur (Beispielsweise „Rechnungen/Fahrzeuge/GolfV2004/“  oder „Rechnungen/Telekommunikation/Internet“). Im nächsten Schritt wird dann ein DMS verwendet, über das eine Mehrfachzuordnung möglich ist. Mein Anwendungsfall dazu ist die Steuererklärung. So kann ich eine Rechnung zum Fahrzeug zuordnen und mir für meine Steuererklärung vormerken – auch über mehrere Jahre der Abschreibung hinweg (beispielsweise für neu angeschaffte PCs).

Als Ergebnis meiner Tüftelei habe ich nun einen hervorragenden Scanner kombiniert mit dem Raspberry Pi. Ich kann meine Dokumente mit OCR in einem Zielsystem / DMS / Share ablegen und nach den Inhalten durchsuchen. Das Problem mit fehlender Farbe bei den Scans (was für Archivierung leider im Zweifel für Nachweise notwendig sein kann) kann nur organisatorisch gelöst werden: Alles gescannte behalten :-( Und damit ist der Traum des papierlosen Büro / Zuhause wieder etwas in die Ferne geschoben. Aber vielleicht hat ein Leser hier den zündenden Gedanken? Ich würde mich sehr darüber und auch über Feedback freuen!

Ein weiteres Thema, das es zu lösen gilt, ist die Verlinkung zwischen analoger und digitaler Ablage. Hier gibt es beispielsweise den Lösungsansatz eines Paginierstepels. Damit wird vor der Digitalisierung eine Fortlaufende Nummer auf das Dokument gestempelt und nach dem Scan werden alle Dokumente Chronologisch abgelegt und über die Nummer wieder gefunden werden. Die offene Frage hierzu sind die Aufbewahrungsfristen. Als Beispiel nehme ich eine Rechnung mit wenigen Jahren Erhaltungs- / Archivierungswert und der Vertrag einer Lebensversicherung über mehrere Jahrzente Laufzeit. Legt man beide Dokumente fortlaufend ab, sollte ein Ordner niemals entsorgt werden.

Quellen

Gedanken und weiterführende Ansätze

22 Gedanken zu „Fujitsu Scansnap ix500 mit Raspbian (Raspberry Pi) als Scanserver nutzen

  1. Matthias

    Hallo,

    vielleicht bisschen weit her geholt die Idee bzw. aber evtl. ein Weg in den 2 Schritt

    1) Der Rapsberry Pi scannt die Dokumente und legt diese stumpf als PDF in ein festen Tempordner ab.
    2) Ein DMS/ECM Server oder Clientprogramm, ich weiß nicht welches Programm hier vorschwebt. Greift auf den Temp Ordner zu.:
    2.1) Das DMS programmiert liest mittels OCR Software das PDF aus
    2.2) Das DMS speichert die Datei so in den System ab, dass Sie die Dokumente schnell und leicht wiederfinden.
    2.3) Auf dieser Lösung kann man gut aufbauen =D

    1. Markus Artikelautor

      Hallo,

      und danke für deine Antwort – mir schwebt in meiner idealen Welt _noch_ die Unabhängigkeit von einem DMS vor. Konkret habe ich auch schon eines ausgewählt, aber man weiß ja nie, ob man seine Meinung bezüglich der System-Wahl nochmal ändert ;-)

      Aber deinen Gedanken werde ich im Detail nochmal prüfen – insbesondere weil der DMS-Server deutlich mehr Power hat.

      Beste Grüße
      Markus

    1. Markus Artikelautor

      Hallo Erik,

      danke für den Hinweis, das schaue ich mir mal an. OCR ist tatsächlich nicht wirklich schnell, nicht mal auf dem RPi2 :/

      In Anbetracht der Tatsache, dass mein Posteingang überschaubar ist, kann ich das (vorerst) vernachlässigen. Der Pi ist eben eine ideale Test-Plattform und findet mit dem Scanner überall einen Platz.

      Beste Grüße
      Markus

      1. Sebastian

        Hi Markus,

        um das ganze auf einem Raspi2 zu beschleunigen musst du dein script umschreiben und Tesseract z.B. mittels parallel mehrfach starten. Somit habe ich die Texterkennung die von allem am längsten braucht um den faktor 4 (4 Kerne) beschleunigt.

        Grüße,
        Sebastian

        1. Markus Artikelautor

          Hallo Sebastian,

          da würde ich mich sehr über Deine Implementierung interessieren. Würdest du bitte diesen Teil mit uns teilen, dann aktualisiere ich das Skript.

          Danke schon mal
          LG
          Markus

  2. Peter

    Hallo, leider erkennt er bei mir den Scanner nicht. Woran könnte das liegen?

    scanimage -V
    scanimage (sane-backends) 1.0.26git; backend version 1.0.26

    scanimage -L
    No scanners were identified. If you were expecting something different,
    check that the scanner is plugged in, turned on and detected by the
    sane-find-scanner tool (if appropriate). Please read the documentation
    which came with this software (README, FAQ, manages).

    ldconfig -v | grep libsane
    ldconfig: Pfad »/usr/local/lib« mehrfach angegeben
    ldconfig: Pfad »/usr/local/lib« mehrfach angegeben
    ldconfig: Pfad »/lib/arm-linux-gnueabihf« mehrfach angegeben
    ldconfig: Pfad »/usr/lib/arm-linux-gnueabihf« mehrfach angegeben
    ldconfig: /lib/arm-linux-gnueabihf/ld-2.13.so is the dynamic linker, ignoring

    ldconfig: /lib/ld-linux.so.3 is the dynamic linker, ignoring

    libsane.so.1 -> libsane.so.1.0.26

  3. Peter

    /usr/local/src/1.4.3/integration/scanbd_dbus.conf musste bei mir noch kopiert werden in die /etc/dbus-1/system.d, da es sonst immer eine Fehlermeldung (scanbd: Name Error (Connection „:1.8“ is not allowed to own the service „de.kmux.scanbd.server“ due to security policies in the configuration) gab.

  4. Ayhan Yildiz

    Hallo,

    Auch ich plane in Zukunft alles „Digital“ zu archivieren, habe hier einen Fi 5220C zum probieren, läuft aber nicht sehr rund da ständig mehrere Seiten eingezogen werden,

    Wegen Neuanschaffung stehe gerade zwischen IX500 und dem ADS2600w von Brother, Preisunterschied ist nicht unbedingt riesig, mein Problem ist das bei uns im Haus nur mit Linux gearbeitet wird.
    Der ADS2600 hätte den entscheidenden Vorteil das man ohne einen Rechner direkt auf unseren Netzlaufwerk speichern kann, oder Scan to mail etc,, fehlt dann halt noch OCR, was man sicherlich per Script lösen kann.
    andererseits habe ich von Brother viel negatives gehört was Zuverlässigkeit angeht,

    SANE ist ja schön und gut aber wie sieht es denn eigentlich mit der „Seitenbgradigung“ usw aus, geht das nur mit der Windows Software, oder übernimmt das dieser „GI“-Prozessor und somit auch unter Linux nutzbar, oder automatisch leere Seiten löschen ?

    Ich scanne momentan noch mit GScan2PDF, deshalb würde mich das schon brennend Interessieren ob diese Dinge auch wirklich unter Linux nutzbar sind, wenn ja könnte ich mir vorstellen einen 3,2 Zoll Touchscreen an einen Raspberry zu montieren um Vollständig über den PI zu steuern, somit könnte man weitaus mehr Funktionen „rausholen“ als mit der ADS2600w möglich sind ;)

    Gruß
    Ayhan

    1. Markus Artikelautor

      Hallo Ayhan,

      wie ich das lese kann der Brother ADS-2600WE auch gleichzeitig OCR und auf einem Samba Share ablegen.

      Vom Funktionsumfang stand heute würde ich auch eher den Brother ausprobieren als den Fujitsu. Der Fujitsu brauch halt immer einen angeschlossenen Rechner, trotz „WLAN“. Wenn man immer nur am Rechner scannt, ist der Fujitsu wirklich sehr angenehm – für den „kopflosen“ Betrieb würde ich ihn nicht einsetzen wollen.

      Wie der Brother mit der Seitenbegradigung und leeren Seiten umgeht (und Farberkennung, OCR, etc.) kann ich nicht beurteilen. Der Fujitsu macht das mit der Windows-Software ganz ordentlich, halt nicht Kopflos …

      Grüße
      Markus

  5. Mokkaschnitte

    Nur auch als Ergänzung, da ich ein ähnliches Projekt derzeit auf dem Raspi2 versuche. Meine aktuelles Ziel wäre folgendes:
    1. Netzwerkscanner, der tatsächlich auf einem Samba-Share (USB-Platte an Raspi) die Dateien als PDF im Eingangskorb ablegt (hier hakt es leider noch, da viele Scanner scheinbar als Gegenseite tatsächlich einen PC benötigen…). Das ist dann auch die recht teure Seite der Medallie…
    2. Die USB-Platte am Raspi ist komplett via Samba für einen Windows-PC erreichbar.
    3. Ab und an (ggf. via Autoit-Skript) wird diese eingebunden, es läuft eine OCR durch und die Dateien werden anschließend via „File Juggler“ (automatische Verschiebe-/Kopiermaschine für Dateien jeglicher Art) durch diesen PC anhand von div. Regeln in passende Unterordner auf dieser USB-Platte am Raspi verschoben (geht bereits, damit lassen sich dann auch gleich Fotos, mp3 etc. umbenennen/einsortieren).
    4. die PDF und auch die anderen Dateien lassen sich im Hausnetz über alle Endgeräte über die recoll-webui (Anleitung: http://jankarres.de/2014/03/raspberry-pi-dokumentenverwaltung-mit-ocr-einrichten) finden und (bei richtiger Konfiguration, siehe Kommentare) via FTP auch herunterladen. Läuft jedenfalls unter Android im Firefox :-)
    5. Zusätzlich wird ein doppeltes Backup durchgeführt: Nachts holt sich die QNAP-NAS einfach das komplette Verzeichnis im Rahmen eines Backup-Auftrags (geht) und außerdem bindet ein Skript auf dem Raspi mehrere Cloud-Speicher von T-Online (jeweils 25GB) wie webdav ein und schiebt alle Dateien verschlüsselt (encfs, siehe http://www.forum-raspberrypi.de/Thread-raspbian-duplicity-vs-davfs2-encfs) dort rein. Also ein verschlüsselter Upload in einen oder mehrere T-Online-Accounts. Läuft auch soweit.

    Die Einzelteile laufen zwar soweit, nur finde ich momentan keinen Scanner (auch nicht business), bei dem ich mir sicher bin, dass er tatsächlich eigenständig auf Samba hochladen kann. Hat da jemand einen Tipp?

    1. Oliver A.

      Hi, so ähnlich habe ich das bei mir auch umgesetzt ,nur das ich entweder per schlagworte oder barcodeseiten die Pdf Dateien schon in die richtigen Unterordner verschiebe.
      Auf dem Raspi hab ich es aufgegeben der is nir auch in v2 zu langsam. Ich fische den text aus den pdfs raus und werf ihn in eine datenbank mit volltextsuche. Alternativ kann bsw. das qnap ts-251 welches ich nutze auch über die qsirch app die dateien durchsuchen.
      Laufen tut das ganze bei mir in einer ubuntu server vm auf dem qnap nas, das ist recht zügig. Als backup landen dann die pdf ordner noch auf einer ext. Festplatte und auf meinem root server per https webdav sync.
      Scannen tu ich mit einem brother adw 1600 der kann auf ein ftp share scannen. Entweder pdf(nicht durchsuchbar) oder jpg. Die zur Umwandlung hab ich mir ein Script gebastelt ähnlich dem oben oder bei jan karres.
      Umwandeln in durchsuchbare pdf, per Schlagwort oder wenn vorhanden per Barcode benennen und wegsortieren, thumbnails erstellen in db sortieren/indexieren.

      Ps: Danke Markus für den Link zu meiner Seite.

      Oli

  6. Stephan Zellerhoff

    Hallo Markus!

    Vielen Dank für die Anleitung. Seit längerem besitze ich einen scansnap 1300i und wollte ihn nicht mehr an meinem mac, sondern an einen raspberry pi2 betreiben. Mit Deiner Anleitung hat es geklappt! Ich benutze im Verlauf des processings tiff und nicht png, da ansonsten die Größe des pdfs nicht a4 war. Mit

    sudo scanimage –brightness 55 –contrast 45 –page-width=210 –page-height=297 –format=tiff –mode Color –resolution 300 –source ‚ADF Duplex‘ –batch=/home/pi/tmp/$tmpdir/output%03d.tiff

    kann ich in Farbe scannen und habe zusätzlich noch

    unpaper -v -t ppm -l single –post-size a4 –size a4 output%03d.tiff.pnm unpaper%03d.ppm

    eingebaut, um das gescannte Bild vor der OCR anzupassen. Dadurch habe ich gute Erkennungsraten. Hast Du eine Idee, wie das script angepasst werden kann, so dass nach dem eigentlichen Scannen die weitere Verarbeitung im Hintergrund abläuft und ein erneuter Scan möglich ist (also eine Art queue)?

    Grüße

    Stephan

  7. Christopher Klein

    Sorry bitte vorheriges Kommentar löschen.

    Danke für deine Mühe. Ich habs soweit auch am laufen. Wenn ich

    scanimage –format pnm > /home/pi/outfile.pnm

    eingebe scannt er auch (Fujitsu 5110C)
    Nur auf den Button reagiert er nicht.

    Teste ich den Kopf mit scanbd -f funktioniert das.
    Hier die Ausgabe. Hast Du einen Tipp wo es dran hakt?

    Ok jetzt beim testen klappt auch das nicht
    http://pastebin.com/jG3L1AaS

    1. Christopher Klein

      Hier nochmal als Kurzzusammenfassung:

      pi@raspberrypi:~ $ tail -f /var/log/syslog

      Feb 11 15:05:11 raspberrypi scanbd[389]: /usr/sbin/scanbd: trigger action for scan for device fujitsu:fi-5110Cdj:132839 with script scnDuplex.script

      Das Script liegt unter:
      /etc/scanbd/scnDuplex.script und ist ausführbar

  8. lilalinux

    Hallo Markus,

    danke fürs teilen!
    Ich verwende das ganze mit Ubuntu auf einem RPi2 Model B: https://wiki.ubuntu.com/ARM/RaspberryPi

    Nach dem Hinweis von Peter mit der scanbd_dbus.conf musste ich noch das sudo aus dem Skript entfernen und im Skript SANE_CONFIG_DIR=/etc/scanbd setzen und exportieren, dann hat es endlich geklappt.

    Leider ist der Scanvorgang selbst viel langsamer als im Betrieb mit OS/X. Liegt das am Sane oder ist der Pi einfach zu schwach für diese Aufgabe?

    Scheinbar kann man auch keine weiteren Dokumente scannen, währen das PDF erzeugt wird. An welcher Stelle könnte man das denn in den Hintergrund schicken? Kann man das im scanbd konfigurieren oder geht das nur über das Script?

    1. Markus Artikelautor

      Hallo lilalinux,

      hast du schon mal die Auflösung von beiden Ergebnissen verglichen? Eventuell gibt es da Unterschiede. Höhere Auflösungen führen zu weniger Speed :-)

      Das mit dem Scannen während das Script läuft habe ich auch als Problem auf dem Schirm, aber leider noch keine Lösung parat …

      Vielleicht findest du etwas, das uns hier weiter hilft?

      Danke =)
      Markus

      1. Nabil Sayegh

        Upsi :-) Du hast natürlich Recht. Die mitgelieferte Software scant per default in Bildschirmauflösung: 72dpi
        Ich muss mal gucken, was ich da an Schmerzgrenze akzeptieren kann. Die Auflösung hat mich für den bisherigen Zweck (Rechnungen und Korrespondenz scannen). Aber 72dpi ist irgendwie schon arg wenig. Allerdings darf der Scan auch nicht zu lange dauern, sonst ist man schnell frustriert und die guten Vorsätze sind dahin ;-)
        150dpi sollten aber bestimmt noch drin sein.

        Was mir bereits aufgefallen war ist, dass scanimage noch 2 Minuten beschäftigt war, nachdem das Blatt bereits wieder den Scanner verlassen hatte und so lange war auch der Scanner blockiert (bei 600dpi).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *