synOCR synOCR - GUI für OCRmyPDF

Pengo

Benutzer
Mitglied seit
20. Jul 2020
Beiträge
5
Punkte für Reaktionen
0
Punkte
1
Kurze Info von mir. Tatsächlich wie vermutet durch den Umzug der Syno und anschließende Wiederherstellung ist ein alter Ordner von synOCR im Verzeichnis /volume1/@appstore/ geblieben. Habe den Ordner gelöscht, neu installiert und es funktioniert alles bestens.

Danke von mir für deine Hilfe und das Programm.
 

Nicky_1818

Benutzer
Mitglied seit
31. Jan 2014
Beiträge
90
Punkte für Reaktionen
4
Punkte
8
Hallo Gemeinde :)

ist es irgendwie realisierbar, dass eine bestehende Dateien- und Ordnerstruktur abgearbeitet wird? Ich würde sehr gern in einem Rutsch sämtliche Dokumente durch den Scanner schicken wollen. Da jedoch die Ordnerstruktur ziemlich umfangreich ist und je Unterordner nur 5-10 Dokumente beinhaltet, dauert es eeeeewig die Dateien hin und her zu verschieben, bzw. für jeden Ordner die Konfiguration des Scanners anzupassen :(

Gruß Dominique
 

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.948
Punkte für Reaktionen
100
Punkte
134
Der Wunsch wurde hier mehrmals deponiert mit dem Ergebnis, dass es (noch?) nicht vorgesehen ist.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234
Mir ist bewusst, dass es viele Funktionswünsche gibt, die noch nicht realisiert worden sind. Bitte bedenkt, dass ich kein Profi bin - entsprechend viel Zeit benötige ich auch, um neue Funktionen zu implementieren. Zeit und Kraft sind nun einmal begrenzt.

Bitte habt Nachsicht mit mir, wenn es nur nach und nach neue Features gibt (die zu dem mutmaßlich von den meisten gewünscht werden). Der angesprochene Usecase ist sicherlich aufwändig, aber ist in der Regel eine einmalige Angelegenheit, während ich mich mit synOCR auf den kontinuierlichen Workflow konzentriere. Das soll aber nicht heißen, dass das Feature nicht mal kommt.
Aktuell sind noch ein paar Bugfixes für die aktuelle Version notwendig.

Vielen Dank für euer Verständnis
 
  • Like
Reaktionen: peterhoffmann

ulli_um

Benutzer
Mitglied seit
20. Jun 2012
Beiträge
29
Punkte für Reaktionen
0
Punkte
1
Hi Dominique und Texnixo,
Warum geht ihr nicht in euren Ordner auf oberster Ebene gebt in der suchmaske * ein, dann werden alle files gelistet. Dann könnt ihr alle auf einmal kopieren und in den synocr ordner reinkopieren.
Die wieder einsortierung macht dann die neue super tag Funktion;)

Viele Grüße,
Ulli
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234
Wenn aber die bisherige Struktur erhalten bleiben soll, kann ich es schon verstehen.

Meine Idee für ein Skript:
  1. suche Ordner mit PDFs, vergebe dem Pfad eine ID nach wiederzuerkennenden Muster und füge diese den PDFs voran
  2. alle Pfade und entsprechende IDs kommen in eine Textdatei
  3. verschiebe die umbenannten PDFs in den Inputorder und lasse diese von synOCR verarbeiten (keine Umbenennung / keine Einsortierung)
  4. fertige PDFs werden im Output-Ordner wieder anhand der ID in die ursprünglichen Pfade kopiert und zurück benannt
Das sollte mit wenigen Zeilen Code als stand alone Skript zu machen sein.
 
  • Like
Reaktionen: TeXniXo

mamema

Benutzer
Mitglied seit
23. Okt 2009
Beiträge
667
Punkte für Reaktionen
132
Punkte
63
unser unbezahler Profi der sich zum Laien macht.....
Kommt mir eine Idee bzw. Frage auf, weil Du ja selbst sagst "Du bist allein."
Warum das Projekt nicht auf github internationalisieren?
Die Synology Community ist ja weltweit.......
Vielleicht bekommst Du dort dann Programmierunterstützung?!
 
  • Like
