synOCR synOCR - GUI für OCRmyPDF

wegomyway

Benutzer
Sehr erfahren
Mitglied seit
03. Aug 2022
Beiträge
1.347
Punkte für Reaktionen
571
Punkte
184
War 'nen paar Tage "offline" zur 224+, nun wieder drin/dran und hab mal Dokus eingescannt, wo ich alles eingerichtet habe und auch schon erfolgreich einsortiert wurden. Jetzt werden die erkannt, aber nicht dorthin verschoben, wo sie hin sollen.
Aktuell hab ich synOCR als 1.4.5er drauf, lese hier aktuell nur von einer vorliegenden Beta. Ist meine vorhandene Aktuell?
Werde mal das Monitoring stoppen und wieder neu starten (obwohl ich das im Aufgabenplaner als Script drin habe).
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.562
Punkte für Reaktionen
1.388
Punkte
234
Prima, dass dein Netz wieder läuft :)
Die Beta adressiert hauptsächlich ein paar Details in Verbindung mit der Datumssuche. Die Version 1.4.5 ist der aktuelle Release.

Jetzt werden die erkannt, aber nicht dorthin verschoben, wo sie hin sollen.
Da gehe ich mal stark von einem Regelproblem aus.
Benutzt du eine externe YAML-Regeldatei? Kannst du sie mal posten?
Im Loglevel 2 (einzustellen in der GUI ganz unten) werden auch die Matches der einzelnen Regeln geloggt. Das ist sicherlich auch hilfreich beim Ergründen.
 

wegomyway

Benutzer
Sehr erfahren
Mitglied seit
03. Aug 2022
Beiträge
1.347
Punkte für Reaktionen
571
Punkte
184
@geimist, ich kann mich noch erinnern, dass ich wirklich akribisch meine analogen Dokus gesichtet und sortiert habe. Danach entsprechend die "Suchbegriffe" gewählt habe. Dabei erst recht aufgepasst habe, dass ich keinerlei Doppelungen/Zweideutigkeit als "Suchbegriff" nutze. Das hat gedauert, aber hat auch viel gebracht um "halbwegs" zu verstehen wie das aussehen muss. Daher staune ich aktuell doch ein wenig.
Natürlich nutze ich den YAML-Editor, der dann 'ne die *.txt erstellt und die wird dann hochgeladen (im übrigen für mich, wenn man sich damit beschäftigt, fast schon wieder selbsterklärend).
Code:
rule_1075:
#X#X#: die Wohnung
    targetfolder: /volume1/Dokumente/Charlotte_Wohnung
    postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed 's/ /_/g')"
    condition: all
    subrules:
    - searchstring:
      searchtyp: contains


rule_1076:
#X#X#: die Wohnung
    tagname: §tagname_RegEx
    tagname_RegEx: (?i)(Betriebs- und Heizkostenabrechnung|Einzelabrechnung Energie- und Betriebskosten)
    condition: all
    subrules:
    - searchstring: (?i)(Betriebs- und Heizkostenabrechnung|Einzelabrechnung Energie- und Betriebskosten)
      searchtyp: contains
      isRegEx: true
#X#X#: die Wohnung
    - searchstring: Wohnung
      searchtyp: contains

Ich weiß, es geht einfacher/kürzer. Aber es hat damals und auch zwischendurch funktioniert. Die beiden Begriffe sind 1zu1 als Betreff ordentlich groß und Fett auf den Abrechnungen vorhanden. Immer an gleicher Stelle und immer gleichlautend. Die Begriffe werden ja auch erkannt, aber landen nicht dort wohin. Das Log als PDF, weil sind 'ne Menge Seiten. Selbst das Datum wird jeweils, verglichen mit anderen erfolgreich gescannten, korrekt erkannt.
 

Anhänge

  • log.pdf
    192,6 KB · Aufrufe: 2

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hallo Holger,

ich könnte mir vorstellen, wenn Verzeichnis passt und Du im GUI den Eintrag "Regel basierte Ordner" gewählt hast, dass die Regel 1075 nicht richtig zugeordnet werden kann.

Entweder schreibst Du den targetfolder in die Regel 1076, oder Du ergänzt den Suchstring Wohnung in Regel 1075.

Oder verwendest Du Regel 1075 als pauschale quasi "Verschiebe Routine" in dem kompletten Profil ?
Also ich vermeide solche Sachen, wenn dem so wäre, da das nicht stabil funktioniert, bei mir zumindest nicht. Somit schreibe ich den targetfolder und die postscript Befehle immer in die oberste Regel des Umbenennungsblockes.

Bin gerade dabei hierfür etwas im YAML-Editor zu integrieren, wenn ich den damit mal fertig werde.
Derzeit erstelle ich gerade ein Deutsch / Englisch Version, die schon recht weit ist. Das hat ein wenig Vorrang.

Gruß Karsten

Edit: Schaue mir gerade das LOG an, hatte das übersehen. Und es ist genau wie ich oben schreibe. Also noch einmal

"Entweder schreibst Du den targetfolder in die Regel 1076, oder Du ergänzt den Suchstring Wohnung in Regel 1075."
 
  • Like
