synOCR synOCR - GUI für OCRmyPDF

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.375
Punkte
234
SynOCR bietet, neben Polyglot, zunächst nur v12.7.2 und :latest an. Diese sind hardcodidert. Du kannst aber z.b. über den Container Manager beliebig andere Images herunterladen oder auch selber bauen. Alle Docker Images, welche ocrmypdf im Namen enthalten, werden in der GUI zusätzlich zur Auswahl angeboten.
 
  • Like
Reaktionen: Monacum

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Moin,
erst einmal vielen Dank an die Maintainer für dieses tolle Projekt!!!
Ich hatte vorher eine nicht Docker-fähige 411slim und hatte dort ein sehr komplizertes Setup für mein Dokumentenmanagement. Es involvierte einen Mac mini und Software wie Hazel und Devonthink... Das alles ist nun überflüssig dank der neuen DS und SynOCR 🙏🏻

Nun zu meinem Problem:
Ich möchte eigentlich folgende Parameter für OCRmyPDF verwenden:
-srd -l deu+eng

Sprich, erzeuge nur im Bedarfsfall einen OCR-Text-Layer und verwende ansonsten den bestehenden.

Nun habe ich aber festgestellt, dass einige meiner PDF, die bereits einen Text-Layer Fehler verursachen und schlichtweg in einen ERRORFILES-Ordner verschoben werden.

Input file is not a PDF, checking if it is an image... cannot identify image file '-' UnsupportedImageFormatError

Achso ja, die verwendete Version ist: jbarlow83/ocrmypdf:v12.7.2 (2021-11-04T21:53:21)

Kann man das Tool so parametrisieren, dass NUR im Fehlerfall eben doch ein neuer OCR-Text-Layer erstellt wird?

Danke & Grüße,
Lorenz
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.375
Punkte
234
Diese Fehlermeldung stammt direkt von OCRmyPDF. Wurde hier evtl. lediglich die Dateienung eines Bildes zu .pdf geändert?
Inzwischen können auch Bilder im Quellordner direkt verarbeitet werden, sofern die Schalter in der GUI gesetzt ist. In dem Fall werden sie vorher korrekt zu einem PDF konvertiert.
 
  • Like
Reaktionen: TruckTurner

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Danke für die Antwort @geimist,
Wurde hier evtl. lediglich die Dateienung eines Bildes zu .pdf geändert?
nein, es handelt sich um PDF-Dateien, die ich mit DEVONthink (nutzt intern die ABBYY FineReader Engine) erstellt habe.

Was mich aber noch interessieren würde:
"Kann man das Tool so parametrisieren, dass NUR im Fehlerfall eben doch ein neuer OCR-Text-Layer erstellt wird?"

Ich habe leider nichts finden können. Ein Workaround könnte ja sein, für den Ordner ERRORFILES ein separates Profil anzulegen, welches dann mit der -f Option ein erneutes OCR erzwingt.
 

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
...und da ich gerade wieder viel zu viel Zeit in die YAML-Profile stecke hier ein Hilferuf an @Struppix und die anderen RegEx-Profis hier.

Ich versuche gescannte DHL-Retourenbelege zu archivieren und dabei würde ich gerne die Sendungsnummer als Tagname extrahieren.
Ich habe es zumindest soweit geschafft, dass die Regex greift:
https://regex101.com/r/skCCrb/1

rule_100_DHL_Retourenbelege: targetfolder: Retourenbelege/§yocr4/DHL/ tagname: DHL-Retoure_§tagname_RegEx tagname_RegEx: (?i)(\b\d{12}\b)(?:.*[\n]{0,3}.*DHL.*Retoure) condition: all subrules: - searchstring: (?i)(\b\d{12}\b)(?:.*[\n]{0,3}.*DHL.*Retoure) searchtyp: contains isRegEx: true source: content casesensitive: false multilineregex: true


Nur leider steht im Log "RegEx not found" - genauer:
search by tag rule: "rule_100_DHL_Retourenbelege" ➜
➜ condition: all
➜ tag: DHL-Retoure_§tagname_RegEx
➜ destination: Retourenbelege/§yocr4/DHL/
➜ RegEx for tag: (?i)(?:\b\d{12}\b)(?=.*[\n]{0,3}.*DHL.*Retoure)
➜ multilineregex: [value for multilineregex is empty - "false" is used]
[Subrule]:
>>> search for: (?i)(?:\b\d{12}\b)(?=.*[\n]{0,3}.*DHL.*Retoure)
isRegEx: true
searchtype: contains
source: content
casesensitive: false
multilineregex: true
grep parameter: iz
➜ Subrule matched
>>> Rule is satisfied
➜ search RegEx for tag ➜ RegEx not found (fallback to DHL-Retoure_§tagname_RegEx)

Wie bekomme ich es nun hin, dass die Gruppe mit den 12 Digits auch als §tagname_RegEx verwendet wird?

