synOCR synOCR - GUI für OCRmyPDF

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
Hallo zusammen,

ich mal wieder ?. Ist es normal das wenn 10 Dateien im Quellordner liegen, ich 10x auf Starten drücken muss, damit alle Dateien abgearbeitet werden? Kann ich nicht alle Dateien nacheinander durch jagen lassen?

Gruß Chris
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Nein, das ist nicht normal.
Was steht denn im Aufklappmenü über die Anzahl der zu verarbeitenden Dokumente?
 

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
@geimist Ich sehe gerade folgendes im log:
Code:
expr: syntax error
Usages: synosetkeyvalue file key value
Failed at 1229: synosetkeyvalue ./etc/counter pagecount $(expr $(get_key_value ./etc/counter pagecount) + $pagecount_latest)
    -----------------------------------
    |     synOCR exit with ERROR!     |
    -----------------------------------

Leider gibt es nicht wirklich mehr Info an der Stelle. Hast du da eine Idee? Aber er verschiebt die Dokumente trotzdem in den richtigen Ordner, und das OCR klappt auch. Also an sich alles in Ordnung.

@driftkingisback: Ich habe einen Brother ADS-2700W Dokumentenscanner. Dort jag ich meine Dokumente durch und lasse diese direkt auf dem Synology ablegen. Jede Stunde läuft dann synOCR und verschiebt mir dann anhand der Rules Datei meine Dokumente.

Mein Aufbau sieht folgendermaßen aus: \\NAS\Dokumente\ADS-2700W (das ist mein Scan Input) durch die Regeln werden dann alle files nach "../Da/wo/es/hin/soll"
 

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
Ungern da dort alles im Klartext drinsteht und ich das nicht alles unkenntlich machen möchte. Es gibt genau 3 Stellen mit Error nämlich diese zwei und das kein exiftool installiert ist.

Der Fehler sagt ja in Zeile 1229 in synOCR.sh ist im aktuellen Gitstand nichts. Denke mal das in der Version die ich habe dort eben der Dateizähler anfängt was ja der fehlermeldung nach zu urteilen auch plausibel ist. Ich bekomme noch den Eintrag "INFO: (PushBullet-TOKEN not set)" heißt bis dahin ist alles gelaufen.

Kann also nur hier dran liegen:
Code:
# Dateizähler:
    synosetkeyvalue ./etc/counter pagecount $(expr $(get_key_value ./etc/counter pagecount) + $pagecount_latest)
    synosetkeyvalue ./etc/counter ocrcount $(expr $(get_key_value ./etc/counter ocrcount) + 1)
    echo "                  INFO: (runtime last file: $(sec_to_time $(expr $(date +%s)-${date_start}) ) (pagecount: $pagecount_latest) | all: $(get_key_value ./etc/counter ocrcount) PDFs / $(get_key_value ./etc/counter pagecount) Pages processed up to now)"
# temporäres Arbeitsverzeichnis löschen:
    rm -rf "$work_tmp"

Scheint also als wenn er die UI nicht updaten kann wie viele Dokumente er bisher insgesamt bearbeitet hat. Die Info wäre mir persönlich auch nicht wirklich wichtig.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Ungern da dort alles im Klartext drinsteht …
Es ist trotzdem schwierig, durch ein Schlüsselloch einen Raum zu inspizieren :rolleyes:
Geht es dir um die Tags? Benenne einfach mal das YAML-File um oder kopiere die Regeln aus der GUI. Es ist keine Garantie, dass mir das weiterhilft, aber so kommen wir nicht weiter.
 

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
Ja es geht mir um die Tags wegen Kundennummern etc. Und wie gesagt der Fehler ist exakt beschrieben wo er Auftritt.

Das hier ist eine Beispielregel von mir:

taga6bb27577d1c4a6bad18d3d218054e45:
tagname: "KFZ Versicherung"
targetfolder: "AXA"
condition: all
subrules:
- searchstring: "axa"
isRegEx: false
casesensitive: false
searchtyp: contains
source: content
- searchstring: "2"
isRegEx: false
casesensitive: false
searchtyp: contains
source: content

Das yaml wird generiert anhand meiner Kriterien. Das yaml wurde online validiert und ist valide. Kann also nur inhaltlich falsch sein.