Reaktionen: geimist und wegomyway

wegomyway

Benutzer
Sehr erfahren
Mitglied seit
03. Aug 2022
Beiträge
1.347
Punkte für Reaktionen
571
Punkte
184
@geimist und @Struppix, nehme mir das hier zu Herzen und gehe da nochmals, speziell @Struppix nicht nur, die Anmerkungen durch 😌. Heut Abend ist Zeit, nachdem ich ja nun wieder "online" bin.
 

HUHA

Benutzer
Mitglied seit
09. Apr 2020
Beiträge
10
Punkte für Reaktionen
9
Punkte
53
Hello.
I have SynOcr 1.1.2 on DSM 6.2.4-25556 Update 7 which is running fine with 6 profiles.

If I update to latest DSM 7, and then update to synocr 1.4.5, my profiles are going to be fine or they are going to be deleted and I have to recreate them? If I have to recreate them, is there a way to update to latest DSM 7 and Synocr 1.4.5 without losing the settings of Synocr?

Thank you

1732398167013.png
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.562
Punkte für Reaktionen
1.388
Punkte
234
Wow, you've been busy :cool:
1.4 million pages! Have you scanned the internet :ROFLMAO:

Good question ... the situation was so long ago.

I don't remember if the package only needs to be repaired after updating to DSM7. Then everything should remain intact.
However, if it is removed by the update due to incompatibility, then the data will probably be gone for the time being.
  • However, you can make a backup of synOCR with HyperBackup and restore it afterwards. This should preserve everything.
  • You can also download the database with the settings in the synOCR GUI. However, this can only be restored via the terminal and does not yet contain the statistics in DSM6.
    These are stored in DSM6 in this file: /usr/syno/synoman/webman/3rdparty/synOCR/etc/counter

Please tell us how it worked out.
 
  • Like
Reaktionen: HUHA und Struppix

HUHA

Benutzer
Mitglied seit
09. Apr 2020
Beiträge
10
Punkte für Reaktionen
9
Punkte
53
Hello.
I have the Hyperbackup installed and do a backup at every 2 days of Synocr.
I created a Hyperbackup of Synocr on a USB Drive.
I copied all the files from profiles of Synocr to the Usb Drive.
I copied all the files from /usr/syno/synoman/webman/3rdparty/synOCR to usb Drive

I manually update to Synocr 1.4.5 and it was requesting python3. i install python3, then Synocr 1.4.5 and was OK.
I made a test with one PDF file and it changed the filename.
I updated to DSM 7.01 .
After the update to DSM7.01 it ask me to uninstall Python3 because now is already a part of DSM 7 .

Installed Synocr 1.4.5 for DSM7.
Run Synocr once from task scheduler as root.
My profiles had dissapear from SynOcr. My counter had dissapear. I was looking now on my usb drive and I see that what I copied from /usr/syno/synoman/webman/3rdparty/synOCR previous to the update, is not copied, the structure of these folders are not the same like /usr/ syno/synoman/webman/3rdparty/synOCR and a lot of files are missing including the counter one.
I bring back my profiles with a restoration from HyperBackup.
After the update to DSM 7.2.2-72806 Update 1, I had to uninstall docker, because "Container Manager is installed. Go to Package Center to repair the dependent packages and uninstall Docker."
After this update I see that my counter is back on SynOCR 1.4.5
Update finished.
Tested with 1 file and the file got renamed.

All the time my files from the 6 profiles had stayed in the same location. They were not touch by the updates.

Thank you.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.562
Punkte für Reaktionen
1.388
Punkte
234
Thank you so much for sharing all the details about your solution! It's great to hear that SynOCR is working again.
It's good to know that your profiles and files remained intact during the updates.
If you run into any other issues, feel free to reach out to us - we'd be happy to help!
 
  • Like
Reaktionen: HUHA

Turner15

Benutzer
Mitglied seit
21. Aug 2013
Beiträge
33
Punkte für Reaktionen
6
Punkte
8
Moin, ich habe mein System von der DS218+ (DSM6.2) auf DS423+ (DSM 7.2.2) migriert.

Seitdem habe ich Probleme die gescannten PDFs ablegen zu können. Im Log erkenne ich: "/usr/local/bin/ocrmypdf" nicht verfügbar ist, bzw leer sein soll.
Wie bekomme ich die Datei richtig erstellt?

Ich wäre über Hilfe dankbar...

Gruß Turner
 

Anhänge

  • log.txt
    6,3 KB · Aufrufe: 0

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.562
Punkte für Reaktionen
1.388
Punkte
234
Hast du noch andere Container laufen?
Sonst würde ich mal Docker oder den ContainerManager deinstallieren und neu installieren. Vielleicht ist da etwas bei der Migration kaputt gegangen.

Alternativ …
  • das OCRmyPDF-Image im Containermanager löschen
  • in der synOCR GUI mal ein anderes Image wählen (z.B. latest)
 

Turner15

Benutzer
Mitglied seit
21. Aug 2013
Beiträge
33
Punkte für Reaktionen
6
Punkte
8
Moin, ich habe sonst nur noch den container von Dir (synocr-tools) am laufen.

