Script: Durchsuche OCR PDF nach 6 stelliger Zahl

Hallo,

um meinen Paperless-Workflow zu verbessern, möchte ich unter anderem frisch eingescannte PDFs per Script nach einer immer sechsstelligen Zahl (Paginierstempel) durchsuchen und die Datei automatisch in diese Zahl umbenennen lassen. Also der Workflow soll wie folgt aussehen:

  1. Devonthink importiert über Hazel ein eingescanntes PDF (funktioniert schon)
  2. Devonthink OCRd das PDF und löscht das “alte” PDF (funktioniert schon)
  3. Anschließend soll nach dem OCR im PDF nach einer sechsstelligen Zahl gesucht werden. Diese Zahl ist in einer Variablen zu speichern. (funktioniert noch nicht)
  4. Das PDF ist in die in der Variablen gespeicherten Zahl umzubenennen. (funktioniert noch nicht).

Mir ist bewusst, das eine sechsstellige Zahl mehrfach in einem Dokument vorkommen kann, daher benötige ich immer nur das erste Vorkommen (Der Paginierstempel kommt - wenn möglich - in den Kopf der ersten Seite.

Grundzüge von Applescript verstehe ich, finde aber leider keine Doku von Devonthink zu den angebotenen Methoden und Eigenschaften.

Für Tipps bin ich sehr Dankbar.

Hier ist ein sehr einfaches Beispiel ohne große Fehlerprüfung:


tell application id "DNtp"
	set theRecord to item 1 of (the selection as list)
	set theText to plain text of theRecord
	set theWords to words of theText
	repeat with theWord in theWords
		try
			if length of theWord is 6 and (theWord as integer) > 0 then return (theWord as string)
		end try
	end repeat
end tell

Das war schnell und funktioniert. Vielen Dank. Damit wird mein Workflow wieder etwas schneller :smiley:

Wo findet man denn die Doku zu z.B. … to plain text bzw. … to words ? Wenn ich es richtig verstehe, sind das doch Methoden von Devonthink, oder?

Vielen Dank nochmals!

Wenn Sie eine App (z.B. DEVONthink Pro Office) auf die Skript-Editor.app im Dock/Finder ziehen, wird deren AppleScript-Funktionalität angezeigt, d.h. Klassen, Eigenschaften und Befehle.

DEVONthink-spezifisch sind aber nur die ersten beiden Zeilen im tell-Block, alles andere sind Standard-AppleScript-Funktionen.

Hallo,

hier würde ich mich gerne einmal einklinken:

Kann man DT anweisen, bei einen Scan OCR durchzuführen, aber dieses PDF noch nicht in die Datenbank zu übernehmen? Also einfach in dem Ordner zu belassen, damit man mit Hazel die Rechnungsnummer und Datum herauslesen und in den Dokumentennamen übernehmen kann?
Danach soll dann DT dieses Dokument übernehmen.

Ist das Möglich?

Grüße, doescher

Nein, das ist bisher nicht möglich. Aber in einer zukünftigen Version wird dies nicht einmal mehr Hazel benötigen.

Das wäre ja super. Bin schon gespannt…