OCR beim Import: Ich raffe es einfach nicht

Hallo,

ich schaffe es einfach nicht, Devonthink dazu zu bekommen, mir ein Dokument, welches über eine Ordneraktion importiert wird, beim Import in ein lesbares PDF mit OCR umzuwandeln. Eine automatische Aktion wird einfach nicht ausgeführt. Manuell klappt es ohne Probleme.

Workflow:
Ich scanne ein Dokument und dieses wird von Hazel umbenannt und in einen Ordner gelegt.
Dieser Ordner wird von Devonthink überwacht und das Dokument danach in den Eingang importiert.
Hier sollen verschiedene Regeln erkennen, wie das Dokument vorher von Hazel umbenannt wurde, dann OCR anwenden und in die ensprechenden Ordner der jeweiligen Datenbank einsortieren.

Die Regel funktionieren auch, aber nur wenn ich diese mit »nach Öffnen« anklicke. Dann funktioniert alles perfekt. Aber ein automatisches »nach Import« will einfach nicht funktionieren.

Ich möchte aber, dass die gescannten Dokumente einfach in dem Moment, in dem sie von DT importiert werden, umgewandelt und in den Ordner gelegt werden. Das funktioniert jetzt nicht und hat eigentlich seit DT3 noch nie funktioniert (habe schon viele Versuche hinter mir…).

Was kann ich machen, damit es funktioniert?

Viele Grüße, doescher

2020-10-06_Bildschirmfoto 2020-10-06 um 12.24.51

Ordneraktionen sind letztlich Skripte, welche intelligente Regeln nicht automatisch auslösen, da weder definiert wäre, wann genau dies stattfinden sollte noch welches Ereignis gewünscht ist. Von der Tatsache ganz zu schweigen, dass dies die Ergebnisse von Skripten massiv beeinflussen und schwer vorhersagbar machen könnte.

Aber es gibt eine Lösung in Form des perform smart rule AppleScript-Befehls, der in die Ordneraktion eingefügt werden müsste.

Okay. Und wie und wo kann ich den einbinden?
Ich benutze das einfache »Import & Delete« Script:

on adding folder items to this_folder after receiving added_items
	try
		if (count of added_items) is greater than 0 then
			tell application id "DNtp" to launch
			repeat with theItem in added_items
				try
					set thePath to theItem as text
					if thePath does not end with ".download:" and thePath does not end with ".crdownload:" then
						tell application id "DNtp"
							set theRecord to import thePath to incoming group
							if exists theRecord then tell application "Finder" to delete theItem
						end tell
					end if
				end try
			end repeat
		end if
	end try
end adding folder items to

Aber was bedeutet denn überhaupt »importiert«?
Wenn das Script »Importieren und Löschen« heißt, dann sollte doch DT genau das machen, oder?
Und dann sollte doch die Smart-Rule automatisch ausgeführt werden, wenn es im Eingang importiert wird. Ich habe es immer noch nicht wirklich verstanden…

Die Ordneraktion existiert schon sehr viel länger als o.g. Befehl und wurde nicht verändert, um existierende Workflows nicht zu beeinflussen.

In obigem Skripte müsste die Zeile…

if exists theRecord then tell application "Finder" to delete theItem

…durch…

if exists theRecord then
	tell application "Finder" to delete theItem
	perform smart rule record theRecord name "OCR Beispiel"
end if

…ersetzt werden.

Seit Version 3 wird aber eher die Verwendung von intelligenten Regeln im Zusammenspiel mit indizierten Ordnern anstatt den manchmal von den Launen des Finders abhängenden Ordneraktionen empfohlen.

Okay, danke.
Ich habe nun noch mit dem Indizieren dieses Ordners herumprobiert und scheinbar klappt es nun.
Mich musst noch vor dem OCR in der Aktion »In Datenbank verschieben« einfügen und dann scheint er es zu machen. Das wäre ein echter Fortschritt…
Danke schon einmal
doescher

Dh, du indizierst einen Ordner, um seinen Inhalt dann in die DB zu verschieben? Blöde Frage, aber warum verschiebst du das Dokument nicht gleich mit Hazel in DEVONthink, statt es erst in einen Ordner zu kopieren? So mache ich das jedenfalls, allerdings mit Dokumenten, für die OCR entweder nicht nötig ist oder von Hazel via PDFpen Pro erledigt wird.

Und genau da liegt ja das Problem.
Bisher habe ich auch direkt über Hazel die Scans nach Devonthink geschoben. Hat prima funktioniert, aber leider wurden die Scans nicht automatisch erkannt, sondern erst, wenn ich z.B. sie geöffnet habe. Dann wurden OCR durchgeführt und alles passte. Nun wird nach dem Verschieben in die Datenbank die Datei offensichtlich importiert und die Regel läuft automatisch ab. So wollte ich es haben…
Es gibt andere Aktionen, die laufen weiterhin über Hazel, da hier keine Aktion nötig ist.

Scans werden nur erkannt, wenn sie von einer bekannten Scanner-Software an DEVONthink geschickt werden (oder natürlich direkt in DEVONthink selbst).

Aber so richtig logisch fand ich das nicht. Mit dem Verschieben in die Datenbank ist nun aber der Trigger gesetzt und es funktioniert.
Danke für die Hilfe
doescher

Nicht jedes PDF-Dokument oder Bild, das importiert wird, ist ein Scan. Teilweise ist OCR unerwünscht, teilweise unnötig.

Ich lasse alles in die globale Inbox laufen oder importiere es, wie aucch immer.
Ich habe verschiedene Statusstufen in den Metatags definiert. Ich beginne mit der Frage ob das pdf über eine Wortzahl ungleich null schon eben lesbar ist oder nicht, bei null erfolgt ein §in durchsuchbares pdf“ verwandeln, es sei den das pdf wurde durch ein Schlüsselwort im Dateinamen oder über ein entsprechenden Ordner im Sorter mit einer automatisierten Smart Rule verknüpft ist. .

Der Status „steigt“ , jeder Status entspricht einem Workflow-Ordner und dieser ist meist über 2-3 Trigger mit der nächsten Prozessebene verknüpft.

Leider ist mir noch nichts eingefallen wie ich sinnvoll nach Ablauf einer Regelebene die nächste starten könnte, usw. . Lass ich alle Regeln automatisch minütlich oder stündlich starten können diese sich ja in die Queere kommen. Wenn man mit 20, 30 oder gar 40 großen Smart Rules arbeitet geht es da schon rund und manchmal ist es dann zuviel für das System……

DeepL Übersetzung:

I run everything into the global inbox or import it like I always do.
I have defined different status levels in the metatags. I start with the question if the pdf is already readable by a word count unequal to zero or not, at zero a “searchable pdf” is created, unless the pdf is linked to an automated smart rule by a keyword in the file name or by a corresponding folder in the sorter. .

The status “rising”, each status corresponds to a workflow folder and this folder is usually linked to the next process level via 2-3 triggers.

Unfortunately, I have not yet thought about how to start the next process level after one rule level has expired, etc. . If I let all rules start automatically every minute or every hour they can get into the queer. If you work with 20, 30 or even 40 big Smart Rules, it works out fine and sometimes it is too much for the system…

Mir ist nicht so richtig klar, was Sie machen wollen, ein konkretes Beispiel würde helfen.

Aber wenn Sie tatsächlich Ihre Regeln nur auf einen Ort, die Globale Inbox zum Beispiel, anwenden, dann ist eine Regel mit einem Skript für alle einzelnen Fälle wohl die beste Lösung – darin können Sie alle Schritte in genau der Reihenfolge abarbeiten lassen, die Sie haben wollen. Bei minütlichem Auslösen von vielen Einzelregeln führt das in Chaos. Denn die Reihenfolge bestimmt der Moment des Abspeicherns einer Regel. Sobald Sie eine ändern, befindet sie sich an einer anderen Stelle im Ablauf.

Andererseits schreiben Sie etwas von “Workflow”-Ordnern. Dann würden die Smart Rules doch auf verschiedene Ordner zugreifen, oder verstehe ich das falsch?