Und, um das ganze noch komplizierter zu machen:
Es kann auch Einlieferungsbelege mit mehreren Sendungsnummern geben (Beispiel ebenfalls anbei)
https://regex101.com/r/vba7Vn/1

Das coolste wäre, wenn in einem solchen Fall am Ende der Dateiname wie folgt aussähe:
2022-03-26_DHL-Retoure_123456789012_210987654321.pdf

Da habe ich aber leider keinen blassen Schimmer, wie man das hinbekommt. Erstmal müsste ich eine Lösung der "einfachen" Sendungsnummer finden - dann kann ich mich an die Kür wagen 😁

Viele Grüße,
Lorenz
 
Zuletzt bearbeitet:

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
882
Punkte für Reaktionen
184
Punkte
63
Ein Workaround könnte ja sein, für den Ordner ERRORFILES ein separates Profil anzulegen, welches dann mit der -f Option ein erneutes OCR erzwingt.
Hi Lorenz, so würde ich es machen.

Gruß Karsten
 
  • Like
Reaktionen: TruckTurner

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.375
Punkte
234
Die Datei wird immer dann in ERRORFILES verschoben, wenn sie nicht im Zielordner ankommt oder 0 Byte hat. Es gibt die verschiedensten Gründe, warum das der Fall sein könnte (es liegt aber fast immer an einem Problem in Verbindung mit OCRmyPDF). Für dein Szenario müsste ich die Fehlermeldungen entsprechend auswerten um individualisiert darauf zu reagieren.

Dein Workarround scheint der schnellste Weg zum Ziel zu sein. Nimm in einem neuen Profil den Ordner ERRORFILES als Quellordner.
 
  • Like
Reaktionen: TruckTurner

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Danke euch beiden schonmal, @Struppix & @geimist,

ich werde das mal ausprobieren. Die Problemfälle, die dann noch in ERRORFILES/ERRORFILES landen muss ich dann halt regelmäßig manuell nachbehandeln 🤷🏻‍♂️

