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.
Moin, ich habe eine Datei, die leider nicht bis zum Ende abgearbeitet wird. Laut Log läuft synOCR auf folgenden Fehler. Die Datei wurde von mir, wie sonst auch, mit meinem Drucker als PDF-Dokument eingescannt und dann durch synOCR laufen gelassen.
Code:
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● STEP 2 - SEARCH TAGS / RENAME / SORT: ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/pypdf/_reader.py", line 322, in __init__
self.read(stream)
File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/pypdf/_reader.py", line 1504, in read
self._find_eof_marker(stream)
File "/usr/syno/synoman/webman/3rdparty/synOCR/python3_env/lib/python3.8/site-packages/pypdf/_reader.py", line 1568, in _find_eof_marker
raise PdfReadError("EOF marker not found")
pypdf.errors.PdfReadError: EOF marker not found
ERROR at line 2353: pagecount_latest=$( py_page_count "${input}" )
./synOCR.sh: line 2368: ERROR at line 1808: python3
ERROR at line 2353: python3: syntax error in expression (error token is "at line 1808: python3
ERROR at line 2353: python3")
@Gthorsten
Kannst du dir einen Reim zu diesem Fehler machen?
@Nils_
Könntest du dieses Dokument privat zur Verfügung stellen? Zudem auch bitte das vollständige Log (woraus man einige Umgebungsparameter ableiten kann).
Einen persönlichen Uploadlink findest du in meiner Signatur.
Das vollständige Log habe ich über den Upload zur Verfügung gestellt. Die Datei selber kann ich leider nicht teilen, da diese viele sensible Informationen (nicht von mir selber) enthält. Möglicherweise hilft dir ja auch schon das Logfile.
Das Log hat leider nichts erhellt, aber so muss ich nicht jedes Detail nachfragen.
Und dieser Fehler tritt nur bei diesem Dokument auf?
Ich komme da im Blindflug dem Problem nicht auf die Schliche.
Was du aber mal noch ins Blaue versuchen könntest:
Stell mal in der GUI das Image jbarlow83/ocrmypdf:v12.7.2 ein. Damit wird das PDF z.T. anders gerendert.
Ich habe schon etliche Versionen von ocrmypdf (16.3.0; 16.2.0; 16.1.2; 16.0.2; 15.4.4) durchprobiert und kein Erfolg gehabt. Mit der 12.7.2 hat der Vorgang fast 10 Minuten gedauert, aber er ist durchgelaufen. Die synOCR Gui hat von dem Ende allerdings nichts mitbekommen und lief unendlich weiter. Das einzig Ärgerliche ist, dass beim Markieren von Text im Dokument, die Markierung total verschoben ist. Dieser Fehler ist erst in einer viel neueren ocrmypdf-Version behoben. Der Fehler tritt nur mit diesem Dokument auf.
Das einzig Ärgerliche ist, dass beim Markieren von Text im Dokument, die Markierung total verschoben ist. Dieser Fehler ist erst in einer viel neueren ocrmypdf-Version behoben.
Ich nutze ausschließlich die Version v12.7.2, weil sie meines Erachtens am stabilsten läuft. Deinen Fehler kann ich da nicht nachstellen. Du meinst, dass der unsichtbare OCR-Text nicht mit dem sichtbaren (gescannten) Text deckungsgleich ist?
Folgende OCR-Parameter nutze ich. Kannst du mal wenigstens den letzten (--pdf-renderer hocr) bei dir setzen und probieren, ob du immer noch dieses Problem mit der Markierung hast? --jobs 4 --remove-background --rotate-pages --rotate-pages-threshold 5 -dc --skip-text --clean-final -l deu --jpeg-quality 70 --png-quality 70 --jbig2-lossy --optimize 3 --author John Doe --pdf-renderer hocr
Ja, du hast Recht das Image musste erst geladen werden. Mit dem zusätzlichen Parameter "--pdf-renderer hocr" sind der unsichtbare und der sichtbare Text, mit der ocrmypdf Version 12.7.2, deckungsgleich. Vielen Dank für deine Hilfe!
Hi, ich bin neu hier und hoffe in diesen Tread richtig zu sein. Ich bin begesitert von SynOCR als GUI mit dem YAML Editor beschäftige ich mich nun gut 14-Tage, langsam verstehe ich es ein wenig und komme mit ein paar Sachen zu meinen Ziel. Jetzt aber zu meiner Frage - Es tut mir leid wenn sie oft beantwortet wurde, ich hatte mit suchen in den Foren bisher keine konkrete Antwort gefunden.-
Nachdem meine Dateien erstellst worden sind, begannen diese erst mit einen [LEERZEICHEN], hier war in der GUI unter "Tags im Dateinamen kennzeichen" mit einem LEERZEICHEN hinterlegt. Als ich das LEERZEICHEN raus gelöscht habe, begannen meine Dateien ohne Leerzeichen, allerdings sind jetzt mein §tagname_regex funde hintereinanderweg geschrieben, diese hätte ich allerdings schon gern durch ein Leerzeichen getrennt. Mit den Datum aus der GUI als beginn zu starten möchte ich nicht. Derzeit ist bei Rename OCR-Syntax "§tag_§docr.§mocr.§yocr4" hinterlegt.
Ich habe nie eine Routine eingebaut, um diesen Fall abzufangen.
Ein Workaround bestünde in einem Postskript, mit dem man führende Leerzeichen des Zieldateinamens entfernen würde.
Man kann das Postscript in jeder Regel angeben, oder man erstellt wie folgend eine Regel, die immer greift (hab es jetzt nicht getestet):
Es gibt einen Nachteil bei dieser Methode: In der Variable "${output}" ist der letzte Zielpfad gespeichert. Wenn aber bei einem Dokument mehrere Regeln mit unterschiedlichen Zielpfaden greifen, werden die führenden Leerzeichen nur bei dem letzten Dokument entfernt, da das Postscript (wie der Name schon vermuten lässt) nur am Ende ausgeführt wird.
Gibt es bereits ein Programm/Anwendung um Ordner zu überwachen? Mir schwebt eine Benachrichtigung (idealerweise E-Mail) vor, sobald eine neue Datei im Errorfiles-Ordner landet.
Und schon wieder eine Frage, ich habe eine Datei in der der Name "dkb" nur klein durch die E-Mail-Adresse im searchfile / Inhalt vorkommt. Folglich (da serachstring + filename (?i)(DKB) ist) bekomme ich im Dateinamen nur "dkb" kleingeschrieben ausgegeben, ich würde dies aber gern abfangen, sodas in diesen Profil immer bei gefunden "dkb" / "DKB" DKB Großgeschrieben im $tagname_RegEx ist.
Gibt es da schon eine Lösung?
Das Problem ist, dass es in den meisten Dokumenten dieses Unternehmens das Wort DKB großgeschrieben vorkommt und nur in einer Art klein geschrieben, ich versuche es mal mit einer Subrule und nehme tagname_Regex raus, setze es hart mit der Ober-Regel "DKB" im searchstring und in der Subrule "dkb". Danke erstmal für die schnelle Antwort.
Nun meine Frage:
Gibt es bereits ein Programm/Anwendung um Ordner zu überwachen? Mir schwebt eine Benachrichtigung (idealerweise E-Mail) vor, sobald eine neue Datei im Errorfiles-Ordner landet.
ich habe mal etwas gebastelt. Ich bin jetzt nicht der Profi im "scripten", deshalb etwas einfacher.
Dieses Script zB. im Homes Verzeichnis des Users ablegen, und im Aufgabenplaner ein Benutzer definiertes Script anlegen.
Bei mehreren Profilen / Usern entsprechend mehrere anlegen.
Code:
#!/bin/bash
# Bitte die 4 Variablen mit Deinen spezifischen Angaben befüllen
# Bitte prüft zuvor ob das Versenden von eMails funktioniert
USEREMAIL="User@mail.com" #Mail des Users ==> DSM Nutzer, zb. admin
USER="admin" #Name des entsprechenden Users ==> DSM Nutzer, zb. admin
ERRORFILES="/volume1/download/_Scan/_INPUT/ERRORFILES" #Verzeichnis des Users für Error Files aus synOCR Profil ==> DSM Nutzer, zb. admin
TXTFILE="/volume1/homes/$USER/Mail_Text_Ordnerueberwachung.txt" #Mail Text der erzeugt wird im Homes Verzeichnis des Users ==> DSM Nutzer, zb. admin
rm $TXTFILE
for file in $ERRORFILES/*.pdf; do
if [ -f "${file}" ] ; then
echo Subject: Ordnerueberwachung >>$TXTFILE
echo >>$TXTFILE
echo Hallo "${USER}", >>$TXTFILE
echo >>$TXTFILE
echo Du hast neue Dokumente, die nicht von synOCR verarbeitet werden konnten, im Ordner ERRORFILES. >>$TXTFILE
echo >>$TXTFILE
echo Dein synOCR Team >>$TXTFILE
echo >>$TXTFILE
echo Folgende Dateien: >>$TXTFILE
find $ERRORFILES -type f -name "*" | grep -v '@eaDir'>>$TXTFILE
/usr/sbin/sendmail $USEREMAIL < $TXTFILE
exit 0
fi
done
Falls jemand das Script verbessern / optimieren mag immer zu.
Guten Abend, und schon wieder ärgert mich ein anderer Kontoauszug, diesmal scheint es so, dass das Dokument im ursprung mit einen Passwort versehen ist. Ich bekomme eine ERRORDATEI mit folgenden LOG:
"
File "/usr/local/lib/python3.9/dist-packages/ocrmypdf/pdfinfo/info.py", line 902, in __init__
raise EncryptedPdfError() # Triggered by encryption with empty passwd
ocrmypdf.exceptions.EncryptedPdfError: Input PDF is encrypted. The encryption must be removed to
perform OCR.
For information about this PDF's security use
qpdf --show-encryption infilename
You can remove the encryption using
qpdf --decrypt [--password=[password]] infilename
← OCRmyPDF-LOG-END
"
Wenn ich ein PDF-Editor nehme und das Passwort entferne läuft alles einwandfrei, könnte man das in einer Prozedur abfangen und automatisch beim SynOCR-Lauf entfernen? Hatte einen Beitrag aus 2012 gefunden der ähnlich war aber da gab es keine Lösung.
Ich bin neu hier und habe voller Begeisterung SynOCR auf meinem DS 1821+ installiert.
Es scheint auch alles soweit zu laufen - nur krieg ich die YAML Regeln nicht zum laufen.
Ich sehe auch den blauen Button "Regeldatei erstellen / konvertieren" gar nicht, welcher in der Installationsanleitung zu sehen ist.
Stattdessen habe ich versucht den Pfad der Regeldatei einfach in die "zu suchende Tags" Box einzufügen. Leider ohne Erfolg, wie es scheint. Was mache ich falsch?
Edit: Mir hat wohl die Line # synOCR_YAMLRULEFILE in der YAML gefehlt.
Jetzt scheint die Regeldatei erkannt zu werden. Leider wurde die Datei nach wie vor nur unbennant mit vorangehenden Datum - aber nicht nach den Regeln in der YAML.
Eigentlich sollten die Dateien nach den Regeln speziell umbenannt werden und dann in die jeweiligen Zielorder auf dem NAS verteilt werden. Jedoch scheint auch der Zielordner nach Standard-Umbennenung nicht der korrekt verteilt, sondern einfach in den per GUI fix definierten Output Order, abgelegt zu werden.