synOCR synOCR - GUI für OCRmyPDF

geimist/ocrmypdf-polyglot:latest
Habs aber auch mit dem geimist/ocrmypdf-polyglot_fast:latest noch ein paar mal probiert und krieg keinen erfolgreichen run mehr hin.
Hatte vorhin mal die Vermutung es liegt an der Leerseiten-Entfernung aber die habe ich auch schon wieder deaktiviert, ohne Erfolg.
Hab auch die logs von vorhin alle mal durchsucht und es ist immer genau der Fehler aus meinem vorigen Post.
 
Die Images sind alle vom selben Stand. Könntest du es mal mit jbarlow83/ocrmypdf:12.7.2 probieren? Das ist fest in der Auswahl hinterlegt. Oder fehlt dir da eine Sprache?
Ideal wäre es, wenn du mir das Dokument zukommen lassen könntest.
 
jbarlow83/ocrmypdf:12.7.2 funktioniert.
Danach hab ich wieder auf geimist/ocrmypdf-polyglot_fast:latest umgestellt und auch das funktioniert wieder. Jetz bin ich vollends verwirrt.
Das Dokument kann/möchte ich dir eher nicht zur Verfügung stellen. Da sind mir zu viele persönliche als auch Versicherungs-Daten drauf.
 
Das ist für mich schwierig einzugrenzen. Ich hatte jetzt schon manchmal das Gefühl (bei Problemen anderer), dass die Ausgabe von OCRmyPDF z.T. fehlerhaft war (auch in der Version 1.4.5, die ja schon seit 2023 läuft).

Die Synology sagt mir auch, dass der Container unerwartet beendet wurde.
Das ist leider ein Fehler des aktuellen Containermanagers und betrifft bei mir auch viele andere Container, die ich temporär erstelle und nutze. Im Docker-Log ist kein Fehler zu sehen und die Container werden mit exit 0 (also ohne Fehler) beendet.
 
Klar, verstehe ich. Das Fehlerbild ist leider nicht konsistent und nachvollziehbar. Wie gesagt, mit derselben Datei klappt es jetzt auch plötzlich wieder.
Ich werd das mal weiter beobachten. Da ich letztens meine yaml-files und source-Ordner komplett auf links gedreht habe, prüfe ich derzeit sowieso wieder jedes File einzeln. Von daher würde es mir auffallen wenn es ein größeres Probleme gäbe.
 
Das file_processing.log sollte dir hier ja hilfreich sein. Und die Quelldatei wird ab dem letzten Build immer in den Ordner ERRORFILES verschoben, wenn es keine Zieldatei gibt. Damit solltest du save sein.
Bitte melde dich gerne bei neuen Erkenntnissen. Vielleicht dann erstmal per PN um das in Ruhe zu ergründen.
 
Das file_processing.log sollte dir hier ja hilfreich sein. Und die Quelldatei wird ab dem letzten Build immer in den Ordner ERRORFILES verschoben, wenn es keine Zieldatei gibt.
Komischerweise war das processing ja successful. Zumindets von synOCR-Seite. Obwohl das log einen Error-hatte, konnte das output-file scheinbar von synOCR gelesen werden. Es wurden sogar teils (nicht alle) Tags erkannt und das file in den richtigen Target-Ordner verschoben. Aber kein PDF-Reader war in der Lage das file danach zu öffnen.
Ich behalts im Auge und melde mich per PN sobald ich wieder was sehe.
 
Guten Abend zusammen, bin der Frank und benutze synOCR :)

benutze jetzt rund ein Jahr synOCR bei uns in der Werkstatt für Diagnose Berichte um dort drinnen das Datum auszulesen weil Paperless NGX ganz gerne das falsche wählt, synOcr schafft das.

Nun habe bin ich aber auf den Trichter gekommen da wir mittlerweile gefühlt nur noch am Dokumentieren sind da etwas speed reinzubringen. Nur leider hat synOCR bei mir darauf überhaupt keine lust.

Es sollen anhand der Werkstattnummer im ersten PDF ein Ordner angelegt werden mit der Nummer und wenn was
weiteres mit der Nummer kommt da auch landen.
Die Nummer beginnen mit W25-xxxx. irgendwann dann auch mal mit W26-xxxx
Ich habe nun hoch und runter die beispiele angeschaut, gebastelt angepasst aber außer das die PDF Namen geändert
werden passiert da nix. Ich sitze da nun schon drei Abende und finde mein Problem nicht.

Also langsam zweifel ich echt an mir.

Danke für eure Hilfe...Lg Frank
 
Guten Morgen Frank,
herzlich willkommen bei uns im Forum.

