synOCR synOCR - GUI für OCRmyPDF

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
:DNun, Du brauchst die RegEx nicht zu ändern.
Er sucht beide Schreibweisen, also ARAG und 120 012 112 sowie ARAG und 120012112.

Karsten

Edit: Sehe gerade Du hast eine dritte Schreibweise nun drin. Wie sehen denn die Varianten aus, bzw, was kommt denn hinter der Zahl ?
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Schreibe es mal so.

Code:
rule_1001:
    tagname: Arag Rechtsschutz
    targetfolder: /volume/Versicherungen/Rechtsschutz/Arag
    condition: all
    subrules:
    - searchstring: (?i)(?:Arag(?:\s*\d+)+)
      searchtyp: contains
      isRegEx: true

Das funktioniert aber nur dann, wenn hinter der Versicherungsnummer keine direkte / weitere Zahl steht.

Gruß
Karsten
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Und den Pfad checken
Du hast recht, jetzt habe ich es selbst falsch geschrieben. Müsste dann wohl so aussehen:
Code:
rule_1001:
    tagname: Arag Rechtsschutz
    targetfolder: /volume1/Versicherungen/Rechtsschutz/Arag
    condition: all
    subrules:
    - searchstring: (?i)(?:Arag(?:\s*\d+)+)
      searchtyp: contains
      isRegEx: true
 

murdocklee

Benutzer
Mitglied seit
17. Feb 2024
Beiträge
8
Punkte für Reaktionen
1
Punkte
3
Das funktioniert nicht bei mir Steht Arag irgendwo oben rechts die Kundennummer paar Zeilen unten also nicht neben einander

wüste jetzt auch nicht wo ich mein Kundennummer eingeben soll die er auch finden soll bei diesen beispiel

rule_1001:
tagname: Arag Rechtsschutz
targetfolder: /volume1/Versicherungen/Rechtsschutz/Arag
condition: all
subrules:
- searchstring: (?i)(?:Arag(?:\s*\d+)+)
searchtyp: contains
isRegEx: true

bei mir ist es so so geht es
tagname: Arag Rechtsschutz
targetfolder: /volume1/Versicherungen/Rechtsschutz/Arag
multilineregex: false
condition: all
subrules:
- searchstring: Arag
searchtyp: contains
- searchstring: 120 012 112
searchtyp: contains


aber ich möchte das er Arag + 120012112 auch findet zusammen geschrieben halt


die Beispiele haben nicht funktioniert trotzdem danke für deine mühe vielleicht hats du ein anderen Tipp

Pfad habe ich gecheckt daran liegt es nicht
 

wegomyway

Benutzer
Mitglied seit
03. Aug 2022
Beiträge
392
Punkte für Reaktionen
173
Punkte
99
gelöscht zu spät gesehen das der Pfad geändert ist
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Ich stehe gerade auf dem Schlauch. Meinst Du nur die Kundennummer Schreibweise ?
Ist denn die Nummer und die Schreibweise Deiner Beispiele immer gleich, oder ist das nur ein fiktives Beispiel ?
Versuche es mal so:

Code:
rule_1001:
    tagname: Arag Rechtsschutz
    targetfolder: /volume1/Versicherungen/Rechtsschutz/Arag
    condition: all
    subrules:
    - searchstring: Arag
      searchtyp: contains
    - searchstring: (?i)(120\s*012\s*112)
      searchtyp: contains
      isRegEx: true

Wie gesagt: Wenn die Nummer zB so geschrieben wird 1200 12 112, dann findet die Suche natürlich wieder nichts. Um hier ein 100%igen Treffer zu erzielen brauch ich ein konkretes Beispiel, also einen Auszug eines Dokumentes, um gezielt die Suche / Regel zu definieren.
 

murdocklee

Benutzer
Mitglied seit
17. Feb 2024
Beiträge
8
Punkte für Reaktionen
1
Punkte
3
Beispiel
Ich möchte gerne wenn er das Dokument Scannt
und den Namen ARAG und die Kundennummer 111 findet in den Ordner ARAG verschiebt
oder den Namen ARAG und die Kundennummer 222 findet in den Ordner ARAG verschiebt
oder den Namen ARAG und die Kundennummer 333 findet in den Ordner ARAG verschiebt

ich möchte aber nicht das wenn auf dem Dokument ARAG Steht der auch in den Ordner verschiebt wird
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Guten Morgen,
ja das geht natürlich, und ich möchte es nicht zu kompliziert machen, aber man muss natürlich dem Programm sagen was es suchen soll und wo, denn woher soll es denn das wissen, genau so wie wir.
Ich gehe jetzt mal davon aus, dass das Wort "Kundennummer" neben der eigentlichen Kundennummer "123456789" steht, denn das wissen wir ja immer noch nicht, da Du uns ja kein konkretes Beispiel (Du kannst ja die sensiblen Infos unkenntlich machen) gezeigt hasst.

Versuche mal meine Standard RegEx für Kundennummer, welche die meisten findet. Weitere Beispiele in unserem wiki oder verwende einfach den Editor / Konfigurator (Windows und Excel erforderlich) der dies vor konfiguriert hat.