Was mir aber aktuell viel mehr auf den Nägeln brennt ist das Problem, welches ich weiter oben in einem separaten Post (#4.084) geschrieben habe. Nur steht der noch auf geblocked ("Dieser Beitrag wartet auf die Bestätigung eines Moderators und ist für normale Besucher unsichtbar."). Ich weiß nicht was ich da drin verbotenes geschrieben habe, so dass eine extra Freigabe erforderlich ist 🤷‍♂️ Vielleicht zu lang, zu viele externe Links? Wer weiß - abwarten & :coffee: trinken...
 

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Ich hätte aber noch eine weitere Frage an dich @Struppix. Im Wiki bin ich über den Abschnitt "Absender mittels Adresse identifizieren" bzw. rule_951 gestolpert. Ich werde aber aus dem Part mit dem Einsetzen des eigenen Nachnamen einfach nicht schlau...

Mal angenommen ich hieße mit Nachnamen "Müller", wie genau müsste dann der Ausdruck aussehen?

Ich habe es wie folgt versucht:
^([^M]*(M([^ü]|$)|Mü([^l]|$)|Mül([^l]|$)|Müll([^e]|$)|Mülle([^r]|$)(Müller([^L])|$))?)*$

Wenn ich das so in dem Online-Tester einsetze, stürzt das Tool ab mit der Meldung "catastrophic backtracking" :eek:
 

synfor

Benutzer
Sehr erfahren
Mitglied seit
22. Dez 2017
Beiträge
9.029
Punkte für Reaktionen
1.614
Punkte
308
Was mir aber aktuell viel mehr auf den Nägeln brennt ist das Problem, welches ich weiter oben in einem separaten Post (#4.084) geschrieben habe. Nur steht der noch auf geblocked ("Dieser Beitrag wartet auf die Bestätigung eines Moderators und ist für normale Besucher unsichtbar."). Ich weiß nicht was ich da drin verbotenes geschrieben habe, so dass eine extra Freigabe erforderlich ist 🤷‍♂️ Vielleicht zu lang, zu viele externe Links? Wer weiß - abwarten & :coffee: trinken...
1702828504741.png
 
  • Like
Reaktionen: TruckTurner

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
@synfor danke!

Ja, solange ich eingeloggt war wurde mir mein "unveröffentlichter" Post als die #4084 angezeigt. In einem Inkognito-Tab habe ich dann auch feststellen müssen, dass diese ID bereits einer älteren meiner Posts gehörte (siehe dein Screenshot).

Aber nun scheint ja alles gut. Sorry, wollte auch nicht drängeln. Ist ja immerhin Sonntag und Du/Ihr habt bestimmt (hoffentlich) auch bessere Dinge zu tun, als Beiträge freizugeben :p
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
882
Punkte für Reaktionen
184
Punkte
63
Ich hätte aber noch eine weitere Frage an dich @Struppix. Im Wiki bin ich über den Abschnitt "Absender mittels Adresse identifizieren" bzw. rule_951 gestolpert. Ich werde aber aus dem Part mit dem Einsetzen des eigenen Nachnamen einfach nicht schlau...
Hallo Lorenz,

das ist ein wenig verwirrend, genau so wie diese irre RegEx selbst, die ich mir damals ausgedacht habe :oops:

Also so sähe die Regel dann aus, aber Wichtig !!!!
  1. Im RegEx101 musst Du Multiline wählen damit es funktioniert
  2. Achtung: Für die Synology darfst DU nicht Multiline wählen, dann geht es nicht. Hier geht nur ohne Multiline und dann werden leider nur einzeilige Adressen gefunden, wie ich es auch beschrieben habe.
  3. Probiere es doch einfach mal mit einer YAML, sollte funktionieren...
Code:
(?i)(?=^([^m]*(m([^ü]|$)|mü([^l]|$)|mül([^l]|$)|müll([^e]|$)(mülle([^r])|$))?)*$)\b(?>(?:^(?:[a-z0-9\-\p{L}]+?[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[a-z0-9\-\p{L}]+?[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[a-z0-9\-\p{L}]*[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[a-z0-9\-\p{L}]+)))\b\N*?\b(?=\W{1,}[a-z\p{L}]*[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,2}[a-z0-9\p{L}]*[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,2}[a-z\p{L}]+[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{1,3}\d{0,4}[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}\d{0,4}[a-z\p{L}]{0,2}\b\R*\b[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[a-z\p{L}]{0,2}[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}\d{5}[\.\,\-\:\;\•\|\&\/*\!\ ]{0,3}[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[a-z\p{L}]*[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{0,3}[a-z\p{L}]+)\b

Gruß
Karsten

Edit: Bild vergessen
 

Anhänge

  • syno01.png
    syno01.png
    276,5 KB · Aufrufe: 8

TruckTurner

Benutzer
Mitglied seit
25. Jun 2008
Beiträge
45
Punkte für Reaktionen
0
Punkte
6
Hi @Struppix,

danke dass Du Dir die Zeit nimmst. Ich habe dasselbe versucht, wie in deinem Screenshot:
https://regex101.com/r/GCWyuv/1

Aber ich bekomme da leider nach wie vor die Meldung "catastrophic backtracking". Klingt ja wirklich dramatisch ;-)

Habe ich noch irgendetwas übersehen?

Wenn ich das "(?i)" vom Anfang entferne, dann verschwindet die Nachricht - aber dann wird auch eben der Name "Müller" gefunden 🤔
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
882
Punkte für Reaktionen
184
Punkte
63
Habe ich noch irgendetwas übersehen?
Hi Lorenz,

nö der Fehler lag bei mir. Nimm bitte die hier. Im Grundsatz war der erste * falsch. Habe aber noch ein paar Kleinigkeiten geändert.
Code:
(?i)(?=^([^m]?(m([^ü]|$)|mü([^l]|$)|mül([^l]|$)|müll([^e]|$)(mülle([^r])|$))?)*$)\b(?>(?:^(?:[a-z0-9\-\p{L}]+?[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[a-z0-9\-\p{L}]+?[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[a-z0-9\-\p{L}]*[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[a-z0-9\-\p{L}]+)))\b\N*\b(?=\W{1,}[a-z\p{L}]*[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,2}[a-z0-9\p{L}]*[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,2}[a-z\p{L}]+[\.\,\-\:\;\•\|\&\/*\!\(\)\ ]{1,3}\d{0,4}[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}\d{0,4}[a-z\p{L}]{0,2}\b\R*\b[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[a-z\p{L}]{0,2}[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}\d{5}[\.\,\-\:\;\•\|\&\/\*\!\ ]{0,3}[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[a-z\p{L}]*[\.\,\-\:\;\•\|\&\/\*\!\(\)\ ]{0,3}[a-z\p{L}]+)\b
Schaue mir das später mal noch genauer an.

Gruß
Karsten
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Moin zusammen. Welches OCR image benutzt ihr eigentlich. Habe auf latest stehen, und gerade gesehen das da dann der Text ziemlich fragmetiert herauskommt, so dass die Regeln nicht mehr funktionieren. War bisher nie ein Problem...
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.375
Punkte
234
Es haben einige Probleme mit dem aktuellen Image. Ich bin mit 12.7.2 sehr zufrieden (das gibt es auch als Vorauswahl in der GUI).

Bitte meldet solche Fehler auch an jbarlow83
 
  • Like
Reaktionen: Gthorsten

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.544
Punkte für Reaktionen
1.375
Punkte
234
Bereits geocrte Dokumente musst du mit dem Schalter -f (force) statt -s (skip text) erneut durchlaufen lassen.
 
  • Like
Reaktionen: Gthorsten

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Mit latest kam zwar text raus, aber gefühlt jedes wort in einer neuen Zeile
 


 

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