synOCR synOCR - GUI für OCRmyPDF

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hallo,

ich habe eine neue Version der YAML-Editors fertig gestellt.

Da ich auf einem Testsystem einen nicht nachvollziehbaren Fehler erhalte, such ich ein paar Mitstreiter, die die Funktionsweise einmal testen könnten.

Wer Interesse hat, bitte kurz per PN melden. Dort erkläre ich dann was wie zu tun wäre. Schön wäre es, wenn diejenigen schon Erfahrung mit dem Editor haben, ist aber kein Muss.



Was ist neu:
1) Ich habe inzwischen den "Fehler" ausmachen können, der bei einigen Usern zu teils seltsamen Fehlermeldungen führte.
Dabei sind meistens die Funktionsbuttons nicht mehr klickbar bzw. ohne Funktion gewesen.
Ursache ist eine Library für die Zoom Funktion der User Forms, wie zB. dem Konfigurator.
Die Funktion ist jetzt beim Start aus, kann aber auf Wunsch aktiviert werden.

Übrigens, bei mir funktioniert die Zoom Funktion auf allen Testsystemen tadellos (derzeit 6 Stück)!

2) Neue Funktionen sind Farb-Schemas, die dem Ganzen ein bessere Übersichtlichkeit und einen frischen Look geben.
Weiterhin neu sind "Überschriften", die frei wählbar ebenfalls die Strukturierung verbessern und die Orientierung erleichtern.
Danke dem Feedback aus dem Forum.

3) Letztlich ist die Update Funktion ausgeschaltet, und muss bei Bedarf bzw. dem ersten Gebrauch aktiviert werden.

Danke Karsten

Im Anhang noch 3 Layouts / Farb-Schemas, die nun wählbar sind ...

Screenshot 2024-08-01 170310.pngScreenshot 2024-08-01 170243.png

Screenshot 2024-08-01 170155.png
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hallo,
leider hat sich bis heute niemand gemeldet. Zugegeben wir haben Urlaubszeit.
Dennoch, hat keiner mal 10 Minuten Zeit das zu testen?

Karsten
 
  • Like
  • Sad
Reaktionen: wegomyway und geimist

wegomyway

Benutzer
Sehr erfahren
Mitglied seit
03. Aug 2022
Beiträge
1.348
Punkte für Reaktionen
571
Punkte
184

tomjons

Benutzer
Mitglied seit
05. Jun 2013
Beiträge
68
Punkte für Reaktionen
4
Punkte
8
Guten Tag,

seit heute morgen funktioniert unser Setup leider nicht mehr. Wir haben keinerlei Veränderungen vorgenommen, evtl. wurde der Container auf der Synology aktualisiert.

