Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Das kann so nicht gehen. Alles, was da angegeben wird, muss die Prüfung bestehen. Evt. gibt es aber eine Syntax für RegEx, die es einem ermöglicht, passiven Text davor oder hinten anzustellen.
Aber letztendlich bleibt immer noch die Frage, ob auch die anderen Tags die heute schon im der Oberfläche genutzt werden können, wie §yocr4-§mocr-§docr, sowohl in tagname und in den neuen Optionen tagname_Prefix, tagname_Postfix genutzt werden können sollen.
Ich sehe hier noch nicht den entscheidenden Vorteil, weil alles, was in §tagname steht, bei erfüllter Regel in der Variable §tag landet, welche wieder um für den Zieldateinamen in der GUI gesetzt werden kann. Aber ich verstehe, dass du so differenzierter je nach Erfüllen einer Bedingung den Namen verändern kannst.
Aber letztendlich bleibt immer noch die Frage, ob auch die anderen Tags die heute schon im der Oberfläche genutzt werden können, wie §yocr4-§mocr-§docr, … in tagname … genutzt werden können sollen.
Letztendlich gings mir darum, dass Teile der Optionen aus dem GUI in die YAML-Datei und dort in x-Regeln gestellt wird, wie oben diese Tags.
Ich verstehe die YAML-Datei nämlich so, dass ich mehrere Regeln definieren kann, die dann bewertet werden und abhängig vom Ergebnis eine PDF-Datei konvertiert wird, welche dann ins den targetfolder verschoben wird.
Da ein GUI-Profil, wir haben dies bereits oben diskutiert, nur jeweils ein Zielverzeichnis kennt, kann ich mit mehreren YAML-Regeln wohl mehrere Zielverzeichnisse bedienen.
Diese Möglichkeit sehe ich als schon vorhanden- Nur mir fehlt (bisher) die Möglichkeit in der YAML-Datei auch die Datennamen mit den in der GUI vorhandenen Variablen, umzubenennen. Deshalb meine Bitte nach einer Anpassung, oder evtl. brauche ich ganz einfach nur eine Erklärung der aktuellen Möglichkeiten.
Ich probiere nun Mal die Beta-Version von oben. Danke schon Mal!
Da ein GUI-Profil, wir haben dies bereits oben diskutiert, nur jeweils ein Zielverzeichnis kennt, kann ich mit mehreren YAML-Regeln wohl mehrere Zielverzeichnisse bedienen.
Jain. Das Zielverzeichnis greift, wenn keine Regel greift. Du kannst ja für jede erfüllte Regel ein eigenes Zielverzeichnis verwenden. Greifen mehrere Regeln aus deiner Regeldatei, dann werden Hardlinks gesetzt (unterscheidet sich für den User nicht von einer regulären Datei).
Die YAML-Regel hat eine höhere Priorität als das Verzeichnis in der GUI (das könntest du als Fallback-Verzeichnis bezeichnen).
Wenn du dieses 'neue' Feature nutzt, dass die Umbenennungsparameter im Regelnamen greifen, kann es zu einem Durcheinander / Duplikaten der Infos im Namen kommen, sobald mehrere Regeln erfüllt werden. Deshalb sah ich bisher keinen sinnvollen Einsatz. Aber wie gesagt: probiere es aus.
Servus liebe Forengemeinde!
Ich habe meine DS220+ heute auf DSM 7.1-42661 Update 2 geupdatet. Davor habe ich synOCR DSM7 noch mal laufen lassen, was auch wunderbar funktioniert hat.
Nach dem Update der DS220+ werden mir nun immer Fehlermeldungen ausgegeben, da die eingetragene Aufgabe im Aufgabenplaner nicht ausgeführt werden kann.
Ich habe innerhalb des synOCR und Aufgabenplaners keinerlei Einstellungen geändert. Das Einzige, dass sich geändert hat, ist die DSM Version.
Vielleicht habt ihr einen Tipp, wie ich den Aufgabenplaner wieder dazu bekomme, die synOCR-Aufgaben auszuführen.
Nach dem Update der DS220+ werden mir nun immer Fehlermeldungen ausgegeben, da die eingetragene Aufgabe im Aufgabenplaner nicht ausgeführt werden kann.
BETA-Version 1.2.0.9 ist da.
Zusätzlich zum bisherigen Changelog gibt einige Verbesserungen:
Verbesserungen bei der pythonbasierten Datumssuche (@Gthorsten)
bzgl. der Möglichkeit, die Suche für das Datum in der Vergangenheit und in der Zukunft einzuschränken:
die Werte werden nicht mehr als < oder > interpretiert, sondern als <= bzw. >=
in YAML-Regeln können nun im Wert tagname Umbenennungsplatzhalter wie z.B. §yocr4 ect. enthalten sein (experimentell)
alle bisher beigelegten Binaryabhängigkeiten (yqpdfinfo) wurden in Python nachgebildet und daher entfernt. Das reduziert die Größe des SPK von ~8MB auch ~2MB. Entscheidend ist aber die wegfallende Abhängigkeit zu diesen Tools.
Python3 wird auf DSM 6 vorausgesetzt und als Abhängigkeit beim Installieren geprüft
[GUI] Unterstützung für folgende, DeepL basierte Übersetzungen (neben den bisherigen Sprachen Deutsch und Englisch) - hier wäre ich sehr an einem Feedback bzgl. der Qualität interessiert:
- Chinese simplified
- Czech
- Japanese
- Danish
- French
- Italian
- Dutch
- Polish
- Russian
- Spanish
- Swedish
- Hungarian
- Turkish
- Portuguese European
- Portuguese Brazilian
Einschränkung:
werden Metadaten per PyPDF2 (die aktuelle Methode) geschrieben, verlieren die Zieldateien die PDF/A Eigenschaft. Das ist ein nun bekannter Fehler von PyPDF2 und wird hoffentlich von dessen Entwicklern mit Aufmerksamkeit bedacht. Wem das wichtig ist, kann das Setzen der Metadaten manuell deaktivieren (gilt dann für alle Profile), indem er auf der Konsole diesen Befehl absetzt: /usr/syno/bin/synosetkeyvalue "/usr/syno/synoman/webman/3rdparty/synOCR/synOCR.sh" enablePyMetaData 0
Um die Einstellung umzukehren, die abschließende 0 durch eine 1 ersetzen.
Ich muss gestehen, dass ich nicht mehr weiß, welche Version vor dem Update gelaufen ist. Ich weiß nur soviel, dass es nicht 7.1 gewesen ist.
Es läuft die Version 1.2.0 von synOCR 7.
Als Fehlermeldung kommt folgende:
"Synology NAS Aufgabenplaner konnte eine geplante Aufgabe nicht ausführen.
Aufgabenplaner konnte eine geplante Aufgabe nicht ausführen. Weitere Informationen finden Sie im Protokoll-Center."
Im Protokoll-Center steht dann aber auch nicht mehr.
Wenn ich synOCR manuell starte, funktioniert es einwandfrei. Die Aufgabe im Aufgabenplaner habe ich wie in der Hilfe beschrieben angelegt gehabt.
edit____________________
Es tut mir wirklich leid, dass ich hier mit meiner "Anfängerfrage" gestört habe, aber ich habe den dummen Fehler gefunden.
Der Benutzer war einfach nicht "root", sondern ein admin. Jetzt läuft alles wunderbar.
Vielen Dank für diese super Programm!
Allerdings funktioniert dies noch nicht so wie ich mir das vorgestellt habe, genau genommen werden die Variablen, wie bspw §yocr4-§mocr-§docr gar nicht beachtet und als Zieldateiname der gleich wie der Quelldateiname verwendet.
Aber der Reihe nach, neues Beta vom Link oben installiert und folgende YAML-Datei verwendet.
Hier die Log-Datei, die mit der neuen Beta erstellt wurde. Mal abgesehen davon, dass meine beiden Test-Dateien im Ziel schon vorhanden waren, wurde die Zieldateinamen, wie schon geschrieben, 1:1 übernommen und nicht über den tagname umbenannt.
Code:
-----------------------------------
| ==> installation info <== |
-----------------------------------
synOCR-user: synOCR
synOCR-user is admin: yes
synOCR-version: 1.2.0.9
Architecture: x86_64
DSM-build: 42661
Device: 918plus (3974443861)
current Profil: Test
monitor is running?: no
DB-version: 8
used image (created): jbarlow83/ocrmypdf:latest (2022-06-24T08:19:52)
document author:
used ocr-parameter (raw): -srd -l deu --clean-final -O2
ocropt_array: -srd -l deu --clean-final -O2
search prefix:
replace search prefix: yes
renaming syntax:
Symbol for tag marking:
Document split pattern:
split page handling: discard
clean up spaces: false
Date search method: use standard search via RegEx
date found order: firstfound
source for filedate: source
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: (purge backup deactivated)
Source directory: /volume1/Scanner/Eingabe/
Target directory: /volume1/Scanner/Ausgabe/
Target temp directory: /volume1/Scanner/Ausgabe/synOCR_tmp_1656612714/
Files are deleted immediately! / No valid directory [/]
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ---------------------------------- ●
● | ==> RUN THE FUNCTIONS <== | ●
● ---------------------------------- ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
-----------------------------------------------------------------------------------
| check the python3 installation and the necessary modules: |
-----------------------------------------------------------------------------------
prepare_python: OK
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● STEP 1 - RUN OCR / SPLIT FILES, IF NEEDED: ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_LV.pdf
temp. target file: /tmp/tmp.QZy9KV0RFI/IMG_LV.pdf
-----------------------------------------------------------------------------------
| processing PDF @ OCRmyPDF: |
-----------------------------------------------------------------------------------
➜ OCRmyPDF-LOG:
WARNING: Error loading config file: .dockercfg: $HOME is not defined
reading file from standard input
Start processing 4 pages concurrently
3 page is facing ⇧, confidence 13.63 - no change
4 with existing rotation ⇩, page is facing ⇧, confidence 11.08 - no change
2 with existing rotation ⇩, page is facing ⇧, confidence 12.69 - no change
1 page is facing ⇧, confidence 12.82 - no change
Postprocessing...
Optimize ratio: 1.23 savings: 18.6%
Output sent to stdout
← OCRmyPDF-LOG-END
target file (OK): /tmp/tmp.QZy9KV0RFI/IMG_LV.pdf
-----------------------------------------------------------------------------------
| document split handling: |
-----------------------------------------------------------------------------------
no split pattern defined or splitting not possible
-----------------------------------------------------------------------------------
| handle source file: |
-----------------------------------------------------------------------------------
➜ delete source file (IMG_LV.pdf)
removed directory '/tmp/tmp.QZy9KV0RFI'
Stats:
runtime last file: ➜ 00:00:40
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_CITES.pdf
temp. target file: /tmp/tmp.I47POHSihE/IMG_CITES.pdf
-----------------------------------------------------------------------------------
| processing PDF @ OCRmyPDF: |
-----------------------------------------------------------------------------------
➜ OCRmyPDF-LOG:
WARNING: Error loading config file: .dockercfg: $HOME is not defined
reading file from standard input
1 page is facing ⇧, confidence 6.56 - no change
1 [tesseract] lots of diacritics - possibly poor OCR
Postprocessing...
Optimize ratio: 1.03 savings: 2.9%
Output sent to stdout
← OCRmyPDF-LOG-END
target file (OK): /tmp/tmp.I47POHSihE/IMG_CITES.pdf
-----------------------------------------------------------------------------------
| document split handling: |
-----------------------------------------------------------------------------------
no split pattern defined or splitting not possible
-----------------------------------------------------------------------------------
| handle source file: |
-----------------------------------------------------------------------------------
➜ delete source file (IMG_CITES.pdf)
removed directory '/tmp/tmp.I47POHSihE'
Stats:
runtime last file: ➜ 00:00:59
runtime 1st step (all files): ➜ 00:01:40
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● STEP 2 - SEARCH TAGS / RENAME / SORT: ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_LV.pdf
-----------------------------------------------------------------------------------
| search tags in ocr text: |
-----------------------------------------------------------------------------------
source for tags is yaml based tag rule file [/volume1/Scanner/Eingabe/profiles/global.txt]
search by tag rule: "LV_1" ➜
➜ condition: all
➜ tag: §yocr4-§mocr-§docr Lebensversicherung
➜ destination: /Lebensversicherung/
>>> Rule is satisfied
search by tag rule: "CITES_1" ➜
➜ condition: all
➜ tag: Cites DE-DEG§tag
➜ destination: /Cites/
>>> Rule is not satisfied
rename tag is: "§yocr4-§mocr-§docr Lebensversicherung"
-----------------------------------------------------------------------------------
| search for a valid date in ocr text: |
-----------------------------------------------------------------------------------
run RegEx date search - search for 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): 23.06.2022
➜ valid
day: 23
month:06
year: 2022
-----------------------------------------------------------------------------------
| rename and sort to target folder: |
-----------------------------------------------------------------------------------
➜ renaming:
apply renaming syntax ➜ IMG_LV
➜ insert metadata (use python PyPDF2)
used metadata:
➜ '/Author': '',
➜ '/Keywords': '§yocr4-§mocr-§docr Lebensversicherung',
➜ '/CreationDate': 'D:20220623'
➜ move to category directory
tag directory "/Lebensversicherung/" exists? ➜ OK [subfolder target dir]
➜ File name already exists! Add counter (1)
target: /volume1/Scanner/Ausgabe//Lebensversicherung/IMG_LV (1).pdf
set a hard link
-----------------------------------------------------------------------------------
| adjusts the attributes of the target file: |
-----------------------------------------------------------------------------------
➜ Adapt file date (Source: Source file)
-----------------------------------------------------------------------------------
| final tasks: |
-----------------------------------------------------------------------------------
INFO: (PushBullet-TOKEN not set)
Stats:
runtime last file: ➜ 00:00:01
pagecount last file: ➜ 4
file count profile : ➜ (profile Test) - 7 PDF's / 19 Pages processed up to now
file count total: ➜ 70 PDF's / 205 Pages processed up to now
cleanup:
delete tmp-files ...
removed '/tmp/tmp.KFPsrf7ss7/tmprulefile.txt'
removed '/tmp/tmp.KFPsrf7ss7/synOCR.txt'
removed '/tmp/tmp.KFPsrf7ss7/synOCR_filename.txt'
removed directory '/tmp/tmp.KFPsrf7ss7'
removed '/volume1/Scanner/Ausgabe/synOCR_tmp_1656612714/IMG_LV.pdf'
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_CITES.pdf
-----------------------------------------------------------------------------------
| search tags in ocr text: |
-----------------------------------------------------------------------------------
source for tags is yaml based tag rule file [/volume1/Scanner/Eingabe/profiles/global.txt]
search by tag rule: "LV_1" ➜
➜ condition: all
➜ tag: §yocr4-§mocr-§docr Lebensversicherung
➜ destination: /Lebensversicherung/
>>> Rule is not satisfied
search by tag rule: "CITES_1" ➜
➜ condition: all
➜ tag: Cites DE-DEG§tag
➜ destination: /Cites/
➜ RegEx for tag: [[:digit:]]{6}-[[:digit:]]{2,}
>>> Rule is satisfied
➜ search RegEx for tag ➜ 220420-80
rename tag is: "220420-80"
-----------------------------------------------------------------------------------
| search for a valid date in ocr text: |
-----------------------------------------------------------------------------------
run RegEx date search - search for 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): 01.08.2021
➜ valid
day: 01
month:08
year: 2021
-----------------------------------------------------------------------------------
| rename and sort to target folder: |
-----------------------------------------------------------------------------------
➜ renaming:
apply renaming syntax ➜ IMG_CITES
➜ insert metadata (use python PyPDF2)
used metadata:
➜ '/Author': '',
➜ '/Keywords': '220420-80',
➜ '/CreationDate': 'D:20210801'
➜ move to category directory
tag directory "/Cites/" exists? ➜ OK [subfolder target dir]
➜ File name already exists! Add counter (1)
target: /volume1/Scanner/Ausgabe//Cites/IMG_CITES (1).pdf
set a hard link
-----------------------------------------------------------------------------------
| adjusts the attributes of the target file: |
-----------------------------------------------------------------------------------
➜ Adapt file date (Source: Source file)
-----------------------------------------------------------------------------------
| final tasks: |
-----------------------------------------------------------------------------------
INFO: (PushBullet-TOKEN not set)
Stats:
runtime last file: ➜ 00:00:02
pagecount last file: ➜ 1
file count profile : ➜ (profile Test) - 8 PDF's / 20 Pages processed up to now
file count total: ➜ 71 PDF's / 206 Pages processed up to now
cleanup:
delete tmp-files ...
removed '/tmp/tmp.QDNp6tnFTf/tmprulefile.txt'
removed '/tmp/tmp.QDNp6tnFTf/synOCR.txt'
removed '/tmp/tmp.QDNp6tnFTf/synOCR_filename.txt'
removed directory '/tmp/tmp.QDNp6tnFTf'
removed '/volume1/Scanner/Ausgabe/synOCR_tmp_1656612714/IMG_CITES.pdf'
purge log files ...
delete 2 log files ( > 10 files)
delete 0 search files ( > 10 files)
purge backup deactivated!
rmdir: removing directory, '/volume1/Scanner/Ausgabe/synOCR_tmp_1656612714/'
runtime all files: ➜ 00:01:43
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ---------------------------------- ●
● | ==> END OF FUNCTIONS <== | ●
● ---------------------------------- ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
Man sieht im log, dass rename tag is: "§yocr4-§mocr-§docr Lebensversicherung" durchaus gefunden wurde, aber final nicht angewendet wird: target: /volume1/Scanner/Ausgabe//Lebensversicherung/IMG_LV (1).pdf
Nächstes Problem oder besser Herausforderung ist ein schöneres Wort ;-)
Bei der Datei CITES_LV.PDF habe ich als folgendes in der YAML-Datei geschrieben
Die Frage die sich mir jetzt stellt: während bspw. §yocr4 ggf. noch als Variable im Dateinamen angewendet werden kann, wie sieht es mit dem Konstrukt oben aus. Wird als §tag dann tatsächlich tagname_RegEx: "[[:digit:]]{6}-[[:digit:]]{2,}" eingesetzt oder ist dies was ich vorhabe gänzlich unmöglich.
Zur Erklärung: Ich würde einen finalen Dateinamen wie "Cites DE-DEG[[:digit:]]{6}-[[:digit:]]{2,}" erwarten.
Das RegEx natürlich bereits vollständig in Klartext übersetzt, so dass am Ende ein Dateiname, wie "Cites DE-DEG202201-11" herauskommt.
Der searchstring aus der YAML-Datei oder der tagname_RegEx soll quasi in §tag zur Verfügung stehen.
Jetzt muss ich doch den lieben @Yippie endlich mal zufrieden stellen
In der Tat hatte sich noch ein Fehler eingeschlichen. Jetzt sollten die Platzhalter im §tag erkannt werden.
Aber weil es ja eh nicht das war, was du wolltest, habe ich versucht, dir eine andere Lösung einzubauen:
In der aktualisierten Version (1.2.0.10) kannst du in tagname an beliebiger Stelle einen Platzhalter §tagname_RegEx einfügen. Dieser wird dann durch tagname_RegEx ersetzt, sofern gefunden.
In der aktualisierten Version (1.2.0.10) kannst du in tagname an beliebiger Stelle einen Platzhalter §tagname_RegEx einfügen. Dieser wird dann durch tagname_RegEx ersetzt, sofern gefunden.
So siehts jetzt auch bei mir aus, die neueste Beta ist installiert, allerdings werden die Dateien weiterhin nicht umbenannt, weder mit §tagname_RegEx noch mit §yocr4-§mocr-§docr
Irgendwas scheint noch nicht ganz zu funktionieren, siehe aktuelles Log
Code:
-----------------------------------
| ==> installation info <== |
-----------------------------------
synOCR-user: synOCR
synOCR-user is admin: yes
synOCR-version: 1.2.0.10
Architecture: x86_64
DSM-build: 42661
Device: 918plus (3974443861)
current Profil: Test
monitor is running?: no
DB-version: 8
used image (created): jbarlow83/ocrmypdf:latest (2022-06-24T08:19:52)
document author:
used ocr-parameter (raw): -srd -l deu --clean-final -O2
ocropt_array: -srd -l deu --clean-final -O2
search prefix:
replace search prefix: yes
renaming syntax:
Symbol for tag marking:
Document split pattern:
split page handling: discard
clean up spaces: false
Date search method: use standard search via RegEx
date found order: firstfound
source for filedate: source
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: (purge backup deactivated)
Source directory: /volume1/Scanner/Eingabe/
Target directory: /volume1/Scanner/Ausgabe/
Target temp directory: /volume1/Scanner/Ausgabe/synOCR_tmp_1656654264/
Files are deleted immediately! / No valid directory [/]
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ---------------------------------- ●
● | ==> RUN THE FUNCTIONS <== | ●
● ---------------------------------- ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
-----------------------------------------------------------------------------------
| check the python3 installation and the necessary modules: |
-----------------------------------------------------------------------------------
pip already installed (pip 21.1.1 from /usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/pip (python 3.8)) / upgrade available ...
Requirement already satisfied: pip in ./python3_env/lib/python3.8/site-packages (21.1.1)
Collecting pip
Downloading pip-22.1.2-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 21.1.1
Uninstalling pip-21.1.1:
Successfully uninstalled pip-21.1.1
Successfully installed pip-22.1.2
➜ check python module "DateTime": ➜ DateTime was not found and will be installed ➜ ok
➜ check python module "dateparser": ➜ dateparser was not found and will be installed ➜ ok
➜ check python module "PyPDF2==2.3.1": ➜ PyPDF2==2.3.1 was not found and will be installed ➜ ok
➜ check python module "Pillow": ➜ Pillow was not found and will be installed ➜ ok
➜ check python module "yq": ➜ yq was not found and will be installed ➜ ok
➜ check python module "PyYAML": ➜ PyYAML was not found and will be installed ➜ ok
prepare_python: OK
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● STEP 1 - RUN OCR / SPLIT FILES, IF NEEDED: ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_LV.pdf
temp. target file: /tmp/tmp.5I8wFwMGqs/IMG_LV.pdf
-----------------------------------------------------------------------------------
| processing PDF @ OCRmyPDF: |
-----------------------------------------------------------------------------------
➜ OCRmyPDF-LOG:
WARNING: Error loading config file: .dockercfg: $HOME is not defined
reading file from standard input
Start processing 4 pages concurrently
1 page is facing ⇧, confidence 12.82 - no change
2 with existing rotation ⇩, page is facing ⇧, confidence 12.69 - no change
4 with existing rotation ⇩, page is facing ⇧, confidence 11.08 - no change
3 page is facing ⇧, confidence 13.63 - no change
Postprocessing...
Optimize ratio: 1.23 savings: 18.6%
Output sent to stdout
← OCRmyPDF-LOG-END
target file (OK): /tmp/tmp.5I8wFwMGqs/IMG_LV.pdf
-----------------------------------------------------------------------------------
| document split handling: |
-----------------------------------------------------------------------------------
no split pattern defined or splitting not possible
-----------------------------------------------------------------------------------
| handle source file: |
-----------------------------------------------------------------------------------
➜ delete source file (IMG_LV.pdf)
removed directory '/tmp/tmp.5I8wFwMGqs'
Stats:
runtime last file: ➜ 00:00:41
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_CITES.pdf
temp. target file: /tmp/tmp.C7vOnkOy8R/IMG_CITES.pdf
-----------------------------------------------------------------------------------
| processing PDF @ OCRmyPDF: |
-----------------------------------------------------------------------------------
➜ OCRmyPDF-LOG:
WARNING: Error loading config file: .dockercfg: $HOME is not defined
reading file from standard input
1 page is facing ⇧, confidence 6.56 - no change
1 [tesseract] lots of diacritics - possibly poor OCR
Postprocessing...
Optimize ratio: 1.03 savings: 2.9%
Output sent to stdout
← OCRmyPDF-LOG-END
target file (OK): /tmp/tmp.C7vOnkOy8R/IMG_CITES.pdf
-----------------------------------------------------------------------------------
| document split handling: |
-----------------------------------------------------------------------------------
no split pattern defined or splitting not possible
-----------------------------------------------------------------------------------
| handle source file: |
-----------------------------------------------------------------------------------
➜ delete source file (IMG_CITES.pdf)
removed directory '/tmp/tmp.C7vOnkOy8R'
Stats:
runtime last file: ➜ 00:00:58
runtime 1st step (all files): ➜ 00:02:37
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● STEP 2 - SEARCH TAGS / RENAME / SORT: ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_LV.pdf
-----------------------------------------------------------------------------------
| search tags in ocr text: |
-----------------------------------------------------------------------------------
source for tags is yaml based tag rule file [/volume1/Scanner/Eingabe/profiles/global.txt]
search by tag rule: "LV_1" ➜
➜ condition: all
➜ tag: §yocr4-§mocr-§docr Lebensversicherung
➜ destination: /Lebensversicherung/
>>> Rule is satisfied
search by tag rule: "CITES_1" ➜
➜ condition: all
➜ tag: Cites DE-DEG§tagname_RegEx
➜ destination: /Cites/
➜ RegEx for tag: [[:digit:]]{6}-[[:digit:]]{2,}
>>> Rule is not satisfied
rename tag is: "§yocr4-§mocr-§docr Lebensversicherung"
-----------------------------------------------------------------------------------
| search for a valid date in ocr text: |
-----------------------------------------------------------------------------------
run RegEx date search - search for 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): 23.06.2022
➜ valid
day: 23
month:06
year: 2022
-----------------------------------------------------------------------------------
| rename and sort to target folder: |
-----------------------------------------------------------------------------------
➜ renaming:
apply renaming syntax ➜ IMG_LV
➜ insert metadata (use python PyPDF2)
used metadata:
➜ '/Author': '',
➜ '/Keywords': '§yocr4-§mocr-§docr Lebensversicherung',
➜ '/CreationDate': 'D:20220623'
➜ move to category directory
tag directory "/Lebensversicherung/" exists? ➜ OK [subfolder target dir]
target: /volume1/Scanner/Ausgabe//Lebensversicherung/IMG_LV.pdf
set a hard link
-----------------------------------------------------------------------------------
| adjusts the attributes of the target file: |
-----------------------------------------------------------------------------------
➜ Adapt file date (Source: Source file)
-----------------------------------------------------------------------------------
| final tasks: |
-----------------------------------------------------------------------------------
INFO: (PushBullet-TOKEN not set)
Stats:
runtime last file: ➜ 00:00:01
pagecount last file: ➜ 4
file count profile : ➜ (profile Test) - 11 PDF's / 29 Pages processed up to now
file count total: ➜ 74 PDF's / 215 Pages processed up to now
cleanup:
delete tmp-files ...
removed '/tmp/tmp.yh8QoydC6n/tmprulefile.txt'
removed '/tmp/tmp.yh8QoydC6n/synOCR.txt'
removed '/tmp/tmp.yh8QoydC6n/synOCR_filename.txt'
removed directory '/tmp/tmp.yh8QoydC6n'
removed '/volume1/Scanner/Ausgabe/synOCR_tmp_1656654264/IMG_LV.pdf'
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ IMG_CITES.pdf
-----------------------------------------------------------------------------------
| search tags in ocr text: |
-----------------------------------------------------------------------------------
source for tags is yaml based tag rule file [/volume1/Scanner/Eingabe/profiles/global.txt]
search by tag rule: "LV_1" ➜
➜ condition: all
➜ tag: §yocr4-§mocr-§docr Lebensversicherung
➜ destination: /Lebensversicherung/
>>> Rule is not satisfied
search by tag rule: "CITES_1" ➜
➜ condition: all
➜ tag: Cites DE-DEG§tagname_RegEx
➜ destination: /Cites/
➜ RegEx for tag: [[:digit:]]{6}-[[:digit:]]{2,}
>>> Rule is satisfied
➜ search RegEx for tag ➜ Cites DE-DEG220420-80
rename tag is: "Cites DE-DEG220420-80"
-----------------------------------------------------------------------------------
| search for a valid date in ocr text: |
-----------------------------------------------------------------------------------
run RegEx date search - search for 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): 01.08.2021
➜ valid
day: 01
month:08
year: 2021
-----------------------------------------------------------------------------------
| rename and sort to target folder: |
-----------------------------------------------------------------------------------
➜ renaming:
apply renaming syntax ➜ IMG_CITES
➜ insert metadata (use python PyPDF2)
used metadata:
➜ '/Author': '',
➜ '/Keywords': 'Cites DE-DEG220420-80',
➜ '/CreationDate': 'D:20210801'
➜ move to category directory
tag directory "/Cites/" exists? ➜ OK [subfolder target dir]
target: /volume1/Scanner/Ausgabe//Cites/IMG_CITES.pdf
set a hard link
-----------------------------------------------------------------------------------
| adjusts the attributes of the target file: |
-----------------------------------------------------------------------------------
➜ Adapt file date (Source: Source file)
-----------------------------------------------------------------------------------
| final tasks: |
-----------------------------------------------------------------------------------
INFO: (PushBullet-TOKEN not set)
Stats:
runtime last file: ➜ 00:00:01
pagecount last file: ➜ 1
file count profile : ➜ (profile Test) - 12 PDF's / 30 Pages processed up to now
file count total: ➜ 75 PDF's / 216 Pages processed up to now
cleanup:
delete tmp-files ...
removed '/tmp/tmp.dpHEW9sJm2/tmprulefile.txt'
removed '/tmp/tmp.dpHEW9sJm2/synOCR.txt'
removed '/tmp/tmp.dpHEW9sJm2/synOCR_filename.txt'
removed directory '/tmp/tmp.dpHEW9sJm2'
removed '/volume1/Scanner/Ausgabe/synOCR_tmp_1656654264/IMG_CITES.pdf'
purge log files ...
delete 6 log files ( > 10 files)
delete 0 search files ( > 10 files)
purge backup deactivated!
rmdir: removing directory, '/volume1/Scanner/Ausgabe/synOCR_tmp_1656654264/'
runtime all files: ➜ 00:02:40
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● ---------------------------------- ●
● | ==> END OF FUNCTIONS <== | ●
● ---------------------------------- ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
Denn für die Rule LV_1 wird folgendes ausgegeben als
Code:
rename tag is: "§yocr4-§mocr-§docr Lebensversicherung"
und für die Regel CITES_1, meines Erachtens das korrekte Tag, allerdings dieses nicht angewendet im Dateinamen:
Code:
➜ search RegEx for tag ➜ Cites DE-DEG220420-80
rename tag is: "Cites DE-DEG220420-80"
Kann es sein, dass die Variablen, wie ich sie oben bei LV_1 verwendete habe, nicht ersetzt bzw. erst gar nicht vorhanden sind oder ggf andere Namen für die Verwendung in der YAML-Datei haben? Habe mir den Quellcode angesehen und habe daher diesen Verdacht. Denn während im Code tagname_RegEx explizit an einer Stelle genannt wird, ist dies bspw. für [§]yocr4 nicht der Fall, aber da kann ich mich auch verlesen haben.
Liegt das Problem im zweiten Fall, CITES_1, vielleicht daran, dass ich als targetfolder "/Cites/" verwende, also mit führendem Slash und von daher in der Log-Datei Folgendes ausgegeben wird, zwei Slashes, siehe unten?
Code:
/volume1/Scanner/Ausgabe//Cites/IMG_CITES.pdf
Vielleicht kann man codeseitig die Slashes vor dem Zusammenfügen des finalen Pfades/Dateinamen noch bereinigen, falls es tasächlich die Ursache sein sollte.
Edit: die in targetfolder vorhandenen Slashes haben keine Auswirkung, denn wenn ich diese entferne, ist das Ergebnis identisch: keine Umbenennung.
Ich muss gestehen, dass ich nicht mehr weiß, welche Version vor dem Update gelaufen ist. Ich weiß nur soviel, dass es nicht 7.1 gewesen ist.
Es läuft die Version 1.2.0 von synOCR 7.
Als Fehlermeldung kommt folgende:
"Synology NAS Aufgabenplaner konnte eine geplante Aufgabe nicht ausführen.
Aufgabenplaner konnte eine geplante Aufgabe nicht ausführen. Weitere Informationen finden Sie im Protokoll-Center."
Im Protokoll-Center steht dann aber auch nicht mehr.
Wenn ich synOCR manuell starte, funktioniert es einwandfrei. Die Aufgabe im Aufgabenplaner habe ich wie in der Hilfe beschrieben angelegt gehabt.
edit____________________
Es tut mir wirklich leid, dass ich hier mit meiner "Anfängerfrage" gestört habe, aber ich habe den dummen Fehler gefunden.
Der Benutzer war einfach nicht "root", sondern ein admin. Jetzt läuft alles wunderbar.
Vielen Dank für diese super Programm!
Ich kann mich hier anschließen. Habe insoweit das gleiche Problem.
SynOCR 1.20
DSM Version: DSM 7.1-42661 Update 2
Ich habe das OCR im Bürobetrieb, deshalb Aufgabe mit 1 Minute Wiederholungsintervall.
Bei "größeren" Dateien kommt dann die Fehlermeldung per Mail:
Aufgabenplaner konnte eine geplante Aufgabe nicht ausführen. Weitere Informationen finden Sie im Protokoll-Center.
Aufgabe: OCR
Im Protokoll Center heißt es:
Scheduled Task [OCR] failed to run because a previously scheduled task was running. Please check the task content/settings.
Wir haben schon immer große Dateien verarbeitet, auch Akten mit mehreren hundert Seiten.
Aber seit dem letzten Update, bei mir ab 07.06. kommt erstmal diese Fehlermeldung UND die Verarbeitung dauert teilweise SEHR lange.
Ich habe das OCR im Bürobetrieb, deshalb Aufgabe mit 1 Minute Wiederholungsintervall.
Bei "größeren" Dateien kommt dann die Fehlermeldung per Mail: … Scheduled Task [OCR] failed to run because a previously scheduled task was running.
Das spricht ja für sich. Es ist ja auch nicht kritisch. Diese Situation wird vom Startskript selbst auch nochmals abgefangen. Wenn dich die Meldung stört, dann deaktiviere die Aufgabenbenachrichtigung im Aufgabenplaner.
In der aktuellen Beta, bzw. im nächsten Release wird es eine (optionale) Ordnerüberwachung geben. Dann kannst du das Intervall auch wieder größer setzen.
Du meinst das Update von 7.1 Update 1 auf Update 2?
Dann bräuchte ich einmal ein Log im Loglevel 2 (in der GUI ganz unten einzustellen). Einen Link für den Upload findest du in meiner Signatur.
Kann es sein, dass die Variablen, wie ich sie oben bei LV_1 verwendete habe, nicht ersetzt bzw. erst gar nicht vorhanden sind oder ggf andere Namen für die Verwendung in der YAML-Datei haben? Habe mir den Quellcode angesehen und habe daher diesen Verdacht. Denn während im Code tagname_RegEx explizit an einer Stelle genannt wird, ist dies bspw. für [§]yocr4 nicht der Fall, aber da kann ich mich auch verlesen haben.
Das sind verschiedene Bereiche. §tagname_RegEx ist kein globaler Platzhalter, wie z.B. §yocr4. Die globalen Platzhalter können am Schluss beim Zusammenstellen des Namens ausgetauscht werden. Bei §tagname_RegEx muss die Prüfung in jeder Regel erfolgen. Das geschieht HIER, was du vermutlich gesehen hattest.
Platzhalter in Tag-Namen werden dann HIER ersetzt (dafür wird eine dezidierte Funktion aufgerufen).
Das ist aber in der GUI zu finden, oder?
Dort eine Einstellung zu machen, wollte ich eben durch die alleinige Verwendung der YAML-Datei eben vermeiden.
Aber gut, so funktioniert es jetzt
Vielen herzlichen Dank! Das erleichtert jetzt möglicherweise anderen mit ähnlicher Anforderung auch so einiges!
Somit folgende Einstellungen in der GUI:
Und in der YAML-Datei
Eigentlich soll alles in der GUI eingestellt werden können. Die YAML-Datei ist nur für die erweiterten Suchmuster und Regeln. Mir fehlt leider die Fähigkeit, eine GUI für die YAML-Datei zu erstellen. Das wäre definitiv der edlere Weg.
OK, aber die Erweiterung von die, dass tagname_RegEx so wie jetzt mit Hilfe der YAML-Datei verwendet werden kann, funktionierte in der GUI bisher ja nicht.
Auch nicht, dass ich zwei Regeln in einem GUI-Profil verwenden kann, so wie oben jetzt von mir in der YAML verwendet.
Oder sehe ich das falsch?
(Fast) alles, was man mit der YAML-Regeldatei steuern kann, geht auch fast nur da. Die Umbenennungssyntax in der GUI sollte auf jeden Fall gesetzt sein - §tag steht in dem Fall für das, was an Tagnamen von den Regeln zurückgegeben wird. In deinem Fall ist das jetzt etwas exotisch, weil du durch die Platzhalter im Tagnamen den Namensaufbau selbst gestaltest (das gab es ja bisher nicht). Aber auch hier versteckt sich jetzt dein ganzer Namensaufbau hinter §tag.
Es freut mich jedenfalls, dass es jetzt funktioniert und wünsche dir einen stabilen Workflow
Was mir noch geholfen hat @Yippie war, alle überflüssigen Parameter gar nicht mehr in die Datei aufzunehmen, wenn der Standard Wert, der gesetzt ist, dem entspricht, was ich ohnehin haben will. Das macht die YAML-Datei deutlich übersichtlicher. Bezogen auf deine Datei also
Danke für den Tipp!!
Ich bin da leider ein wenig geprägt, denn selbst Programmierer seit mittlerweile 30 Jahren und freu' mich immer wenn ich möglichst viel selbst einstellen kann oder sehe was wo wie gesteuert wird