pdf-Scan to Folder (auf die Synology) und dann Texterkennung mit OCR durch Synology

Status
Für weitere Antworten geschlossen.

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.377
Punkte
234
Hallo Stefan,

so sieht man sich wieder :)
Klasse Projekt von dir; werde ich mir gleich ansehen (läuft schon).

Vielen Dank


P.S.: Vielleicht sollte man noch erwähnen, dass der Aufruf nur mit root funktioniert - jedenfalls bei mir (sonst lässt sich der Dockercontainer nicht starten).
 

stweiss

Benutzer
Mitglied seit
09. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Servus Stephan,

so kann's gehen. Ich hoffe du kannst es gebrauchen :)
Und ja, guter Hinweis .. das Skript sollte als root laufen.
 

adahmen

Benutzer
Mitglied seit
12. Okt 2009
Beiträge
561
Punkte für Reaktionen
11
Punkte
38
Noch eine Frage / Bitte:

Ich habe bisher alle meine Dokumente mit yyyymmdd und nicht yyyy-mm-dd.
Wo und was muss ich ändern, damit das Datum ohne Bindestriche genutzt wird? Vielleicht könnte man es sogar in der config einstellbar machen :)

Und: Ich habe in der Config "$doTagging = false" stehen ... dennoch werden tags an den Dateinamen angehängt. Ich dachte das würde dann nicht passieren.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Hallo,

tolles Projekt, genau das habe ich gesucht. :)

Ich habe es installiert (und es auch hinbekommen *juchhu*). Ich habe aber auch ein paar Probleme/Fragen. ;)

Meine Testdatei für die OCR-Erkennung:
www.sentryfile.com/forum/attachments//ImageOnly.pdf

Probleme mit Umlauten:
Bei Umlauten wird die Datei nicht in #recycle verschoben, sondern verbleibt zusätzlich zur erstellten neuen Datei im $inboxfolder.

Datum:
Bearbeitete PDF-Dokumente bekommen nicht das Dateidatum in den Dateinamen vorangestellt, sondern das aktuelle Datum. Wenn man ältere PDF-Dokumente bearbeiten lässt, bekommen die alle das aktuelle Datum, was nicht wünschenswert ist.

Format vom Datum:
Wie der Vorredner störe ich mich auch noch an dem Format (y-m-d), da ich bisher ymd verwendet habe. Andererseits überlege ich schon alle meine alten Dokumente in y-m-d zu überführen. Es sieht irgendwie übersichtlicher aus.

Outbox:
Warum gibt es keinen Outboxordner? So bleiben alle bearbeiteten Dokumente im Inboxordner. Wäre es für einen sauberen Workflow nicht wünschenswert, wenn die bearbeiteten Dokumente gleich dort landen, wo man sie hin haben möchte?

Mir erschließt sich irgendwie nicht der Sinn von:
- $archivefolder
- $tagsfolder
Kann diese Funktion mal jemand genauer beleuchten / erklären?
In den $archivefolder habe ich testweise ein PDF (mit ocr-erkannten Text!) gepackt, wo aber Schlüsselwörter ($tagrules) nicht erkannt wurden, sprich es wurden keine Tags angehängt.
 
Zuletzt bearbeitet:

stweiss

Benutzer
Mitglied seit
09. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Noch eine Frage / Bitte:

Ich habe bisher alle meine Dokumente mit yyyymmdd und nicht yyyy-mm-dd.
Wo und was muss ich ändern, damit das Datum ohne Bindestriche genutzt wird? Vielleicht könnte man es sogar in der config einstellbar machen :)

Und: Ich habe in der Config "$doTagging = false" stehen ... dennoch werden tags an den Dateinamen angehängt. Ich dachte das würde dann nicht passieren.

$doTagging ist nicht am umbenennen Schuld. Das erzeugt nur eine neue Verzeichnisstruktur mit Verknüpfungen zu den Originaldateien in $archivefolder.