Mangels Zeit konnte ich leider unser WIKI noch nicht aktualisieren / überarbeiten, und die neuen Funktionalitäten und Beispiele aufnehmen.

Das was Du suchst, findest Du in unserem YouTube Channel hier und hier der Link direkt zur Anleitung.
Bitte bei meinem Beispiel einfach Zielverzeichnis (ist das Verzeichnis in dem die neuen Ordner angelegt werden), den Suchstring unter "tagname_RegEx" und "searchstring" (in Deinem Bsp. W25-xxxx) und natürlich den "tagname" durch Deine spezifischen Values ersetzen.

Falls noch Fragen sind oder Du Hilfe benötigst, einfach melden.

Gruß
Karsten
 
  • Like
Reaktionen: wegomyway
Guten Morgen Karsten, danke dir für deine Rückmeldung.
Habe ich alles gefunden :). läuft nicht bei mir, ich finde den blöden fehler nicht.
Laut Log immer
➜ Subrule don't matched
>>> Rule is not satisfied
W25 mit - oder ohne .. er/Sie/es will nicht.

Habe auch ein extra PDF angelegt wo nur die Nummer drinnen ist damit ja nix ablenkt.

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ w251234.pdf
➜ File permissions source file:
-rw-rw-r-- 1 synOCR synOCR 10811 Mar 13 08:05 /tmp/tmp.ivh7Qe1q0T/w251234.pdf

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

source for tags is yaml based tag rule file [/volume1/OCR_Ordner/input/synocr_ordner_anlegen.txt]

check and convert yaml 2 json with python

[runtime up to now: 00:00:00]

