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

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Könnte sein, dass man den Schlafzustand mit sdparm oder ggf. mit einem neueren hdparm herausfinden oder beeinflussen kann, mit dem Thema habe ich mich aber nicht mehr beschäftigt, seit ich auf Synology umgestiegen bin.
 
Eigenlich bräuchte ich das zeitgesteuerte Aufrufen gar nicht. Es würde mir reichen, wenn ich das Script von meinem Windows-Rechner aus aufrufen könnte.
 
Das macht hinsichtlich des Herausfindens des Status keinen Unterschied, das Script würdest du dann einfach nicht periodisch aufrufen.
 
Klar, ich muss nur noch herausfinden, wie ich es aus windows aufrufen kann (ssh o.ähnliches)
 
Meinst du einen Wrapper für Windows (Ich kenne nur "Platypus" für den Mac) oder meinst du die Möglichkeit, dich von Windows aus per SSH einzuloggen und von der Konsole aus Befehle aufzurufen (PuTTY)?
 
Hallo,
schau Dir mal plink (von den putty-Tools) an.

Gruß Götz
 
Sorry ich brings einfach nicht zum laufen. was muss ich genau machen das docker die Anwendung nicht gleich wieder stoppt?

Gruss MArtin
 
Der Container läuft nicht dauerhaft! Es reicht, wenn das Image ("Abbild") jbarlow83/ocrmypdf vorhanden ist. Entweder über den Synology Docker runterladen oder per docker pull jbarlow83/ocrmypdf im Terminal holen. Den Rest macht das Script. Für jedes PDF wird implizit ein neuer temporärer Container aus dem Image erstellt.
 
Hi zusammen, ich interessiere mich brennend für dieses Projekt und erhoffe Großes aber nun bin ich leider nicht der große php Experte, was programmieren angeht.
Installation habe ich geschafft und zu Laufen scheint es auch. Dann bekomme aber leider eine Fehlermeldung im log. Meine Testdatei wird nicht gefunden!?

2017-09-10 22:22:05 Scanning for new scans: /volume1/scanned/_inbox
2017-09-10 22:22:08 Docker output:
WARNING: Your kernel does not support CPU cfs quota. Quota discarded.
/application/docker-wrapper.sh: line 4: cd: /home/docker: Permission denied
ERROR - File not found - scan_ImageOnly.pdf
2017-09-10 22:22:08 pdftotext output:
I/O Error: Couldn't open file '/volume1/scanned/_inbox/OCR_scan_ImageOnly.pdf': No such file or directory.
2017-09-10 22:22:08 Scanning for Tagging: /volume1/scanned/Scans

Zu meiner Ausstattung: Ich habe eine DS415+ mit Docker, ein Volume1 mit "scanned" Ordner.
Dort enthalten ist der _inbox, SCANS und tags Ordner. Sonstige Ordner habe ich nicht. In dem _inbox Ordner liegt eine scan_ImageOnly.pdf zum testen.
Im Aufgabenplaner liegt eine Aufgabe, die als root gestartet wird. Starte es bisher nur manuell. Das scheint auch zu funktionieren.
Ob ihr noch mehr Infos benötigt, kann ich nicht beurteilen. Bitte einfach fragen.

Könnt ihr mir vielleicht weiterhelfen wo der Fehler liegt?
 
Hi rabu,

sieht so aus, als ob irgendwas mit docker nicht stimmt. Bist du sicher, dass das Script mit root-Rechten gestartet wird? Das ist wichtig, damit er den Docker mit dem Benutzer starten kann, dem das pdf gehört.
Du sagst, manuell funktioniert es? Was meinst du mit manuell? Startest du das Script per console oder startest du die Aufgabe per Hand?
Es klappt also nur als geplante Aufgabe nicht?

Gruß,
Stefan
 
Aktuell starte ich die Aufgabe noch manuell über den Aufgabenplaner, weil ich es testen wollte. Später soll die Aufgabe automatisch stündlich gemacht werden. Sie wird nicht per script gestartet. Ich meinte mit "manuell funktioniert es", dass wenn ich die Aufgabe manuell starte, er ja auch irgend womit startet, ansonsten hätte ich doch keine Logdatei bekommen.
Was kann ich beim Docker denn noch falsch machen? Ich habe hier einige Screenshots, wie es aktuell bei mir aussieht.
Bildschirmfoto 2017-09-11 um 22.07.46.jpg

Bildschirmfoto 2017-09-11 um 22.08.02.jpg

Bildschirmfoto 2017-09-11 um 22.08.12.jpg

Bildschirmfoto 2017-09-11 um 22.08.20.jpg

Bildschirmfoto 2017-09-11 um 22.09.01.jpg

Bildschirmfoto 2017-09-11 um 22.09.36.jpg
 
Hallo zusammen

Auch ich nutze dieses Tool. Coole Sache!