Sollte dir da nun nichts auffallen werd ich mir selbst den SourceCode mal ansehen.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
An der YAML-Datei wirds wohl nicht liegen. Mein Vorschlag, dass du sie deaktivierst, war dahingehend gemeint, dass nichts privates im Log landet.
 

Nico93

Benutzer
Mitglied seit
07. Jul 2020
Beiträge
4
Punkte für Reaktionen
1
Punkte
53
Erstmal vielen Dank für das tolle Paket. Es funktioniert bei mir ohne Probleme (y)

Einen kleinen Hinweis hätte ich noch, wenn du eine neue Version bereitstellst. Beim implementieren eine externen Regel-Datei zur Sortierung musste ich feststellen, dass das Verschieben erst aktiv wird, wenn man die Option "Ziel-PDF in Kategorieordner einsortieren" aktiviert.

Ich konnte keinen Hinweis darauf finden, dass dies zwingend aktiviert werden muss. Vielleicht kann dieser Hinweis ja zukünftig mit in die Vorlage für die Regeldatei aufgenommen werden.
 
  • Like
Reaktionen: geimist

mamema

Benutzer
Mitglied seit
23. Okt 2009
Beiträge
667
Punkte für Reaktionen
132
Punkte
63
Einen kleinen Hinweis hätte ich noch, wenn du eine neue Version bereitstellst. Beim implementieren eine externen Regel-Datei zur Sortierung musste ich feststellen, dass das Verschieben erst aktiv wird, wenn man die Option "Ziel-PDF in Kategorieordner einsortieren" aktiviert.
womit , ohne dass ich es getestet hätte, auch mein "Problem" gelöst sein dürfte. Denn bei mir stand das auf TAG sortieren. Unverschämtheit, dass dann nicht in Kategorieordner sortiert wird. :) . Mir nicht aufgefallen, dass es da etwas zu konfigurieren gab.
 
  • Like
Reaktionen: Nico93

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
@geimist Ich hab mir jetzt mal ein Paket ohne

Code:
# Dateizähler:
    synosetkeyvalue ./etc/counter pagecount $(expr $(get_key_value ./etc/counter pagecount) + $pagecount_latest)
    synosetkeyvalue ./etc/counter ocrcount $(expr $(get_key_value ./etc/counter ocrcount) + 1)
    echo "                  INFO: (runtime last file: $(sec_to_time $(expr $(date +%s)-${date_start}) ) (pagecount: $pagecount_latest) | all: $(get_key_value ./etc/counter ocrcount) PDFs / $(get_key_value ./etc/counter pagecount) Pages processed up to now)"

den Code gebaut, und nun läuft alles Einwandfrei durch. Jetzt werden alle Dokumente erkannt und abgearbeitet
 

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
Wenn du mir ein wenig Hilfestellung gibst kann ich das mal versuchen zu debuggen.
Die frage wäre wo sich der Pfad "./etc/counter" befinden soll? Den gibt es bei mir weder auf der DS718+ noch auf der DS920+ unter etc.
Ich habe diese Datei unter "./tmp/synOCR/counter" gefunden falls das die wäre?!
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Das wäre super.
Der Pfad ist relativ zum Programmverzeichnis.
Das Programmverzeichnis lautet: /usr/syno/synoman/webman/3rdparty/synOCR/

Das counter-File sollte also hier liegen: /usr/syno/synoman/webman/3rdparty/synOCR/etc/counter
 

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
Ich werde mich erst später damit beschäftigen können, aber was ich bisher rausgefunden habe ist, das wenn ich mit meinem normalen admin user "synosetkeyvalue ./etc/counter pagecount 88" ausführe, kommt zwar kein Fehler, aber es wird auch nicht eingetragen. Erst als root user wird es gemacht. Kann es sein das dort irgendwelche Berechtigungen fehlen? Wobei synOCR ja wahrscheinlich als root läuft oder läuft das unter dem normalen User?

Also diese zwei befehle auf putty laufen so durch nd erhöhen den counter auch :/

Code:
synosetkeyvalue ./etc/counter pagecount $(expr $(get_key_value ./etc/counter pagecount) + 10)
synosetkeyvalue ./etc/counter ocrcount $(expr $(get_key_value ./etc/counter ocrcount) + 1)

