synOCR synOCR - GUI für OCRmyPDF

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Danke
Läuft wie immer 1a
 
  • Like
Reaktionen: geimist

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.047
Punkte für Reaktionen
328
Punkte
189
Ich habe das Tool auch regelmässig im Einsatz und läuft Top. Zusammen mit dem

1691571204140.png

und Syncthing kann ich extern ein PDF nach INPUT schieben und es dauert nicht lange, bis in OUTPUT das bearbeitete Dokument ankommt. Genial.
 
  • Like
Reaktionen: geimist

rmayergfx

Benutzer
Mitglied seit
05. Aug 2013
Beiträge
135
Punkte für Reaktionen
11
Punkte
18
Habe auf einem neuen System synOCR unter DSM7 installiert. Auf dem alten System mit Download die Konfigurationsdatenbank gesichert, nur wie bekomme ich diese auf dem neuen System importiert?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Dieser Download dient in erster Linie der Fehleranalyse. Dein gewünschter Weg wäre idealerweise über HyperBackup. Wenn das keine Option ist, weil du auf das vorhergehende System nicht mehr zugreifen kannst, dann gib noch mal Bescheid. Über das Terminal können wir auch deine Datenbank zurückspielen.
 

rmayergfx

Benutzer
Mitglied seit
05. Aug 2013
Beiträge
135
Punkte für Reaktionen
11
Punkte
18
Danke für das schnelle Feedback. Habe hier aktuell DSM 7.1.1-42962 Update 6 im Einsatz und dachte ich mache es mir einfach über WinSCP um bei gestopptem synOCR das File in den passenden Ordner zu kopieren. Leider Fehlanzeige, kann das File auch nicht umbenennen.
Bin auf dem Pfad aus der FAQ
  • Wiederherstellung muss über die Kommandozeile erfolgen
    Zielpfad: /usr/syno/synoman/webman/3rdparty/synOCR/etc/synOCR.sqlite
Das muss aber eine falsche Einstellung in WinSCP sein, da er nicht mit sudo arbeiten kann. Mit Putty und sudo kann ich nämlich die Dateien auch umbenennen. Wenn ich über Advanced SCP/Shell auf sudo su - umstelle bekomme ich nämlich nach dem Login:
Error skipping startup message. Your shell is probably incompatible with the application (BASH is recommended).
Wenn jemand dazu einen Tipp hat wäre ich dankbar.

Aber ich habe es jetzt hinbekommen. Man muß nur zuerst das Paket synOCR manuell installieren und dann mit Hyper Backup die Wiederherstellung durchführen.
 
  • Like
Reaktionen: geimist

Point85

Benutzer
Mitglied seit
21. Mrz 2022
Beiträge
18
Punkte für Reaktionen
5
Punkte
53
Hallo,
ich brauche noch mal eure Hilfe, im Bereich automatische Umbenennung mit Regex
ich habe das auch getestet mit der Seite von regex101.com, ob meine Anweisung der Suche funktioniert und ja er findet die Zahl.
Als Regal, habe ich das:

#########
rule_1001:
#X#X#: SWE_Nummer
tagname: §tagname_RegEx
targetfolder: /§ynow4/§mnow. Monat/§dnow.§mnow.§ynow4/
tagname_RegEx: ((?<=(^Nr))\S+\s*)\K(?:\S+)
condition: all
subrules:
- searchstring: ((?<=(^Nr))\S+\s*)\K(?:\S+)
searchtyp: contains
isRegEx: true
#########

Kann es sein, dass er ein Problem mit dem Doppelpunkt hat, in der PDF?
Mein Ziel ist es, das Dokument mit der Nr versehen wird, die in diesem Beispiel 08257619 benannt wird, leider macht er es nicht und nimmt das Datum.

Normal sind es um die 7 Seiten wo auch Rechnung-Nr: vorkommt, aber das Wort „Nr:“ nur einmal.

1. Im Anhang ist das PDF, womit ich grade teste
2. die Protokolle dazu

DANKE für eure Unterstützung! :)
 

Anhänge

  • T1.pdf
    205,9 KB · Aufrufe: 5
  • synOCR_searchfile_T1.txt
    280 Bytes · Aufrufe: 5
  • synOCR_2023-08-18_15-45-04.txt
    26,5 KB · Aufrufe: 6

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Der Doppelpunkt scheint in der Tat ein Problem zu sein, und zwar bei der internen Konvertierung von YAML zu JSON. Bei meinem Test half es, den Regex in einfache❗️ Anführungszeichen zu setzen.

Noch ein Tipp am Rande:
Ich würde dir empfehlen, in der GUI die "Leerzeichen bereinigte Suche" zu aktivieren. Dadurch gibt es immer nur max. ein Leerzeichen hintereinander.
Damit hier ein erfolgreicher Test einem positiven Lookbehind: '(?<=Nr: )\d+'
YAML:
rule_1001:
#X#X#: SWE_Nummer
    tagname: §tagname_RegEx
    targetfolder: /§ynow4/§mnow. Monat/§dnow.§mnow.§ynow4/
    tagname_RegEx: '(?<=Nr: )\d+'
    condition: all
    subrules:
    - searchstring: '(?<=Nr: )\d+'
      searchtyp: contains
      isRegEx: true

Ergebnis:
Bildschirmfoto 2023-08-18 um 17.49.13.png
 
Zuletzt bearbeitet:

rmayergfx

Benutzer
Mitglied seit
05. Aug 2013
Beiträge
135
Punkte für Reaktionen
11
Punkte
18
Hallo,
Bitte keine ":" Doppelpunkt oder Sonderzeichen im Dateinamen. Ganz schlechte Idee. Je nachdem mit welchem OS du dann auf die Dateien zugreifst gibt es die unmöglichsten Fehlermeldungen. Adobe mag das z.B. überhaupt nicht und man bekommt dann beim Öffnen der Datei Fehlermeldungen und überlegt sich wo das herkommt.
 

Point85

Benutzer
Mitglied seit
21. Mrz 2022
Beiträge
18
Punkte für Reaktionen
5
Punkte
53
Danke für deine schnelle Antwort, ich habe es in der GUI geändert, mit dem Bereinigen der Leerzeichen!

Ich hatte doch zu eine komplex Searchtag. :rolleyes:

Ich habe jetzt das, was du erstellt hast getestet, was meinst du mit in “!“ nehmen? Weil umbenennen macht er weiterhin nicht?!
 

Anhänge

  • synOCR_2023-08-18_18-15-04.txt
    26,4 KB · Aufrufe: 4

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Ich habe jetzt das, was du erstellt hast getestet, was meinst du mit in “!“ nehmen? Weil umbenennen macht er weiterhin nicht?!
Wie in meinem Beispielcode.
Ich meine einfach Anführungszeichen ' anstatt von doppelten " - siehe Code.

Bitte keine ":" Doppelpunkt oder Sonderzeichen im Dateinamen.
Das ist korrekt, aber ist in meinem Beispiel mit Lookbehind ja nur im Suchkriterium enthalten.
Zudem bereinigt synOCR den Inhalt von §tagname_RegEx von / \ : und ersetzt diese durch einen Unterstrich.
 
Zuletzt bearbeitet:

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Hallo,
Du suchst ja in Deiner original RegEx keinen Doppelpunkt, der als Wert ausgegeben würde. Die Ausgabe ist lediglich die Zahl. Deswegen würde ich den : als Fehlerquelle ausschließen.
Übrigens wenn explizit gesucht, würde ich das Sonderzeichen immer maskieren oder klassifizieren.
Der positiv Lookbehind ist hier auch nicht wirklich nützlich und sinnvoll, da Du ihn ja durch das Löschen mittel \K gleich wieder wirkungslos machst. Aber die original Regex sollte funktionieren. Der Fehler könnte daran liegen, dass Deine YALM-Datei _TagConfig_[profile_SWE_Nummer8].txt nicht zu Deinem Profil zu passen scheint. Hast Du hier die richtigen Einträge drin? Die dort hinterlegte YAML scheint leer ....

@geimist - kann man das im LOG sehen? Habe jetzt nicht geschaut.

Die RegEx würde ich so schreiben, wenn es der Lookbehind sein muß.
Code:
(?:(?<=Nr\S\s))(?=\S+)(?>.+\N)

Gruß
Karsten
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Du suchst ja in Deiner original RegEx keinen Doppelpunkt, der als Wert ausgegeben würde. Die Ausgabe ist lediglich die Zahl. Deswegen würde ich den : als Fehlerquelle ausschließen.
Es liegt an der Maskierung für die RegEx in der YAML-Datei. Auch der ursprüngliche, sowie mein RegEx liefern das gewünschte Ergebnis.
 
  • Like
Reaktionen: Struppix

Point85

Benutzer
Mitglied seit
21. Mrz 2022
Beiträge
18
Punkte für Reaktionen
5
Punkte
53
Ich habe das selbe jetzt zuhause mit einer 920+ gemacht und funktionierte auf Anhieb, habe die selben Dateien auf die 1621+ verschoben, genau dasselbe Ergebnis es passiert nichts…., nach dem ich den Cluster neu gestartet habe, ist Magie passiert und es funktioniert, als wäre irgendwas im Hintergrund.

Großes Danke @geimist :) für die sehr schnelle Hilfe und für Regel & Danke @Struppix :) für die Alternative, testen kann ich es erst am Montag, da ich erstmal froh, dass es funktioniert.
 
  • Like
Reaktionen: Struppix

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.188
Punkte für Reaktionen
52
Punkte
68
@geimist
ich habe folgendes Problem.

Gestern habe ich 2 unterschiedliche Dokumente (mehrere Seiten) eingescannt.
Nach jedem abgeschlossenen Scan habe ich folgende E-Mails erhalten:

1. Mail
Der Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.

Aufgabe: synOCR
Start: Sun, 20 Aug 2023 14:35:01 +0200
Ende: Sun, 20 Aug 2023 14:36:21 +0200
Aktueller Status: 1 (Unterbrochen)
Standardausgabe/Fehler:
synOCR run at DSM7 or above
➜ check docker group and permissions: ok [docker:x:65536:synOCR]
➜ check admin permissions: ok
synOCR wurde gestartet ...
Bitte warten, bis die Dateien fertig abgearbeitet wurden.
Traceback (most recent call last):
File "./includes/handlePdf.py", line 407, in <module>
return_value = main_fn()
File "./includes/handlePdf.py", line 364, in main_fn
pdf_obj.logger_obj.info(f'Task={args.task}')
AttributeError: 'HandlePdf' object has no attribute 'logger_obj'
synOCR wurde mit Fehlern beendet!


2. Mail
Der Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.

Aufgabe: synOCR
Start: Sun, 20 Aug 2023 14:37:01 +0200
Ende: Sun, 20 Aug 2023 14:37:07 +0200
Aktueller Status: 1 (Unterbrochen)
Standardausgabe/Fehler:
synOCR run at DSM7 or above
➜ check docker group and permissions: ok [docker:x:65536:synOCR]
➜ check admin permissions: ok
synOCR wurde gestartet ...
Bitte warten, bis die Dateien fertig abgearbeitet wurden.
synOCR wurde mit Fehlern beendet!

Am Rande:
ich hatte 1.4.2 installiert. durch Zufall habe ich jetzt gesehen, dass es 1.4.3 gibt - sollten die Updates nicht automatisch kommen oder hatte ich das falsch verstanden?


**UPDATE**
Nach dem Update auf 1.4.3 habe ich die Scan Datei noch mal vom Ordner "Errorfiles" in den richtigen Ordner gezogen. nun hat es geklappt
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
  • Like
