synOCR synOCR - GUI für OCRmyPDF

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Sorry für die späte Antwort.

Welche Buttons finden sich in der GUI auf der Übersichtsseite?
Pulsiert die blaue Sanduhr?
 
Zuletzt bearbeitet:

buxdahu

Benutzer
Mitglied seit
03. Jan 2023
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Mach dir keinen Stress.

Habe heute morgen noch einmal reingeschaut, da war alles dann erledigt. Da ich nicht genau weiß was das Script jetzt (parallel zum automatischen Überwachen) macht, habe ich den Aufgabenmanager auf 00:00 (jeden Tag) gestellt.

Gerade eben einfach noch ein PDF hinein gezogen, wurde sofort erkannt, Sanduhr steht aber nur da (kein pulsieren).
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Eine aktive Überwachung sollte in der Version 1.3 so aussehen (Sanduhr bzw. grüner Haken pullsieren):
Bildschirm­foto 2023-01-08 um 11.41.51.png

Du kannst mir aber auch gerne mal das inotify.log schicken (auch im Log-Ordner - Uploadlink in meiner Signatur).
 

Bennn

Benutzer
Mitglied seit
28. Mrz 2013
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo,

läuft synOCR aktuell nicht mehr mit DSM7?
Ich wollte dies soeben installieren, und bekomme von der DSM die Meldung dass das Dateiformat ungültig sei. (Siehe Screenshot)
Die Datei manuell installieren und die Endung ändern ist vermutlich nicht die Lösung..?

Freue mich auf Hilfe.

LG
Benjamin
 

Anhänge

  • Screenshot 2023-01-10 103619.png
    Screenshot 2023-01-10 103619.png
    130,1 KB · Aufrufe: 11

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.211
Punkte für Reaktionen
1.034
Punkte
224
Hast du von Stephans Seite auch ein Image ausgewählt, dass für DSM 7 gedacht ist? Es gibt für beide Versionen Pakete.
 
  • Like
Reaktionen: geimist

thomx

Benutzer
Mitglied seit
18. Apr 2013
Beiträge
17
Punkte für Reaktionen
1
Punkte
3
Moin,

startet synOCR beim Synology Neustart automatisch mit aktiviertem Monitoring (sofern inotify installiert ist)? Ich verstehe das so... Wie verhält sich das dann wenn die Input/Output Ordnern auf verschlüsselten Syno-Freigaben liegen die durch manuelle Eingabe der Keys entschlüsselt werden? Ich habe gerade den Verdacht, dass das Monitoring dann eben nicht automatisch gestartet wird.

Den Zeitplaner Eintrag brauche ich ja eigentlich nicht mehr wenn ich nur inotify verwenden möchte - wie stelle ich aber sicher, dass in meinem (verschlüsselten) Setup das Monitoring immer sicher beim Systemstart mitgestartet wird?

Danke,
Thomas
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Die Situation gab es schonmal bei jemanden. Ja, so ist es.
Ich müsste jetzt auch nur mal hier im Thread suchen, wie wir das damals gelöst hatten. Letztendlich müsste synOCR / bzw. das Monitoring neu gestartet werden, wenn die Quellordner verfügbar sind. Die Quellordner müssen für inotify halt bereits zugreifbar sein, damit es deren Überwachung übernehmen kann.
 
  • Like
Reaktionen: thomx

thomx

Benutzer
Mitglied seit
18. Apr 2013
Beiträge
17
Punkte für Reaktionen
1
Punkte
3
  • Like
Reaktionen: geimist

StefKnoe

Benutzer
Mitglied seit
12. Sep 2022
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo geimist und andere Forumsmitglieder,

ich arbeite nun seit einiger Zeit mit Deiner Lösung und bin total begeistert. Vielen Dank für Deine Arbeit!

Da ich ein ziemlicher Frischling auf dem Gebiet bin und hier keinen Hinweis auf meine Frage finden konnte, melde ich mich direkt bei Dir. Meine Frage lautet: Ich möchte für einen Absender die eingehenden PDFs mit unterschiedlichen Dateinamen benennen. In meinem Fall habe ich für einen Absender mehrere Regeln angelegt. Jetzt passiert es aber, dass der Dateiname u.a. aus zwei Suchregeln zusammengestellt wird. Siehe: Datum_NameHeizungsbauer_Rechnung_NameHeizungsbauer_Auftragsbestätigung

Mein Ziel ist es aber, dass der Dateiname je nach Inhalt benannt wird. Z.B. Name des Heizungsbauers und der jeweilige dazugehörige Dokumentenname wie z.B. Angebot, Auftragsbestätigung und Rechnung. Somit sollte der Dateiname im Idealfall wie folgt aussehen:

Datum_NameHeizungsbauer_Rechnung_Rechnungsnummer
Datum_NameHeizungsbauer_Auftragsbestätigung_Bestätigungsnummer
Datum_NameHeizungsbauer_Angebot_Angebotsnummer

Meine Codes sehen wie folgt aus:

rule_01:
tagname: Hofmann Rechnung
targetfolder: "/volume1/synOCR/ScanOutput"
tagname_RegEx: "HUK[[:digit:]]{2}"
condition: all
subrules:
- searchstring: Hofmann
- searchstring: Rechnung
- searchstring: Heizung
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
- searchstring: Auftragsbestätigung
- searchstring: Angebot
searchtyp: is not
isRegEx: false
source: content
casesensitive: false

rule_02:
tagname: Hofmann Auftragsbestätigung
targetfolder: "/volume1/synOCR/ScanOutput"
tagname_RegEx: "HUK[[:digit:]]{2}"
condition: all
subrules:
- searchstring: Hofmann
- searchstring: Auftragsbestätigung
- searchstring: Heizung
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
- searchstring: Rechnung
- searchstring: Angebot
searchtyp: is not
isRegEx: false
source: content
casesensitive: false

rule_03:
tagname: Hofmann Angebot
targetfolder: "/volume1/synOCR/ScanOutput"
tagname_RegEx: "HUK[[:digit:]]{2}"
condition: all
subrules:
- searchstring: Hofmann
- searchstring: Auftragsbestätigung
- searchstring: Heizung
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
- searchstring: Rechnung
- searchstring: Auftragsbestätigung
searchtyp: is not
isRegEx: false
source: content
casesensitive: false

Wie kann/muss ich die Suchregel definieren um das o.g. Ergebnis zu erzielen?

Vielen herzlichen Dank für Deine Hilfe.

Stefan
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
hallo Stefan,
Das erste was mit auffällt ist,
du kannst pro subrule nur einen search string einbauen.
Also jede subrule hat einen search string und condition.
eine rule kann mehrer subrules haben. Sind alle einzelnen erfüllt, wird auch die ganze rule erfüllt.

hier ist das nachzulesen
https://git.geimist.eu/geimist/synOCR/wiki/03_YAML_de
 

StefKnoe

Benutzer
Mitglied seit
12. Sep 2022
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo Gthorsten,

danke für Deinen Hinweis. Ich konnte das Problem nun lösen. Ich habe den Code umgestellt und den Suchbegriff für die Auftragsbestätigung von Rechnung auf Rechnungsausgleich abgeändert. Jetzt werden die unterschiedlichen Dokumente erkannt. Zur Optimierung meiner Codes nehme ich gerne weiterhin Tipps an.

Nachfolgend meine Lösung:

rule_01:
tagname: Hofmann_Rechnung
targetfolder: "/volume1/synOCR/ScanOutput"
tagname_RegEx: "HUK[[:digit:]]{2}"
condition: all
subrules:
- searchstring: Hofmann
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
- searchstring: Rechnungsausgleich
searchtyp: contains
isRegEx: false
source: content
casesensitive: false
- searchstring: "XYZ"
searchtyp: contains
isRegEx: false
source: content
casesensitive: false

rule_02:
tagname: Hofmann_Auftragsbestätigung
targetfolder: "/volume1/synOCR/ScanOutput"
tagname_RegEx: "HUK[[:digit:]]{2}"
condition: all
subrules:
- searchstring: Hofmann
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
- searchstring: Auftragsbestätigung
searchtyp: contains
isRegEx: false
source: content
casesensitive: false
- searchstring: "XYZ"
searchtyp: contains
isRegEx: false
source: content
casesensitive: false
 

StefKnoe

Benutzer
Mitglied seit
12. Sep 2022
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo Forum,
jetzt habe ich doch noch ein Problem das ich nicht lösen kann. Ich habe mehrere Profile angelegt und festgestellt, dass bis auf das ursprüngliche Profil die "Neuprofile" nicht richtig abgearbeitet werden. Die Neuprofile sind aktiviert, jedoch werden die PDFs nicht in die betreffenden Ordner verschoben, sondern die Dokumente in den Output-Ordner des Profils abgelegt. Zum Verständnis, ich habe für jedes Profil ein eigenes Quell-, Ziel-, Backup- und LOG-Verzeichnis angelegt.

Hintergrund der Aktion, ich erhalte für drei Objekte jeweils ein Dokument mit identischen Daten. Z.B. eine Rechnung mit gleicher Kundennummer und Rechnungsadresse. Die Lieferstraße (Plz und Ort sind identisch) weicht unter Umständen nur durch die Hausnummer ab. Da ich die Rechnung zuordnen kann, möchte ich den Beleg mit meinem Scanner (ADS-1700W) in den jeweiligen "Straßen-Netzwerkordner" ablegen. Anschließend soll durch das Profil das Dokument in den richtigen Ordner abgelegt werden.

Für Hilfe zu meinem Problem wäre ich sehr dankbar. Vielen Dank für die Unterstützung!

HG
Stefan
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Die Neuprofile sind aktiviert, jedoch werden die PDFs nicht in die betreffenden Ordner verschoben, sondern die Dokumente in den Output-Ordner des Profils abgelegt.
Hast du deine Profile auch korrekt konfiguriert?:
Bildschirm­foto 2023-01-21 um 23.07.48.png
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314
Kurze Randbemerkung meinerseits:

Ich habe jetzt zwei Tage damit verbracht herauszufinden, warum zur Hölle synOCR meinen Einkommensteuerbescheid nicht mit dem Dateinamen-tag versieht. Ich habe die Protokolle durchsucht und auch Fehler darin gefunden, jedoch habe ich Seppel wohl immer wieder denselben Fehler überlesen, der mir die ganze Zeit mitteilen wollte, das in meiner synOCR_YAMLRULEFILE etwas nicht stimmt.

Heute Morgen dann endlich, nachdem ich kurz davor war, in Embryonalstellung zusammengekauert einen Heulkrampf zu bekommen, viel mein Blick auf diese Zeilen...

YAML:
yaml.parser.ParserError: while parsing a block mapping
  in "<unicode string>", line 125, column 1:
    tag_KFZ-Versicherung_BlaBla...
    ^
expected <block end>, but found '<block sequence start>'
  in "<unicode string>", line 161, column 4:
       - searchstring: Beitragsrechnung
       ^

... weil ich bei der grade erwähnten Roule ein Leerzeichen VOR - searchstring: Beitragsrechnung vergessen hatte...
YAML:
    subrules:
    - searchstring: KFZ-Versicherung
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false
   - searchstring: Beitragsrechnung
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false

... und alles was danach kam, nicht mehr abgearbeitet wurde. So auch meine Roule für meinen Einkommensteuerbescheid. Es hat mich also zwei Tage gekostet, ein blödes Leerzeichen zu finden. ZWEI VERDAMMTE TAGE.

Zu allem Überfluss schreibt @geimist ganz am Anfang der synOCR_YAMLRULEFILE, das...
# • es ist sehr wichtig, die korrekten Einrückungen einzufügen
# • verwende keine Tapstops • nur Leerzeichen!
# • Verwende die genaue Anzahl von Leerzeichen, wie im Beispiel gezeigt

... was ich grad ziemlich unfair finde, da ich jetzt niemand anderem die Schuld in die Schuhe schieben kann.

Also krabbel ich jetzt wieder unter meinem Stein und fütter braf meinem ADS-1700W...

Tommes
 
  • Haha
Reaktionen: Gthorsten

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Ach du Ärmster 🤕
Falls du mal unter deinem Schreibtisch hervorkommst und das liest:
Das tut mir aufrichtig leid (das du keinen Schuldigen finden konntest). Aber Hauptsache es geht jetzt. Einige Syntaxfehler werden schon versucht abzufangen, aber eben nicht alle. Vielleicht finden wir in Zukunft ja noch eine elegantere Möglichkeit. Es steht ja immer noch die Vorstellung im Raum, einmal eine GUI (auch für die YAML-Datei) in Docker zu realisieren. Das würde wahrscheinlich dann auch die Unsicherheit bei zukünftigen DSM-Versionsupgrades entspannen. Irgendwann einmal … vielleicht …
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.736
Punkte für Reaktionen
1.642
Punkte
314
Oh… ich wollte dir damit in kleinster Weise auf die Füße treten oder gar synOCR schlechtreden. Im Gegenteil. Ich finde synOCR total klasse und möchte es nicht mehr missen. Ich kenn das divenhafte Verhalten ja bereits vom scripten in bash. Das JSON bzw. JAML scheinbar mindestens genauso empfindlich auf sowas reagieren, war micht nicht bewusst.

Vielmehr wollte ich mit meinem Beitrag nur zum Ausdruck bringen, das das Brett, welches man von dem Kopf hat, manchmal unendlich groß zu sein scheint. Ich hab mir ja nach jeder Verarbeitung das Protokoll angeschaut, jedoch ist mir nie diese eine Zeile aufgefallen, wo der Fehler klar beschrieben steht.

Aber natürlich, man kann immer versuchen, alles besser und benutzerfreundlicher zu machen. Aber im Grunde hätte ich nur richtig lesen müssen, da du uns Nutzern mit dem Protokoll ja bereits ein aussagekräftiges Tool an die Hand gegeben hast.

synOCR komplett in einem Docker Container laufen lassen, möchtest du? Hm… GUI kann ich ja, aber mit Docker habe ich mich noch nie groß beschäftigt. Vielleicht sollte ich aber auch mal darüber nachdenken, um in Zukunft möglichen Problemen nach einem DSM Update zu umgehen. Naja… mal schauen…

Tommes
 
  • Love
Reaktionen: geimist

StefKnoe

Benutzer
Mitglied seit
12. Sep 2022
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hast du deine Profile auch korrekt konfiguriert?:
Anhang anzeigen 78506

Ich habe die Einstellung auf "verwende Regel-definierte Ordner" vorgenommen. Es wird immer nur der erste Ordner abgearbeitet. Bei den restlichen drei Ordnern, wird wie bereits erwähnt, das Dokument lediglich im Output-Ordner gespeichert. Ich habe jeweils identische Codes - lediglich mit unterschiedlichen Ablageordnern - hinterlegt. Codes auch Online bei "YAML CHECKER" geprüft...

Was könnte noch das Problem verursachen.

Gruß Stefan
 


 

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