Tags werden zusammen mit den anderen namensgebenden Dingen im Schritt $doRenameAfterOCR angehängt. Wenn du nicht den ganzen Schritt deaktivieren sondern nur keine Tags haben willst, dann mach das $tagrules arrary in der config.php leer.

Das mit den Bindestrichen hab ich im alpha-branch mal konfigurierbar gemacht. Ist aber noch nicht getestet: https://github.com/stweiss/FileBasedMiniDMS/archive/alpha.zip
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.377
Punkte
234
Das klappt bisher super bei mir - Danke :)

Ich benutze nur OCR und Rename (das Tagging nicht). Allerdings fände ich es auch schön, wenn die fertigen Dateien in den $archivefolder verschoben werden. Das habe ich jetzt mit einem zusätzlichen Skript gelöst.
 

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.948
Punkte für Reaktionen
100
Punkte
134
Kannst du diese Scripts auch hier zur Verfügung stellen, sodass andere User sie bei Bedarf verwenden können?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.377
Punkte
234
Stefan wird da bestimmt was machen ;)

Aber für den Übergang, hier meine Zwischenlösung:
Anhang anzeigen FileBasedMiniDMS-START.zip (entpacken und muss im Ordner der php-Dateien liegen. Dieses Skript zum Starten von FileBasedMiniDMS.php verwenden.)
Rich (BBCode):
#!/bin/bash
# Auto-OCR für SCANs (FileBasedMiniDMS.php) Startskript
# /volume1/homes/admin/script/OCRscript/FileBasedMiniDMS-START.sh

IFS=$'\012'	 # entspricht einem $'\n' Newline

# Dokumentenverzeichnisse auslesen sowie Arbeitsverzeichnis auslesen und hineinwechseln:
# -----------------------------------------------------
    APPDIR=$(cd $(dirname $0);pwd)
    cd ${APPDIR}

	SOURCE_DIR=`cat ./config.php | grep 'inboxfolder' | awk -F\" '{print $2}'`
	echo "SOURCE_DIR:   $SOURCE_DIR"
	TARGET_DIR=`cat ./config.php | grep 'archivefolder = ' | awk -F\" '{print $2}'`
	echo "TARGET_DIR:   $TARGET_DIR"

# Starte OCR:
# -----------------------------------------------------
    php ./FileBasedMiniDMS.php

# Verschiebe fertige Dateien:
# -----------------------------------------------------
    for i in $(find "$SOURCE_DIR" -maxdepth 1 -name "*.pdf" -type f)
    	do
            filename=`basename "$i"`
            if [ -f "$TARGET_DIR/$filename" ]; then
                echo "Zieldatei bereits vorhanden"
            else
                mv "$i" "$TARGET_DIR/$filename"
            fi
        done
 

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.948
Punkte für Reaktionen
100
Punkte
134

stweiss

Benutzer
Mitglied seit
09. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Das klappt bisher super bei mir - Danke :)

Ich benutze nur OCR und Rename (das Tagging nicht). Allerdings fände ich es auch schön, wenn die fertigen Dateien in den $archivefolder verschoben werden. Das habe ich jetzt mit einem zusätzlichen Skript gelöst.

Der Grund warum ich das nicht mache ist, dass ich in meinem $archivefolder 100% korrekt benamste Dateien haben möchte. Das Renaming klappt halt leider nicht immer zufriedenstellend und ich muss manuell Nacharbeiten. Erst dann schiebe ich meine pdf's ins Archiv.
Aber es ist angekommen: Ihr wollt separate Ordner für jeden Schritt :) Ich überleg mir mal was.
 

TobiasNeher

Benutzer
Mitglied seit
18. Jun 2017
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo zusammen,

ich bin begeistert, dass ist genau das was ich gesucht habe. Noch besser ist, dass ich mir die DS216-J (zur Ablage von Fotos) noch nicht gekauft habe:cool:
Da ich Synology-Neuling bin, tue ich mir gerade etwas schwer. Könnt Ihr für das Projekt eine HW Empfehlung bzw. Mindesanforderung benennen? Würde mir sehr bei der Kaufentscheidung helfen.

