• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Raspberry Pi: Dokumentenverwaltung mit OCR einrichten

05. März 2014
Raspberry Pi
57 Kommentare

Im Dezember schrieb mich Sascha, der hier auch mitließt, mit einem Themenvorschlag an. Er bastelte an einer Dokumentenverwaltung mit OCR (gescanntes Dokument wird in Text verwandelt, damit es durchsuchbar wir) auf dem Raspberry Pi. Damit kann man von überall aus auf wichtige Dokumente zugreifen und sie sind indexiert wie auch durchsuchbar. Insbesondere letztere Funktion ist zum schnellen Auffinden vorteilhaft. Auf dem Raspberry Pi sind die Dokumente nicht bei einem dritten Anbieter gelagert, sodass auch der Punkt Datenschutz Beachtung findet. Im folgenden Artikel werde ich unter Einbezug der Erfahrungen von Sascha erklären, wie man eine Dokumentenverwaltung mit OCR auf dem Raspberry Pi einrichtet und verwendet. Dabei sei vorab noch erwähnt, dass mit einer Wartezeit von zwei bis drei Minuten pro gescannter Seite zu rechnen ist, bis es final abgelegt ist, da der Raspberry Pi eben kein Powerpaket ist. Des Weiteren kann diese Lösung „nur“ mit Dokumenten im PDF und TIF umgehen und die Erkennung von Umlauten (ä, ö, ü und ß) in Dokumenten funktioniert nicht. Wenn diese kleinen Einschränkungen nicht stören, sollte man mit der folgenden Lösung seinen Spaß haben.

Step 1

Zunächst sollten wir den Raspberry Pi übertakten, damit wir etwas mehr Leistung aus diesem rausholen. Wie dies funktioniert, erklärte ich bereits in dem Artikel Overclocking/Übertakten ohne Garantieverlust.

Step 2

Nun müssen wir eine Verzeichnisstruktur anlegen, in der die Dokumente später abgelegt werden. Diese sollte man an einem Ort anlegen, an dem genug Speicherplatz für die später eingescannten Dokumente vorhanden ist. In raw/ werden die zu bearbeitenden, eingescannten Dokumente später zu finden sein. Diese werden vor der Verarbeitung in dem Ordner backup/ gesichert. In handled/ werden sich die, durch die Dokumentenverwaltung verarbeiteten, Dokumente wiederfinden und in tmp/ werden Dateien bei der Verarbeitung durch die Dokumentenverwaltung zwischengelagert. In diesem Tutorial gehen wir davon aus, dass wir diese Ordner in /home/pi anlegen. Falls dem bei dir nicht so ist, musst du dies in diesem und den folgenden Schritten jeweils ändern.

cd /home/pi
mkdir document-vault
mkdir document-vault/raw
mkdir document-vault/backup
mkdir document-vault/handled
mkdir document-vault/tmp

Step 3

Wir müssen nun noch einige Softwarepakete für die Dokumentenverwaltung installieren. Dies können wir ganz einfach über den Paketmanager APT mittels des folgenden Kommandos erledigen.

sudo apt-get update
sudo apt-get install ghostscript libtiff-tools imageMagick pdftk tesseract-ocr bc python-reportlab python-lxml oracle-java7-jdk screen aspell-de

Step 4

Des Weiteren müssen wir OCRmyPDF, ein in Java geschriebenes Programm, welches die Texte in den gescannten Dokumenten erkennt, installieren. Wir benötigen die Version 1.1, da neuere Versionen nicht mehr so einfach funktionieren. Bei Interesse findet man jedoch die aktuelle Version der Software in dessen Git Repository auf GitHub.

cd /home/pi/document-vault
wget https://github.com/fritz-hh/OCRmyPDF/archive/v1.1-stable.tar.gz
tar xfvz v1.1-stable.tar.gz
mv OCRmyPDF-* OCRmyPDF
rm v1.1-stable.tar.gz
chmod 755 OCRmyPDF/OCRmyPDF.sh

Step 5

Jetzt müssen wir ein Script zur Dokumentenverwaltung anlegen. Dieses wird später Dateien konvertieren und durch das ORC System jagen.

nano run.sh

#!/bin/sh
 
# Check lockfile
if [ -f run.lock ]
then
    echo "----- Script is already running -----"
    exit
fi
 
date +%s > run.lock
 