Wenn ich es so wie im Skript ausführe also "synosetkeyvalue ./etc/counter pagecount $(expr $(get_key_value ./etc/counter pagecount) + $pagecount_latest)" dann kommt ein Fehler. Wäre es denkbar das "$pagecount_latest" nicht initialisiert werden kann und deshalb die Syntax falsch ist?

EDIT: Muss gleich los, aber folgendes habe ich noch herausgefunden:
Code:
test.sh
pagecount_latest=2
synosetkeyvalue ./etc/counter pagecount $(expr $(get_key_value ./etc/counter pagecount) + $pagecount_latest)
synosetkeyvalue ./etc/counter ocrcount $(expr $(get_key_value ./etc/counter ocrcount) + 1)

Result:
bash-4.3# /usr/syno/synoman/webman/3rdparty/synOCR/test.sh
expr: syntax error
Usages: synosetkeyvalue file key value

leider ist linux und bash bzw shell gar nicht so meine Welt.
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.569
Punkte für Reaktionen
1.396
Punkte
234
Kannst du $pagecount_latest mal testweise mit ausgeben lassen?
echo "_${pagecount_latest}_"

Generiert wird die Variable in Zeile 1155 (Version 1.0.2).
pagecount_latest=$(pdfinfo "${input}" 2>/dev/null | grep "Pages\:" | awk '{print $2}')
 

CSchmitt

Benutzer
Mitglied seit
29. Mrz 2018
Beiträge
40
Punkte für Reaktionen
8
Punkte
8
@geimist

Also ich kann dir leider nicht sagen was die Ursache ist, aber ich habe eine Lösung gefunden wie es auch bei mir läuft. Scheinbar hat das Script, mein NAS, wer auch immer Probleme mit "expr".
Wenn ich das synOCR.sh folgendermaßen anpasse:
Code:
# dateizähler
echo "Latest Page count: ${pagecount_latest}"

pagecount_last=$(awk -F "\"" '/pagecount/ {print $2}' /usr/syno/synoman/webman/3rdparty/synOCR/etc/counter )
echo "Last Page count: ${pagecount_last}"

pagecount_new=$(( $pagecount_latest + $pagecount_last))
echo "New Page count: ${pagecount_new}"

ocrcount_last=$(awk -F "\"" '/ocrcount/ {print $2}' /usr/syno/synoman/webman/3rdparty/synOCR/etc/counter )
echo "Last OCR count: ${ocrcount_last}"

ocrcount_new=$(( $ocrcount_last + 1))
echo "New OCR count: ${ocrcount_new}"

synosetkeyvalue ./etc/counter pagecount $pagecount_new
synosetkeyvalue ./etc/counter ocrcount $ocrcount_new
echo "Updated counts in file"

echo "File pagecount: $(awk -F "\"" '/pagecount/ {print $2}' /usr/syno/synoman/webman/3rdparty/synOCR/etc/counter )"
echo "File ocrcount: $(awk -F "\"" '/ocrcount/ {print $2}' /usr/syno/synoman/webman/3rdparty/synOCR/etc/counter )"

dann erhalte ich folgendes Log:
Code:
                  INFO: (PushBullet-TOKEN not set)
Latest Page count: 1
Last Page count: 163
New Page count: 164
Last OCR count: 7
New OCR count: 8
Updated counts in file
File pagecount: 164
File ocrcount: 8

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

Die files werden alle abgearbeitet und es sieht gut aus. Vielleicht kannst du ja was damit anfangen

Gruß Chris
 

markmyway

Benutzer
Mitglied seit
25. Okt 2020
Beiträge
2
Punkte für Reaktionen
0
Punkte
1
Hallo. Ich bin neu im Forum und habe ein Problem mit synOCR. Leider hatte ich einen falschen Pfad bei Zielverzeichnis eingegeben und zwar statt "/volume1/ordner" "/volume1ordner". Das habe ich leider erst nach einiger Zeit bemerkt. Nun finde ich meine ursprünglichen Dokumente bzw. die verarbeiteten Dokumente weder in dem Quellverzeichnis noch in dem (nicht existierenden) Zielverzeichnis /volume1ordner. Gibt es noch eine Chance, dass ich meine Dokumente wiederfinden kann?
 


 

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