Reaktionen: TeXniXo

TeXniXo

Benutzer
Mitglied seit
07. Mai 2012
Beiträge
4.948
Punkte für Reaktionen
100
Punkte
134
Die Idee von @mamema finde ich vom Ansatz her wirklich gut und lässt sich sozusagen beliebig "erweitern" (in welcher Richtung ist halt eine Frage).

Nach wie vor sehe ich in synOCR enorme Potentiale, weitere Features hier implementieren zu lassen. Aber ja, wie wir wissen, sind die Rahmenbedingungen relativ eng. Unter diesen Umständen so ein Tool rauszubringen ist schon alleine unglaublich! Danke an dieser Stelle!
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234

mördock

Benutzer
Mitglied seit
04. Jan 2012
Beiträge
806
Punkte für Reaktionen
17
Punkte
44
Hallo,

Ich habe auch das Problem mit dem (1) hinter der fertigen Datei. Allerdings tritt bei mit das Phänomen nicht bei jeder Datei auf. Die Ausgangsdatei liegt nur einmal vor, es gibt keine Datei mit identischem Namen im Zielordner.
Hängt das ebenfalls mit dem fehlenden Umbenennungssyntax zusammen und wird demnächst gefixt?
#Mördock#
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
100
Punkte für Reaktionen
23
Punkte
24
Die Google-Suche nach "synocr Github" hat als ersten Treffer das Repo.
Aber ja, ich hatte auch ursprünglich auf Github gesucht. Dennoch ist es, meiner Meinung nach, die Entscheidung desjenigen, der bereits sehr viel Arbeit reingesteckt hat, wo er sein Projekt hosten möchte.
Ich persönlich bin froh über das was geimist bereits geleistet hat und derzeit auch noch tut. Meta-Infos, wie "wo ist das gehostet?", interessieren mich persönlich da relativ wenig sofern der Inhalt einfach nice ist.
 

mamema

Benutzer
Mitglied seit
23. Okt 2009
Beiträge
667
Punkte für Reaktionen
132
Punkte
63
Die Google-Suche nach "synocr Github" hat als ersten Treffer das Repo.

Nunja, mir ging bzw. geht es darum die Community zu erweitern um die Hilfe für Stephan zu verbessern. Niemand der das Tool nicht kennt sucht nach "synocr". Ich hab mal nach "ocr synology nas" gesucht. Erste Treffer aus DE Platz 3, der nichts zu synocr enthält, weil im englischsprachigen Raum das Tool wohl unbekannt ist. THIS!
 

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
100
Punkte für Reaktionen
23
Punkte
24
Nunja, mir ging bzw. geht es darum die Community zu erweitern um die Hilfe für Stephan zu verbessern.
Ja, das hast du natürlich recht. Ich bin bei Community-Projekten immer ein bisschen empfindlich wenn Leute versuchen dem Hauptakteur vorzuschreiben was und wie er es tun soll. Sorry dafür.
Um die Community zu vergrößer und mitstreiter zu finden ist GitHub natürlich eine super Sache. Mal eben ein Fork, 2-3 Sachen geändert und zurück mit einem PR geht da ziemlich schnell und die meisten Devs haben da eh einen Account.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.669
Punkte für Reaktionen
1.566
Punkte
314
Auch wenn ich diese App nicht nutze und ich hier nur sporadisch mitlese, möchte ich an dieser Stelle doch gerne kurz in die Diskussion einsteigen, denn...

Bitte bedenkt, dass ich kein Profi bin - entsprechend viel Zeit benötige ich auch, um neue Funktionen zu implementieren. Zeit und Kraft sind nun einmal begrenzt.

.... dieser Satz könnte nämlich von mir sein. Wir - und ich sage jetzt bewusst „WIR“ - mögen zwar keine Profis sein, aber wir haben den Ehrgeiz und den Anspruch an uns selbst, es trotz alledem selber hinzubekommen, auch wenn es mal länger dauert oder man am Ende zu der Erkenntnis kommt, das es doch nicht so funktioniert, wie man es gerne hätte. Ich für meinen Teil nehme zwar gerne Hilfe an, lasse mir Codeoptimierungen zeigen oder mich auch eines besseren belehren. Aber am Ende ist und bleibt es Code den ich verstehen muss, ich muss wissen wie das Programm arbeitet und wo, was und zu welcher Zeit etwas passiert. Und genau hier würde ich mich mit Github schwer tun.

Dennoch ist es, meiner Meinung nach, die Entscheidung desjenigen, der bereits sehr viel Arbeit reingesteckt hat, wo er sein Projekt hosten möchte.

... und da bin ich vollkommen deiner Meinung. Letzten Endes muss es Geimist selbst entscheiden. Ich sehe hier nur die Gefahr, das er diesen Schritt vielleicht tun würde um euren Anforderungen gerecht zu werden... was jetzt überhaupt nicht bös gemeint ist. Denn auf der einen Seite erhält man so vielleicht bald den Mehrwert, den sich alle hier erhoffen, auf der anderen Seite würde ich die Gefahr sehen, das Geimist über kurz oder lang den Code nicht mehr verstehen würde (Wobei ich jetzt nicht deine Kompetenz in Frage stellen wollte). Von daher tendiere ich eher dazu, lieber auf die ein oder andere Funktion zu verzichten, dafür aber auf lange Sicht noch einen tollen Support von ihm zu erhalten.

Ich bin bei Community-Projekten immer ein bisschen empfindlich wenn Leute versuchen dem Hauptakteur vorzuschreiben was und wie er es tun soll.

Das passiert leider häufiger als du denkst und manchmal bekommt man als Developer das Gefühl, das man von seinen Prinzipien derart abweichen muss nur um es genau so zu machen, wie andere es gerne hätten. Sicherlich soll man sich und seine Programmierkünste weiter entwickeln, Ideen und Vorschläge annehmen und umsetzten, aber man muss auch realistisch bleiben...

Wir - und ich sag schon wieder „WIR“ - tun das hier nicht des Geldes wegen oder weil wir berühmt werden wollen... wir machen das, weil wir Bock drauf haben. (Bitte korrigie mich, wenn du das anders siehst, geimist)

Tommes
 
  • Like
Reaktionen: geimist

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234
Wir … mögen zwar keine Profis sein, aber wir haben den Ehrgeiz und den Anspruch an uns selbst, es trotz alledem selber hinzubekommen …
Bedingt gebe ich dir recht. Die Funktion steht bei mir über dem Ehrgeiz. Aber da komme ich schon zum nächsten Punkt:
Ich für meinen Teil nehme zwar gerne Hilfe an, lasse mir Codeoptimierungen zeigen oder mich auch eines besseren belehren. Aber am Ende ist und bleibt es Code den ich verstehen muss, ich muss wissen wie das Programm arbeitet und wo, was und zu welcher Zeit etwas passiert. Und genau hier würde ich mich mit Github schwer tun.
Du sprichst mir aus der Seele. Da bekommt man dann ein PR und muss erst einmal lange forschen, was dadurch denn eigentlich passiert. Im schlechtesten Fall hat sich der PR-Autor darüber keine Gedanken gemacht …

Aber ich möchte noch einmal betonen, dass das ja keine Zusammenarbeit ausschließt.
Ich klammere auch nicht an dem Projekt. Wenn es jemand mit mehr Fähigkeiten und Elan schneller voranbringen möchte, lasse ich auch darüber mit mir reden und freue mich über die Ergebnisse ?