Vielen Dank!

Grüße Tobias
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.377
Punkte
234
Hallo Tobias und willkommen hier im Forum :)

Da du für dieses Projekt Docker benötigst, ist die DS216+II das Einstiegsgerät für dich. Das wird für diesen Zweck auch reichen. Weiter ginge es dann mit der DS716+II, welche dieses Jahr wohl noch einen Nachfolger bekommen soll.

Alle aktuellen Docker-kompatiblen Geräte findest du hier: LINK
 

maxl-zwo

Benutzer
Mitglied seit
18. Apr 2015
Beiträge
83
Punkte für Reaktionen
12
Punkte
14
Hallo,
hier bekommt man wirklich tolle Infos. Das Skript läuft bei mir, so etwas suche ich schon lange. Vielen Dank!
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.357
Punkte für Reaktionen
481
Punkte
189
Die Frage ist auch, ob der Scanner FTP koennen muss. Ich habe einen Brother NFC, der vom PC angesteuert wird und die PDFs werden lokal abgelegt. Geht das mit sowas? Daher wär mal gut, die Mindestanforderungen zu kennen.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Daher wär mal gut, die Mindestanforderungen zu kennen.
Die Mindestanforderung besteht daraus, dass der Scanner die PDFs in ein Verzeichnis auf der DS ablegt. Ob nun per FTP oder sonstwie ist völlig egal.
 

adahmen

Benutzer
Mitglied seit
12. Okt 2009
Beiträge
561
Punkte für Reaktionen
11
Punkte
38
Die Mindestanforderung besteht daraus, dass der Scanner die PDFs in ein Verzeichnis auf der DS ablegt. Ob nun per FTP oder sonstwie ist völlig egal.

Selbst das ist keine Mindestanforderung. Man kann die PDF's sogar von Hand auf die DS legen und dann das Script nutzen.
Mindestanforderung wäre aus meiner Sicht:
- PDF-Dateien als Input auf einer DS (wie auch immer diese dahin kommen)
- eine DS mit Docker
 

harrykausl

Benutzer
Mitglied seit
26. Jul 2012
Beiträge
176
Punkte für Reaktionen
4
Punkte
18
Ich habe da noch eine kurze Frage zu dem Tool. Wenn ich das Ganze automatisiere (cron-job), dann gehen meine Platten wahrscheinlich nicht mehr schlafen. Sinnvoll wäre es, wenn das Ganze nur laufen würde, wenn die Platten nicht schlafen (das ist ja immer der Fall, wenn etwas in das Verzeichnis kopiert wurde). Gibt es da einen Trick wie man das Ganze haendeln könnte?
 

stweiss

Benutzer
Mitglied seit
09. Jun 2017
Beiträge
34
Punkte für Reaktionen
0
Punkte
0
Das ist nicht ganz trivial, da die entsprechenden Bibliotheken für einen file watcher (z.B. inotify) auf der DS fehlen..
Vielleicht kannst du den cronjob ja so einstellen, dass er nicht zu häufig läuft und nur dann, wenn es sinn macht (also z.B. nur Tagsüber jede Stunde).

Wenn jemand ne gute Idee hat, her damit :)
 

harrykausl

Benutzer
Mitglied seit
26. Jul 2012
Beiträge
176
Punkte für Reaktionen
4
Punkte
18
Das hatte ich mir gedacht, danke trotzdem. Ich denke aber, dass auch ein file watcher den sleep-Modus der Platten beenden würde. Man müsste herausfinden können, ob die Platten im Sleep-Mode sind. Dann könnte man das script so umstellen, dass es in einer Schleife läuft und nach jedem Durchgang einen sleep .. einbauen. Beim Start der Scheife würde man prüfen, ob die Platten schlafen und dann sofort die Schleife überspringen. Alternativ könnte man die Zeitsteuerung und das Prüfen der Platten auch in ein Script außen rum einbauen, welches dann das eigentliche script aufruft.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat