greatmgm
Goto Top

Batch OCR gesucht mit Dateifilterfunktionen

Hallo zusammen,

bin jetzt vielleicht bei Windows Tools nicht ganz richtig, aber kein anderes Forum hätte eher gepasst.
Wir benutzen aktuell AbbyyFineReader-HotFolder um PDFs in einem bestimmten Ordner (plus Unterordnern) via OCR durchsuchbar zu machen.
Das scheint aber die einzige Möglichkeit zu sein, die PDF-Auswahl einzuschränken (also entweder mit oder ohne Unterordner).
Uns interessiert noch ein Dateifilter, zBsp. der Form:

- durchsuche alle Ordner und Unterordner aber mache nur OCR mit PDF-Dateien die ein "A" im Dateinamen haben

oder

- durchsuche alle Ordner und Unterordner aber mache nur OCR mit PDF-Dateien die ein "\2\" im Dateipfad haben

Freue mich über Tipps, kann auch Geld kosten.

Danke.

Content-ID: 537525

Url: https://administrator.de/contentid/537525

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

TechnokratVogt
Lösung TechnokratVogt 21.01.2020 um 14:09:19 Uhr
Goto Top
Es gibt dafür einen Dockercontainer, funktioniert echt gut, und verbraucht so gut wie keine Ressourcen https://github.com/jbarlow83/OCRmyPDF
Solltet ihr eine Synology Diskstation haben welche Docker unterstützt ist synOCR vlt was für dich https://www.synology-forum.de/showthread.html?99647-synOCR-GUI-f%C3%BCr- ...
Nutze ich selbst auch. Alles was eingescannt wird landet auf der Synology im Ordner der über cloud sync mit OneDrive synchronisiert wird. Dann läuft Stündlich der synOCR Task und wandelt die PDFs um.
142232
Lösung 142232 21.01.2020 aktualisiert um 14:12:39 Uhr
Goto Top
- durchsuche alle Ordner und Unterordner aber mache nur OCR mit PDF-Dateien die ein "A" im Dateinamen haben
Dafür brauchst du kein extra Tool da reicht z.B. auch die Powershell für
gci 'd:\root' -File -Filter *.pdf -recurse | ?{$_.Basename -match 'A'}  
durchsuche alle Ordner und Unterordner aber mache nur OCR mit PDF-Dateien die ein "\2\" im Dateipfad haben
gci 'd:\root' -File -Filter *.pdf -recurse | ?{$_.Directory.Name -eq '2'}  
greatmgm
greatmgm 21.01.2020 um 14:36:37 Uhr
Goto Top
Danke euch beiden, die Kombination aus beiden Tipps ist dann meine Lösung face-smile
monstermania
monstermania 21.01.2020 um 15:19:05 Uhr
Goto Top
Zitat von @TechnokratVogt:
Es gibt dafür einen Dockercontainer, funktioniert echt gut, und verbraucht so gut wie keine Ressourcen https://github.com/jbarlow83/OCRmyPDF
Solltet ihr eine Synology Diskstation haben welche Docker unterstützt ist synOCR vlt was für dich https://www.synology-forum.de/showthread.html?99647-synOCR-GUI-f%C3%BCr- ...
Nutze ich selbst auch. Alles was eingescannt wird landet auf der Synology im Ordner der über cloud sync mit OneDrive synchronisiert wird. Dann läuft Stündlich der synOCR Task und wandelt die PDFs um.
Sorry, aber einen Abbyy Finereader mit einer Toolsammlung wie OCRmyPDF zu vergleichen, ist wieder mal der berühmte Äpfel und Birnen vergleich. OCR machen beide, aber die Qualität bei der Texterkennung ist doch die entscheidende Frage.
Ich war viele Jahre beruflich im Bereich Dokumentenmanagement und OCR unterwegs und m.E. sind die einzig wirklich qualitativ guten OCR Engines von Abbyy oder Nuance!
greatmgm
greatmgm 24.01.2020 um 09:45:48 Uhr
Goto Top
nur kurz zur Info (wenn es interessiert).
Hab mir ein kleines Programm geschrieben, was rekursiv meine gewünschten Datenpfade durchstöbert und auf validen Dateinnamen überprüft (also zBsp. nur Dateien aus einem übergeordneten Ordner "2").
Diese Datei(en) schicke ich dann an das Programm "ocr console" (das benutzt die engine von Nuance), hier kann man dann eine Textdatei erstellen lassen oder wieder eine PDF. Einziges Manko ... 1000 Euro einmalig.
Ich teste mal noch, sieht aber ganz gut aus.
monstermania
monstermania 24.01.2020 um 11:41:54 Uhr
Goto Top
Hmm,
ich dachte das Ihr Abbyy FineReader einsetzt? Das ist ja selbst in der Corporate Version um einiges preiswerter als 1000€.

