synOCR synOCR - GUI für OCRmyPDF

mngsps

Benutzer
Mitglied seit
14. Aug 2022
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Leider bin ich den Loop anscheinend doch noch nicht losgeworden. In manchen meiner Verzeichnisse durchlaufen die gleichen Dokumente immer wieder den Prozess und werden (bereits umbenannt) immer wieder verarbeitet und in _BACKUP abgelegt und wieder neu prozessiert.
Das sieht man auch daran, dass die noch zu verarbeitenden Dateien auch mal wieder mehr werden obwohl keine neuen Dateien eingestellt wurden. Nach langem rauf und runter schwankt es gerade zwischen 5-6 noch zu verarbeitenden Dateien und "Alles Erledigt" hin und her. Wenn ich heute z.B. 50 Dokumente gescannt habe, steigt der globale Zähler um mehr als 300 PDFs... Hat jemand eine Idee, woran das liegen könnte?

Hier ein Beispiel für den Ordner "Rechnungen" mit dem Profil "Rechnungen" (habe insgesamt 12 Ordner mit je gleichnamigem Profil, in die ich direkt mit einem Brother ADS 1700 scanne). Die Datei "23-01-03_#Benedikt#Rechnung.pdf" durchläuft den Prozess anscheinend immer und immer wieder und es werden alle paar Minuten neue Logs für die Datei geschrieben:

Code:
    -----------------------------------
    |    ==> installation info <==    |
    -----------------------------------

synOCR-user:              synOCR
synOCR-user is admin:     yes
synOCR-version:           1.3.0
Architecture:             x86_64
DSM-build:                42962
Device:                   718plus (3117383547)
current Profil:           Rechnungen
monitor is running?:      yes
DB-version:               8
used image (created):     jbarlow83/ocrmypdf:v12.7.2 (2021-11-04T21:53:21)
document author:       
used ocr-parameter (raw): -srd -l deu+eng
ocropt_array:             -srd -l deu+eng
search prefix:         
replace search prefix:    yes
renaming syntax:          §yocr-§mocr-§docr_§tag
Symbol for tag marking:   #
target file handling:     useCatDir
Document split pattern:   SYNOCR-SEPARATOR-SHEET
split page handling:      discard
clean up spaces:          false
Date search method:       use Python (BETA)
date found order:         firstfound
source for filedate:      ocr
ignored dates by search:
date range in past:       0 [absolute: 0]
date range in future:     0 [absolute: 0]
Docker test:              OK
DSM notify to user:       admin
Loglevel:                 normal
max. count of logfiles:   10
rotate backupfiles after: 30 days
Source directory:         /volume1/scans/Rechnungen/
Target directory:         /volume1/scans/Rechnungen/
Target temp directory:    /volume1/scans/Rechnungen/synOCR_tmp_1677104452/
BackUp directory:         /volume1/scans/Rechnungen/_BACKUP/



  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  ● ---------------------------------- ●
  ● |    ==> RUN THE FUNCTIONS <==   | ●
  ● ---------------------------------- ●
  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

  -----------------------------------------------------------------------------------
  | check the python3 installation and the necessary modules:                       |
  -----------------------------------------------------------------------------------

                prepare_python: OK


  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  ● STEP 1 - RUN OCR / SPLIT FILES, IF NEEDED:                                      ●
  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE:   ➜ 2023-01-03_#Benedikt#Rechnung.pdf
                  temp. target file: /tmp/tmp.qcc4xKS7Qp/2023-01-03_#Benedikt#Rechnung.pdf

  -----------------------------------------------------------------------------------
  | processing PDF @ OCRmyPDF:                                                      |
  -----------------------------------------------------------------------------------

                ➜ OCRmyPDF-LOG:
                  WARNING: Error loading config file: .dockercfg: $HOME is not defined
                  reading file from standard input
                      1 skipping all processing on this page
                  Postprocessing...
                  /usr/local/lib/python3.9/dist-packages/pikepdf/models/metadata.py:377: UserWarning: The metadata field /CreationDate could not be copied to XMP
                    warn(msg)
                
                  Optimize ratio: 1.09 savings: 8.1%
                  Output sent to stdout
                ← OCRmyPDF-LOG-END

                target file (OK): /tmp/tmp.qcc4xKS7Qp/2023-01-03_#Benedikt#Rechnung.pdf


  -----------------------------------------------------------------------------------
  | document split handling:                                                        |
  -----------------------------------------------------------------------------------

                no separator sheet found, or number of pages too small

  -----------------------------------------------------------------------------------
  | handle source file:                                                             |
  -----------------------------------------------------------------------------------

                ➜ backup source file to: /volume1/scans/Rechnungen/_BACKUP/2023-01-03_#Benedikt#Rechnung.pdf
                removed directory '/tmp/tmp.qcc4xKS7Qp'

Stats:
  runtime last file:              ➜ 00:00:12
  runtime 1st step (all files):   ➜ 00:00:13


  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  ● STEP 2 - SEARCH TAGS / RENAME / SORT:                                           ●
  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE:   ➜ 2023-01-03_#Benedikt#Rechnung.pdf

  -----------------------------------------------------------------------------------
  | search tags in ocr text:                                                        |
  -----------------------------------------------------------------------------------

                source for tags is the list from the GUI
                          tag count:       11
                  Search by tag:   "Rechnung" ➜  OK
                  Search by tag:   "Lena" ➜  -
                  Search by tag:   "Bruno" ➜  -
                  Search by tag:   "Theo" ➜  -
                  Search by tag:   "Ulrike" ➜  -
                  Search by tag:   "Benedikt" ➜  OK
                  Search by tag:   "Quittung" ➜  -
                  Search by tag:   "Eckard Kiss" ➜  -
                  Search by tag:   "Strickler" ➜  -
                  Search by tag:   "Santo" ➜  -
                  Search by tag:   "Centax" ➜  -
                rename tag is: "#Benedikt#Rechnung"


  -----------------------------------------------------------------------------------
  | search for a valid date in ocr text:                                            |
  -----------------------------------------------------------------------------------

2023-02-22 23:21:07,273 - Date scanning started
2023-02-22 23:21:07,273 - Version: 1.03
2023-02-22 23:21:07,274 - Parameter minYear = 0
2023-02-22 23:21:07,274 - Parameter maxYear = 0
2023-02-22 23:21:07,274 - Parameter searchnearest = off
2023-02-22 23:21:07,274 - set searchnearest = off
2023-02-22 23:21:07,274 - Parameter fileWithTextFindings = /tmp/tmp.22ZtmI65kw/synOCR.txt
2023-02-22 23:21:07,275 - Start searching for alphanumerical and numerical dates......
2023-02-22 23:21:17,174 - finish searching for alphanumerical and numerical dates......
2023-02-22 23:21:17,174 - found 1 dates
2023-02-22 23:21:17,174 - found date 2023-01-03
2023-02-22 23:21:17,174 - Date scanning ended
                  Dates found: 1
                  check date ([yy]yy mm dd): 2023-01-03
                  ➜ valid
                      day:  03
                      month:01
                      year: 2023

  -----------------------------------------------------------------------------------
  | rename and sort to target folder:                                               |
  -----------------------------------------------------------------------------------

                ➜ renaming:
                  apply renaming syntax ➜ 2023-01-03_#Benedikt#Rechnung
                ➜ insert metadata (use python PyPDF2)
                used metadata:
                ➜ '/Author': '',
                ➜ '/Keywords': 'Benedikt, Rechnung',
                ➜ '/CreationDate': 'D:20230103'
                  target file: 2023-01-03_#Benedikt#Rechnung.pdf

  -----------------------------------------------------------------------------------
  | adjusts the attributes of the target file:                                      |
  -----------------------------------------------------------------------------------

                ➜ Adapt file date (Source: OCR)

  -----------------------------------------------------------------------------------
  | final tasks:                                                                    |
  -----------------------------------------------------------------------------------

                  INFO: (PushBullet-TOKEN not set)

Stats:
  runtime last file:    ➜ 00:00:14
  pagecount last file:  ➜ 1
  file count profile :  ➜ (profile Rechnungen) - 33 PDF's / 46 Pages processed up to now
  file count total:     ➜ 30313 PDF's / 32449 Pages processed up to now

cleanup:
  delete tmp-files ...
                removed '/tmp/tmp.22ZtmI65kw/synOCR.txt'
                removed '/tmp/tmp.22ZtmI65kw/synOCR_filename.txt'
                removed directory '/tmp/tmp.22ZtmI65kw'
                removed '/volume1/scans/Rechnungen/synOCR_tmp_1677104452/2023-01-03_#Benedikt#Rechnung.pdf'

  purge log files ...
  delete 1 log files ( > 10 files)
  delete 0 search files ( > 10 files)

  purge backup files ...
  delete 1 backup files ( > 30 days)
  rmdir: removing directory, '/volume1/scans/Rechnungen/synOCR_tmp_1677104452/'

  runtime all files:              ➜ 00:00:27


  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
  ● ---------------------------------- ●
  ● |    ==> END OF FUNCTIONS <==    | ●
  ● ---------------------------------- ●
  ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●

Das sind alles logs zur gleichen zu verarbeitenden Datei:
1677105015848.png

Das ganze findet in verschiedenen meiner 12 Ordner statt.
Kann es daran liegen, dass ich die Profile bearbeitet habe während die Überwachung lief und auch Dateien prozessiert wurden?
Hat jemand eine Idee, wie ich das vermeiden kann?

Vielen lieben Dank und 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
Du nutzt kein Suchpräfix und der Quellordner ist mit dem Zielordner identisch. Deine Schleife zeigt, dass synOCR wie erhofft funktioniert ;).

Code:
search prefix:         
replace search prefix:    yes
…
Source directory:         /volume1/scans/Rechnungen/
Target directory:         /volume1/scans/Rechnungen/

Entweder, du nutzt einen anderen Zielordner, oder du verwendest ein Suchpräfix beim Scannen (z.B. SCAN_…), welchen du entfernen lässt. Somit werden abgearbeitete Dokumente, die kein Suchpräfix mehr aufweisen, übersprungen.

Generell finde ich die Vorgehensweise mit der Unterscheidung von Tag je Profil etwas merkwürdig, aber vielleicht kenne ich deinen Workflow auch nur zu wenig. Profile dienen eher der unterschiedlichen Konfiguration mehrerer Nutzer oder der Unterscheidung von privat und geschäftlich.
 

mngsps

Benutzer
Mitglied seit
14. Aug 2022
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Ok, mir hatte es auch schon gedämmert. Dumm von mir... Ich dachte eigentlich, dass Dateien die bereits OCR durchlaufen haben nicht mehr bearbeitet werden. Bisher war es nicht aufgetreten, da ich durch Tags immer versuche in Subordner abzulegen. Wenn aber kein Tag für einen Subordner vorhanden... Danke für die Aufklärung!