Bisher sollte der der Dateiname die Bestellnummer (aus dem Feld "Ihr Beleg" sowie die Rechnungsnummer enthalten.
Also in beigefügten Beispiel:

223035_Rechnung 2024-078628

aktuell kommt als Ergebnis folgendes:
_Rechnung 2024-078628

Die anschließende Sortierung in drei Ordner klappt auch nicht mehr.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hallo Tom,
zuerst einmal. Die YAML wird gar nicht abgearbeitet / es erfolgt somit keine Umbenennung.

Also gehe doch bitte mal in den GUI von synOCR und stelle das Image:
jbarlow83/ocrmypdf:latest auf
jbarlow83/ocrmypdf:v12.7.2
und teste erneut. Das Ändern des Paketes kann etwas dauern beim ersten Scan.

Ausserdem ergänze in den ocr-parametern:
Code:
 --pdf-renderer hocr

Karsten

Edit: sehe gerade Du hast schon ein paar Einträge in den Parametern. Somit oben geändert um den einen ergänzen. Wenn es bisher funktioniert hat dann nur ergänzen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: tomjons und geimist

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hallo,

ich habe eine neue Version der YAML-Editors fertig gestellt. Den Download Link findet Ihr in meiner Signatur. Beschreibung der wichtigsten Änderungen hier.

Gruß Karsten
 

!&all

Benutzer
Mitglied seit
03. Sep 2010
Beiträge
16
Punkte für Reaktionen
4
Punkte
3
Hallo,

zunächst vielen Dank für synOCR und den Support hier im Forum. Bislang habe ich alle Scans einfach in einen "OCR" Ordner verschoben und danach manuell einsortiert. Möchte dies nun aber nach und nach durch eigene Regeln automatisieren.

Was wäre denn hierzu die beste Vorgehensweise? Ich habe die PDSs ja schon umbenannt und mit OCR versehen. Ich müsste also jetzt einen Durchlauf starten der sich nur noch um das einsortieren kümmert. Mach ich das mit einem separaten Profil bei dem ich dann als Startordner meinen "OCR" Ordner nehme und als Output dann die entsprechenden Unterordner?

Vielen Dank vorab!
 

wegomyway

Benutzer
Sehr erfahren
Mitglied seit
03. Aug 2022
Beiträge
1.348
Punkte für Reaktionen
571
Punkte
184
Eigene Profile in synOCR erstellen mit eigenen Regeln dazu (ich habe 4 Profile aktuell in Nutzung).
In den Profilen musst jeweils Input und Output-Ordner angelegt werden.
Backup und Log-Ordner können die gleichen sein (hab ich bei mir so).
Dann würde ich testweise eine Datei in den Input verschieben und somit die Regeln testen und das mit jedem Profil austesten.
Nur darauf achten das beim Erstellen der Profile oder wechseln dieser sich synOCR ca. 3-4 Sekunden Zeit nimmt. Immer abwarten bis die jeweilige Meldung erscheint.
An meinem 1700er Doku-Scanner hab ich die Schnelltasten eingerichtet sodass die entsprechenden Dokus gleich per Scsn in den entsprechenden Input abgelegt werden wo dann die Regel "arbeitet" und das Doku dann im Zielordner abgelegt wird.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: !&all

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Zuletzt bearbeitet:
  • Like
Reaktionen: !&all

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Bislang habe ich alle Scans einfach … manuell einsortiert. Möchte dies nun aber nach und nach durch eigene Regeln automatisieren.

Was wäre denn hierzu die beste Vorgehensweise? Ich habe die PDSs ja schon umbenannt und mit OCR versehen.
Wenn ich das richtig verstehe, dann sind die PDF bereits OCRd, umbenannt und einsortiert. Das Skript, von dem @Struppix schrieb, ist in erster Linie für den Fall gedacht, wenn man eine bestehende Ordnerstruktur ocren möchte.

Wenn du jedoch eine automatische Neusortierungauch für deine vorhandenen Dokumente anstrebst, dann würde ich die erneut durchlaufen lassen. Wichtig wäre hier:
  • der OCR Parameter -s sollte gesetzt sein (ist eigentlich auch per default so), damit nicht erneut OCR ausgeführt wird. Die Dokumente werden dennoch von OCRmyPDF verarbeitet
  • Als Umbenennungsparameter würde ich bei den vorhandenen Dokumenten auf §tit verzichten, damit man nicht zusätzlich den manuellen Namen in der Datei hat. Vielleicht stört dich das auch nicht
  • Erstelle zunächst in Ruhe die Regeln und probiere sie immer wieder mit einzelnen Dokumenten. Wenn alles passt, kann man mit größeren Mengen probieren. Gerade am Anfang gibt es wahrscheinlich im Bedarf zum Nachbessern. Tipp: @Struppix hat einen feinen Regeleditor dafür erstellt

Eigene Profile in synOCR erstellen mit eigenen Regeln dazu (ich habe 4 Profile aktuell in Nutzung).
Diese Vorgehensweise erschließt sich mir nicht für diesen Zweck vollends. Das kann man machen, aber eigentlich sollen ja die Regeln die Einsortierung übernehmen.

Viel Erfolg 👍
 
  • Like
Reaktionen: !&all

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hallo,

dann habe ich das wohl vorhin falsch gelesen, danke Stephan.
Um den Aufwand für Dich zu reduzieren eine Frage. Wie sind sie denn umbenannt bzw. wie erfolgte bisher die Umbenennung?

Karsten
 

!&all

Benutzer
Mitglied seit
03. Sep 2010
Beiträge
16
Punkte für Reaktionen
4
Punkte
3
Super, Danke! Bisher ist es ein ganz einfacher Workflow: Die PDFs landen nach dem Scannen in einem Ordner Inbox. Dann werden sie OCRd, mit Datum umbenannt und in einen Ordner "OCR" verschoben. Die dort liegenden PDfs würde ich nun gerne nach gefundenem Text mal als Beispiel "Stadtwerke" in entsprechende Unterordner verschieben. Die weitere Umbenennung wie "Rechnung" etc. würde ich für den Moment dann anschliessend weiter manuell vornehmen. Mir geht es grade also erstmal um das grobe Einsortieren nach Themengebiet.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Also mal einfach die Funktionsweise von synOCR mit der Verwendung einer YAML Datei beschrieben:

Mittels Regeln in einer YAML Datei ist es möglich, mit einem / mehreren Suchbegriff(en) ein Dokument zu ocr(en), durchsuchbar zu machen, umzubenennen und in einen gewünschten Zielordner zu verschieben.
Hat man keine zu komplexen Such- / Umbenennung-Kriterien geht das alles mit einer Regel.

Dein Beispiel:
Code:
# synOCR_YAMLRULEFILE   # keep this line!


rule_1001:
    tagname: Stadtwerke
    targetfolder: /volume1/<Dein Pfad>
    condition: all
    subrules:
    - searchstring: Stadtwerke
      searchtyp: contains

Dies könnte der Inhalt Deiner YAML Datei sein, wenn Du nur nach "Stadtwerke" suchst, umbenennst und verschiebst.
Wie man die YAML Datei verwendet und anlegst findest Du im wiki oder unserem YouTube Channel.

Wenn Du noch andere Dokumente hast, einfach diese Regel kopieren, die rule Nummer hochzählen, den Begriff "Stadtwerke" und den Zielordner ändern.

Falls Du später einmal die Umbenennung verfeinern willst und gleich mehrere Suchwörter verwenden möchtest, findest Du hierzu Infos wieder im wiki oder YT. Solltest Du nicht klar kommen, schreibe mir eine kurze PN, ich helfe gern.

Karsten
 

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
100
Punkte für Reaktionen
23
Punkte
24
Hi
Hat jemand eine Idee, wieso in der Zeile unten das Datum 2024-02-07 22:14:35.772839 erkannt wird?

Rechnung XK7231611 130,12 19,00 24,73 EUR 154,85

Code:
2024-02-08 00:14:35,742 - Line from File: Rechnung XK7231611 130,12 19,00 24,73 EUR 154,85

2024-02-08 00:14:35,774 - Found date 07.02.2024
2024-02-08 00:14:35,774 - 2024-02-07 22:14:35.772839 is valid with minYear2021 and maxYear=2088
2024-02-08 00:14:35,791 - add 2024-02-07 22:14:35.790649 because not in blacklist
 

geimist

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

Karle

Benutzer
Mitglied seit
29. Mai 2011
Beiträge
353
Punkte für Reaktionen
9
Punkte
18
Kann ich eigentlich synocr auch zum umbenennen von PDF anhängen aus E-Mails nehmen bzw. Was passiert mit den PDF wenn schon Text hinterlegt ist weil die PDF kein scan ist?

Gruß Karl
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.563
Punkte für Reaktionen
1.389
Punkte
234
Wenn der OCR-Parameter -s gesetzt ist (= Standardwert), dann wird nicht erneut OCRd, wenn schon ein Textlayer vorhanden ist.
Und selbstverständlich ist es synOCR egal, wo ein PDF herkommt. :)
 
  • Like
