synOCR - GUI für OCRmyPDF

tomjons

Benutzer
Mitglied seit
05. Jun 2013
Beiträge
49
Punkte für Reaktionen
2
Punkte
8
Noch eine Frage bzgl. der Performance.

Ist es möglich nur bestimmte Bereiche einer PDF-Datei zu scannen. Evtl. Viereck mit Koordinaten.
Grundsätzlich benötige ich ja nicht einen kompletten OCR sondern nur aus zwei fixen Teilbereichen.
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149
Funktionieren deine Regeln jetzt?

Zu deiner Frage:
Das muss man etwas trennen.
Was die reine Texterkennung betrifft, ist mir eine entsprechende Funktion von OCRmyPDF nicht bekannt, was aber nicht heißt, dass es sie nicht gäbe. Da kannst du gern mal im entsprechenden Manual forschen.

Was die Anwendung der Regeln betrifft, so kannst du in synOCR lediglich einstellen, ob auf der ersten Seite oder allen Seiten gesucht werden soll. Eine engere Differenzierung ist derzeit nicht möglich.
 

tomjons

Benutzer
Mitglied seit
05. Jun 2013
Beiträge
49
Punkte für Reaktionen
2
Punkte
8
OK. Braucht nämlich schon etwas lange jetzt.

Komisch nur die DS1621xs hat nur eine mäßige Auslastung

CPU 15%
RAM 25%
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149

tomjons

Benutzer
Mitglied seit
05. Jun 2013
Beiträge
49
Punkte für Reaktionen
2
Punkte
8
4 PDF in einer Minute.

§tag_§tit

Code:
tagBestellnummer:
    tagname: "Bestellnummer"
    targetfolder:
    tagname_RegEx: ((?<=(^Ihr Beleg[:|;][\s]{7}){1})|(?<=(^Ihr Beleg[:|;][\s]{8}){1})|(?<=(^Ihr Beleg[:|;][\s]{9}){1}))[0-9]+
    condition: all
    subrules:
    - searchstring: ((?<=(^Ihr Beleg[:|;][\s]{7}){1})|(?<=(^Ihr Beleg[:|;][\s]{8}){1})|(?<=(^Ihr Beleg[:|;][\s]{9}){1}))[0-9]+
      searchtyp: contains
      isRegEx: true
      source: content
      casesensitive: false     
tagMarktplatzAmazon:
    tagname: ""
    targetfolder: "/Amazon/"
    tagname_RegEx:
    condition: any
    subrules:
    - searchstring: Amazon
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false
tagMarktplatzEbay:
    tagname: ""
    targetfolder: "/Ebay/"
    tagname_RegEx:
    condition: any
    subrules:
    - searchstring: Ebay
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false
tagMarktplatzShop:
    tagname: ""
    targetfolder: "/Shop/"
    tagname_RegEx:
    condition: all
    subrules:
    - searchstring: Amazon
      searchtyp: does not contain
      isRegEx: false
      source: content
      casesensitive: false
    - searchstring: Ebay
      searchtyp: does not contain
      isRegEx: false
      source: content
      casesensitive: false
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149

tomjons

Benutzer
Mitglied seit
05. Jun 2013
Beiträge
49
Punkte für Reaktionen
2
Punkte
8
Das sehe ich im erwartbaren Rahmen in der aktuellen Umsetzung.

Wie lautet der ursprüngliche Dateiname?
Sollte das Leerzeichen bereits im ursprünglichen Namen vorkommen, hat synOCR darauf keinen Einfluss.
Rechnung 2021-556589

Ich kann diese Ausgabe aus der Warenwirtschaft auch nicht beeinflussen.
Dann muss ich den Titel aus OCR zusammenbauen (ist halt ne Fehlerquelle)
enthalten sind diese Angaben hier:
Dann muss ich aber auch wieder den Belegtyp abfangen Rechnung, Gutschrift und Storno

belegfenster.JPG
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149
Oder du behilfst dir mit einem extra Skript, welches lediglich die Leerzeichen in deinen Dateinamen ersetzt (vorzugsweise vor dem Einsortieren in Unterordner)
 
  • Like
Reaktionen: tomjons

tomjons

Benutzer
Mitglied seit
05. Jun 2013
Beiträge
49
Punkte für Reaktionen
2
Punkte
8
Guten Morgen,

jetzt hab ich festgestellt das Script wird über den Aufgabenplaner nicht wie eingestellt täglich alle 30 Minuten ausgeführt sonder nur einmal und zwar um 00:00 Uhr.
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149
Dann hast du die Endzeit (letzte Ausführung) wahrscheinlich nicht korrekt eingestellt.
 
  • Like
Reaktionen: tomjons

Wiesel6

Benutzer
Mitglied seit
22. Aug 2016
Beiträge
10
Punkte für Reaktionen
1
Punkte
3
Mit der erweiterten Regeldatei (YAML-Datei) kann man beliebige Zielordner für jeden Tag definieren.
Um das obige Beispiel mal aufzugreifen:

YAML:
tagBestellnummer_01:
    tagname: "Ihr Beleg"
    targetfolder: "/Ordner abc/Unterordner xyz/Unterordner Rechnung"
    tagname_RegEx: (?<=(^Ihr Beleg[:|;][\s]{8}){1})[0-9]+
    condition: all
    subrules:
    - searchstring: (?<=(^Ihr Beleg[:|;][\s]{8}){1})[0-9]+
      searchtyp: contains
      isRegEx: true
      source: content
      casesensitive: false
Irgendwo ist bei mir der Wurm drin.

Wenn ich die YAML direkt erstellen lasse wird Rechnung in den Ordner Rechnung geschoben. Passt.

Wenn ich einen Unterordner anlege klappt es nicht mehr. Datei wird trotzdem in Rechnung gelegt Log 1
Wenn ich den tagname_RegEx so wie in deinem Beispiel reinschreibe, findet er keinen tag. Log 2

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

synOCR-user:              synOCR
synOCR-user is admin:     yes
synOCR-version:           1.1.902
Architecture:             x86_64
DSM-build:                42218
Device:                   220plus (2401863302)
current Profil:           test
DB-version:               4
WARNING: Error loading config file: .dockercfg: $HOME is not defined
used image (created):     jbarlow83/ocrmypdf:latest (2021-11-04T07:42:52)
used ocr-parameter:       -srd -l deu
replace search prefix:    yes
renaming syntax:          §yocr-§mocr-§docr §tag §tit
Symbol for tag marking:   
Document split pattern:   
source for filedate:      source
ignored dates by search: 
Docker Test:              WARNING: Error loading config file: .dockercfg: $HOME is not defined
OK
Loglevel:                 normal
Application Directory:    /usr/syno/synoman/webman/3rdparty/synOCR
Source directory:         /volume1/synOCR/OCR_Input_test/
Target directory:         /volume1/synOCR/OCR_Output_test/
BackUp directory:         /volume1/synOCR/OCR_Backup/


    ----------------------------------
    |    ==> Funktionsaufrufe <==    |
    ----------------------------------

PROCESSING:   ➜ 2021-06-21 Rechnung Test1.pdf (Thu Nov 25 11:31:41 CET 2021)
                  temp. target file: /tmp/tmp.YvD5Thb9zC/2021-06-21 Rechnung Test1.pdf

              ➜ 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...
               Some input metadata could not be copied because it is not permitted in PDF/A. You may wish to examine the output PDF's XMP metadata.
               Optimize ratio: 1.00 savings: 0.0%
               Output sent to stdout
              ← OCRmyPDF-LOG-END

                  target file (OK):
              ➜ search tags and date:
                source for tags is yaml based tag rule file [/volume1/synOCR/OCR_Input_test/_TagConfig_[profile_test].txt]
                validate the integrity of yaml-file:

                search by tag rule: "Rechnung_1" ➜ 
                  ➜ condition:        any
                  ➜ tag:              Rechnung
                  ➜ destination:      /OCR_Output_test/Test/Rechnung
                          >>> Rule is satisfied

                search by tag rule: "Lieferschein_2" ➜ 
                  ➜ condition:        any
                  ➜ tag:              Lieferschein
                  ➜ destination:     
                          >>> Rule is not satisfied

                rename tag is: "Rechnung"

                  Using date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Dates found: 4
                  check date (dd mm [yy]yy): 21.06.2021
                  ➜ valid
                      day:  21
                      month:06
                      year: 2021
              ➜ renaming:
                  apply renaming syntax ➜ 2021-06-21 Rechnung 2021-06-21 Rechnung Test1
              ➜ edit metadata FAILED! - exiftool not found! Please install it over cphub.net if you need it
              ➜ move to tag directories
                  tag directories "Rechnung" exists? ➜  OK
                  target:   ./Rechnung/2021-06-21 Rechnung 2021-06-21 Rechnung Test1.pdf
                  set a hard link
              ➜ Adapt file date (Source: Source file)
              ➜ delete temp. target file
              ➜ move source file to: /volume1/synOCR/OCR_Backup/2021-06-21 Rechnung Test1.pdf
                  INFO: (notification dosn't work at DSM7 without i18n …)
./synOCR.sh: line 1389: /dev/ttyS1: Permission denied
ERROR at line 1389: echo 2 > /dev/ttyS1 > /dev/null
                  INFO: (PushBullet-TOKEN not set)

              Stats:
                  ➜ runtime last file:    00:00:16
                  ➜ pagecount last file:  1
                  ➜ file count profile :  (profile test) - 7 PDF's / 7 Pages processed up to now
                  ➜ file count total:     191 PDF's / 494 Pages processed up to now

              ➜ delete tmp-files …


    -----------------------------------
    |       ==> synOCR ENDE <==       |
    -----------------------------------



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

synOCR-user:              synOCR
synOCR-user is admin:     yes
synOCR-version:           1.1.902
Architecture:             x86_64
DSM-build:                42218
Device:                   220plus (2401863302)
current Profil:           test
DB-version:               4
WARNING: Error loading config file: .dockercfg: $HOME is not defined
used image (created):     jbarlow83/ocrmypdf:latest (2021-11-04T07:42:52)
used ocr-parameter:       -srd -l deu
replace search prefix:    yes
renaming syntax:          §yocr-§mocr-§docr §tag §tit
Symbol for tag marking:   
Document split pattern:   
source for filedate:      source
ignored dates by search: 
Docker Test:              WARNING: Error loading config file: .dockercfg: $HOME is not defined
OK
Loglevel:                 normal
Application Directory:    /usr/syno/synoman/webman/3rdparty/synOCR
Source directory:         /volume1/synOCR/OCR_Input_test/
Target directory:         /volume1/synOCR/OCR_Output_test/
BackUp directory:         /volume1/synOCR/OCR_Backup/


    ----------------------------------
    |    ==> Funktionsaufrufe <==    |
    ----------------------------------

PROCESSING:   ➜ 2021-06-21 Rechnung 2021-06-21 Rechnung Test1.pdf (Thu Nov 25 11:37:18 CET 2021)
                  temp. target file: /tmp/tmp.suP5jzniXM/2021-06-21 Rechnung 2021-06-21 Rechnung Test1.pdf

              ➜ OCRmyPDF-LOG:
               WARNING: Error loading config file: .dockercfg: $HOME is not defined
               reading file from standard input
               Postprocessing...
               Some input metadata could not be copied because it is not permitted in PDF/A. You may wish to examine the output PDF's XMP metadata.
               Optimize ratio: 1.00 savings: 0.0%
               Output sent to stdout
              ← OCRmyPDF-LOG-END

                  target file (OK):
              ➜ search tags and date:
                source for tags is yaml based tag rule file [/volume1/synOCR/OCR_Input_test/_TagConfig_[profile_test].txt]
                validate the integrity of yaml-file:

                search by tag rule: "tagRechnung_1" ➜ 
                  ➜ condition:        any
                  ➜ tag:              Rechnung
                  ➜ destination:      /OCR_Output_test/Test/Rechnung
                  ➜ RegEx for tag:    (?<=(^Rechnung[:|;][\s]{8}){1})[0-9]+
                          >>> Rule is not satisfied

                search by tag rule: "Lieferschein_2" ➜ 
                  ➜ condition:        any
                  ➜ tag:              Lieferschein
                  ➜ destination:     
                          >>> Rule is not satisfied

                rename tag is: ""

                  Using date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Dates found: 4
                  check date (dd mm [yy]yy): 21.06.2021
                  ➜ valid
                      day:  21
                      month:06
                      year: 2021
              ➜ renaming:
                  apply renaming syntax ➜ 2021-06-21  2021-06-21 Rechnung 2021-06-21 Rechnung Test1
              ➜ edit metadata FAILED! - exiftool not found! Please install it over cphub.net if you need it
                  target file: 2021-06-21  2021-06-21 Rechnung 2021-06-21 Rechnung Test1.pdf
              ➜ Adapt file date (Source: Source file)
              ➜ move source file to: /volume1/synOCR/OCR_Backup/2021-06-21 Rechnung 2021-06-21 Rechnung Test1.pdf
                  INFO: (notification dosn't work at DSM7 without i18n …)
./synOCR.sh: line 1389: /dev/ttyS1: Permission denied
ERROR at line 1389: echo 2 > /dev/ttyS1 > /dev/null
                  INFO: (PushBullet-TOKEN not set)

              Stats:
                  ➜ runtime last file:    00:00:17
                  ➜ pagecount last file:  1
                  ➜ file count profile :  (profile test) - 8 PDF's / 8 Pages processed up to now
                  ➜ file count total:     192 PDF's / 495 Pages processed up to now

              ➜ delete tmp-files …


    -----------------------------------
    |       ==> synOCR ENDE <==       |
    -----------------------------------
 

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149
Wenn ich einen Unterordner anlege klappt es nicht mehr. Datei wird trotzdem in Rechnung gelegt Log 1
Aus dem Log schließe ich, dass du in der GUI "Ziel-PDF in Tagordner einsortieren" gewählt hast. Diese Einstellung widerspricht natürlich einem regeldefiniertem Zielordner. Diese Einstellung solltest du für deinen Zweck verwenden.

Bildschirmfoto 2021-11-25 um 13.28.26.png


Wenn ich den tagname_RegEx so wie in deinem Beispiel reinschreibe, findet er keinen tag. Log 2
Das sollte kein Beispiel für dein Suchmuster sein. Das passt überhaupt nicht zu deinem Ziel. Halte dich für deinen Zweck einfach an das Muster der automatisch erstellten Regeldatei und nehme die Einstellung wie oben beschrieben vor.
 
  • Like
Reaktionen: Wiesel6

Wiesel6

Benutzer
Mitglied seit
22. Aug 2016
Beiträge
10
Punkte für Reaktionen
1
Punkte
3
Danke. Genau an der Einstellung lag es.

Beim ersten ausprobieren ohne Unterordner hatte ich die Option gewählt und vergessen, dass ich das ausgewählt habe.
 
  • Like
Reaktionen: geimist

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149
Mit Chrome habe ich z.T. auch Probleme auf cphub. Zu dem hat cphub z.T. Probleme beim Ausliefern von synOCR. Wenn es mit einem anderen Browser nicht funktioniert, kannst du es auch von meinem Server laden.
 

cinix24

Benutzer
Mitglied seit
28. Nov 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Danke dir. Habe es soweit Installiert nur bekomme es nicht richtig ans laufen. Er erzeugt zwar im output Ordner ne PDF datei aber es sieht so aus als ob er nicht auf das Docker Image zugreift. Kannst du hier eventuell via Remote Helfen ?
 

Anhänge

  • log.pdf
    84,4 KB · Aufrufe: 2

geimist

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
3.826
Punkte für Reaktionen
292
Punkte
149
Sieht aber ok aus:

Code:
➜ OCRmyPDF-LOG:
-srd -l deu
WARNING: Error loading config file: .dockercfg: $HOME is not defined
reading file from standard input
1 page is facing ⇧, confidence 11.32 - no change
 Postprocessing...
 Optimize ratio: 1.00 savings: 0.0%
 Output sent to stdout
← OCRmyPDF-LOG-END

  target file (OK): /tmp/tmp.lQd7BBH9JQ/20211125_1704488.pdf

Den Error mit Docker Home kannst du ignorieren.
 

cinix24

Benutzer
Mitglied seit
28. Nov 2021
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Im Anhang ist die log txt datei als PDF mit OCR über synOCR aber auch da hat er denn inhalt nicht erkannt.
 

Anhänge

  • 2021-11-28__log.pdf
    30,6 KB · Aufrufe: 3
NAS-Central - Ihr Partner für NAS Lösungen