# Create a backup from input files and move files for ocr to tmp/
find /home/pi/document-vault/raw -name "* *" -type f | rename 's/ /_/g'
cp /home/pi/document-vault/raw/* /home/pi/document-vault/backup
mv /home/pi/document-vault/raw/* /home/pi/document-vault/tmp
 
# Convert .tif to .pdf
echo  "----- Get the .tif and convert -----"
for i in `ls /home/pi/document-vault/tmp/*.tif | cut -d. -f1`;
    do tiff2pdf -o $i.pdf $i.tif;
    
    echo  " converting $i.tif"
    rm  $i.tif;
done
 
# Start ocr the documents
echo  "----- Starting OCR -----"
echo  "----- Note: 2-5 Minutes per page! Not file -----"

for i in `ls /home/pi/document-vault/tmp/*.pdf | tr '\n' '\0' | xargs -0 -n 1 basename`;
    do sh /home/pi/document-vault/OCRmyPDF/OCRmyPDF.sh /home/pi/document-vault/tmp/$i /home/pi/document-vault/handled/$i &&

    echo  " OCR finish from $i"
done
 
# Remove raw files from ocr layered files
rm /home/pi/document-vault/tmp/*
rm run.lock
 
echo  "----- Finish -----"
Step 6

Des Weiteren brauchen wir ein Script, das den Index der Suche aktualisiert, wenn sich der Datenbestand verändert hat. Dieses legen wir in diesem Schritt an.

nano index.sh

#!/bin/sh
 
# Check lockfile
if [ -f index.lock ]
then
    echo "----- Script is already running -----"
    exit
fi
 
date +%s > index.lock

# Update index
recollindex

rm index.lock
 
echo  "----- Finish -----"
Step 7

Ein drittes Script wird auch noch benötigt, welches die Lockfiles bei einem Reboot bereinigt.

nano clean.sh

#!/bin/sh
 
# Clean up lockfile
rm index.lock
rm run.lock

echo  "----- Finish -----"
Step 8

Die Scripts aus den vorherigen Schritten müssen wir nun noch ausführbar machen.

chmod +x run.sh
chmod +x index.sh
chmod +x clean.sh

Step 9

Jetzt müssen wir Recoll mit der dazugehörigen Weboberfläche installieren. Recoll ist eine schlanke Dokumentensuchmaschine, die den kompletten, durch OCR aus dem gescannten Dokument geholten Text durchsuchbar macht. Im Folgenden installieren wir Recoll über den Paketmanager APT.

sudo apt-get install recoll python-recoll

Step 10

Nun müssen wir noch das Recoll Webinterface herunterladen. Dabei brauchen wir die Version 1.18.1, da es ansonsten zu Kompatibilitätsproblemen mit der installierten Recoll Version kommt.

wget https://github.com/koniu/recoll-webui/archive/v1.18.1.zip
unzip v1.18.1.zip
rm v1.18.1.zip
mv recoll-webui-1.18.1 recoll-webui

Step 11

Da diese Version nicht ganz lauffähig ist, müssen wir nun den kompletten Inhalt der Datei recoll-webui/webui-standalone.py durch folgenden Code ersetzen. Speichern kann man in dem Editor nano mittels STRG + X, Y und Enter.

nano recoll-webui/webui-standalone.py

#!/usr/bin/env python
import argparse
import bottle
import webui

# handle command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument('-a', '--addr', default='127.0.0.1',help='address to bind to [127.0.0.1]')
parser.add_argument('-p', '--port', default='8080', type=int, help='port to listen on [8080]')
args = parser.parse_args()

webui.bottle.debug(True)
webui.bottle.run(host=args.addr, port=args.port, reloader=False)
Step 12

Nachdem nun endlich alles Nötige installiert ist, geht es an das Einrichten. Leider habe ich keine Möglichkeit gefunden, ohne XServer (grafischer Oberfläche) Recoll zum erstmaligen Start anzusprechen. Daher müssen wir über die grafische Oberfläche auf den Raspberry Pi zugreifen. Entweder hängen wir diesen hierzu an einen Bildschirm oder wir greifen über Remote Desktop bzw. VNC Server auf diesen zu. Für letztere beiden Varianten habe ich die entsprechenden Anleitungen verlinkt. Der Zugriff über die grafische Oberfläche ist nur in diesem Schritt notwendig.

Wenn wir nun in der grafischen Oberfläche des Raspberry Pis sind, öffnen wir den Terminal (in Raspbian LXTerminal genannt). Dort geben wir folgendes Kommando ein, woraufhin sich einige Sekunden später Recoll öffnen sollte.

recoll

In dem Recoll Fenster sollte das First indexing setup Fenster offen sein, in dem wir über einen Klick auf Indexing configuration die Konfigurationen des Programmes aufrufen können. Dort löschen wir zunächst im Top directories den Eintrag ~ (Tilde). Anschließend fügen wir den Pfad zum Ordner handled/ (/home/pi/document-vault/handled) hinzu. Anschließend fügen wir bei dem Punkt Stemming languages die Auswahl german hinzu. Wir bestätigen die Änderungen mit einem Klick auf OK. Anschließend starten wir die Erstellung des bislang leeren Indexes mittels eines Klicks auf Start indexing now. Sobald in der unteren Zeile des Hauptfensters von Recoll kein Text mehr steht, können wir es schließen und haben diesen Schritt geschafft.

Step 13

Nun müssen wir einen Cronjob einrichten, der einmal in der Minute das oben angelegte Script zum Verarbeiten der Dokumente ausführt, sofern das Script vom letzten Aufruf nicht noch läuft. Des Weiteren soll alle fünf Minuten geprüft werden, ob sich der Datenbestand geändert hat und ggf. der Index aktualisiert werden. Dazu fügen wir am Ende der Crontab Datei folgende Zeile ein.

crontab -e

* * * * * sudo /home/pi/document-vault/run.sh > /dev/null 2>&1
*/5 * * * * /home/pi/document-vault/index.sh > /dev/null 2>&1
Step 14

Jetzt können wir das Webinterface erstmals starten. Dabei ist darauf zu achten, dass man sowohl den Port als auch die IP-Adresse/DynDNS Domain auf dem das Webinterface laufen gelassen werden soll, definiert werden müssen.

cd /home/pi/document-vault/recoll-webui
./webui-standalone.py -a [IP] -p [Port]

Beispiel
./webui-standalone.py -a 192.168.178.22 -p 8080

Step 15

Hat alles geklappt, so können wir nun im Browser unter http://IP:Port/ (im Beispiel http://192.168.178.22:8080/) das Webinterface aufrufen. Wir können im Terminal mittels STRG + X die aktuelle Instanz des Webinterfaces wieder schließen

Step 16

Damit das Webinterface bei jedem Start des Raspberry Pis automatisch gestartet wird, müssen wir eine screen Instanz hiervon in eine Crontab legen. Dies geht, indem wir am Ende der Crontab Datei folgende Zeile einfügen (IP und Port wie oben anpassen). Des Weiteren tragen wir auch das Clean Script in die Crontab, damit es nach einem Neustart des Raspberry Pis nicht zu Fehlern kommt.

crontab -e

@reboot screen -dmS RecollWebGui bash -c "cd /home/pi/document-vault/recoll-webui && ./webui-standalone.py -a [IP] -p [Port]"
@reboot /home/pi/document-vault/clean.sh > /dev/null 2>&1
Step 17

Soweit ist nun alles eingerichtet, was zum Verwalten der Dokumente gebraucht wird. Nun stellt sich noch die Frage, wie die eingescannten Dokumente auf den Raspberry Pi gelangen. Im Endeffekt müssen die Dokumente irgendwie in den Ordner /home/pi/document-vault/raw (ggf. abweichend) wandern. Ich kann hierzu empfehlen, Samba zu verwenden, womit man eine Netzwerkfreigabe einrichten kann. Wie dies geht, beschrieb ich bereits in dem Tutorial Samba Server installieren.

Dabei sollte man in Step 6 des Tutorials folgenden Eintrag hinzufügen:

[Neue Dokumente]
path = /home/pi/document-vault/raw
writeable = yes
guest ok = no

[Abgelegte Dokumente]
path = /home/pi/document-vault/handled
writeable = yes
guest ok = no
Step 18

Abschließend sollten wir den Raspberry Pi noch einmal neustarten.

sudo reboot

Endlich geschafft! Wenn du nun alles richtig gemacht hast, solltest du das Webinterface aufrufen und in diesem nach einem Dokument suchen können (Herunterladen via Samba). Neue Dokumente solltest du über die Netzwerkfreigabe auf den Raspberry Pi laden können. An dieser Stelle sei noch einmal erwähnt, dass diese Lösung nur mit PDF und TIF Dokumenten umgehen kann und es ein paar Minuten dauern wird, bis ein neues Dokument durch das OCR System gejagt wurde und folglich in Recoll zu finden sein wird. Des Weiteren sei noch erwähnt, dass das Setzen eines Passwortes für das Webinterface nur möglich wäre, wenn man diesen durch einen Webserver als Proxy jagen würde, was ich mir in diesem Tutorial erspart habe, da man sowohl IP-Adresse des Raspberry Pis und Recoll Webinterface Port kennen muss, um auf dieses zuzugreifen. Wer das dennoch haben möchte, sollte es mal auf eigene Faust versuchen 😉

Quellen: Recoll WebUI Issues

