synOCR synOCR - GUI für OCRmyPDF

ragman1976

Benutzer
Mitglied seit
10. Jan 2017
Beiträge
45
Punkte für Reaktionen
2
Punkte
8
Hi,

ich wollte diverse Dokumente mit der Option "-srd --redo-ocr -l deu" nochmals scannen, bekomme aber in der log-File folgende Meldung:

Code:
PROCESSING: ➜ 2021-10-26__2021-10-26__Beleg_2021-12-07_083520.pdf (Wed Dec 8 10:13:35 CET 2021)

temp. target file: /tmp/tmp.Wb05jgdtN8/2021-10-26__2021-10-26__Beleg_2021-12-07_083520.pdf



➜ OCRmyPDF-LOG:

-srd --redo-ocr -l deu

--redo-ocr is not currently compatible with --deskew, --clean-final, and --remove-background

← OCRmyPDF-LOG-END



┖➜ failed! (target file is empty or not available)

Gibts da eine alternative Option, oder was ist da faul?

Gruß
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.508
Punkte für Reaktionen
1.344
Punkte
234
Die Meldung ist eindeutig:
-srd --redo-ocr -l deu
--redo-ocr is not currently compatible with --deskew, --clean-final, and --remove-background
Das bezieht sich auf deine ersten Parameter:
-s / --skip-text Skip OCR on any pages that already contain text, but include the page in final output; useful for PDFs that contain a mix of images, text pages, and/or previously OCRed pages
-r / --rotate-pages Automatically rotate pages based on detected text orientation
-d / --deskew Deskew each page before performing OCR

Du solltest also mindestens auf -d verzichten.

Vielleicht kommst du auch mit dem Parameter -f / --force-ocr weiter:
-f / --force-ocr Rasterize any text or vector objects on each page, napply OCR, and save the rastered output (this rewrites the PDF)

--redo-ocr Attempt to detect and remove the hidden OCR layer from files that were previously OCRed with OCRmyPDF or another program. Apply OCR to text found in raster images. Existing visible text objects will not be changed. If there is no existing OCR, OCR will be added.
 

reneh

Benutzer
Mitglied seit
21. Jun 2021
Beiträge
6
Punkte für Reaktionen
1
Punkte
3
Gibt es eigentlich auch eine Möglichkeit die Benamung einer Datei nach der Erkennung im YAML-Regelwerk zu definieren? Also z.B. bei der Regel "Rechnung" soll er den ursprünglichen Dateinamen mit anhängen, bei der Regel "Versicherung" nicht...
 

reneh

Benutzer
Mitglied seit
21. Jun 2021
Beiträge
6
Punkte für Reaktionen
1
Punkte
3
Ok, danke. Kann man evtl. per Command-Line das Haupt-Skript mit verschiedenen Profilen nacheinander starten?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.508
Punkte für Reaktionen
1.344
Punkte
234
Das Startskript (/usr/syno/synoman/webman/3rdparty/synOCR/synOCR-start.sh) führt alle Profile nach einander aus, sofern neue Dateien im jeweiligen Inputordner liegen.
 
  • Like
Reaktionen: Tuxnet

reneh

Benutzer
Mitglied seit
21. Jun 2021
Beiträge
6
Punkte für Reaktionen
1
Punkte
3
Ah okay, dachte es wird immer nur das "aktive" Profil herangezogen. Probier ich mal aus, dann könnte ich das Vorhaben von oben mit zwei Profilen und getrennten Input-Ordnern lösen.
 

Stu

Benutzer
Mitglied seit
21. Nov 2020
Beiträge
4
Punkte für Reaktionen
6
Punkte
53
Habe in den letzten Tagen auch auf DSM 7 aktualisiert - damit auch das hochgeschätzte synOCR in der Beta für DSM 7 von Stephan! Mit diesem Forum/Thread alles - inkl exiftool - sehr gut machbar - top! (y)

Wollte an dieser Stelle schlicht und ergreifend DANKESCHÖN sagen - das Tool und der Support hier sind einfach klasse :cool:

Ich wünsche Euch eine schöne und erholsame Weihnachtszeit!
 

Schrotti

Benutzer
Mitglied seit
10. Okt 2020
Beiträge
22
Punkte für Reaktionen
3
Punkte
3
@Stu
Du hast das exiftool im DSM 7 zum Laufen gebracht?
Ich kriegs seit Wochen nicht hin und habe aufgegeben. Was hast du gemacht?

[edit] eben noch mal von vorne gestartet und nun läufts doch endlich [/edit]
 
Zuletzt bearbeitet:

tek245

Benutzer
Mitglied seit
10. Dez 2021
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Servus, erstmal großes Lob für das Tool, ich finds echt Klasse. Leider scheitere ich seit ein paar Stunden an dem Taggen von Dateien über die Config-Datei. Ihr seid meine letzte Hoffnung, bevor ich aufgebe.

Vorgehen bisher:
  1. Config Datei über GUI erzeugt
  2. Copy&Paste YAML Sample Code
  3. YAML Code verifiziert (Danke für den Link)
  4. OCR einer einfachen Datei manuell über GUI gestartet. (der gesuchte String kommt auf jeden Fall in der Datei vor, ich kann Ihn auch im Debugging-Log finden...)
Die Datei wird sauber OCRt und auch in den Zielordner verschoben. Leider funktioniert aber das Taggen / Umbenennen nicht und ich kann den Fehler einfach nicht finden...

Config Datei:

Code:
tagKfZVersicherung:
    tagname: "KfZVersicherung"
    targetfolder:
    tagname_RegEx:
    condition: any
    subrules:
    - searchstring: janitos
      searchtyp: contains
      isRegEx: false
      source: content
      casesensitive: false

...und hierzu dann folgendes Log (USER rausgestrichen):
Code:
    -----------------------------------
    |    ==> installation info <==    |
    -----------------------------------

synOCR-user:              XXXXXXXXX
synOCR-user is admin:     yes
synOCR-version:           1.1.902
Architecture:             x86_64
DSM-build:                41890
Device:                   920plus (1533824163)
current Profil:           default
DB-version:               4
WARNING: Error loading config file: .dockercfg: $HOME is not defined
used image (created):     geimist/ocrmypdf-polyglot:latest (2021-12-04T10:32:58)
used ocr-parameter:       -srd -l deu
replace search prefix:    yes
renaming syntax:          §y-§m-§d_§tag
Symbol for tag marking:   #
Document split pattern:  
source for filedate:      ocr
ignored dates by search:  2021-02-29;2020-11-31
Docker Test:              WARNING: Error loading config file: .dockercfg: $HOME is not defined
OK
Loglevel:                 normal
Application Directory:    /usr/syno/synoman/webman/3rdparty/synOCR
Source directory:         /volume1/SODINASCloud/30 - PaperlessOffice/PaperlessOffice - synOCR Eingang/
Target directory:         /volume1/SODINASCloud/30 - PaperlessOffice/PaperlessOffice - synOCR Ausgang/
BackUp directory:         /volume1/SODINASCloud/30 - PaperlessOffice/PaperlessOffice - synOCR Backup/


    ----------------------------------
    |    ==> Funktionsaufrufe <==    |
    ----------------------------------

PROCESSING:   ➜ 2021_12_10 12_21 Office Lens.pdf (Fri Dec 10 17:05:42 CET 2021)
                  temp. target file: /tmp/tmp.rNOVkNRkVr/2021_12_10 12_21 Office Lens.pdf

              ➜ OCRmyPDF-LOG:
               WARNING: Error loading config file: .dockercfg: $HOME is not defined
               reading file from standard input
               Start processing 2 pages concurrently
                   2 page is facing ⇧, confidence 5.30 - no change
                   1 page is facing ⇧, confidence 3.80 - no change
               Postprocessing...
               Optimize ratio: 1.00 savings: -0.1%
               Image optimization did not improve the file - optimizations will not be used
               Output sent to stdout
              ← OCRmyPDF-LOG-END

                  target file (OK):
              ➜ search tags and date:
                source for tags is yaml based tag rule file [/volume1/SODINASCloud/30 - PaperlessOffice/PaperlessOffice - synOCR Eingang/_TagConfig_[profile_default].txt]
                validate the integrity of yaml-file:
ERROR at line 612: rulenames=$(cat "${taglisttmp}" | egrep -v '^[[:space:]]|^#|^$' | egrep ':[[:space:]]?$')
                rule name _612: was adjusted
                rule name __:__:space:_____ was adjusted
