PDFs mithilfe von Hazel und OCR benennen und einsortieren

Seit vielen Jahren gehört die macOS App Hazel zu meinen Lieblingsapps. Nach der Einrichtung rückt das Tool in den Hintergrund und unterstützt bei der täglichen Arbeit. Falls du Hazel noch nicht kennst, eine kurze Zusammenfassung was die App macht. Hazel überwacht Ordner und führt Aktionen aus, wenn eine Datei in dem Ordner gespeichert wird. Diese Aktionen basieren auf Regeln.

Starten wir doch direkt in das Beispiel, das ich in diesem Artikel mit dir teilen will. Daran erkennt man, denke ich, am besten die Vorteile von Hazel.

Jeden Monat bekomme ich vom Internet-Anbieter eine Rechnung per Mail zugeschickt. Diese Rechnung soll gespeichert, sinnvoll benannt und anschließend in den passenden Ordner verschoben werden. Leider lässt sich aus der initialen Benennung der Datei nicht darauf schließen von wem die Rechnung ist und auch das genaue Rechnungsdatum ist im Dateinamen nicht erhalten. In meinem Fall ist die Datei wie folgt benannt: Rechnung_2020_11_490420211.pdf.

Die Rechnung soll nach dem Speichern im Downloads-Order folgende Benennung haben:

20201114 - name des anbieters - festnetz - Rechnung_2020_11_490420211.pdf

Das Rechnungsdatum soll vorangestellt werden, gefolgt von dem Namen des Anbieters und eine kurze Beschreibung des Inhalts. Abschließend soll der ursprüngliche Name erhalten bleiben. Kommen wir aber jetzt zum Kernproblem. Das PDF enthält ein Bild der Rechnung und der Text der Rechnung ist nicht durchsuchbar. Somit kann auch Hazel nicht auf den Inhalt der Rechnung zugreifen, um diesen für die Regeln und das Extrahieren des Rechnungsdatums verwenden. Bevor die Rechnung umbenannt werden kann, muss das Dokument aufbereitet und somit durchsuchbar gemacht werden.

Damit das PDF durchsuchbar ist, benutze ich das Tool OCRmyPDF. Mithilfe von OCR (Optische Texterkennung) wird der Text aus dem Bild in “echten” Text umgewandelt und somit durchsuchbar. Unter macOS ist das Tool schnell installiert: brew install ocrmypdf. Nach der Installation kann das Programm von Hazel genutzt werden. Alternativ kannst du OCRmyPDF direkt über das Terminal nutzen.

PDF durchsuchbar machen

Mit Hazel wird der Downloads-Ordner überwacht. Treffen die Regel für das Dokument zu, wird ein Shell-Skript ausgeführt, das OCRmyPDF aufruft.

  • Regel 1: Überprüft, ob das Dokument ein PDF ist
  • Regel 2: Mein Anbieter nutzt eine bestimmte Software, um das PDF zu erzeugen. Um zu vermeiden, dass andere PDFs erkannt werden, wird dies überprüft
  • Regel 3: Um sicherzustellen, dass das PDF keinen durchsuchbaren Text enthält, wird nach einem Wort in dem Dokument gesucht, dass nicht enthalten sein soll.

Als Shell für das Skript wird /bin/bash ausgewählt. Anschließend der Aufruf von OCRmyPDF hinzugefügt.

ocrmypdf --redo-ocr "$1" "$1"

In meinem Fall enthält das Dokument schon durchsuchbaren Text, jedoch ist der fehlerhaft. Somit ist der Parameter --redo-ocr notwendig. Mehr zu den Parametern findest du in der Dokumentation des Tools. Hazel übergibt an die Variable $1 den Pfad zu dem Dokument. Durch die doppelte Angabe der Variable wird das Original-Dokument von OCRmyPDF ersetzt.

Die Aufbereitung des PDFs ist somit abgeschlossen. Ein doppeltes Aufrufen durch Hazel wird durch die Regel 3 verhindert. Nach dem Umwandeln des PDFs findet Hazel jetzt den Begriff “Rechnung” in dem Dokument.

PDF umbenennen und einsortieren

Nachdem das PDF aufbereitet und durchsuchbar ist, können wir jetzt die Datei umbenennen und anschließend in den passenden Ordner sortieren.

  • Regel 1: Das Dokument muss ein PDF sein
  • Regel 2: Im Dateinamen muss der Begriff “Rechnung” vorkommen
  • Regel 3: Im Inhalt des Dokuments muss der Begriff “Festnetz-Rechnung” vorkommen
  • Regel 4: Im Inhalt des Dokuments muss der Begriff “Datum” gefolgt von beliebigen Zeichen und anschließend ein Datum vorkommen. Das Datum wird von Hazel ausgelesen und kann später verwendet werden.

Bei der Aktion wird die Datei in den Ordner “Belege” verschoben und umbenannt. Dabei wird das Rechnungsdatum aufgegriffen und das Format verwendet, das eingangs erwähnt wurde. Abschließend wird das Jahr des Rechnungsdatums verwendet, um die Datei in den Unterordner zu sortieren. Wenn man möchte, kann sich das Dokument dann noch im Finder anzeigen lassen.

Fazit

Mit Hazel lassen sich viele Prozesse automatisieren, die man sonst regelmäßig manuell durchführen müsste. In dem vorgestellten Beispiel muss die Datei nur noch im Downloads-Ordner gespeichert werden.

In der Kombination mit OCRmyPDF lassen sich die PDFs noch sehr viel besser verarbeiten, da man den Inhalt mit einbeziehen kann. Wenn du Hazel schon nutzt, dann kannst du dir meine Hazel-Regeln herunterladen und für deinen Fall anpassen. Falls du Hazel noch nicht kennst, solltest du der App auf jeden Fall eine Chance geben.