So recht verstanden habe ich Dein Ursprungsproblem aber ohnehin nicht (Sorry dafür). In der Regel handelt es sich ja um gescanntes Papier, dass man per OCR (wieder) durchsuchbar machen will.
Ich versuche daher immer die Scandateien die ich weiterverarbeiten möchte möglichst nativ an die OCR weiterzureichen. Wenn es irgend geht nutze ich immer Scans im TIF G4-Format (300dpi Dithering-Mode). Der OCR Prozess macht dann aus den Scans durchsuchbare PDF-Dateien.
Schon vorhandene PDF-Dateien nochmals durch die OCR zu jagen und ein neues PDF daraus zu erstellen erschließt sich mir nicht so recht.
a) Entweder habe ich native erzeugte PDF-Dateien, die ohnehin Volltext-Durchsuchbar sind
b) Es handelt sich um gescannte PDF-Dateien... Nur warum überhaupt aus einem Scan erstmal ein PDF erzeugen!?
greatmgm
greatmgm 27.01.2020 um 10:28:08 Uhr
Goto Top
Hallo,

nein es sind eher PDF die wir von extern bekommen und die werden von den verschiedenen Abt. in entsprechende Ordner gelegt. Und in nur einigen Ordnern ist die Durchsuchbarkeit wichtig ... und das jetzt auch noch rückwirkend. Diese Unterordner sind projektbezogen angelegt, Projekte haben wir 2000-3000 pro Jahr. Hier kann ich also mit HotFolder von Abbyy entweder das Jahr durchsuchen aber damit wieder alle Ordner oder ein HotFolder Task pro Projekt ist ja auch fern jeder Praxis. Abbyy hat mir bereits mitgeteilt das es keine Filterfunktionen im HotFolder-Programm gibt. Deshalb habe ich nach Alternativen gesucht und mit OCR Konsole eine gefunden.
monstermania
monstermania 27.01.2020 um 11:14:23 Uhr
Goto Top
Hmm,
ok, aber warum nicht einfach selbst eine Lösung bauen, wenn Du ohnehin schon etwas programmieren musstest!?
Du kannst doch selbst per Powershell oder vbs einen entsprechenden Job bauen. Du musst dann halt einmalig Deine Ordnerstruktur durchsuchen und alle PDF-herausfinden, die nicht durchsuchbar sind. Diese PDF ohne Text kopierst Du dann an Deinen Hot-Folder.
Nach der Konvertierung ersetzt dann das neue searchable PDF das alte PDF (ggf. werden die Orginal-Daten in einen Sicherungsordner verschoben).

Über ein Tool wie z.B. Logmon könnte man die ganze Ordnerstruktur überwachen. Immer wenn ein neues PDF in der Struktur abgelegt wird, findet die Überprüfung statt, ob das abgelegte PDF searchable ist oder nicht. Wenn nicht, wird das PDF in den Hot-Folder übergeben und konvertiert. Die Unterscheidung, dass nur bestimmte PDF searchable sein sollen/müssen würde ich gar nicht erst machen.

