synOCR synOCR - GUI für OCRmyPDF

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
184
Punkte
63
Hi Thorsten,
nutze den 1700er und habe keine Probleme.
Hier meine Einstellungen...
Screenshot_20230211-172811_Chrome.jpg
screenshot_20230211-172739_chrome-jpg.79363
 

Anhänge

  • Screenshot_20230211-172739_Chrome.jpg
    Screenshot_20230211-172739_Chrome.jpg
    126 KB · Aufrufe: 188
Zuletzt bearbeitet von einem Moderator:

ibaxx

Benutzer
Mitglied seit
18. Jun 2015
Beiträge
67
Punkte für Reaktionen
8
Punkte
8
Hi,

ich will alle Dateien, mit einem Zeitstempel als Dateinamen umbennen. Leider ist meine Formel immer wieder leer, als ob die rausgeworfen wird.
Formel: $ynow4_$mnow_$dnow_$hhnow_$mmnow_$ssnow

Eine Idee?

Gruß
Ingo
 

Fsk

Benutzer
Mitglied seit
12. Feb 2023
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo liebes Forum,

leider hänge ich nun schon eine ganze Zeit an folgendem Fehler: ocrmypdf: error: the following arguments are required: input_pdf_or_image, output_pdf

Daher lässt sich das OCRmypdf nicht aus dem Docker heraus starten. Wenn ich jedoch über das Paket SynOCR einen manuellen Durchlauf starte funktioniert es. Ich bin nun etwas verwirrt: Sind SynOCR und Docker "unabhängig" voneinander? Ist es so, dass SynOCR eine eigene Config hat/anlegt, auf die Docker nicht zugreifen kann und deshalb die Fehlermeldung ausgibt? Ich also im Umkehrschluss für einen Start aus dem Docker heraus diese Angaben per Terminal abspeichern müsste?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
synOCR startet den Container mit den erforderlichen Parametern.
Wenn du den manuell startest, musst du dem Container ja sagen, welche PDFs er verarbeiten soll, und wie er das machen soll und wo er die fertigen Daten ablegen soll
 

Fsk

Benutzer
Mitglied seit
12. Feb 2023
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Ja, alles klar! Vielen Dank - ich dachte zuerst, dass SynOCR eine "Config" erstellt, auf die dann der Prozess im Docker, über den Start im Docker, zugreifen kann. Ich habe nun die inotify Tools heruntergeladen (Das hat mir geholfen: https://synocommunity.com/#easy-install) und SynOCR hat bis jetzt problemlos alles erkannt und verarbeitet.

Großes Kompliment and die Macher hier - das ist ein echtes Upgrade!
 

ZwickeZwacke

Benutzer
Mitglied seit
12. Apr 2021
Beiträge
4
Punkte für Reaktionen
0
Punkte
1
Hallo an Alle,

zunächst - ein phänomenales Tool - vielen Dank für diesen Dienst an der Gemeinschaft!!!

Eine Frage hierzu - SYNOCR schreibt ja entsprechende Logs - kann man die auch ins Synology log center einbinden? (wenn ja, wie?)

Leider kann man hier im Forum nicht nach "log" suchen da scheinbar das Wort zu kurz ist und aus der Suche ausgeschlossen wird... *eyeroll*
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Hallo zusammen,

sorry, dass ich auf viele Fragen in den letzten zwei Wochen aus gesundheitlichen Gründen nicht reagieren konnte. Einiges wurde ja geklärt - vielen Dank auch dafür.

Hier noch der Rest:

Vor einiger Zeit gab es mal die Diskusion, eine YAML GUI zu bauen und ich meine mich zu erinnern in diesem Zusammenhang schon mal eine Weboberfläche gesehen zu haben, die hier jemand gepostet hat mit der man die YAML File zusammenbauen kann.
Meines Wissens gibt es nur gedankliche Konstrukte in dieser Richtung.

Habe synOCR dann deinstalliert und den Dockercontainer gelöscht. Nach Neuinstall kommt nun permanent beim manuellen starten des synOCR Suchlaufs die Fehlermeldung ! ! ! Quellverzeichnis oder Berechtigung in der Konfiguration prüfen ! ! !. Die grünen Haken hinter den Pfadangaben sind immer noch da,
In der Regel liegt es an einem unvollständig konfigurierten 2. Profil. Das bitte mal checken.

Und ich glaube nun verstanden zu haben, dass gar kein user namens synOCR im DSM angelegt wird sondern dieser nur als Besitzer der verarbeiteten .pdfs eingesetzt wird.
Es ist ein "interner Benutzer", der in der normalen Liste meist nicht aufgeführt wird.

Eine Frage hierzu - SYNOCR schreibt ja entsprechende Logs - kann man die auch ins Synology log center einbinden? (wenn ja, wie?)
Da habe ich gerade keine Ahnung und müsste mich erst damit auseinandersetzen. Ich denke, für viele User ist die aktuelle Variante einfacher, weil man so ein abgegrenztes Logfile für eine einzelne Datei zum debuggen bereitstellen kann. Aber es ist ja nichts ein Stein gemeißelt.
 
  • Like
Reaktionen: facetto

facetto

Benutzer
Mitglied seit
17. Aug 2022
Beiträge
33
Punkte für Reaktionen
2
Punkte
8
Danke Stephan, mittlerweile funktioniert alles gut bei mir, vielen Dank für all deine Arbeit!

Ein anderes Thema an alle, ich hab bislang im Forum nix dazu gefunden, daher hier zwei Fragen:
Kann ich in YAML-Regeln so definieren, dass ich die "condition any" mit der "condition all" in einer Regel vereine? also z.b. dass entweder searchstring A und B für die Zuweisung eines tags enthalten sein müssen oder aber searchstring C? Das wäre übersichtlicher, als jeweils neue Regeln für beide ODER - Faelle zu erstellen.
Die zweite Frage geht in eine aehnliche Richtung: Kann ich in einer Regel beim Zutreffen in gleich mehrere Ordner kopieren lassen? hab mal ausprobiert, einfach ein zweites targetfolder: in die Regel einzufügen, dann wird allerdings nur das 2. targetfolder benutzt.

Danke für eure Hilfe,
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
184
Punkte
63
Hallo Leute,
an die Diskussion hänge ich mich gerne mal an ...
Kann ich in YAML-Regeln so definieren, dass ich die "condition any" mit der "condition all" in einer Regel vereine? also z.b. dass entweder searchstring A und B für die Zuweisung eines tags enthalten sein müssen oder aber searchstring C? Das wäre übersichtlicher, als jeweils neue Regeln für beide ODER - Faelle zu erstellen.
Die zweite Frage geht in eine aehnliche Richtung: Kann ich in einer Regel beim Zutreffen in gleich mehrere Ordner kopieren lassen? hab mal ausprobiert, einfach ein zweites targetfolder: in die Regel einzufügen, dann wird allerdings nur das 2. targetfolder benutzt.
Behelfe mir derzeit auch mit 2 Regeln, um das Problem zu lösen.
Kombiniere aber oft 2 ist Bedingungen, um es eindeutig zu machen, wobei das Verhalten bei zb. any-is und all-contains manchmal etwas seltsam ist.

Ich habe hier das Problem, dass der Zeilenwechsel nicht erkannt wird. Zumindest bekomme ich das nicht stabil hin.
Hintergrund ist der Tabellen artige Aufbau der Dokumente.

Code:
Kundennummer: 1234567
Rechnungsnummer: 1234567
Transaktionsnummer: 1234567

Der erkannte Text ist nun leider:

Code:
Kundennummer:
1234567
Rechnungsnummer:
1234567
Transaktionsnummer:
1234567

Meine Frage ist nun: Wie bringe ich den Zeilenwechsel mit Wort Bezug hin. Ich habe irgendwie den Eindruck, der wird höflich ignoriert. Obwohl ihn die Regex Tester als i.O. befinden.
Beispiel:

Code:
===> Tabellensuche

Suche abgrenzen auf letzte Zahl der ersten "Spalte" der nächsten Zeile
(?|(Beleg-Nr.).+)?\n\K(?:\d*)

Suche abgrenzen auf letzte Zahl der zweiten "Spalte" der nächsten Zeile (hier Datum)
(?|(Datum).+)?\n\d*\s*\K(?:\d{2}.\d{2}.(19|20\d{2}))

Suche dritte Spalte
(?|(Kd-Nr.).+)?\n\d*\s*\d{2}.\d{2}.(19|20\d{2})\s*\K(?:\d*)

Beispieltext:
Beleg-Nr. Datum      Kd-Nr. 1235846 ldhlö
20230059  01.02.2023 10467  bla     bla

Wie gesagt im Tester ist alles ok. Stehe ich auf dem Schlauch?! Egal welche Variante ich getestet habe, es ist ihm egal :sleep:


Vor einiger Zeit gab es mal die Diskusion, eine YAML GUI zu bauen und ich meine mich zu erinnern in diesem Zusammenhang schon mal eine Weboberfläche gesehen zu haben, die hier jemand gepostet hat mit der man die YAML File zusammenbauen kann.
Hintergrund der Frage ist, dass meine Frau sich gerne eigene Suchkriteren zusammenbauen möchte, sie aber doch ziemlich weit weg von allerlei Skripting ist, so dass ich mal schauen wollte ob sie damit zurecht käme.
Es gibt einen "Editor", der manchmal für eine Idee hilfreich ist. Bei eindeutigen Strings funktioniert das recht gut. Der syntax ist aber oft recht aufwendig.
https://regex-generator.olafneumann.org/

Tester findet Ihr hier
https://regex101.com/
https://regexr.com/
https://www.regextester.com/


Wäre übrigens prima, sich mal zu ein paar RegEex Regeln auszutauschen. Vielleicht kommt dann auch die eine oder andere tolle Idee.

Hier mal ein Beispiel meiner Regeln.
Gesucht wird Rechnung als Wort, dann Monat und Jahr. Die Lösung ist nicht optimal, aber ich beschäftige mich erst seit 3 Wochen mit dem Thema. Seitdem habe ich rund ein Dutzend Ordner entsorgt. Ich versuche die Regeln recht allgemein zu halten, und baue die Ergebnisse dann zusammen.

Code:
===============================================================================================
Suche Monat und Jahr (bsp. für Rechnung)
\S*((?:Rechnung|rechnung)\S{0,}\s{0,}?\S{0,}?\s{0,}?)

(?<=echnung|ECHNUNG|uszug|USZUG|bersicht|BERSICHT).+\K(?:Januar|JANUAR|Februar|FEBRUAR|März|MÄRZ|April|APRIL|Mai|MAI|Juni|JUNI|Juli|JULI|August|AUGUST|September|SEPTEMBER|Oktober|OKTOBER|November|NOVEMBER|Dezember|DEZEMBER)

(?<=echnung|ECHNUNG|uszug|USZUG|bersicht|BERSICHT).+\K((?:19|20)\d{2})

Suchstring ===> Rechnung für Januar 2021
Ausgabe ===> Bspw. Rechnung Januar 2021
===============================================================================================

Gruß Karsten
 

mngsps

Benutzer
Mitglied seit
14. Aug 2022
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Hallo in die Runde!
Weiß jemand wie ich bei synOCR den PDF Counter resetten kann?
Ich hatte mir wohl irgendwie einen Dokumenten-Loop produziert und jetzt steht der Counter nach den ca. ersten 20 Dokumenten bei über 30.000 :)
Ich würde nach Beseitigung des Problems gerne wieder bei 0 beginnen...

Viele Grüße
Benedikt
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Ich nehme an, du möchtest den Profil-Zähler und den Gesamt-Zähler zurücksetzen?
Nenn mir mal den genauen Namen deines Profils. Ich erstelle dir den nötigen Befehl, um die Werte in der Datenbank zurückzusetzen.

PS: alternativ hab ich es hier mal verlinkt: wie kann ich den Dateizähler zurücksetzen?
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Kann ich in YAML-Regeln so definieren, dass ich die "condition any" mit der "condition all" in einer Regel vereine?
Solche Bedingungen lassen sich derzeit noch nicht abbilden.

Kann ich in einer Regel beim Zutreffen in gleich mehrere Ordner kopieren lassen?
Aktuell nur so, indem du die Regel duplizierst.

Wie gesagt im Tester ist alles ok. Stehe ich auf dem Schlauch?! Egal welche Variante ich getestet habe, es ist ihm egal :sleep:
synOCR sucht ja auf Basis von grep. Anfangs war es z.B. auch so, dass so Sachen wie lookbehind nicht gefunden wurden. Der Schalter -P schaffte Abhilfe. Vielleicht müssen wir grep noch etwas auf die Sprünge helfen. In meinem Test auf der Kommandozeile konnte ich auch keinen Fund replizieren.

Bei Interesse findest du an dieser Stelle die Suchroutine:
https://git.geimist.eu/geimist/synOCR/src/tag/v1.3.0/APP/ui/synOCR.sh#L552

Hast du mal Lust, auf der Shell eine Lösung für grep zu suchen?
grep -P "(?|(Beleg-Nr.).+)?\n\K(?:\d*)" "Regextest.txt"

Edit:​

schon gefunden. Wir brauchen den Schalter -z. Hintergrund ist, dass grep ja prinzipiell nur zeilenbasiert arbeitet. Der Schalter -z weißt grep an, die Suchdatei als einen einzigen String zu verarbeiten. Damit konnte ich deine Regex auf der Shell verarbeiten. Den Schalter muss ich aber erst einmal einbauen.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: facetto

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
@Struppix

Bitte probiere mal die aktuelle Beta: DSM6 | DSM7

  • [YAML] multilineregex: true kann jetzt in einer Subrule gesetzt werden
    dies setzt den Parameter -z für grep, um über mehrere Zeilen hinweg suchen zu können
  • [GUI] weitere Unterstützung für maschinell übersetzte Sprachen (by DeepL):
    • Koreanisch
    • Norwegisch
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
184
Punkte
63
@Struppix

Bitte probiere mal die aktuelle Beta: DSM6 | DSM7

  • [YAML] multilineregex: true kann jetzt in einer Subrule gesetzt werden
    dies setzt den Parameter -z für grep, um über mehrere Zeilen hinweg suchen zu können
  • [GUI] weitere Unterstützung für maschinell übersetzte Sprachen (by DeepL):
    • Koreanisch
    • Norwegisch
Jetzt muss ich mich outen. Nicht nur das ich die Anleitung nicht gelesen habe, wo das mit dem 'grep' sicher steht :sneaky:, wie aktualisiere ich die Version ohne alle Profile und Einstellungen zu verlieren.
Peinlich ich weiß ...

Gruß
Karsten
PS: Das mit der Suche per grep ist übrigens cool
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Die Konfiguration bleibt bei einem Update erhalten. Einfach das SPK über den Link laden und im Paketzentrum manuell installieren.
 
  • Like
Reaktionen: Struppix

mngsps

Benutzer
Mitglied seit
14. Aug 2022
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Ich nehme an, du möchtest den Profil-Zähler und den Gesamt-Zähler zurücksetzen?
Nenn mir mal den genauen Namen deines Profils. Ich erstelle dir den nötigen Befehl, um die Werte in der Datenbank zurückzusetzen.

PS: alternativ hab ich es hier mal verlinkt: wie kann ich den Dateizähler zurücksetzen?
Vielen herzlichen Dank für die schnelle Antwort!

Wo finde ich denn den Zähler für die jeweiligen Profile? Ich glaube ich kenne bisher nur den globalen.

Ich habe 12 verschiedene Profile für 12 Verschiedene Ordner in die ich unterschiedliche Dokumente per Netzwerkscanner schicke.

Das vermutlich verursachende Profil heißt "Versicherungen". Da ich gerade aber noch am Einrichten bzw feintunen der Einstellungen bin könnte ich auch gut mit einem globalen Reset des Zählers leben.

Wo würde ich deinen Befehl den ausführen? Über den Aufgabenplaner?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Wo finde ich denn den Zähler für die jeweiligen Profile? Ich glaube ich kenne bisher nur den globalen.
Das steht im Log.

Bash:
sqlite3 "/usr/syno/synoman/webman/3rdparty/synOCR/etc/synOCR.sqlite" "
UPDATE system SET value_1='0' WHERE key='global_pagecount';
UPDATE system SET value_1='0' WHERE key='global_ocrcount';
UPDATE system SET value_1='$(date +%Y-%m-%d)' WHERE key='count_start_date';
UPDATE config SET pagecount='0' WHERE profile='Versicherungen';
UPDATE config SET ocrcount='0' WHERE profile='Versicherungen';"

Bei abweichenden Namen, diesen in den letzten beiden Zeilen ändern. Hier wird jetzt der komplette Zähler und der des bezeichneten Profils zurückgesetzt.
Das ganze (alle 6 Zeilen) im Terminal oder im Aufgabenplaner als benutzerdefiniertes Skript ausführen.
 


 

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