syntax error in row ERROR at line 634 [value must be only "all" OR "any" OR "none"]
syntax error in row ERROR at line 643 [value must be only "true" OR "false"]
syntax error in row ERROR at line 652 [value must be only "content" OR "filename"]
syntax error in row ERROR at line 661 [value must be only "is" OR "is not" OR "contains" OR "does not contain" OR "starts with" OR "does not starts with" OR "ends with" OR "does not ends with" OR "matches" OR "does not match"]
syntax error in row ERROR at line 670 [value must be only "true" OR "false"]

                rename tag is: ""

                  Using date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Using date format: 2 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Using date format: 3 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
                  Date not found in OCR text - use file date:
                  day:  10
                  month:12
                  year: 2021
              ➜ renaming:
                  apply renaming syntax ➜ 2021-12-10_
              ➜ edit metadata FAILED! - exiftool not found! Please install it over cphub.net if you need it
                  File name already exists! Add counter (5)
                  target file: 2021-12-10_ (5).pdf
              ➜ Adapt file date (Source: Source file [OCR selected but not found])
              ➜ move source file to: /volume1/SODINASCloud/30 - PaperlessOffice/PaperlessOffice - synOCR Backup/2021_12_10 12_21 Office Lens (5).pdf
                  INFO: (notification dosn't work at DSM7 without i18n …)
./synOCR.sh: line 1395: /dev/ttyS1: Permission denied
ERROR at line 1395: echo 2 > /dev/ttyS1
                  INFO: (PushBullet-TOKEN not set)

              Stats:
                  ➜ runtime last file:    00:00:45
                  ➜ pagecount last file:  2
                  ➜ file count profile :  (profile default) - 95 PDF's / 192 Pages processed up to now
                  ➜ file count total:     95 PDF's / 192 Pages processed up to now

              ➜ delete tmp-files …


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

Ich nehme an der relevante Fehler beginnt ab Zeile 54. Könnt Ihr mir weiterhelfen?
 

Anhänge

  • GUI Settings.jpg
    GUI Settings.jpg
    68,9 KB · Aufrufe: 12

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.508
Punkte für Reaktionen
1.344
Punkte
234
Herzlich willkommen hier im Forum, @tek245 :)

Ich habe jetzt die Zeilen nicht gezählt, aber die Validierung der YAML-Datei schlägt wohl fehl.
(validate the integrity of yaml-file:)

Könntest du mir die Regeldatei mal hochladen (Link in meiner Signatur).
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.508
Punkte für Reaktionen
1.344
Punkte
234
Deine Datei enthält ausschließlich die eine Regel. Entsprechend wird die Datei auch nicht als YAML-Regeldatei erkannt (d.h., sie passt auch nicht wirklich zum geposteten Log). Hast du die vorm Hochladen verändert?
 
Zuletzt bearbeitet:

tek245

Benutzer
Mitglied seit
10. Dez 2021
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Hm, also der Hinweis war schonmal gut. An irgendeiner Stelle muss ich Datei beschädigt haben. Fairerweise habe ich in den 2 Stunden zuvor alle möglichen Veränderungen vorgenommen. : )

Ich habe die Regeldatei jetzt gelöscht und mit einem vorbelegten Tag "KfZVersicherung" aus der GUI neu erzeugen lassen. Dies führte zu einem vorgefertigten Eintrag. Dieser habe ich nun mit einem neuen Search-String versehen "janitos". Das Ergebnis:
- Die Log zeigt immer noch den alten Tag "KfZVersicherung" an.
- Es wird kein Tag gesetzt.

Nach meinem Verständnis müsste doch die Datei nach "janitos" durchsucht werden und dann mit dem Tag "KfZVersicherung" (TagName) versehen werden da die Searchrule "janitos" einen Treffer hat?

Ich hab dir beide Dateien nochmal hochgeladen...
 
Zuletzt bearbeitet:

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.508
Punkte für Reaktionen
1.344
Punkte
234
Die Log zeigt immer noch den alten Tag "KfZVersicherung" an.

Das Log (im Level 1) zeigt lediglich den zu vergebenen Tagnamen an (KfZVersicherung), aber nicht das Suchkriterium (janitos)

Nach meinem Verständnis müsste doch die Datei nach "janitos" durchsucht werden und dann mit dem Tag "KfZVersicherung" (TagName) versehen werden da die Searchrule "janitos" einen Treffer hat?
Theoretisch ja, aber laut dem Log wurde der Begriff nicht gefunden. Deine Regeldatei scheint aber jetzt korrekt zu sein. Wenn du mal das Loglevel auf 2 stellst (in der GUI ganz unten), wird der erkannte Text im Logordner abgelegt. Den könnte man mal angucken.
 

tek245

Benutzer
Mitglied seit
10. Dez 2021
Beiträge
4
Punkte für Reaktionen
1
Punkte
3
Solved! Danke für die gute Hilfe.

Das Log im Level 2 zeigte den Suchbegriff richtigerweise an. Der Tag hätte erfolgreich gesetzt werden müssen. Dein Hinweis stieß mich aber darauf, dass das Last-Change Date der Regeldatei auf der NAS unterschiedlich zu der Datei im Explorer, welche über SynologyDrive synchronisiert(en sollte...), war.

In der Datei auf der NAS war immer noch der alte / falsche Suchbegriff in den Searchrules hinterlegt. Die von mir abgeänderte Datei wurde nie hochgeladen, es wurde daher nie ein Treffer erzeugt.

SynologyDrive abgeschaltet und die Datei manuell hochgeladen und Pandoras Box war geöffnet. Jetzt kann das Paperless Office durchstarten. : )

Warum SynologyDrive die Regeldatei aber nicht korrekt hochgeladen hat, erschließt sich mir nicht. Ich probiere noch ein bisschen damit rum und falls im Zusammenspiel SynologyDrive + Regeldatei noch was besonderes auffällt werde ich es berichten. Vielen lieben Dank!
 
  • Like
Reaktionen: geimist

Schrotti

Benutzer
Mitglied seit
10. Okt 2020
Beiträge
22
Punkte für Reaktionen
3
Punkte
3
Einfach die Regel mit einem anderen Tag wiederholen. Das Dokument wird nur einmal in jeden Zielordner abgelegt.


[/snip]
Hallo Stephan,
du kommentiertes dies in Betrag #1.317
Wenn ich mehre Tags vergeben möchte, ist das doch keine echte Lösung?
Dann würde mein Dateiname ja um jeden Tag länger werden?
 

Stu

Benutzer
Mitglied seit
21. Nov 2020
Beiträge
4
Punkte für Reaktionen
6
Punkte
53
@Stu
Du hast das exiftool im DSM 7 zum Laufen gebracht?
Ich kriegs seit Wochen nicht hin und habe aufgegeben. Was hast du gemacht?

[edit] eben noch mal von vorne gestartet und nun läufts doch endlich [/edit]

@Schrotti

Auch wenn es schon gelöst ist, hier nochmal gesammelt die Infos, die mir für das Exiftool in Verbindung mit der synOCR Beta für DSM 7 geholfen haben - vielleicht hilft es ja anderen Suchenden :)


Zur manuellen Installation des Exiftools (nur solange es nicht unter cphub.net/ für DSM 7 verfügbar ist), per SSH auf der Synology anmelden, dann:

Code:
# exiftool per wget herunterladen, aktuelle Version siehe: https://exiftool.org/ , in diesem Beispiel ist es "Image-ExifTool-12.36.tar.gz"
wget https://exiftool.org/Image-ExifTool-12.36.tar.gz

# entpacken
tar -xf Image-ExifTool-12.36.tar.gz

# TAR File wieder löschen
rm Image-ExifTool-12.36.tar.gz

# umbennen in ExifTool
mv Image-ExifTool-12.36 ExifTool

# nach /usr/share/applications/ verschieben
sudo mv ExifTool /usr/share/applications/

# dem Pfad hinzufügen
sudo vi /etc/profile

An die PATH Varibale muss
Code:
:/usr/share/applications/ExifTool

angehängt werden (zur manuellen Installation von Exiftool, siehe auch die Quelle dazu).

Nun muss wie unter

https://www.synology-forum.de/threads/synocr-gui-fuer-ocrmypdf.99647/page-98#post-969884

beschrieben der Symlink erzeugt werden:

Code:
sudo ln -s /usr/share/applications/Exiftool/exiftool /usr/local/bin/exiftool

Damit sollte synOCR für DSM 7 das manuell installierte Exiftool nutzen können.


Nochmals vielen Dank!
 

dhaesel

Benutzer
Mitglied seit
20. Apr 2012
Beiträge
1
Punkte für Reaktionen
1
Punkte
53
Hallo,
habe gerade mit Portainer einige GB an "alten" Docker images mit der Bezeichnung jbarlow83/ocrmypdf gefunden.
Anscheinend werden diese beim Update nicht aufgeräumt. Ich hatte mich schon gewundert, warum meine backup Daten
ständig gewachsen sind.
Es wäre gut, wenn man das Löschen alter Images beim Update implementieren könnte.
 
  • Like
Reaktionen: hergi


 

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