Gruß Turner
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.562
Punkte für Reaktionen
1.388
Punkte
234
Der ist Quatsch. Das ist nur ein Überbleibsel aus der Entwicklung. Dann am besten die Images löschen und den Container Manager neuinstallieren.
 

Turner15

Benutzer
Mitglied seit
21. Aug 2013
Beiträge
33
Punkte für Reaktionen
6
Punkte
8
Moin, @geimist vielen lieben Dank für Deine Hilfe!

das deinstallieren des Container Manager und Neuinstallation desgleichen, hat die Lösung gebracht!
Alle Dokumente wurden ohne probleme in den jeweiligen Profilen gelesen & in den richtigen Ordner abgelegt!!!

Gruß Turner
 
  • Like
Reaktionen: geimist

guidovg

Benutzer
Mitglied seit
26. Nov 2011
Beiträge
148
Punkte für Reaktionen
51
Punkte
34
Aktuell klappt die Erkennung und Umbenennung mit synOCR sehr gut. Alle Dokumente werden nach dem Prozess in _OUTPUT abgelegt, wenn sie keiner Regel entsprechen. Wenn eine Regel passt landen sie (aus historischen Gruenden) im Ordner _ORGANIZED, oder wenn es einen speziellen Ordner gibt sollen sie direkt verschoben werden.

Hierzu verwende ich folgenden Script-Part:
YAML:
    targetfolder: /volume1/dokumente/Vertraege/Anbieter_xyz/10_Rechnungen/
    postscript: mv "${output}" "${output%/*}/$(echo "${output##*/}" | sed 's/ \+/_/g')" | sh /volume1/entwicklung/syn_scripts/write_to_weblog_db.sh ${output%/*} $NewName

Die write_to_weblog_dh.sh schreibt die Daten in eine SQL-Tabelle, die ich dann per PHP als Website anzeigen lassen kann, damit alle im Haushalt per iPad sehen können, wo die Scans gelandet sind. (Anmerkung: paperless ist im Test aber noch nicht im Haushalt akzeptiert ;))

Jetzt mal eine Frage an die Skript-Profis. Warum kann ich mit ${output%/*} den neuen Ordner übergeben, erhalte aber keine Ausgabe mit ${output##*/} für den Dateinamen, sondern muss $NewName verwenden?
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.562
Punkte für Reaktionen
1.388
Punkte
234
paperless ist im Test aber noch nicht im Haushalt akzeptiert ;)
Nur konsequent 😜

Jetzt mal eine Frage an die Skript-Profis. Warum kann ich mit ${output%/*} den neuen Ordner übergeben, erhalte aber keine Ausgabe mit ${output##*/} für den Dateinamen, sondern muss $NewName verwenden?
Nette Umsetzung mit postscript.

Zu deiner Frage:
Am Anfang benutzt du ja "${output##*/}". Also scheint die Variable ja zu passen.
Ich würde aber auf jeden Fall die Parameter (Variablen) für dein Script maskieren, damit sie korrekt separiert werden können.
Liegt es vielleicht daran?
Und fehlt bei $NewName nicht noch die Fileextension (was für das Problem nicht relevant sein sollte?
 
  • Like
Reaktionen: guidovg

guidovg

Benutzer
Mitglied seit
26. Nov 2011
Beiträge
148
Punkte für Reaktionen
51
Punkte
34
@geimist zu dem Punkt mit der Fileextension, ja die fehlt, aber da es hier nur um ein visuelles LOG geht, ist das vernachlässigbar. Was meinst Du mit maskieren? Anführungszeichen?

UPDATE: Manchmal steht man so dicht vor der Wand, dass man die Tapete nicht mehr sieht. Die Anführungszeichen waren es. Habe die Zeile umgebaut und nun:

YAML:
sh /volume1/entwicklung/syn_scripts/write_to_weblog_db.sh "${output%/*}" "$(echo "${output##*/}" | sed 's/ \+/_/g')"

Poppt es wie Seuche! (y)
 
Zuletzt bearbeitet:
  • Like
Reaktionen: Struppix und geimist

guidovg

Benutzer
Mitglied seit
26. Nov 2011
Beiträge
148
Punkte für Reaktionen
51
Punkte
34
Gibt es eine Möglichkeit eine Regel zu definieren, die nur dann greift, wenn alle anderen Regeln nicht passen?
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
884
Punkte für Reaktionen
187
Punkte
63
Hey,

vom Grundsatz per Regel wüsste ich nicht. Man kann zum heutigen Zeitpunkt keine Regeln in Beziehung zueinander setzen, außer über die Regel selbst.

Versuche mal folgendes:
Erstelle ein zusätzliches Profil, und benenne es so, dass es als aller letztes ausgeführt wird, zB. XXX....
Die Abarbeitung der Profile erfolgt alphabetisch bzw. chronologisch.
Bei diesem Profil trägst Du den Output als Input ein, der bei den anderen Profilen / Dokumenten quasi als Sammler dient, wenn keine Regel greift / zutrifft.

Karsten
 
  • Like
Reaktionen: guidovg und geimist


 

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