Zu meinem Workflow: Ich habe so viele verschiedene Profile, weil es Tags gibt, die in vielen Fällen sonst missinterpretiert würden, da sie sehr oft und auch in unterschiedlicher Bedeutung verwendet werden (z.B. Rezept bei Medikamenten oder auch zum Kochen; Arztrechnungen heften wir bei "Arzt/Gesundheit" ab aber es gibt auch einen allgemeinen Ordner "Rechnungen". Damit es hier nicht zu Verwechslungen kommt (die ganze Familie nutzt den Scanner) habe ich 12 Ordner angelegt zur Direktauswahl mit OneTouch am Scanner und jeder Ordner hat sein eigenes Profil, welches sich eigentlich nur bei den Tags, die auf verschiedene Subordner verweisen, unterscheidet. Ist das zu kompliziert gedacht und hast du eine simplere Idee?

Bin für jeden Input dankbar...
Vielen herzlichen Dank!
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Jeder muss seinen Workflow finden. Wenn es für euch passt, ist es doch gut so. Die Alternative besteht in einer YAML-Regeldatei, womit du viele spezifische Regeln erstellen kannst. Aber das geht ja auch nicht von alleine und erfordert einen gewissen Arbeitsaufwand.
 

mngsps

Benutzer
Mitglied seit
14. Aug 2022
Beiträge
11
Punkte für Reaktionen
1
Punkte
3
Habe mir gestern die YAML-Regeldatei angeschaut und finde das, nach etwas reindenken, deutlich besser als die Version über das UI.
Bei diesen Punkten habe ich noch Fragen zur YAML-Datei:
- Muss ein Tagname vergeben werden oder kann man diesem leer lassen und nur die nachfolgenden Regeln zum z.B. verschieben der Datei anwenden?
- "condition" kann man nur 1x pro Regel definieren, oder? Also z.B. nicht:

Code:
#sampletagrulename1:
#    tagname: target_tag
#    targetfolder: "/<path>/"
#    tagname_RegEx: "HUK[[:digit:]]{2}"
#    condition: all
#    subrules:
#    - searchstring: foundme
#      searchtyp: contains
#      isRegEx: false
#      source: content
#      casesensitive: true
#    - searchstring: dontfoundme
#      searchtyp: is not
#      isRegEx: false
#      source: content
#      casesensitive: false
#    condition: none
#    subrules:
#    - searchstring: nottobefound
#      searchtyp: contains
#      isRegEx: false
#      source: content
#      casesensitive: true

Vielen herzlichen Dank und Grüße!
 
  • Like
Reaktionen: facetto

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Mal ein ganz anderes Problem (bei mir). Ich kann derzeit (MacOS Ventura) in der GUI nicht in die Bereiche Konfiguration und Hilfe wechseln.
De- und Neuinstallation haben nicht geholfen, inotify-tools läuft.
Generell läuft synOCR einwandfrei, wie gesagt, ich kann nur keine Einstellungen vornehmen...
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Was hat die macOS-Version damit zu tun? Wie sieht es in anderen Browsern aus?
 

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Warum laufen die Fenster anderer Pakete mit dem Browser?
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.200
Punkte für Reaktionen
1.024
Punkte
224
Irgendein Hintergrund mit dem Browser ist auf jeden Fall wahrscheinlicher als ein Problem mit dem Betriebssystem. Und ich kann dir sagen, dass es bei mir mit dem gleichen Betriebssystem und unter den Browsern
  • Safari
  • Safari Technology Preview und
  • Google Chrome
ohne Probleme läuft. Laufen im Browser irgendwelche Addons, hast du schon einmal versucht, die Cookies zurückzusetzen?
 

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Gerade mit Firefox probiert - gleiches Ergebnis.
Einzige Erweiterung in Safari ist Bitwarden...
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
- Muss ein Tagname vergeben werden oder kann man diesem leer lassen und nur die nachfolgenden Regeln zum z.B. verschieben der Datei anwenden?
Ich kann dir gerade nicht sagen, ob es zu einem Fehler kommt, wenn tagname: nicht gesetzt ist. Lass einfach den Wert dafür frei.
- "condition" kann man nur 1x pro Regel definieren, oder? Also z.B. nicht:
Derzeit ja. Regelblöcke können noch nicht verschachtelt werden.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Mal ein ganz anderes Problem (bei mir). Ich kann derzeit (MacOS Ventura) in der GUI nicht in die Bereiche Konfiguration und Hilfe wechseln.
Läuft bei mir mit Chrome und Safari (Ventura).

Kannst du mal versuchen, synOCR in einem eigenen Fenster zu öffnen?
Kannst du es mal mit einer anderen URL versuchen (lokale IP <> DDNS <> QC …)?
Auch mal den Inkognitomodus versucht?
 
Zuletzt bearbeitet:

Struppix

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


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
Hey Stephan das funktioniert super. Jetzt werden die mehrzeiligen Suchen und auch matches sauber übernommen.

Vielen Lieben Dank

Code:
Kundennummer: 1234567
Rechnungsnummer: 1234567
Transaktionsnummer: 1234567

Der erkannte Text ist nun leider:

Code:
Kundennummer:
1234567
Rechnungsnummer:
1234567
Transaktionsnummer:
1234567

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

Für alle die dies bei der kommenden Version mal testen oder auch nutzen wollen, sollten die Beispiele nun so aussehen.

Gruß
Karsten
 

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Läuft bei mir mit Chrome und Safari (Ventura).

Kannst du mal versuchen, synOCR in einem eigenen Fenster zu öffnen?
Kannst du es mal mit einer anderen URL versuchen (lokale IP <> DDNS <> QC …)?
Auch mal den Inkognitomodus versucht?
Alles versucht - auch mit firefox, den ich extra dafür installiert habe. Egal ob über IP, Inkognito, synOCR in eigenem Fenster, etc. - keine Veränderung :)
 

geimist

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

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Pffffft... für den Moment (noch) nicht. Bei mir läuft synOCR ohne Probleme. Ich muss mal kurz nachdenken, wie sowas passieren kann.

Nachtrag: @geimist ... du hast Post ;) ... weiß aber nicht, ob es daran liegen könnte.
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
@Tommes hat einen Fehler gefunden - vielen Dank fürs Suchen. Ob das wirklich die Ursache ist, kann man schwer sagen.

@Thonav
Bitte probiere mal die aktuelle Beta: DSM6 | DSM7
 

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Zuletzt bearbeitet:
  • Love
Reaktionen: Tommes und geimist

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.546
Punkte für Reaktionen
1.377
Punkte
234
Sehr interessant.
Aber warum hat es nur dich erwischt?
Schön, dass es funktioniert :)

Besonders danke an @Tommes :love:
 
Zuletzt bearbeitet:

Thonav

Benutzer
Sehr erfahren
Mitglied seit
16. Feb 2014
Beiträge
7.890
Punkte für Reaktionen
1.510
Punkte
274
Keine Ahnung was da irgendwie geklemmt hat. Könnte ja auch von @Tommes ganz bewusst für mich eingebaut wurde sein - nur um mich zu ärgern. :ROFLMAO:
 
  • Haha
Reaktionen: Tommes


 

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