PS: @Tommes , da du schon mal da bist: wie wär's, du alter Webprofi ;)
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.541
Punkte für Reaktionen
1.373
Punkte
234
ist es irgendwie realisierbar, dass eine bestehende Dateien- und Ordnerstruktur abgearbeitet wird? Ich würde sehr gern in einem Rutsch sämtliche Dokumente durch den Scanner schicken wollen. Da jedoch die Ordnerstruktur ziemlich umfangreich ist und je Unterordner nur 5-10 Dokumente beinhaltet, dauert es eeeeewig die Dateien hin und her zu verschieben, bzw. für jeden Ordner die Konfiguration des Scanners anzupassen :(

Meine Skript-Idee für diesen Workflow habe ich mal in Code gegossen.

! ! ! BITTE ZUNÄCHST EIN BACKUP DEINES QUELLORDNERS ANLEGEN ! ! !

Dieses Skript (die 3 Ordnervariablen müssen angepasst werden)
  1. durchsucht alle Verzeichnisse des angegebenen Ordners nach PDF-Dateien
  2. verschiebt diese in den angegebenen synOCR-INPUT-Ordner
  3. versieht diese mit einer ID
  4. und erstellt eine Indexdatei
Nach dem ersten Aufruf lässt man synOCR seine Arbeit machen (ohne Umbenennungssyntax und Einsortierung in regeldefinierte Ordner, d.h. alle fertigen PDFs liegen im synOCR OUTPUT-Ordner)
  1. Das Skript muss jetzt erneut aufgerufen werden
  2. es erkennt die vorhandene Indexdatei
  3. verschiebt die fertigen PDFs an ihren Urspungsort
  4. entfernt die ID aus dem Dateinamen
  5. und benennt die Indexdatei um
Bash:
#!/bin/bash
# /volume3/DEV/SPK_DEVELOPING/synOCR_BUILD/multidir_workflow.sh

SOURCEPARENTDIR="/volume1/…"
SYNOCR_INPUT="/volume1/…"
SYNOCR_OUTPUT="/volume1/…"

#-----------------------------------|
# ab hier nichts mehr ändern        |
#-----------------------------------|

preprocess() {
# verschiebe Quelldateien nach SYNOCR_INPUT:
    IFS=$'\012'
    for i in $(find "${SOURCEPARENTDIR}" -iname "*.pdf" -type f); do
        IFS=$OLDIFS
        FILEPATH=$(dirname "$i")
        FILENAME=$(basename "$i")
        ID="$(date +%s%N)_"
  
    # erstelle Indexeintrag:
        echo "${ID}§_§${FILEPATH}§_§${FILENAME}" >> "$INDEXFILE"
  
    # verschiebe Quelldatei:
        mv "$i" "${SYNOCR_INPUT}${ID}${FILENAME}"
    done
}

postprocess() {
# verarbeitete Dateien zurücksortieren:
    cat "$INDEXFILE" | while read data ; do
        FILEPATH=$(echo $data | awk -F'§_§' '{print $2}')
        FILENAME=$(echo $data | awk -F'§_§' '{print $3}')
        ID=$(echo $data | awk -F'§_§' '{print $1}')
      
        FILEHOME="${FILEPATH}/${FILENAME}"
        OCRFILE=$( find "${SYNOCR_OUTPUT}" -iname "${ID}*.pdf" )
        mv "$OCRFILE" "$FILEHOME"
    done
  
    mv "$INDEXFILE" "${INDEXFILE}_finish"
}

OLDIFS=$IFS

APPDIR=$(cd $(dirname $0);pwd)

if [ ! -d "$SOURCEPARENTDIR" ] || [ ! -d "$SYNOCR_INPUT" ] || [ ! -d "$SYNOCR_OUTPUT" ] ; then
    echo "Pfad ungültig!"
    exit
fi

SOURCEPARENTDIR="${SOURCEPARENTDIR%/}/"
SYNOCR_INPUT="${SYNOCR_INPUT%/}/"
SYNOCR_OUTPUT="${SYNOCR_OUTPUT%/}/"

INDEXFILE="$(cd $(dirname $0);pwd)/multidir_workflow_INDEX.txt"

if [ ! -f "$INDEXFILE" ] ; then
    touch "$INDEXFILE"
    echo "Index wird erstellt ? verschiebe Dateien in den Arbeitsordner"
    preprocess
else
    echo "Index bereits vorhanden ? sortiere verarbeitete Dateien zurück"
    postprocess
fi
 

Anhänge

  • multidir_workflow.zip
    968 Bytes · Aufrufe: 31
Zuletzt bearbeitet:


 

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