Im Readme steht:

<name>: You can define $renamerules. The first rule which matches the ocr'ed content of the first page is used. You can use the operators & (AND) and , (OR) and you can use the wildcard operators ? and *.
<tags>: In $tagrules you can specify your tags. All matching rules will add their tag to the filename. You can use the same operators here.


Bei mir klappt es mit dem Operator "&", nicht aber mit ",".

Mache ich was falsch?
 
ok, ich habe meinen Fehler jetzt in den Griff bekommen und kann euch erzählen, dass die Texterkennung außerhalb des "home"-Ordners nicht funktioniert. Wieso nicht, kann ich leider nicht nachvollziehen, da ich zu wenig Kenntnis von php habe aber bei mir läuft es jetzt und da bin ich schon mal froh drüber.
Was ich aber noch nicht herausgefunden habe? Wofür ist der Ordner "tags"? Diesen hatte ich noch nicht benötigt und es werden dort anscheinend auch keine getaggten Dateien abgelegt.
Genau der "Archivordner". Warum ist dieser in der config angegeben?
Was haben diese Ordner für Funktionen?
 
Hallo rabu,

sorry für die späte Antwort. Ich habe leider momentan wenig Zeit für dieses Projekt ..

Gut, dass du das mit dem home-Ordern selbst herausgefunden hast. Scheint ein Rechte-Problem zu sein. Der Docker wird immer mit dem User gestartet, dem die Datei gehört. Wenn aber ein übergeordnetes Verzeichnis diesem User keinen Zugriff erlaubt könnte das das Problem erklären.

Deinen Screenshots zufolge hast du für das Docker Image auch einen Container angelegt. Das ist nicht notwendig und er wird auch nicht verwendet. Den kannst du löschen ;) Wichtig ist, dass das Image (Abbild) da ist.

Okay, das mit den tags und dem Archivordner scheint für viele unverständlich zu sein. Das Konzept muss ich mal überarbeiten. Das Prozedere ist aktuell wie folgt gedacht:

  1. PDF's werden (vom Scanner oder per Hand) im $inboxfolder abgelegt. Ausgangssituation: Nichtssagender Dateiname und nicht durchsuchbar (kein OCR).
  2. Schritt 1, falls doOCR = true: PDF's werden durch den Docker gejagt und werden so durchsuchbar (OCR). Dateiname wird nicht verändert.
  3. Schritt 2, falls dann doRenameAfterOCR = true: Die PDF's werden umbenannt. Der neue Dateiname wird gebildet aus einem Datum (entweder Zeitstempel der Datei oder aus dem OCR) und aus den konfigurierten Regeln (siehe $renamerules und $tagrules.
  4. An diesem Punkt vertraue ich der Automatik aber nicht zu 100%. Daher müssen aktuell hier nach manueller Prüfung des Dateinamens die Dokumente in den $archivordner verschoben werden. Natürlich nur, wenn man den nächsten Schritt verwenden möchte.
  5. Schritt 3, falls $doTagging = true: Hierbei werden die Dokumente aus dem $archivordner, die einen oder mehrere Hashtag(s) im Dateinamen tragen in einer neuen Verzeichnisstruktur unter dem $tagsfolder einsortiert. Das ganze funktioniert über Hardlinks, dh. die Dateien verbleiben im Archivorder, sind zusätzlich aber einsortiert unterhalb des $tagfolder zu finden.
    => Somit kann man im Dateisystem die Dokumente kategorisieren und evtl schneller finden (ohne eine Suche). Funktioniert natürlich nur, wenn die Dokumente auch konsequent Hashtags im Dateinamen haben.
 
Hallo nimra20,

das sollte funktionieren. Kannst du mit ein Beispiel-pdf (oder den OCR-Text) und deine config schicken?
Den reinen OCR-Text bekommst du, wenn du das Script mit der Option "-x" startest, oder hiermit: "pdftotext -l 1 <pdf file>". Dann kannst du aus dem Text-file auch eventuelle sensible Daten entfernen.
Aus der config brauche ich die entsprechende Regel - oder besser das gesamte Array.
 
Hallo Stefan

Hallo nimra20,

das sollte funktionieren. Kannst du mit ein Beispiel-pdf (oder den OCR-Text) und deine config schicken?
Den reinen OCR-Text bekommst du, wenn du das Script mit der Option "-x" startest, oder hiermit: "pdftotext -l 1 <pdf file>". Dann kannst du aus dem Text-file auch eventuelle sensible Daten entfernen.
Aus der config brauche ich die entsprechende Regel - oder besser das gesamte Array.

Kann ich dir die Angaben per PM senden?

Gruß
Armin
 
Guten Abend!

Als DS-Neuling überlege ich mir gerade, wo ich "das" pdftotext herbekomme? Bin über jeden Tipp dankbar.

Danke!

Grüße Tobias
 
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