search by tag rule: "rule_W25" ➜
➜ condition: all
➜ tag: W25_§tagname_RegEx
➜ destination: /volume1/OCR_Ordner/out
➜ RegEx for tag: (?i)(?|(W25-(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\R*\s*?(\S*\s*)?\K(\d{5,6})\b
➜ multilineregex: true
[Subrule]:
[value for source is empty - "content" is used]
[value for casesensitive is empty - "false" is used]
>>> search for: (?i)(?|(W25_(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\R*\s*?(\S*\s*)?\K(\d{5,6})\b
isRegEx: true
searchtype: contains
source: content
casesensitive: false
multilineregex: true
grep parameter: iz
➜ Subrule don't matched
>>> Rule is not satisfied


rename tag is: ""


[runtime up to now: 00:00:00]

_____________________________-

# synOCR_YAMLRULEFILE # keep this line!


rule_W25:
tagname: W25_§tagname_RegEx
targetfolder: /volume1/OCR_Ordner/out
tagname_RegEx: (?i)(?|(W25-(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\R*\s*?(\S*\s*)?\K(\d{5,6})\b
multilineregex: true
postscript: newtargetdir=$(echo "${tagname_RegEx_result}" | sed -e 's/ /_/g') && newtargetfile=$(echo "${NewName}" | sed -e 's/ /_/g') && mkdir -p "${output%/*}/${newtargetdir}" && filecount=$(find "${output%/*}/${newtargetdir}" -maxdepth 1 -type f -name "${newtargetfile}*.pdf" -printf '.' | wc -c) && if [ "${filecount}" -eq 0 ]; then mv "${output}" "${output%/*}/${newtargetdir}/${newtargetfile}.pdf"; else mv "${output}" "${output%/*}/${newtargetdir}/${newtargetfile} (${filecount}).pdf"; fi
condition: all
subrules:
- searchstring: (?i)(?|(W25_(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\R*\s*?(\S*\s*)?\K(\d{5,6})\b
searchtyp: contains
isRegEx: true
multilineregex: true



Lg Frank
 
Lade mir bitte mal ein Bsp. für den Scan, die YAML und ein Protokoll hoch. (meine Signatur)
Dann schau ich mir das an.
Wird aber erst heute später Nachmittag.
 
Hallo Frank,

(Falls du die private Nachricht nicht bekommen hattest, gleich nochmal hier.)
Ich habe deine Frage gleich mal zum Anlass genommen, hier nochmal etwas nachzubessern.

Kannst du mal bitte die neueste Beta testen? Ich wollte diese eigentlich zeitnah als Release bereitstellen, hab aber jetzt noch die Möglichkeit eingebaut, per RegEx den Zielordner anpassen zu können (@Struppix: dich wird's freuen, wartest du doch schon ewig darauf / es gibt jetzt den neuen YAML-Key §dirname_RegEx).

synOCR_DSM7_local_BETA.spk

Die YAML müsstest du in nachstehender Art anpassen. Den Regex muss man nicht unbedingt zusätzlich auch als subrule einsetzen, aber ich mache das gerne so, damit §dirname_RegEx und §tagname_RegEx nur greifen, wenn auch die gewünschte Regel erfüllt ist.

YAML:
rule_unterordner:
    tagname:
    targetfolder: §dirname_RegEx
    dirname_RegEx: W2[56]-[0-9]{4}
    condition: all
    subrules:
    - searchstring: W2[56]-[0-9]{4}
      searchtyp: contains
      isRegEx: true
      source: content
      casesensitive: false
 
  • Like
Reaktionen: guidovg
Hi Stefan,

das ist nicht mein Tag, ich merk schon.
Einerseits ist das super, wie Du schon schriebst.
Anderseits habe ich gerade Frank mal was schönes gebastelt.

Viel schlimmer ist der Aufwand am Editor :cautious:

Karsten
 
Es sollen anhand der Werkstattnummer im ersten PDF ein Ordner angelegt werden
Hey Frank,

ich zeig es dennoch mal hier. Wenn Du die neue Beta testen möchtest, dann kannst Du die erste Regeln ändern.


YAML:
# synOCR_YAMLRULEFILE   # keep this line!


rule_1001:
    tagname: §tagname_RegEx
    targetfolder: /volume1/OCR_Ordner/out
    tagname_RegEx: (?i)\b(?:W\d{2}-\d+)\b
    postscript: newtargetdir=$(echo "${tagname_RegEx_result}" | sed -e 's/ /_/g') && newtargetfile=$(echo "${NewName}" | sed -e 's/ /_/g;s/&/_/g;s/+/_/g') && mkdir -p "${output%/*}/${newtargetdir}" && filecount=$(find "${output%/*}/${newtargetdir}" -maxdepth 1 -type f -name       "${newtargetfile}*.pdf" -printf '.' | wc -c) && if [ "${filecount}" -eq 0 ]; then mv "${output}" "${output%/*}/${newtargetdir}/${newtargetfile}.pdf"; else mv "${output}" "${output%/*}/${newtargetdir}/${newtargetfile} (${filecount}).pdf"; fi
    condition: all
    subrules:
    - searchstring: (?i)\b(?:W\d{2}-\d+)\b
      searchtyp: contains
      isRegEx: true


rule_1002:
    tagname: _§tagname_RegEx
    tagname_RegEx: (?i)\b(?:Vorname:\s+)\K(?:\S+)\b
    condition: all
    subrules:
    - searchstring: (?i)\b(?:Vorname:\s+)\K(?:\S*)\b
      searchtyp: contains
      isRegEx: true


rule_1003:
    tagname: _§tagname_RegEx
    targetfolder:
    tagname_RegEx: (?i)\b(?:Name:\s+)\K(?:\S+)\b
    condition: all
    subrules:
    - searchstring: (?i)\b(?:Name:\s+)\K(?:\S+)\b
      searchtyp: contains
      isRegEx: true


rule_1004:
    tagname: _KdNr_§tagname_RegEx
    targetfolder:
    tagname_RegEx: (?i)\b(?:KdNr.:\s+)\K(?:\d+)\b
    condition: all
    subrules:
    - searchstring: (?i)\b(?:KdNr.:\s+)\K(?:\d+)\b
      searchtyp: contains
      isRegEx: true

rule_1005:
    tagname: _§tagname_RegEx
    targetfolder:
    tagname_RegEx: (?i)\b(?:Typ:\s+)\K(?:\S+)\b
    condition: all
    subrules:
    - searchstring: (?i)\b(?:Typ:\s+)\K(?:\S+)\b
      searchtyp: contains
      isRegEx: true


rule_1006:
    tagname: _§tagname_RegEx
    targetfolder:
    tagname_RegEx: (?i)\b(?:Modell:\s+)\K(?:\S+)\b
    condition: all
    subrules:
    - searchstring: (?i)\b(?:Modell:\s+)\K(?:\S+)\b
      searchtyp: contains
      isRegEx: true

Das ist ungetestet da ich auf Arbeit bin.
 
Viel schlimmer ist der Aufwand am Editor :cautious:
Meinst du, wegen des neuen Keys?
Ich dachte, du freust dich 🙈

Man muss es ja nicht verwenden, sollte die Sache aber intuitiver machen, als ein Postscript. Und es behebt das bekannte Manko, dass ein Postscript nur für einen (d.h. den letzten) Zielordner funktioniert (was die Regel sein sollte).
Sorry für deine zusätzliche / doppelte Mühe – ich schätze deinen Input sehr 🤗
 
Alles gut Stephan. Natürlich freu ich mich, das war schon längst überfällig. Der Mehrwert ist enorm.

Karsten
 
  • Like
Reaktionen: geimist

Additional post fields

 

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