57 Kommentare. Hinterlasse eine Antwort

  • Sascha Flach
    November 5, 2014 8:39 pm

    Dank Jan habe ich nun seit vielen Monaten diese Dokumentenverwaltung am start.

    Fazit: Sehr schnelle und leichte Veraltung für den privat gebrauch. Besser als große installationen.

    Vielen Dank Jan!

    Antworten
    • Jan Karres
      November 9, 2014 1:16 am

      Freut mich zu lesen, dass diese Zusammenarbeit wohl auch auf längere Sicht nützlich war bzw. ist 🙂

      Antworten
  • Heiko
    November 20, 2014 6:25 pm

    Ich war von der Möglichkeit auch super begestert. Installiert ist alles, aber ich bekomme einen Fehler von OCRmyPDF.sh. „Resolutions difference (290.42016/277.05463) higher than expected (.81716). Exiting…“ Hat jemand eine Idee?!

    Antworten
    • Jan Karres
      November 23, 2014 6:52 pm

      An dem Format des gescannten Dokumentes scheint so zu sein, dass es nicht verarbeitet werden kann (irgendwas stört an der Auflösung). Konkretes bekomme ich aus er Fehlermeldung aber auch nicht raus.

      Antworten
      • Sascha Flach
        November 23, 2014 9:48 pm

        Wenn ich Morgen da dran denke schaue ich mal welche Auflösung etc. Meine Dokumente habe.

        Hast Du pdf oder jpg Dateien gescannt ?

        Antworten
        • Heiko
          November 24, 2014 11:37 am

          Ich habe nur PDFs in das Verzeichnis gelegt. Aber kein PDF ist von der Auflösung korrekt! Daher glaube ich, das irgendetwas nicht mehr korrekt die Auflösung bestimmt. Alle Versionen >1.1 kann man auch vergessen, da die abhängigen Pakete für Wheezy nicht verfügbar sind… Danke aber schon mal…

          Antworten
  • max
    Dezember 27, 2014 8:32 pm

    Hallo Jan! ich bin seit einigen Wochen an einem änlichen Projekt dran und gerade zufällig auf die Seite hier gekommen.
    Ich habe eine Frage. Weißt du vielleicht ob es ein änliches Programm wie ocrmypdf gibt was einem erlaubt in jpg. datein zu suchen? oder ist dies sogar mit ocrmypdf möglich?

    Außerdem würde mich interressieren wie die qualität des finales textes ist nach dem umwandeln mit dem ocr tool.

    tesseract-ocr oder andere tools haben bei mir meist sehr seltsame resultate hervorgebracht^^

    gruß max

    Antworten
    • Sascha Flach
      Dezember 28, 2014 8:05 am

      Hallo Max, ich bin der besagte Sascha. Ein ähnliches Projekt wie OCRmyPdF ist mir nicht hat bekannt.

      Ich bin auch gerade dabei dieses Projekt hier mal via installiert zu verwirklichen. Vielleicht kann man ja was zusammen machen?

      Ich bin mit den Ergebnissen absolut zu frieden. Bis auf die Umlaute.

      Ansonsten würde ich das Script erweitern. Jpg zu tiff.

      Antworten
      • max
        Dezember 28, 2014 6:51 pm

        Hi sascha

        Als zusatzinfo, das ganze soll dazu dienen bilder die uber den pi gemacht werden in text umzuwandeln. Bin naemlich zu faul runter in den keller zu laufen um den wasser zähler abzulesen 🙂
        sollen eben nur zahlen uebersetzt werden.

        Koennen uns da gerne mal zusammen dran setzen, jedoch gibt es noch weitere probleme die ich vorher beheben muss 🙂

        Antworten
        • Sascha Flach
          Dezember 28, 2014 7:05 pm

          Gute Idee, ich habe eigentlich alles schon da. Ein Raspberry mit Ps3 Kamera und Motion. Stromzähler und Dokumenten Verwaltung. Sehr interessant was du da anreist.

          Antworten
  • Meister_Knobi
    Januar 4, 2015 10:19 pm

    Moin moin,
    irgendwie klappt das bei mir nur teilweise. Wenn ich OCRmyPDF manuell ausführe bekomme ich immer einen Haufen fehlermeldungen.
    wenn ich das script im terminal ausführe mekert er : Basename fehlender operant

    Kann es daran liegen das ich die „alten“ packete über wget gezogen habe, aber die aktuellen über den packetmanager bezogen habe?

    Das seltsame ist aber das es ab und zu funktioniert ein paar pdf mit text ebene habe ich erhalten aber das ist nur ca 1/4 von dem was ich in raw geschogen habe.

    Was ich zudem festgestllt habe ist das wenn 2 Dateien gleich heißen, zB scann_001.pfd werden in Backup und in Handled die bereits existirenden Dateien überschrieben. Das Könnte man vll einfach mit einem Zeitstempel beheben.

    Antworten
  • Florian
    Januar 11, 2015 3:00 pm

    Hallo,

    habe alles nach Ihrer Anleitung installiert. Habe während der Installation auch keinerlei Fehlermeldungen erhalten. Nun habe ich eine PDF Datei per WinSCP auf meinen Pi in den Ordner „raw“ geladen. Die datei wird auch kurze zeit später automatisch in den Ordner „backup“ geschoben. Doch mehr passiert nicht. Auch nach einer stunde kann ich über recoll noch nichts finden.
    Wenn ich in den Ordner „ocrmypdf/tmp“ gehe, lässt sich auch erkennen, dass schon etwas an der pdf datei gearbeitet wurde. Dort sind Grafiken aus dem PDF und einige textdokumente mit Zahlenfolgen zu finden.

    Wo kann ich denn einen detaillierten log bzw. fehlermeldungen finden ?? Habe den Ordner „var/log“ schon durchsucht aber kann keine Fehlermeldung finden.

    Könnten Sie mir hier weiterhelfen ?

    Vielen Dank!

    Gruß

    Florian

    Antworten
    • Sascha Flach
      Januar 11, 2015 9:46 pm

      Ein detailliertes Log kenne ich nicht. Sind alle drei Scripte Chmod – x ( Run clean und Index? ).

      Ansonsten würde ich mir eine PDF Datei nehmen und von Hand mal durch OCRmyPdF schicken . /OCRmyPdF testen.pdf oder so. Siehst du mit dem. Befehl top etwas?

      Antworten
      • Florian
        Januar 12, 2015 4:09 pm

        Hi,

        habe den Fehler gefunden. Ich habe zum testen eine x-beliebige PDF genommen bzw. keine eingescannte PDF. Damit kann OCRmyPDF wohl nicht umgehen.
        Nun habe ich mal ein Dokument eingescannt und auf den Pi kopiert, und hat gleich auf anhieb funktioniert.

        Nur habe ich noch eine Frage:

        Wenn ich in Recoll nun nach Dateien suche, kann ich die gefundenen PDF dateien nicht aus dem Browser heraus herunterladen. Ist dies irgendwie möglich ?

        Gruß Florian

        Antworten
        • Sascha Flach
          Januar 12, 2015 7:11 pm

          Jan hatte dazu oben etwas geschrieben. Ich persöhnlich habe es etwas anders gelöst.

          ich habe einen apachen installiert und das verzeichniss handeld in var/www/handeld gemountet. Im Recoll Webinterface kannst du unter settings den Link angeben und alles ist fluffig.

          Antworten
  • Sascha Flach
    Januar 14, 2015 6:55 pm

    Das ganze Projekt lebt nun auf https://github.com/JuXReal/SimpleDocumentManagement

    Am Ende soll ein Installscript alles für euch übernehmen.

    Derzeit noch eine Beta

    Antworten
  • Mario Vogel
    März 20, 2015 9:02 pm

    Hallo Jan. Vielen Dank für dieses überragende Tutorial. Hat mir den Wiedereinstieg in diesen Bereich deutlich vereinfacht. Mein Ziel war es das private Büro papierlos zu bekommen.
    Folgendes Setup habe dazu gewählt. Raspberry Pi (am Router), Netwerkdrucker (Brother MFC-L2740DW), 2x1TB USB Festplatten (Toshiba Canvio Basics), Amazon Basic USB Hub mit 4 Ports.

    Die beiden Festplatten habe ich zur Datensicherung am Raspberry über mdadm als Raid1 Verbund eingerichtet. Hierzu gibt es zahlreiche sehr gute Tutorials. Allerdings sollte man beachten, dass bei einem Reboot der Kernel gestartet wird noch bevor sich die USB devices gemeldet haben. Ein rootdelay hilf hier weiter. (hat lange gedauert bis ich das gecheckt hab 😀 )

    Das Einrichten von OCRmyPDF und Recoll hat super funktioniert. Allerdings habe ich noch ein paar zusätzliche Einstellungen vorgenommen, die eventuell nützlich sein könnten. Und zwar habe ich in der run.sh in Zeile 30 hinter OCRmyPDF.sh noch die Optionen „-d“ für das Geradeziehen der eingescannten Bilder und „-l deu“ für Deutsch hinzugefügt. Bei Letzterem muss vorher noch die deutsche Sprachdatei für tesseract installiert werden (tesseract-ocr-deu). Vor allem das Geradeziehen der Bilder ist für die Untere Hälfte des Dokuments sehr hilfreich bei der Texterkennung. 😉

    Bei der Recoll Web Oberfläche hat mich gestört, dass ich über den Hyperlink nicht auf das Dokument zugreifen konnte. ==> Anpassung der /home/pi/recoll-webui/views/result-tpl
    Zeile 11 sieht bei mir folgendermaßen aus:

    [{{d[‚label‘]}}]

    Die Recoll Startseite rufe ich via InternetExplorer auf und lege die Seite als „Vertrauenswürde Seite“ in den Einstellungen unter „Internetoptionen“ –> „Sicherheit“ an. Und schon öffnet sich beim Click auf das entsprechende Suchergebnis das entsprechende PDF in einem neuen Tab.

    Noch eine kurze Sache zum Brother MFC. Hier gibt es leider keine Einstellung um die gescanten Blätter in einzelnen PDF Dokumenten abzulegen. Wen das stört, kann sich mit pdftk behelfen und so die erzeugten PDFs wieder zerstückeln. Ich habe das Ganze gleich in der run.sh eingebunden.

    Achja un den Brother musste ich via FTP anbinden. Samba hat leider nicht funktioniert.

    Wer noch Fragen zu den einzelnen Punkten hat kann sich gerne bei mir via Facebook melden.

    Antworten
    • Sascha Flach
      März 21, 2015 12:07 pm

      Hallo Mario,
      schön das es bei Dir so gut läuft. Ich habe angefangen das ganze hier als ein Github Projekt aufzusetzen. ( https://github.com/JuXReal/SimpleDocumentManagement ).

      Ziel ist es einen einfachen Installer zu machen, damit dieses Tutorial entfällt.

      Vielleicht hast Du ja Lust mit zu helfen?

      Leider stecke ich gerade etwas fest. Alles wird installiert etc. Aber die Cronjobs starten nicht. Leider kenne ich mich nicht gut damit aus.

      Vielleicht würdest Du ja sogar deine Verbesserungen ( Sprache etc.) commiten ?

      Ich wüsste zum Beispiel nicht wie ich das als Variable einbaue. In dem Guthub Projekt gibt es eine Config Datei, zum einfachen Editieren.

      PS: Ich habe Dich absichtlich nicht in FB angeschrieben, da hier alles für alle Leute einzusehen ist. Ich hoffe das ist kein Problem.

      MFG
      Sascha

      Antworten
  • OliverAmann
    April 30, 2015 9:56 pm

    Hi,
    unhabhängig von diesem Projekt hab ich mir , ebenfalls auf Basis von OCRMyPDF ein script gebaut welches normale nicht durchsuchbare PDFs in durchsuchbare wandelt(bei mir wir auch noch jpg als format unterstützt) der text im PDF wird dann in eiener mysql Volltextsuche gespeichert und wird somit schnell suchbar. ist im Scan ein Barcode enthalten wird dieser zur Benennung und Einsortierung des PDFs genutzt(zbarimg).
    ist kein Barcode vorhanden, kann man Schlagworte vorgeben die dann zur Benennung genutzt werden. Trifft nichts zu wird die Datei einfach unter Ihrem alten Namen mit Datum abgelegt.
    Ausgabe erfolgt mittels einer kleinen PHP Seite, nachträgliches umbenennen und verschieben der Dateien ist möglich.
    Aktueller Stand „Internal Privat Use“
    (Variablenprüfung, sql injection, dateirechte. usw. noch nicht berücksichtigt)
    Screenshots gibst hier…
    http://oliver-amann.de/projekt-postsortierer/
    PS:
    Raspbery Pi 1B Portierung: geht so, 2-4 Minuten Pro Seite….

    Oli

    Antworten
    • 5pHiNxX
      Juli 29, 2015 12:34 pm

      Hallo Oli,

      könntest du das Script/die Scripte irgendwie online stellen?
      Genau das suche ich nämlich schon eine weile 😉

      Liebe grüße

      Antworten
      • Oli
        Juli 29, 2015 1:00 pm

        Im Post hab ich doch auf meine Seite verlinkt dort ist es weitestgehen dokumentiert.
        Oli

        Antworten
  • 5pHiNxX
    Juli 29, 2015 7:56 am

    Hallo Jan,
    mir sind 2 Dinge aufgefallen.
    Zum einen werden keine Dateien verarbeitet, die ein Leerzeichen im Dateinamen enthalten. Hierfür habe ich beim run.sh script folgende Zeile vor dem Backup eingefügt: find /home/pi/document-vault/raw -name „* *“ -type f | rename ’s/ /_/g‘

    Zum anderen sind wohl nicht immer deutsche Dictionaries für aspell installiert. Das kann mit sudo apt-get install aspell-de erledigt werden

    Ansonsten super Tutorial… Funktioniert einwandfrei.

    Antworten
    • Sascha Flach
      Juli 29, 2015 1:24 pm

      Moin, danke für den Hinweis: das Projekt lebt weiter auf http://github.com/juxreal – sobald ich die Möglichkeit habe werde ich das Git Projekt updaten . danke!

      Antworten
    • Jan Karres
      August 3, 2015 11:43 pm

      Ich danke dir für die Ergänzung! Habe ich in den Artikel übernommen.

      Antworten
  • Mirko
    September 6, 2015 10:48 am

    Hallo Sascha,

    ich habe heute die Installation per SDM.sh dirchgeführt.
    Leider hat Step 10 nicht funktioniert. Das Zip wurde in Verzeichnis bin nicht ausgepackt. DAs musste ich manuell durchführen und danach konnte ich dann die Recoll Webui aufrufen. fyi

    Gruß
    Mirko

    Antworten
    • Mirko
      September 7, 2015 7:48 am

      Hallo,

      ich habe sämtliche Dateien unter Simple* gelöscht und von scratch noch einmal gestartet. Anschließend hat es funktioniert. Ich habe danach noch apache installiert und nun das ganze auch auf einem Webserver.

      Ich habe aber leider das beschriebene Problem von recoll-webui, dass die PDF´s nicht angezeigt bzw. geöffnet werden können. Die Erweiterung von Chrome hat leider nichts gebracht. Wenn ich eine RDP Session auf den PI aufmache, dann kann ich das File öffnen. Lokal auf dem PI funktioniert es, aber nicht via Webbrowser von einem anderen Client.

      Wenn jemand dieses Problem gelöst hat, dann würde ich mich freuen, wenn jemand die Lösung pasten könnte.

      Danke

      Gruß
      Mirko

      Antworten
      • Sascha F.
        September 7, 2015 12:20 pm

        Ich habe das „ganz einfach“ gelöst. Ich habe mein Handled Ordner in /var/www gemountet.

        Und dann unter Einstellungen im Webgui ( also im Browser: http://deineIP:deinPort dann oben Links glaube ich ) den Pfad zu den Dateien auf /var/www/handeld gestellt.

        Dann geht das von allen Geräten aus und man braucht kein Plugin.

        Ich kontrolliere das nachher noch einmal und schreibe das hier hin. Sollte ich das vergessen, erinnert mich dran 🙂

        Antworten
        • Mirko
          September 7, 2015 10:33 pm

          Hallo Sascha,

          das habe ich nun auch so ähnlich gemacht. Ich habe es mit einem MAC getestet und dann habe ich das Problem mit /home auf dem MAC und dem SAMBA Share. Das habe ich nun auch wie Du gelöst, dass ich ein link gesetzt habe von handled nach /Volumes/handled. Nun kann ich via SAMBA mounten auf dem MAC nach /Volumes/handled und ich kann das PDF Dokument aufrufen, da es jetzt lokal auch unter /Volumes/handled zu finden ist. In Recoll habe ich vorsichtshalber noch den Index nach /Volumes/handled verschoben.

          Unter Chrome habe ich das Extension benötigt und unter Firefox via user.js.
          Für Safari habe ich noch keine Lösung gefunden.

          Sieht somit gut aus.
          Danke

          Gruß
          Mirko

          Antworten
    • Sascha F.
      September 7, 2015 12:17 pm

      Das kann ich mir nicht erklärem. An diesem Punkt hatte ich noch keine Probleme. Ich schaue mir die ganze Geschichte noch einmal an.

      Antworten
  • Jochen
    November 28, 2015 10:54 am

    Hallo zusammen. Ich hab mir das jetz auch mal installiert und den gleichen Fehler wie Florian oben erwähnt hat. Bekomm ne Fehlermeldung wegen der Resolution. Gibt es da inzwischen ne Lösung? Desweiteren ist mir noch aufgefallen wenn ich über remote auf dem PI bin um das Recoll einzurichten bekomm ich beim Indexieren auch ne Fehlermeldung in der Konsole.
    :2:../index/indexer.cpp:298:ConfIndexer::createAspellDict: aspell init failed: Could not open shared library [/usr/lib/libaspell.so] [/usr/lib/libaspell.so.15] [/usr/lib/libaspell.so.16] : /usr/lib/libaspell.so.16: cannot open shared object file: No such file or directory

    Antworten
  • Mokkaschnitte
    Dezember 14, 2015 10:10 pm

    Bei mir hat es soweit gut funktioniert, nur verzweifle ich total an den Umlauten. Ganz egal, was ich in /home/pi/.recoll/recoll.conf als „defaultcharset“ eintrage – ich kriege die Umlaute in Dateinamen nicht korrekt angezeigt und daher auch nicht gesucht. Genauer: bereits beim Suchen des Pfades wird mir bspw. Steuererklärung als „Steuererklärung“ angezeigt. Daher ist wohl auch nicht erstaunlich, dass das in der Suche nicht besser klappt. Auch im Terminal stimmen die Sonderzeichen nicht, dagegen passt es in Leafpad oder pcmanf (Dateimanager). In der raspi-config habe ich unter locale sowohl die DE-ISO…, DE-UTF8, als auch die en_GB_UTF8 aktiviert – ist das vielleicht irgendwie falsch? Danke Euch!

    Antworten
  • Mokkaschnitte
    Dezember 14, 2015 10:36 pm

    Oh, hat sich bereits erledigt, das lag nicht an Recoll, sondern ich hatte fälschlicherweise die locale nicht korrekt auf de_DE.UTF-8 eingestellt (lässt sich einsehen mit „cat /etc/default/locale“)
    Aber dennoch: wenn ich in der recoll-webui als Verzeichnis eines mit Umlauten auswähle (Bspw. folder „Kontoauszüge“), dann kriege ich folgenden Fehler:
    UnicodeDecodeError(‚ascii‘, ‚ dir:“Steuer/Kontoausz\xc3\xbcge 2014″ ‚, 22, 23, ‚ordinal not in range(128)‘)
    Gibt es da ein Mittel gegen? Ist nicht wirklich schlimm, aber lästig.
    Ansonsten ein Tipp meinerseits, um auf die gefundenen Dateien über die webui auch tatsächlich zugreifen zu können: FTP!!
    Kurzgesagt: ich habe das gleiche Verzeichnis einfach über FTP im Intranet freigegeben und anschließend im Browser unter Settings/Locations einfach „ftp://192.168.178.61:21“ eingetragen, also die IP des Raspi. Beim ersten Anklicken müssen dann nur noch die Zugangsdaten für FTP eingetragen und gespeichert werden und fertig! PDF/JPG öffnen sich direkt im Browser, andere Dateien meist als Download.
    Das ganze läuft dann auch per Smartphone (jedenfalls Android), allerdings bei mir nur unter Firefox. Weder der Systembrowser noch Chrome noch Dolphin laufen mit dieser Lösung, aber was solls…

    Antworten
  • Mokkaschnitte
    Dezember 15, 2015 10:58 am

    Juhu, auch das ist lösbar, in der Datei webui.py muss Zeile 162 (!!) ausgetauscht werden durch die folgende:
    qs += “ dir:\“%s\“ “ % q[‚dir‘].decode(‚utf-8‘)
    Quelle: https://github.com/koniu/recoll-webui/issues/26

    Antworten
    • Sascha Flach
      Dezember 15, 2015 10:07 pm

      Hi, viele Dank für dein Hinweis. Ich bin gerade umgezogen und noch etwas busy. Ich werde eure Hinweise mal ins Git schubse . Vielen Dank!

      Antworten
  • Sascha Flach
    Dezember 27, 2015 9:36 am

    Guten morgen,

    vielen Dank für eure Hinweise. Ich habe soweit alles in das Git übernommen.

    Einzig der letzte Teil, das habe ich noch nicht hinbekommen.

    Aber das kommt noch!

    Antworten
    • Andreas
      März 10, 2016 11:13 pm

      Mich würde mal interessieren, ob zu diesem Artikel nicht eine „Fortsetzung PDF OCR mit Raspi 2016“ sinnvoll wäre, der beim Stand der aktuellen Version beginnt, denn seither scheint sich viel getan zu haben, wie die Diskussion allein zeigt.

      Was bekomme ich wohl, wenn ich gemäß der obigen Erst Anleitung installiere?
      Was aus den Kommentaren ist bereits in die Anleitung eingeflossen, was nicht?

      Hintergrund meiner Fragen/Anregungen:

      Ich denke, dass mittlerweile fast alle HP MFP zumindest der Laserjet Serien in ein Verzeichnis Raspi/NAS Verzeichnis JPG oder PDF schreiben können, so dass dann der Raspi automatisch loslegen könnte, das PDF mit einem OCR Layer und evtl. Volltextindex zu erstellen. Nur geht das auch bei mehrseitigen PDF und wann beginnt der Raspi seine Arbeit, wenn es 20 Seiten sind, die der HP scannt und liefert als PDF?

      Legt der Raspi sofort los oder wartet der, bis die Datei nicht mehr „in use“ ist?

      Was es hier auf dieser website mit den Umlauten auf sich hat, muss ich noch evaluieren, denn mal war die Rede vom Dateinamen („Steuererklärung“) und mal von der OCR Erkennung an sich.

      Ich hoffe, dass das eine tragfähige Solution bereits ist oder wird.
      Dann wird das Ganze für HP interessant, zumindest in der Vermarktung von deren MFP, denn HP hat momentan nur deutlich teurere, aber auch leistungsfähige HP Digital Sender zur Digitalisierung im Angebot, aber nichts für den Heimgebrauch bzw. Small Business.

      Zur Performance:
      Mit welchem RaspBi Modell und welchem Overclocking wurde gearbeitet?
      Darf der Pi 3 einen großen Fortschritt erwarten?

      Erst einmal Danke für diese schöne, praktische Idee, an der ich vor 17 Jahren mit Entwicklern von HP aus Bergamo (Italy) einst arbeitete und anno 1998 auf einer Messe war. In 1999 gab es von Acrobat ein Produkt namens Acrobat Capture, wo man pro OCR erkannter Seite zu zahlen hatte. Das dauerte damals etwas über 1 Minute auf IBM Highend Laptop / PC, so meine ich, u.a. gut 1000 Buchseiten einzulesen und mit OCR Layer zu versehen. Von daher ist 1 Minute für einen 35€ Rechner doch super.

      Nochmals

      DANKE…

      Antworten
      • Sascha Flach
        März 12, 2016 9:21 am

        Guten Morgen,

        ich habe einge Änderungen aus den Kommentaren auf Guthub übernommen.

        Was ich nicht hinbekommen haben, waren die Umlaute (installieren des deutschen sprachpaketes).

        Das war mein erstes bash Porjekt und der Syntax fällt mir echt schwer.

        (ZAUNPFAHL 🙂 )

        Stand derzeit:

        Umlaute konnen nicht gesucht werden (Steuererklärung) Ä. Wobei Steuererklärung auch richtige treffer liefert. Ich suche eigentlich immer nach Nummern ( Steuernummer, ID, etc).

        Ich würde mich aber wie bolle freuen, wenn sich jemand findet der etwas mithilft 🙂

        Die Angabe:

        2-3 Minuten pro Seite beruht auf einen Raspberry B ohne übertaktung. Mit übertaktung geht es viel schneller.

        Wobei ich auch da sagen muss:

        In der Regel suche ich nicht direkt nach einem Dokument das gerade gescannt wurde.

        Bearbeitung:
        Alle Scanner die ich betreut habe, speicher eine .tmp Datei und bennen sie um sobald alles fertig ist. Erst wenn die Datei .pdf/.tiff ist wird sie bearbeitet.

        Ansonsten freue ich mich über jede Anregung.

        Antworten
        • Sascha Flach
          März 12, 2016 9:29 am

          Hier ein Beispielbild: Passwort für den Link “ OCR “

          https://www.juxcloud.de/owncloud/index.php/s/EH7wG8qG8nloiry

          Habe natürlich alles nachgereicht 🙂

          Antworten
          • Andreas
            März 13, 2016 12:48 pm

            Der Zugang erfordert ein Passwort.

  • Mokkaschnitte
    Januar 29, 2016 9:15 pm

    Noch ein Nachtrag bzgl. FTP und anderen Standardeinstellungen. Diese lassen sich im Verzeichnis ./recoll-webui/views/settings.tpl nämlich teilweise voreinstellen. Einmal gepeichert werden diese Werte als Cookie gespeichert, was auf dem PC kein Thema sein sollte, ggf. aber auf mobilen Geräten. Hier lief bei mir nur Firefox (Android) sauber. Falls diese Einstellungen zurückgesetzt wurden, reicht ein Tipp auf „settings“ und dann auf „save“, damit erübrigt es sich dann, alle Einstellungen manuell nochmal vorzugeben. Hier ein paar geänderte Zeilen aus der settings.tpl, wie sie bei mir gut laufen:
    Zeit (time format string)

    Speicherort
    %for d in dirs:
    lokal gespeichert auf {{d}}
    %end
    Die englischen Begriffe innerhalb und lassen sich hier nebenbei auch leicht ins Deutsche übertragen…
    Unter value ist die IP, ggf. gefolgt vom entsprechenden Unterverzeichnis (ftp://192.168.178.61:21/Dateien) einzutragen, der USB-Stick muss dazu natürlich via FTP erreichbar sein. Einfach testen, der richtige Wert sollte schnell ermittelt sein!

    Antworten
    • Sascha Flach
      März 12, 2016 9:25 am

      Guten Morgen, das ist auch eine guter Weg.

      Ich habe Apache installiert, das /handled Verzeichnis nach www gemountet und in den Settings http://192.168.1.200 (also die Ip) eingetragen.

      Läuft auf allen Mobilen Geräten, auch via VPN etc.

      Antworten
      • Berthold
        Juli 6, 2017 10:33 pm

        Hallo, weiß nicht ob ihr hier noch online seid aber eine Frage habe ich noch zu dem Thema Dateien öffnen aus der Weboberfläche und zwar habe ich das Verzeichnis handled in das /var/www/handled gemountet aber wenn ich das dann öffnen will steht dann da das ich nicht die erforderlichen Rechte habe. Hat einer ne Idee was ich noch machen kann?

        Antworten
        • Sascha Flach
          Juli 7, 2017 1:43 pm

          Hallo, klar sind wir online :-). sudo chmod 777 /handled sollte erst einmal helfen. Vielleicht auch 775 kenne mich damit nivht so aus. Du musst nur sicherstellen, das du nur im LAN bist.

          Antworten
  • Almin
    Oktober 25, 2016 2:20 pm

    Guten Tag,
    wie kann man bei dem Komplet Image eine Festplatte hinzufügen, oder den Speicherort ändern? Ich danke schon mal für die Unterstützung.

    Antworten
    • Sascha Flach
      Juli 7, 2017 1:45 pm

      Ui das ging unter: Klar ganz einfach wie immer bei Linux (Jan hat ein Guide).

      Das Laufwerk mountest Du nach www/handled oder so.

      Aus dem Kopf heraus bin ich über fragt.

      Antworten
  • jan
    Oktober 29, 2017 5:10 pm

    Hallo,
    nutze das Projekt seit einiger Zeit ohne Probleme auf meinem Laptop.

    Unter Neuinstallation von debian 9 funktioniert OCRmyPDF (1.1) nicht mehr — unter debian 8 gings noch — , wahrscheinlich weil nun irgendwelche Abhängigkeiten verletzt sind bzw. Pakete fehlen. Einen Fehler konnte ich durch Installation durch python-reportlab beheben, nun aber:

    File „./src/hocrTransform.py“, line 10, in
    import Image, re, sys
    ImportError: No module named Image

    Die unter Step 3 angegebenen Pakete gibt es teilweise nicht mehr, etwa oracle-java7-jdk. Es wäre super wenn der Step 3 mit debian 9 äquivalenten Pakete aktualisiert werden könnte/genannt werden könnte. Bzw. mittlerweile gibt es ja OCRmyPDF 3.0, ist es wirklich weiterhin so, dass die (sicher verbesserte) Version für das Projekte nicht alternativ genutzt werden kann?

    Vielen Dank für Hilfe/Tipp jeder Art.

    Antworten
  • Udo Heinrich
    März 29, 2018 7:58 pm

    Ich habe die Scripts von Jan noch ein wenig erweitert. Mein Ziel war es, das PDF mit OCR/TXT schon einigermaßen sinnvoll zu benennen. Die Idee: eine Wortliste wird im PDF gesucht und in der Reihenfolge der Funde wird das File dann benannt und um das aktuelle Datum ergänzt.

    Das Script:

    ———————————— Anfang
    #!/bin/bash

    # Check lockfile
    if [ -f newname.lock ]
    then
    echo „—– Script is already running —–“
    exit
    fi

    date +%s > newname.lock

    # Scipt will search for predefined words by using pdfgrep and rename the file.

    # Define Wordlist – content and order will determine the new file name

    ´word=(telekom unitymedia mainova süwag aldi amazon adac gemeinde versicherung hausrat haftpflicht miete vertrag auszug rechnung beitrag zeugnis lohn finanzamt steuererklärung beleg quittung reservierung)

    # Start searching for keywords and rename
    echo „—– starting renaming —–“
    unset newname

    for i in `ls /home/pi/document-vault/handled/ScanDoc*.pdf | tr ‚\n‘ ‚\0‘ | xargs -0 -n 1 basename`;

    do
    wordlimiter=0
    for item in ${word[*]}
    do

    pdfgrep -ic $item /home/pi/document-vault/handled/$i > /dev/nul
    pdfgrepreturn=$?

    if [ $pdfgrepreturn == 0 ];
    then
    # echo $item $pdfgrepreturn
    newname=“$newname-$item“
    wordlimiter=$((wordlimiter + 1))
    if [ $wordlimiter -gt 5 ];
    then
    break
    fi
    fi

    done

    newname=${newname:1}
    mv /home/pi/document-vault/handled/$i „/home/pi/document-vault/handled/$newname-$(date ‚+%Y%m%d‘).pdf“

    echo “ Renaming finished. Renamed from $i to $newname-$(date ‚+%Y%m%d‘).pdf“
    unset newname
    done
    rm newname.lock

    echo „—– Finish —–“
    ———————————— Ende

    In run.sh muss dann noch eine Passage (die Schleife mit den OCRmyPDF aufrufen) angepasst werden:

    ———————————–Anfang
    for i in `ls /home/pi/document-vault/tmp/*.pdf | tr ‚\n‘ ‚\0‘ | xargs -0 -n 1 basename`;
    do sh /home/pi/document-vault/OCRmyPDF/OCRmyPDF.sh -d -l deu+eng /home/pi/document-vault/tmp/$i /home/pi/document-vault/handled/$i &&
    /home/pi/document-vault/newname.sh &&
    echo “ OCR finish from $i“
    done

    ————————————— Ende

    Im clean.sh dann noch für die Bereinigung beim Neustart

    rm newname.lock

    einfügen.

    Die Güte der Wortliste (Inhalt und Reihenfolge) bestimmt den neuen Dateinamen.

    (Vielen Dank an meinen Freund für die tatkräftige Unterstützung bei der Umsetzung.)

    Antworten
    • Berthold
      April 18, 2018 3:37 pm

      Hallo Udo,
      das hört sich ganz gut an was du da vor hast!!!
      Habe allerdings noch ein paar Fragen zu deinem Vorschlag und zwar hast du im ersten Teil einen ganz neuen Script erstellt oder das nur in den run.sh eingefügt und den Rest wo OCR gestartet wird und so gelöscht?
      Gruß Berthold

      Antworten
  • Martin
    August 27, 2018 10:50 pm

    Hallo,

    * „OCRmyPDF … Wir benötigen die Version 1.1“ – gilt das noch?

    * Ist die Anleitung 2018 allgemein noch gültig?

    * Ist das völlig ohne GUI machbar/installierbar/konfigurierbar?

    Antworten
    • Thomas
      Januar 5, 2019 5:40 pm

      Das würde mich auch interessieren ob die Anleitun und das Programm noch funktioniert.
      Ich hab es nach dieser Anleitung installiert aber die PDFs werden nur ins Backup Verzeichnis verschoben sonst passiert garnichts.

      Gruß Thomas

      Antworten
      • Udo Heinrich
        Januar 5, 2019 9:14 pm

        1) Erst einmal vielen Dank an Jan, dass er so gute Anleitungen geschrieben hat.
        2) Ja, das erweiterte Script (basiert auf dem von Jan) läuft komplett ohne GUI. Man kopiert ein File in den Ordner raw und im Ordner handled kommt das prozedierte File raus
        3) Man muss natürlich noch einen cronjob angelegt haben, der das script aufruft.
        4) Hier noch einmal das Script, wie es bei mir läuft:

        —————–Scriptanfang
        #!/bin/bash

        # Check lockfile
        if [ -f run.lock ]
        then
        echo „—– Script is already running —–“
        exit
        fi

        date +%s > run.lock

        # Definition of Word-List

        wordarray=(rechnung lieferschein ford volkswagen diesel vertrag finanzamt)

        # Clean files in raw directory and create a backup from input files and move files for ocr to tmp
        echo „—– Raw file renaming and start process —–“
        find /home/pi/document-vault/raw -name „* *“ -type f | rename ’s/ /_/g‘
        rename ‚y/A-ZÄÖÜ/a-zäöü/‘ /home/pi/document-vault/raw/*
        cp /home/pi/document-vault/raw/* /home/pi/document-vault/backup
        mv /home/pi/document-vault/raw/* /home/pi/document-vault/tmp

        # Convert .tif to .pdf
        echo „—– Get the .tif and convert —–“
        for i in `ls /home/pi/document-vault/tmp/*.tif | cut -d. -f1`;
        do tiff2pdf -o $i.pdf $i.tif;

        echo “ converting $i.tif“
        rm $i.tif;
        done
        # Convert .jpg to .pdf
        echo „—– Get the .jpg and convert —–“
        for i in `ls /home/pi/document-vault/tmp/*.jpg | cut -d. -f1`;
        do convert.im6 $i.jpg -resample 100 -page A4 $i.pdf;

        echo “ converting $i.jpg“
        rm $i.jpg;
        done
        # Convert .jpeg to .pdf
        echo „—– Get the .jpeg and convert —–“
        for i in `ls /home/pi/document-vault/tmp/*.jpeg | cut -d. -f1`;
        do convert.im6 $i.jpeg -resample 100 -page A4 $i.pdf;

        echo “ converting $i.jpeg“
        rm $i.jpeg;
        done

        # Start ocr the documents
        echo „—– Starting OCR —–“
        echo „—– Note: 2-5 Minutes per page! Not file —–“

        for i in `ls /home/pi/document-vault/tmp/*.pdf | tr ‚\n‘ ‚\0‘ | xargs -0 -n 1 basename`;
        do sh /home/pi/document-vault/OCRmyPDF/OCRmyPDF.sh -d -l deu+eng /home/pi/document-vault/tmp/$i /home/pi/document-vault/tmp2/$i && echo “ OCR finish from $i“ && rm /home/pi/document-vault/tmp/$i

        done

        # Scipt will search for predefined words by using pdfgrep and rename the file.

        # Start searching for keywords and rename
        echo „—– Starting renaming —–“

        for i in `ls /home/pi/document-vault/tmp2/*.pdf`;
        do
        unset newname
        wordlimiter=0
        for item in ${wordarray[*]};
        do

        pdfgrep -ic $item $i
        pdfgrepreturn=$?

        if [ $pdfgrepreturn == 0 ];
        then
        echo $item $pdfgrepreturn
        newname=“$newname-$item“
        wordlimiter=$((wordlimiter + 1))
        if [ $wordlimiter -gt 5 ];
        then
        break
        fi
        fi

        done

        newname=“${newname:1}-$(date ‚+%Y%m%d-%H%M%S‘).pdf“

        mv $i /home/pi/document-vault/handled/$newname

        echo “ Renaming finished. Renamed from $i to $newname“

        done

        # Remove raw files from ocr layered files and clean temp and backup files

        find /home/pi/document-vault/backup -iname „*“ -mtime +2 -delete
        find /home/pi/document-vault/OCRmyPDF/tmp -maxdepth 4 -iname „*“ -mtime +2 -delete
        # rm /home/pi/document-vault/tmp/*
        rm run.lock

        echo „—– Finish —–“
        —————–Scriptende

        Antworten
        • Thomas
          Januar 8, 2019 1:26 pm

          Hallo,

          habe nun die Installation hinbekommen.
          Leider funktioniert der Script bei mir nicht.
          Ich musste aus mehren Quellen eine neuen zusammen basteln.

          Aber nun funktioniert OCR „Happy“

          Jetzt kommt noch die Königsklasse!
          Vielleicht kann mir ja jemand weiter helfen.

          Ich kann leider nicht zweiseitig einscannen nun möchte ich per Script die beiden PDFs im Reißverschluss verfahren zusammenfügen.
          Dokument 1 Seiten: 1,3,5,7,9 (Vorderseiten)
          Dokument 2 Seiten: 2,4,6,8 (Rückseiten)
          Mit PDFsam funktioniert das zusammenzufügen ja schon (pdfsam-console -f 1.pdf -f 2.pdf -o ./12.pdf concat ).

          Nur werden da die Seiten hinten angehängt.

          Kennt jemand eine lösung

          Antworten
          • Udo
            Januar 8, 2019 2:29 pm

            guck mal nach pdftk für den raspi – damit kann man pdf manipulieren etc.

  • Timo Widmann
    Januar 16, 2019 5:52 pm

    Hallo,

    kann man das Ganze auch ohne Desktop auf einem Raspberry Pi instllieren ? Bei Step 12 bleibe ich an dem recoll Befehl zum einrichten hängen. Leider gibt es auf meinem RasPI 3 keinen recoll Befehl. Welchen Desktop muss ich dazu installieren.

    Was muss ich bei meinem „Linux raspberrypi 4.14.79-v7+ “ Lite – Raspbian Stretch Lite nachinstallieren um den gewünschten Desktop zu bekommen ?

    Dank und Gruss

    Timo Widmann

    Antworten
    • Udo
      Januar 17, 2019 1:22 pm

      Hallo Timo,

      siehe Step 9, hier wird erst recoll installiert. Wenn Du das nicht brauchst, einfach weglassen; ist für das OCR selbst nicht notwendig, aber für die Dokumentenverwaltung

      Antworten
  • Sven
    April 20, 2019 9:40 pm

    Hallo Ihr Entwickler,

    ich habe jetzt versucht nach der Anleitung diese Lösungumzusetzen.
    Jetzt habe ich noch zwei Fehler welche ich nicht lösen kann.
    HAt jemand einen Tipp?
    1. der Crontab
    @reboot screen -dmS RecollWebGui bash -c „cd /home/pi/document-vault/recoll-webui && ./webui-standalone.py -a 192.168.178.XX -p 8080“

    läuft nicht. Aber per Console funktionert die Webseite.

    2. Wenn ich auf der Webseite mit und ohne Suchbedingung auf „Search“ klicke, erhalte ich folgende Fehlermeldung:

    Error 500: Internal Server Error

    Sorry, the requested URL ‚http://192.168.178.98:8080/results?query=*&dir=%3Call%3E&after=&before=&sort=mtime&ascending=0&page=1‘ caused an error:

    Internal Server Error

    Exception:

    AttributeError(„‚module‘ object has no attribute ‚connect'“,)

    Traceback:

    Traceback (most recent call last):
    File „/home/pi/document-vault/recoll-webui/bottle.py“, line 744, in _handle
    return route.call(**args)
    File „/home/pi/document-vault/recoll-webui/bottle.py“, line 1479, in wrapper
    rv = callback(*a, **ka)
    File „/home/pi/document-vault/recoll-webui/bottle.py“, line 2850, in wrapper
    result = func(*args, **kwargs)
    File „/home/pi/document-vault/recoll-webui/webui.py“, line 223, in results
    res, nres, timer = recoll_search(query)
    File „/home/pi/document-vault/recoll-webui/webui.py“, line 170, in recoll_search
    db = recoll.connect(config[‚confdir‘])
    AttributeError: ‚module‘ object has no attribute ‚connect‘

    Ich hoffe es gibt Hinweise. Danke und Grüße aus Sachsen.

    Antworten
  • Christopher
    Januar 3, 2021 10:52 pm

    Hallo ich finde das Projekt super , es wäre klasse wenn es Geupdatet würde es gibt nicht viele Projekte die so simple und gut sind. Ein remake wäre echt klasse und würde wahrscheinlich vielen helfen.

    Antworten

Schreibe einen Kommentar Antworten abbrechen

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

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum