synOCR synOCR - GUI für OCRmyPDF

tag

Benutzer
Mitglied seit
18. Jan 2021
Beiträge
32
Punkte für Reaktionen
2
Punkte
8
Im Suchfeld gibt es eine Listbox - dort kannst du den Suchbereich auswählen (Standard ist 'Überall').
Oho! Prima, danke :)

Bisher wurden schon Dockerlösungen via Watchdog ect. vorgeschlagen. Das fand ich bisher nicht zielführend. Dann läuft letztendlich mehr. Je nach Konfiguration und Profilanzahl gibt es auch mehrere Inputordner die zu überwachen wären.

Derzeit wird lediglich das Startskript gestartet, welches alle Inputordner absucht und ggf. synOCR startet. Das ist ratzfatz erledigt und benötigt kaum Ressourcen.

inotify hängt am Betriebssystem und bekommt ein Event, wenn eine Datei erscheint. Da passiert gar nichts, wenn nichts auftaucht, und so sollte das auch sein. Die Kiste soll einen Ruhezustand haben dürfen, wenn man den einschaltet. Ich habe nichts dagegen, wenn man einmal täglich etwas ausführt, falls das Dateisystem mal nicht Bescheid sagen sollte, z. B. weil man die Überwachung nicht am Laufen hatte, aber dauernd etwas auszuführen um schnell zu reagieren statt eines Events ist üblicherweise eine schlechte Idee.

Dann verzichte auf den internen Aufgabenplaner. Auf den müssen wir ab DSM7 eh verzichten, weil synOCR zum Anpassen von cron root-Rechte benötigt. Den gleichen Eintrag kannst ja auch über den DSM-Aufgabenplaner anlegen - und hier auch für jede Minute. Einfach dieses Skript aufrufen lassen: /usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh

Für die Campark T85 Tierkamera habe ich zum Auslesen Skripte geschrieben. Die sind teilweise noch etwas im Werden, aber der Teil mit dem inotify für exifren (T85exifwait.sh in T85exifren), der bei mir auf der Synology läuft und die ausgelesenen Fotos und Filme umbenennt und verschiebt, dürfte eigentlich quasi unverändert passen. Da reagiere ich auf beliebige Dateien im überwachten Verzeichnis, da bin ich auch entspannt wenn es zu oft aufgerufen werden sollte. Entsteht eine Datei, läuft sowieso was, und da kann man auch checken. Dann lieber einmal zuviel. Da rufe ich ein Skript auf, welches man auch konfigurieren kann, und damit ist es alles ok.

(privater Kontakt folgt, bevorzugt per Mail - ich mag fremdverwaltete PNs nicht. Man hat vor Jahren mal was gefragt, sucht in Mails, da ist es nicht, man sucht das richtige Forum, dann ist was Down und man hat keinen Zugriff, man hat die Daten nicht selbst - für Kontaktaufnahme und Adminkrempel ist es gut, aber mehr eigentlich nicht)

synOCR sucht auch nur in $PATH (guckst du hier). Das Problem in diesem Fall wird sein, dass $PATH nicht überall im System gleich verfügbar ist, weshalb die Variable hier selbst aufgebaut wird. Ich würde dir empfehlen, einfach einen Link in ein entsprechendes Verzeichnis zu setzen.

Das ist höchst seltsam, ich sehe den Fehler nicht mehr. Mein exiftool-Skript ist ja auch im path und heißt exiftool, sehr komisch, dass ich diese Meldung gesehen habe. Sie war aber da ... na ich werde es schon lösen wenn es wieder auftritt, which war ja auch meine Methode nach exiftool zu suchen - danke schön!

Ich werde die nächste Zeit mal schauen was so rauskommt bei synOCR und was ich anpassen möchte. Bisher waren alle meine Scans halt Grafiken, und ich habe jede Menge davon (quasi alle Eingangspost außer Werbung, und selbst die manchmal). Das mit den Tags muss ich mir noch anschauen. Der Scanner spuckt Dateien aus nach meinem Wunsch benannt YYYYMMDD_HHMMSS_NR.PDF und ich rufe üblicherweise jeden einzelnen Scan auf und ergänze mit Leerzeichen oder Underscore als Trenner Stichworte hinten im Dateinamen (meist lösche ich dabei Nummer und ggf auch Uhrzeit weg). Das möchte ich prinzipiell auch beibehalten, denke ich, und daran, dass da nichts weiter im Namen steht, erkenne ich, dass ich die Datei noch nicht umbenannt habe. Aber viele einzelne Ordner fände ich auch nicht passend. Wie gesagt, das soll sich nun erst mal einlaufen und die Idee mit den Tags ist sicher gut und passend.

Ich hatte mit inotifywait schonmal experimentiert - aber mit leidlichem Erfolg. Meines Wissens ist es auch nicht im DSM enthalten.

Ja, das ist etwas doof, ich habe auf meiner Seite deshalb die inotify-Tools verlinkt. Wenn inotifywait nicht zur Verfügung steht, muss man wohl notgedrungen ein Fallback auf den Timer-Unsinn machen.
 

abrocksi

Benutzer
Mitglied seit
27. Dez 2013
Beiträge
251
Punkte für Reaktionen
82
Punkte
28
Hallo geimist,

vielen Dank für Deine Hilfe. Es lag am Ende am Format der Textdatei für das Taggen. Diese musste zumindest bei mir nicht im ANSI-Format, sondern als UTF-8-Datei abgespeichert und nochmal neu auf die NAS hochgeladen werden. Dann findet synOCR.sh auch die Tag-Datei. Zumindest bei mir :)

cheers,
abrocksi
 
  • Like
Reaktionen: geimist

Schrotti

Benutzer
Mitglied seit
10. Okt 2020
Beiträge
22
Punkte für Reaktionen
3
Punkte
3
Hallo Stephan,
hier scheint ein Bug vorzuliegen.

Frohe Ostern
Using date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
Dates found: 2
check date (dd mm [yy]yy): 26.03.21
Date is most probably in the last century. Setting year to 1921
? valid
day: 26
month:03
year: 1921
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Nein, das kann nicht sein - es muss an deinem Kalender liegen … ?

Sorry, wird natürlich zeitnah gefixt.
Vielen Dank fürs melden.
 
Zuletzt bearbeitet:

tompsg

Benutzer
Mitglied seit
04. Jan 2021
Beiträge
2
Punkte für Reaktionen
1
Punkte
53
Hallo,

bitte in synOCR.sh Zeilen 1191/1372:
sourcefilecount=$(( $sourceFileCount + 1 ))
in
sourceFileCount=$(( $sourceFileCount + 1 ))
ändern oder konsequent lowercase, wie destfilecount. Führt ansonsten zu einer Endlosschleife.

Viele Grüße,
Thomas
 
Zuletzt bearbeitet:
  • Like
Reaktionen: geimist

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Ein Tag "Stadt Sparkasse SG" erzeugt 3 Ordner und kopiert das File in jeden Ordner. Ist das so gewollt? Ich würde gerne den Ordner=Tag erzeugen.

Viele Grüße,
Thomas

?
@tompsg Hab deine Nachricht gar nicht gleich gesehen. Meine Antwort bezog sich auf den Fehler mit der Variablen …

  • Wie definierst du deinen Tag? In der GUI oder YAML-Regeldatei?
  • Sind die Zielordner Tag-basiert, oder 'Kategorie'-basiert?
Kannst du mir mal ein Logfile hochladen? So kann ich den Fehler hoffentlich besser eingrenzen.

Der Bugfix ist nun schon etwas älter und hatte da erfolgreich seinen Zweck erfüllt …
(das Update liegt übrigens bereits auf cphub.net zur Prüfung vor)

Edit: der Bugfix bezog sich auf das Tag-SYMBOL - also den Kennzeichner - nicht den Tag an sich. Das Verhalten ist aber natürlich dennoch nicht erwünscht.
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
@mf_2 @steve45
jbarlow83 stellt ab Version 12 nun auch OCRmyPDF als aarch64-Image zur Verfügung. Ich würde euch empfehlen, dieses zu nutzen (gibt es zum jetzigen Zeitpunkt nur mit :latest-Tag - die Nummerversion kommt bestimmt bald).
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Ein Tag "Stadt Sparkasse SG" erzeugt 3 Ordner und kopiert das File in jeden Ordner. Ist das so gewollt? Ich würde gerne den Ordner=Tag erzeugen.
Ich konnte es nicht nachstellen. Bitte lasse mir mal weitere Infos zukommen.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Aktueller - bei den wenigen (ungepflegten) Images, die man sonst für aarch64 findet :)

Kann ja jeder machen, wie er möchte. Ich wollte nur informieren, dass es jetzt offizielle Images für diese Plattform gibt.
 

Huhie

Benutzer
Mitglied seit
29. Nov 2007
Beiträge
450
Punkte für Reaktionen
8
Punkte
18
Moin Zusammen,

ich versuche mich gerade daran die YAML Datei zu verfeinern, um evtl. "Umbennungsarbeiten" zu minimieren. Ich habe jetzt die letzten 30 Seiten hier in diesem Thread durchgelesen und nichts passendes gefunden...

Vielleicht kann mir jemand von euch hier weiterhelfen...

Ich möchte gerne, dass z.B. die Gehaltsabrechnung wie folgt benannt wird:

2021_03_30_Gehalt_Microsoft
2021_03_29_Gehalt_Praxis

Der Rename Syntax in der Gui sieht wie folgt aus: §yocr_§mocr_§docr_§tag

Aber wie bekomme ich es hin, dass wenn z.B. in der gescannten Gehaltsabrechnung meiner Frau, dann auch
die erstellte PDF Datei "2021_03_29_Gehalt_Praxis" heisst.

In der YAML Datei habe ich das wie folgt:

Gehalt_3:
tagname: Gehalt
targetfolder:
condition: any
subrules:
- searchstring: Gehalt
searchtyp: contains
isRegEx: false
source: content
casesensitive: true
- searchstring: Praxis
searchtyp: contains
isRegEx: false
source: content
casesensitive: true

(Die Formatierung der YAML Datei ist hier geschluckt worden)

Ich bin noch nicht so ganz firm mit YAML Dateien, daher hoffe ich hier auf Hilfe, wie ich das
entsprechend umsetzen kann. Die neu erstellten Dateien werden immer in den selben Ordner
abgelegt, das mache ich tatsächlich lieber händisch hinterher. Nur das saubere Umbenennen
wäre doch eine sehr sehr große Hilfe!

Ich danke euch !
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Hallo Huhie,

ich sehe dein Problem noch nicht ganz. Deine Sorge ist, dass du zwei identische Dateien nicht unterscheiden kannst (es würde nichts überschrieben, sondern ein Zähler angehangen)?
Dann solltest du vielleicht noch ein zusätzliches Kriterium einbringen, welches halt nur bei deiner Frau greift.

(Die Formatierung der YAML Datei ist hier geschluckt worden)
Dazu dient die Codeformatierung, wo du auch YAML einstellen kannst.

Bildschirmfoto 2021-04-07 um 14.49.04.png
 

Huhie

Benutzer
Mitglied seit
29. Nov 2007
Beiträge
450
Punkte für Reaktionen
8
Punkte
18
Hallo Stephan,

vielen Dank für Deine rasche Info.... (jetzt weiss ich auch, wo ich den Code einfügen kann ;) )

Ich glaube ich habe mich missverständlich ausgedrückt...

Ich möchte z.B. zwei Gehaltsabrechnungen (sagen wir Mann und Frau) quasi fertig
umbenannt haben in:

2021_03_29_Gehalt_Microsoft (Mann)
2021_03_27_Gehalt_Praxis (Frau)

In der GUI habe ich im Rename Syntax "§yocr_§mocr_§docr_§tag" gesetzt.

Nur wie muss die korrekte YAML Datei dafür aussehen, damit dann auch beide "Tags", also Gehalt
und Praxis oder Gehalt und Microsoft in den Dateinamen übernommen werden...

Code:
Rechnung_1:
    tagname: Rechnung
    targetfolder:
    condition: any
    subrules:
    - searchstring: Rechnung
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
Versicherung_2:
    tagname: Versicherung
    targetfolder:
    condition: any
    subrules:
    - searchstring: Versicherung
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
Gehalt_3:
    tagname: Gehalt
    targetfolder:
    condition: any
    subrules:
    - searchstring: Gehalt
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: Microsoft
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
Kndigung_4:
    tagname: Kündigung
    targetfolder:
    condition: any
    subrules:
    - searchstring: Kündigung
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
Kndigungsbesttigung_5:
    tagname: Kündigungsbestätigung
    targetfolder:
    condition: any
    subrules:
    - searchstring: Kündigungsbestätigung
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
Angebot_6:
    tagname: Angebot
    targetfolder:
    condition: any
    subrules:
    - searchstring: Angebot
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true

Kannst Du mir hier einmal helfen, damit ich das gelöst bekomme... Irgendwie kann ich das nicht richtig ableiten
aus der Muster YAML Datei... Sry
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
In der GUI habe ich im Rename Syntax "§yocr_§mocr_§docr_§tag" gesetzt.
§tag in der Umbenennungssyntax steht für ALLE gefundenen Tags.

Nur wie muss die korrekte YAML Datei dafür aussehen, damit dann auch beide "Tags", also Gehalt und Praxis oder Gehalt und Microsoft in den Dateinamen übernommen werden...
Das musst du mit dem Wert condition: regeln. Der steht bei dir auf any, sollte aber auf all stehen, wenn alle Subrules erfüllt sein müssen. In dem Fall würde ich auch den Tagnamen erweitern (ist ja dann eine komplexe Regel).

YAML:
Gehalt_3:
    tagname: Gehalt_Microsoft (Mann)
    targetfolder:
    condition: all
    subrules:
    - searchstring: Gehalt
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: Microsoft
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
Du kannst natürlich auch mit einzelnen Hauptregeln arbeiten, die jeweils den Begriff Gehalt Mircrosoft und (Mann) abdecken. Alle Tags würden dann einzeln gesetzt, sofern erfüllt.

YAML:
tag3_Gehalt:
    tagname: Gehalt
    targetfolder:
    condition: all
    subrules:
    - searchstring: Gehalt
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
tag4_Microsoft:
    tagname: Microsoft
    targetfolder:
    condition: any
    subrules:
    - searchstring: Microsoft
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
tag5_Zuordnung_Mann:
    tagname: (Mann)
    targetfolder:
    condition: any
    subrules:
    - searchstring: ein eindeutiger Begriff
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true
 

Huhie

Benutzer
Mitglied seit
29. Nov 2007
Beiträge
450
Punkte für Reaktionen
8
Punkte
18
Hallo Stephan,

vielen Dank für die Anleitung... Das läuft nun fast rund...

1. Fehler war auf einer Abrechnung stand nicht Gehalt, sondern GEHALT, das musste ich auf komplett GROSS ändern, damit
das auch richtig getaggt wird... Läuft jetzt aber!

Drei Fragen habe ich jedoch noch...

- Wie kann ich z.B. das Eintrittsdatum 01.01.2021 nur für den TAG Frau überspringen? Geht das nur global über Daten
ignorieren oder kann ich das auch nur für diese eine bestimmte Regel ignorieren?

- Wenn auf der Gehaltsabrechnung zum Beispiel noch der Monat (Jan. Feb. Mrz.) aufgeführt ist, bekomme ich das auch
irgendwie noch in den Dateinamen? Da sich das ja mtl. ändert müsste das ja quasi eine Variable sein. Geht das? Wenn ja,
wie löse ich das am elegantesten?

- Kann ich RG´s oder AG´s Nummern auch in den Dateinamen bringen?

Danke Dir ...
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
1. Fehler war auf einer Abrechnung stand nicht Gehalt, sondern GEHALT, das musste ich auf komplett GROSS ändern, damit
das auch richtig getaggt wird... Läuft jetzt aber!
Bzw. casesensitive: true auf casesensitive: false setzen.
- Wie kann ich z.B. das Eintrittsdatum 01.01.2021 nur für den TAG Frau überspringen? Geht das nur global über Daten
ignorieren oder kann ich das auch nur für diese eine bestimmte Regel ignorieren?
Probiere mal die zusätzliche Subrule (allerdings muss in der Hauptregel condition: all gesetzt sein, damit diese Regel nicht erfüllt wird, wenn in einem Dokumente das Datum fehlt):
YAML:
    - searchstring: 01.01.2021
      searchtyp: does not contain
      isRegEx: false
      source: content
      casesensitive: false

- Wenn auf der Gehaltsabrechnung zum Beispiel noch der Monat (Jan. Feb. Mrz.) aufgeführt ist, bekomme ich das auch
irgendwie noch in den Dateinamen? Da sich das ja mtl. ändert müsste das ja quasi eine Variable sein. Geht das? Wenn ja,
wie löse ich das am elegantesten?
Das würde über einen RegEx gehen (Parameter tagname_RegEx: <RegEx>). Dazu müsste man aber das genaue Muster in der Quelle kennen. Zudem ist RegEx auch nicht mein Steckenpferd.
YAML:
tag3_Gehalt:
    tagname:
    tagname_RegEx: <hier muss der RegEx rein>
    targetfolder:
    condition: all
    subrules:
    - searchstring: Gehalt
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: true

- Kann ich RG´s oder AG´s Nummern auch in den Dateinamen bringen?
Das sollte wie im vorherigen Punkt funktionieren.
 


 

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