Reaktionen: Karle und Struppix

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
100
Punkte für Reaktionen
23
Punkte
24
Die Frage leite ich mal an @Gthorsten weiter … :)
@Gthorsten: Noch ein weiteres Beispiel:

Code:
2024-08-19 18:06:53,920 - Line from File: Privat-Haftpflichtversiche- 78,58 EUR | 01.01.2024 - 01.01.2025 78,58 EUR | 14,93 EUR 93,51 EUR

2024-08-19 18:06:53,952 - Found date 19.08.2024
2024-08-19 18:06:53,952 - 2024-08-19 15:06:53.951543 is valid with minYear2021 and maxYear=2088
2024-08-19 18:06:53,969 - add 2024-08-19 15:06:53.969106 because not in blacklist
2024-08-19 18:06:53,973 - Found date 01.01.2024
2024-08-19 18:06:53,973 - 2024-01-01 00:00:00 is valid with minYear2021 and maxYear=2088
2024-08-19 18:06:53,976 - do not add 2024-01-01 00:00:00 because it is already there
2024-08-19 18:06:53,979 - Found date 01.01.2025
2024-08-19 18:06:53,979 - 2025-01-01 00:00:00 is valid with minYear2021 and maxYear=2088
2024-08-19 18:06:53,982 - add 2025-01-01 00:00:00 because not in blacklist