M.E. ist so eine Lösung viel flexibler anpassbar und Du kannst eigentlich jede beliebige bzw. die beste OCR-Engine nutzen.
greatmgm
greatmgm 27.01.2020 um 15:39:08 Uhr
Goto Top
Ja das ist auch eine Möglichkeit, leider erlaubt Abbyy HotFolder nur 1000 PDfs pro Monat, das würde ab Start heute möglicherweise reichen. Für die rückwirkende Konvertierung wirds eng ... alleine in 2019 habe ich 59.000 PDFs gefunden ;)
Ich zeig das mal meinen Entscheidern, wenn das rückwirkend wichtig ist müssen sie halt 1000 Euro berappen, ansonsten kann ich wirklich mit einem eigenen tool einen HotFolder bedienen und PFDs hinschicken und konvertierte zurückholen.

Danke.
monstermania
Lösung monstermania 27.01.2020 um 16:33:08 Uhr
Goto Top
Zitat von @greatmgm:

Ja das ist auch eine Möglichkeit, leider erlaubt Abbyy HotFolder nur 1000 PDfs pro Monat, das würde ab Start heute möglicherweise reichen. Für die rückwirkende Konvertierung wirds eng ... alleine in 2019 habe ich 59.000 PDFs gefunden ;)
Ups...
Stimmt, da war ja was. Ich glaube der Hot Folder ist beim FineReader sogar auf 5.000 Seiten/Monat beschränkt!
Aber das Problem wirst Du bei den meisten Lösungen haben. BTW: Hab gerade mal nachgeschaut. OCR Console ist auf 25.000 Seiten/Monat beschränkt. face-wink

Ich hab vor ein paar Jahren mal ein AutoHotKey-Script gebastelt, mit dem ich Abbyy FineReader Pro automatisiert hab. Damit konnte ich dann unbeschränkt gescannte Dateien in searchable PDF umwandeln. Sozusagen ein Batch-Mode per Hintertür. face-smile
greatmgm
greatmgm 28.01.2020 um 08:27:55 Uhr
Goto Top
Stimmt AutoHotkey wäre tatsächlich noch eine Option face-smile mmmh für mehr als 25.000 Seiten pro Monat gilt dann eine andere Lizenz und das dürfte dann den Rahmen sprengen :/

Aber deine Tipps waren schon hilfreich. Danke.
monstermania
Lösung monstermania 06.02.2020 aktualisiert um 12:02:35 Uhr
Goto Top
Zitat von @monstermania:
Ich hab vor ein paar Jahren mal ein AutoHotKey-Script gebastelt, mit dem ich Abbyy FineReader Pro automatisiert hab. Damit konnte ich dann unbeschränkt gescannte Dateien in searchable PDF umwandeln. Sozusagen ein Batch-Mode per Hintertür. face-smile
Hab mal nach dem AutoHotkey Skript geschaut. War aber nicht für FineReader Pro, sondern für FineReader Sprint 12.
Aber sollte mit entsprechenden Anpassungen natürlich auch mit dem FR Pro laufen.
Der Abbyy Finereader Sprint muss einmalig manuell konfiguriert werden:
- Ausgabedateiformat (z.B. pdf/a)
- Zielverzeichnis der Ausgabedatei

Das Skript mit Autohotkey kompilieren.
Die EXE wird dann mit der zu konvertierenden Tif-Datei als Parameter aufgerufen (FR_ahk.exe "c:\scandatei.tif")
Anschließend wird dann der komplette Prozess automatisch durchgeführt. Wenn die Konvertierung erfolgreich war, findet man im Zielverzeichnis die "scandatei.pdf".
Über die Rückgabewerte der EXE lassen sich evtl. Fehler und deren Ursprungsort lokalisieren. Hat aber soweit ich mich noch erinnere problemlos mit mehreren Tausend Scandateien funktioniert (Multipage-Tif).


PS: Das Skript funktioniert nur mit der deutschen Sprach-Installation von FR Sprint!
Process, Priority,, High
DetectHiddenWindows, On
SetKeyDelay, 30, 10
KeyWait, LButton, L T2
KeyWait, MButton, L T2
KeyWait, RButton, L T2
SetTitleMatchMode 2

;Prüfen, ob ABBYY FineReader Sprint aktiv ist
Process, Exist, sprint.exe, 
if ErrorLevel ; The PID ist vorhanden
	ExitApp, -1

;Prüfen, ob eine zu konvertierende Datei übergeben wurde
if 0 < 1  ; Die linke Seite einer if-Anweisung ohne Ausdruck ist immer der Name einer Variable.
{
    ExitApp, -2
}

; Startet Abbyy Finereader Sprint und übergibt die zu konvertierende Datei
Run, %A_ProgramFiles%\ABBYY FineReader 12 Sprint\sprint.exe %1%

;Warte, bis FineReader Sprint gestartet
WinWait, ABBYY FineReader 12 Sprint, , 5
IfWinExist, ABBYY FineReader 12 Sprint, 
{
	;Warten bis der Seitenimport in Finereader abgeschlossen ist...
	WinWait, Bilder werden geladen -, Verarbeite Seiten..., 5
	IfWinExist, Bilder werden geladen -, Verarbeite Seiten...
	{
		WinWaitClose
	}
	else
	{
		RunWait, taskkill /f /im sprint.exe
		ExitApp, -3 ;Programm beendet da Fehler bei Seitenimport
	}
	If WinExist("ahk_class FineReaderSprint12MainWindowClass")  
	{	
		WinActivate  ; Verwendet das zuletzt gefundene Fenster.
		ControlSend, , {LControl down}s{LControl up} ; Sende Control + S -> Speichern unter
	
		WinWait, Speichern unter, ShellView, 5
		IfWinExist, Speichern unter, ShellView
		{
			WinActivate, Speichern unter
			ControlClick, Button3, Speichern unter ; Sende Click auf 'Speichern'  
			Sleep 300
			;Ggf. Ausgabedatei überschreiben
			WinGetActiveTitle, Titel
			If (Titel = "ABBYY FineReader 12 Sprint")  
			{
				WinActivate
				ControlClick, Button1, ABBYY FineReader 12 Sprint ; Sende Click auf 'OK'  
			}
			;Warten bis Konvertierung abgeschlossen ist...
			WinWait, Seiten werden konvertiert -, Konvertiere zu, 5
			IfWinExist, Seiten werden konvertiert -, Konvertiere zu
			{
				WinWaitClose
			}	
			else
			{
				RunWait, taskkill /f /im sprint.exe
				ExitApp, -4 ;Programm beendet da Fehler 
			}
		}
		else
		{
			RunWait, taskkill /f /im sprint.exe
			ExitApp, -5 ;Programm beendet da Fehler 
		}
	}
	If WinExist("ahk_class FineReaderSprint12MainWindowClass")  
	{		
		WinActivate  ; Verwendet das zuletzt gefundene Fenster.
		ControlSend, , {LControl down}q{LControl up} ; Sende Control + q -> Quit
		ExitApp, 1 ; Skript erfolgreich beendet
	}
}


;Prüfen, ob ABBYY FineReader Sprint läuft
Process, Exist, sprint.exe, 
if ErrorLevel ; The PID ist vorhanden
	Process, WaitClose, sprint.exe, 5  ;Versuche FineReader zu beenden
	
ExitApp, 0 ;FineReader war nicht anteuerbar -> Exit
greatmgm
greatmgm 13.02.2020 um 15:00:22 Uhr
Goto Top
Super !
Danke.
Da werde ich mich mal mit AutoHotKey beschäftigen.