Code:
rule_1001:
    tagname: Arag Rechtsschutz
    targetfolder: /volume1/Versicherungen/Rechtsschutz/Arag
    condition: all
    subrules:
    - searchstring: Arag
      searchtyp: contains
    - searchstring: (?i)(?|(Kunden(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\s+?\K(\S*\s*?(\d+\S*))+\b
      searchtyp: contains
      isRegEx: true

Gruß Karsten
 

murdocklee

Benutzer
Mitglied seit
17. Feb 2024
Beiträge
8
Punkte für Reaktionen
1
Punkte
3
- searchstring: (?i)(?|(Kunden(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\s+?\K(\S*\s*?(\d+\S*))+\b

das ist für mich zu kompliziert ich brauch was einfaches ich schick dir mal den Brief
Ich möchte gerne wenn er das Dokument Scannt
und den Namen ARAG und die Kundennummer 2101201757514 findet in den Ordner ARAG verschiebt
oder den Namen ARAG und die Kundennummer 5874123654 findet in den Ordner ARAG verschiebt

das er nur nach den Namen ARAG und nur die Nummer sucht ohne das Wort Kundennummer. ich möchte es auch gerne wenn ich es hin bekomme auf meine anderen Ordner einstellen später natürlich.
 
Zuletzt bearbeitet:

wegomyway

Benutzer
Mitglied seit
03. Aug 2022
Beiträge
392
Punkte für Reaktionen
173
Punkte
99
ich hab heut ein 2tes Profil in der GUI erstellt. Soweit ok, Aber ich habe feststellen dürfen das im Bereich der Einstellungen beispielsweise Suchbereich für tags "Zielordner oder regelbasierte verwenden usw." nicht gespeichert werden, obwohl dieses angezeigt wird, das es gespeichert wurde. Das ist bei beiden Profilen aktuell so. Habe nun nicht alles ausprobiert.
Was machen ?
Alles löschen und auf Anfang ?
Oder im Aufgabenplaner mal händisch gestartet, ohne Besserung.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Ich kenne diesen Verhalten nur, wenn man wider der Warnung einen Zeilenumbruch in das Tagsuchfeld eingibt.
Dieser kann nicht korrekt encodiert werden und bringt den Cache durcheinander.

Entweder du kannst den Zeilenumbruch im Tag-Feld löschen (sofern vorhanden), oder du löschst mal den Cache mit folgendem Befehl im Aufgabenplaner (oder per SSH, falls geläufig):

rm /usr/syno/synoman/webman/3rdparty/synOCR/etc/var.txt
 

wegomyway

Benutzer
Mitglied seit
03. Aug 2022
Beiträge
392
Punkte für Reaktionen
173
Punkte
99
@geimist , meintest Du mich ?
Wenn ja, mein "Problem" konnte ich heut lösen. Alles auf Anfang und Schritt für Schritt/eines nach dem anderen meine Profile wieder angelegt/eingerichtet. Beide sozusagen auch bereits mehrfach wieder getestet. Läuft ;)
Nun geht es an den Papierstapel der da gescannt werden soll und wird ... Archivierung für Besitznachweis.
SSH ist für mich geläufig, Ist aber grundsätzlich auf der NAS deaktiviert/ausgeschaltet. Nur wenn es wirklich sein muss/soll wird SSH aktiviert.
Wenn nein, sorry
 

lil-ac

Benutzer
Mitglied seit
14. Feb 2013
Beiträge
39
Punkte für Reaktionen
0
Punkte
6
Guten Morgen, ich verzweifel an der Rentenversicherungsnummer und Steuernummer. Die Rentenversicherungsnummer ist ja so aufgebaut: 33 160894 W 098 und Steuer: 999/999/9999 oder auch 99 999 999 999.
Wie kann ich dieses als Muster am besten hinterlegen?
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Hallo,
das geht.
Wichtig: Es gibt verschiedene Schreibweisen, je nach Rentenkasse und nach Alter der Dokumente, soweit ich das in Erinnerung habe. Außerdem die Dritte Nummer die Du anführst, ist doch die Identnummer, oder?

Code:
(?i)(?|(Versicherung(\D{1}[N|n]um\S+|[\.\-\:\;\s]*Nr\S+)))(\S+\s+)*?\K(\d{2}\s\d{6}\s\S\s\d{3})\b

Code:
(?i)(?|(Steuer(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr\S+)))\D*)\S*\s*\K(\d{3}[\/]\d{3}[\/]\d{4,6})\b

Code:
(?i)(?|((Id|Ident(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr\S+)))\D*)\S*\s*\K(\d{2}(\s\d{3}){3})\b

Der Backslash kann ja nicht im Namen vorkommen. Wenn ich richtig liege wird er aber in synOCR automatisch ersetzt. Ansonsten nochmal kurz melden.

Gruß Karsten
 
  • Like
Reaktionen: geimist

lil-ac

Benutzer
Mitglied seit
14. Feb 2013
Beiträge
39
Punkte für Reaktionen
0
Punkte
6
Besten Dank. Nur kriegt der das irgendwie nicht so richtig hin, oder ich habe einen ordentlichen Denkfehler.
Ich habe mal die Rule und die Log beigefügt, aber irgendwie blick ich da nicht durch. Vielen Dank schon mal.

Code:
Tag_rule02:
  tagname: Finanzamt
  targetfolder: "/volume1/DokumenteScan/INPUT/"
  tagname_RegEx: "Finanzamt[[:digit:]]{2}"
  multilineregex: false
  postscript:
    - action: move
      target_folder: "/volume1/homes/user1/Drive/Dokumente/Behörden/Finanzen"
      rename:
        source: content
        searchtyp: contains
        searchstring: "Finanzamt"
        extract: after
        extract_delimiter: "Finanzamt"
        replace:
          - searchstring: ","
            replacestring: ""
  apprise_call:
  apprise_attachment:
  notify_lang:
  condition: all
  subrules:
    - searchstring: "(?i)(?|(Steuer(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr\S+)))\D*)\S*\s*\K(\d{3}[\/]\d{3}[\/]\d{4,6})\b"
      searchtyp: contains
      isRegEx: true
      source: content
      casesensitive: true
      multilineregex: false
    - searchstring: Einkommensteuer
      searchtyp: is not
      isRegEx: false
      source: content
      casesensitive: false
      multilineregex: false
Code:
    -----------------------------------
    |    ==> installation info <==    |
    -----------------------------------

synOCR-user:              synOCR
synOCR-user is admin:     yes
synOCR-version:           1.4.5
Architecture:             x86_64
DSM-build:                69057
Device:                   920plus (3647395103)
current Profil:           default
monitor is running?:      yes
DB-version:               9
used image (created):     geimist/ocrmypdf-polyglot:latest (2024-04-16T20:14:01)
document author:         
used ocr-parameter (raw): -srd -l deu
ocropt_array:             -srd -l deu
search prefix:           
replace search prefix:    yes
renaming syntax:          §yocr4-§mocr-§docr_§tag
Symbol for tag marking:   
target file handling:     useCatDir
Document split pattern:   SYNOCR-SEPARATOR-SHEET
split page handling:      discard
delete blank pages:       
threshold black/white:   
threshold black pixels:   
clean up spaces:          false
Date search method:       use Python
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:       almin
apprise notify service:   
apprise attachment:       false
notify language:          ger
Loglevel:                 normal
max. count of logfiles:   10
rotate backupfiles after: (purge backup deactivated)
Source directory:         /volume1/DokumenteScan/INPUT/
Target directory:         /volume1/DokumenteScan/OUTPUT/
BackUp directory:         /volume1/DokumenteScan/BACKUP/



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

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

                prepare_python: OK

  -----------------------------------------------------------------------------------
  | convert images to pdf                                                           |
  -----------------------------------------------------------------------------------

                nothing to do ...
Target temp directory:    /tmp/tmp.gH7Eg4t8yu


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


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE:   ➜ pdf_04172024_171545_000081.pdf
                  temp. target file: /tmp/tmp.gH7Eg4t8yu/step1_tmp_1713366973/pdf_04172024_171545_000081.pdf

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

                ➜ OCRmyPDF-LOG:
                  reading file from standard input
                  
                  Start processing 4 pages concurrently
                      2 page is facing ⇧, confidence 11.09 - no change
                      3 page is facing ⇧, confidence 11.73 - no change
                      4 page is facing ⇧, confidence 13.57 - no change
                      1 page is facing ⇧, confidence 11.59 - no change
                      5 page is facing ⇧, confidence 6.91 - no change
                      2 [tesseract] lots of diacritics - possibly poor OCR
                  
                  Postprocessing...
                  
                  
                  
                  Image optimization ratio: 1.09 savings: 8.2%
                  Total file size ratio: 0.95 savings: -5.8%
                  Output sent to stdout
                ← OCRmyPDF-LOG-END

                target file (OK): /tmp/tmp.gH7Eg4t8yu/step1_tmp_1713366973/pdf_04172024_171545_000081.pdf


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

                splitpage count: 0

                no separator sheet found, or number of pages too small

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

                ➜ backup source file to: /volume1/DokumenteScan/BACKUP/pdf_04172024_171545_000081.pdf
                removed directory '/tmp/tmp.gH7Eg4t8yu/step1_tmp_1713366973/'

Stats:
  runtime last file:              ➜ 00:00:56
  runtime 1st step (all files):   ➜ 00:00:57


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


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE:   ➜ pdf_04172024_171545_000081.pdf

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

                source for tags is yaml based tag rule file [/volume1/DokumenteScan/INPUT/_TagConfig_[profile_default].txt]

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/__init__.py", line 81, in load
    return loader.get_single_data()
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/constructor.py", line 49, in get_single_data
    node = self.get_single_node()
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 36, in get_single_node
    document = self.compose_document()
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 82, in compose_node
    node = self.compose_sequence_node(anchor)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 111, in compose_sequence_node
    node.value.append(self.compose_node(node, index))
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/composer.py", line 64, in compose_node
    if self.check_event(AliasEvent):
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/parser.py", line 98, in check_event
    self.current_event = self.state()
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/parser.py", line 449, in parse_block_mapping_value
    if not self.check_token(KeyToken, ValueToken, BlockEndToken):
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/scanner.py", line 116, in check_token
    self.fetch_more_tokens()
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/scanner.py", line 251, in fetch_more_tokens
    return self.fetch_double()
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/scanner.py", line 655, in fetch_double
    self.fetch_flow_scalar(style='"')
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/scanner.py", line 666, in fetch_flow_scalar
    self.tokens.append(self.scan_flow_scalar(style))
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/scanner.py", line 1149, in scan_flow_scalar
    chunks.extend(self.scan_flow_scalar_non_spaces(double, start_mark))
  File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/yaml/scanner.py", line 1223, in scan_flow_scalar_non_spaces
    raise ScannerError("while scanning a double-quoted scalar", start_mark,
yaml.scanner.ScannerError: while scanning a double-quoted scalar
  in "<unicode string>", line 184, column 21:
        - searchstring: "(?i)(?|(Steuer(\D*[N|n]um\S+|[\ ...
                        ^
found unknown escape character 'D'
  in "<unicode string>", line 184, column 38:
     ...  searchstring: "(?i)(?|(Steuer(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr\S+) ...
                                         ^
ERROR at line 448: tag_rule_content=$( python3 -c 'import sys, yaml, json; print(json.dumps(yaml.safe_load(sys.stdin.read()), indent=2, sort_keys=False))' < "${taglisttmp}")
                ERROR - YAML-check failed!ERROR at line 2456: return 1

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

2024-04-17 17:17:12,173 - Date scanning started
2024-04-17 17:17:12,174 - Version: 1.04
2024-04-17 17:17:12,174 - Parameter minYear = 0
2024-04-17 17:17:12,174 - Parameter maxYear = 0
2024-04-17 17:17:12,174 - Parameter searchnearest = off
2024-04-17 17:17:12,174 - set searchnearest = off
2024-04-17 17:17:12,174 - Parameter fileWithTextFindings = /tmp/tmp.gH7Eg4t8yu/step2_tmp_1713367030//synOCR.txt
2024-04-17 17:17:12,175 - Parameter dateBlackLIst = ;
2024-04-17 17:17:12,175 - start checking blacklist
2024-04-17 17:17:12,176 - end checking blacklist
2024-04-17 17:17:12,176 - Start searching for alphanumerical and numerical dates......
2024-04-17 17:17:19,172 - finish searching for alphanumerical and numerical dates......
2024-04-17 17:17:19,172 - found 2 dates
2024-04-17 17:17:19,172 - found date 2024-04-09
2024-04-17 17:17:19,172 - Date scanning ended
                  Dates found: 1
                  check date ([yy]yy mm dd): 2024-04-09
                  ➜ valid
                      day:  09
                      month:04
                      year: 2024

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

                ➜ renaming:
                  apply renaming syntax ➜ 2024-04-09_
                ➜ insert metadata (use python pikepdf)
                used metadata:
                ➜ '/Author': '',
                ➜ '/Keywords': '',
                ➜ '/CreationDate': 'D:20240409',
                ➜ '/CreatorTool': 'synOCR 1.4.5'
2024-04-17 17:17:19,684 - INFO - HandlePdf started
2024-04-17 17:17:19,685 - INFO - Version: 0.2
2024-04-17 17:17:19,685 - INFO - Task=metadata
2024-04-17 17:17:19,688 - INFO - >>>>> write meta_data started
2024-04-17 17:17:19,699 - INFO - save pdf to file (/tmp/tmp.gH7Eg4t8yu/step2_tmp_1713367030/temp_pdf_04172024_171545_000081_1713367030.pdf_meta.pdf)
empty
0
                ➜ File name already exists! Add counter (1)

                  target file: 2024-04-09_ (1).pdf

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

                ➜ Adapt file date (Source: OCR)

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

                  INFO: Notify for apprise not defined ...

run user defined post scripts:

Stats:
  runtime last file:    ➜ 00:00:10
  pagecount last file:  ➜ 5
  file count profile :  ➜ (profile default) - 32972 PDF's / 41285 Pages processed up to now
  file count total:     ➜ 33479 PDF's / 42936 Pages processed up to now since 2021-09-03

cleanup:
  delete tmp-files ...
                removed '/tmp/tmp.gH7Eg4t8yu/pdf_04172024_171545_000081.pdf'
                removed '/tmp/tmp.gH7Eg4t8yu/step2_tmp_1713367030/tmprulefile.txt'
                removed '/tmp/tmp.gH7Eg4t8yu/step2_tmp_1713367030/synOCR.txt'
                removed '/tmp/tmp.gH7Eg4t8yu/step2_tmp_1713367030/synOCR_filename.txt'
                removed directory '/tmp/tmp.gH7Eg4t8yu/step2_tmp_1713367030/'
                removed directory '/tmp/tmp.gH7Eg4t8yu'

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

  purge backup deactivated!

  runtime all files:              ➜ 00:01:08


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

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
856
Punkte für Reaktionen
160
Punkte
63
Hallo,

sry lag an mir. Klassischer Schreibfehler und eine Klammer zu viel.

Code:
(?i)(?|(Steuer(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr\S+))\D*)\S*\s*\K(\d{3}[\/]\d{3}[\/]\d{4,6})\b

Code:
(?i)(?|(Id|Ident(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr\S+))\D*)\S*\s*\K(\d{2}(\s\d{3}){3})\b

Karsten
 

wegomyway

Benutzer
Mitglied seit
03. Aug 2022
Beiträge
392
Punkte für Reaktionen
173
Punkte
99
Öhm, ich hab da mal ne Frage :giggle:,
alle kennen bestimmt diese netten Kassenbelege von Apotheken. Da prangert das "Apotheker A" auf dieser Endlosrolle. Da kommen bei mir im Jahr einiges zusammen. Nun hab ich ein drittes Profil in der GUI erstellt, YAML ebenso, in der Web-GUI vom 1700er ein ebenso drittes. Soweit ist das alles wirklich funktionierend (ich geh immer wirklich jeden Schritt einzeln/in Ruhe durch um nicht irgendwas zu zersemmeln, bin gebranntes Kind ;)).
ABER: die aufn Bon stehenden Datumsangaben werden nicht erkannt bzw. gefunden und somit im Dateinamen nicht geführt. Ab und an ist das "gedruckte" A teilweise im Weg, aber auf anderen Bons stört nix, schöner weißer Hintergrund.
Hatte probehalber im Web-GUI des 1700er von 300 auf 600 in Farbe gestellt. Außer das die erzeugte pdf locker 2-4MB groß wurde, blieb alles wie geschildert.
Statt Farbe kann ich noch s/w probieren. Die erstellte Rule ist ne echte 08/15 mit Suchbegriff "Apotheke", in der GUI von synOCR habe ich mich an den Einstellungen der anderen Profile orientiert. Beispielsweise "Erste Seite" oder "gefundenes OCR-Datum verwenden"
Hat wer ebensolche "Sorgen" und hat vielleicht ne Lösung parat, besser nen Tipp ?
Ansonsten ... es läuft wirklich gut, mein Rechnungsstapel schrumpft merklich
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.389
Punkte für Reaktionen
1.206
Punkte
234
Vorweg: Mehr DPI sorgen nicht unbedingt für ein besseres OCR-Ergebnis. 300 DPI in schwarzweiß (= 1Bit Farbtiefe) ist für viele Szenarien in Verbindung mit einer möglichst kleinen Dateigröße optimal.

Spezielle Dokumente können, wie von dir beschrieben, durchaus ihre Eigenarten haben. Um zu verstehen, was die Software wirklich beim Suchen sieht, lohnt es sich zum Test den Debugmodus (LogLevel 2) zu aktivieren. Dann wird für jede Datei der Textauszug als Textdatei im Logordner abgelegt. Das hilft bei der Erstellung der Regeln.
 


 

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