EDIT: Und nochmals eins. Sehr strange.
Code:
2024-08-19 18:26:07,493 - Line from File: 15.11.2023 Bakteriologische-mykolog. Kultur Ohr/Haut 62,44

2024-08-19 18:26:07,528 - Found date 19.08.2024
2024-08-19 18:26:07,528 - 2024-08-19 18:26:07.525406 is valid with minYear2021 and maxYear=2088
2024-08-19 18:26:07,544 - add 2024-08-19 18:26:07.544014 because not in blacklist
2024-08-19 18:26:07,587 - Found date 15.11.2023
2024-08-19 18:26:07,587 - 2023-11-15 00:00:00 is valid with minYear2021 and maxYear=2088
2024-08-19 18:26:07,591 - add 2023-11-15 00:00:00 because not in blacklist
 
Zuletzt bearbeitet:

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
100
Punkte für Reaktionen
23
Punkte
24
@geimist @Gthorsten
Ich hab das Problem gefunden.

regex_short_date = r"\b(((((Jan)|(Feb)|(Mrz)|(Apr)|(Mai)|(Jun)|(Jul)|(Aug)|(Sep)|(Okt)|(Oct)|(Nov)|(Dez)|(Dec)))\.)|([a-zA-ZäÄ]{4,12}))\s+(\d{4}|\d{2})"

Der Regex extrahiert mit der Zeile "15.11.2023 Bakteriologische-mykolog. Kultur Ohr/Haut 62,44" nur das "Haut 62".
"Haut 62" wird dann an check_year_range übergeben.
Nun scheint es so, dass dateparser.parse bei einem nicht validen Datum zwar eigentlich None zurück gibt, dies hier aber nicht passiert, da es versucht, aus dem String irgendwie schlau zu werden und aus "Haut 62", warum auch immer, das aktuelle Datum generiert. Zu sehen auch in dem Screenshot unten aus einer lokalen Debug-Session. Dazu gibts wohl einige Diskussionen im Issue-Tracker von dateparser.

1724248855530.png

Ich hab mal die dateparser-Doku durchsucht und es sowohl mit PREFER_DATES_FROM=past, als auch mit strict_parsing=True versucht. Leider beides ohne Erfolg.

Die sicherste Variante ist wohl, zu prüfen ob das geparste Datum innerhalb von ein paar Sekunden um den aktuellen Zeitstempel liegt (Zeilen 205-207):
1724250721732.png

Ich hab das mal in einen PR gepackt: https://github.com/geimist/synOCR/pull/47

EDIT:
Man könnte natürlich das if beliebig abändern. Ich weiß nicht genau, wie ihr es haben wollt. Daher mal die einfachste aller Implementierungen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: peterhoffmann


 

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