Reaktionen: Ghost108

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
An folgenden Stellen wird darüber informiert:
  • DSM Benachrichtigungzentrum
  • synOCR GUI
  • im Log
Eine offensive Benachrichtigung gibt es derzeit nicht. Sollte ich vielleicht mal drüber nachdenken …
 

Ghost108

Benutzer
Mitglied seit
27. Jun 2015
Beiträge
1.188
Punkte für Reaktionen
52
Punkte
68
@geimist
Noch ein kleiner Verbesserungsvorschlag:

Mein Ordner "Daten" war nicht angehangen (noch verschlüsselt seit dem letzten Neustart der Syno).
In den Ordner Daten wird normalerweise das Ergebnis von synocr abgelegt.

Soeben habe ich gesacannt, die PDFs lagen im synocr Ordner und wurde analysiert.
Dann ins nirvana verschoben, da der Ordner Daten nicht zugänglich war - und die Originale wurde gelöscht.

Hier sollte eventuell eine Überprüfung stattfinden, ob das kopieren der fertigen Dateien erfolgreich war - wenn nicht: Originale nicht löschen.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Das ist eine Einschränkung, die mit DSM7 Einzug hielt. Wenn als root gestartet, kann das geprüft werden, aber der Paketuser hat nicht die entsprechenden Rechte. Diese Einschränkung habe ich auch ganz oben im Changelog vermerkt.

Ich weiß, dass das alles andere als wünschenswert ist. Ich werde mir das nochmal angucken, dass ich einen Zielordner ggf. nicht erstelle, sondern den Programmlauf abbreche. In deinem Fall würde ich vermuten, dass der Ordner erstellt wurde und die Zieldateien auch vorhanden sind, aber beim Mounten des eigentlichen Ordners, wird dieser neue Ordner ausgeblendet.
 
  • Like
Reaktionen: Ghost108

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.555
Punkte für Reaktionen
1.394
Punkte
234
Ich habe synOCR (synOCR_DSM7_v1.4.3.spk) frisch installiert (DSM7.2) und Probleme mit der Datumserkennung.

Wenn ich folgende Punkte leer lasse:
Code:
Suchbereich in Vergangenheit
Suchbereich in Zukunft
funktioniert es.

Wenn ich folgende Werte eintrage:
Code:
Suchbereich in Vergangenheit => 3
Suchbereich in Zukunft => 1
funktioniert es nicht.

Im Log steht dann:
Code:
2023-08-31 12:28:31,237 - Date scanning started
2023-08-31 12:28:31,237 - Version: 1.04
2023-08-31 12:28:31,237 - Parameter minYear = -2020
2023-08-31 12:28:31,237 - Parameter maxYear = 2024
2023-08-31 12:28:31,237 - Parameter searchnearest = on
2023-08-31 12:28:31,237 - set searchnearest = on
2023-08-31 12:28:31,237 - Parameter fileWithTextFindings = /tmp/tmp.fuChXIPVqq/step2_tmp_1693477709//synOCR.txt
2023-08-31 12:28:31,238 - Start searching for alphanumerical and numerical dates......
2023-08-31 12:28:31,238 - use Parameter minYear = -2020 invalid
2023-08-31 12:28:31,238 - found date None
2023-08-31 12:28:31,238 - Date scanning ended
                  Date not found in OCR text - use file date:
Lt. Log (use Parameter minYear = -2020 invalid) ist das Minus in -2020 falsch.
Unter Suchbereich in Vergangenheit steht bei mir eine 3 (ohne Minus).
Ich habe unter Suchbereich in Vergangenheit mit einer -3 probiert, aber auch das klappt nicht.

Wo habe ich einen Denkfehler?



Zweite Sache:
Ich hatte irgendwo gelesen, dass Python3 nötig sei. Lt. Paketzentrum ist nicht Python3, sondern nur Python2 installiert. Problem?
 
Zuletzt bearbeitet:


 

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