Der papierlose Haushalt – Umbenennen von PDFs

Ich bekomme ja sehr viele Dokumente schon direkt online als PDF-Datei. Viele dieser Dateien (z.B. Kontoauszüge, Rechnungen von der Telekom usw.) kommen regelmäßig jeden Monat wieder. Bisher musste ich diese Dateien per Hand in das Format umbenennen, welches ich intern für meine Ablagestruktur verwenden. Die Dateinamen der eingehenden PDFs sind manchmal nicht gut geeignet, um daraus den Absender und das Datum etc. herauszulesen (z.B. ist der Name der Telekom-Rechnung immer “Rechnung_xyz_12345.pdf” wobei “xyz” immer eine andere laufende Nummer ist)

Jeden Monat ist dann also Herunterladen der Dokumente und manuelles umbenennen angesagt, am Beispiel Telekom z.B. anstelle “Rechnung_xyz_12345.pdf” also “2018-04 Telekom – Rechnung.pdf”.

Leider habe ich für Windows noch nicht das ultimative Rename-Programm gefunden mit dem man Regeln erstellen kann, die auch Inhalte der PDF-Dateien beinhalten.

Wie ich damals in diesem Artikel schon geschrieben hatte, habe ich eine Zeit lang das Programm “DropIt” verwendet, aber mit nur mäßigem Erfolg, weil es doch nicht alles abgedeckt hatte.

Ich bin daher nun dazu übergegangen, das Programm “DropIt” mit anderen Tools zu erweitern, nämlich zum einen mit “PDFGrep” und zum anderen mit den “GNU Core Utils“, ein paar nützlichen Linux-Tools, die auf Windows portiert wurden. DropIt kann nämlich als Teil einer Regel externe Programme aufrufen. Bei komplexeren Rename-Aktionen rufe ich dazu dann einfach ein Windows-Batchfile auf, mit dem ich sehr flexibel auch komplexere Operationen machen kann. Das ist zwar beim ersten Mal ein wenig Aufwand, aber zukünftig dann eine Menge Zeit.

Für das obige Telekom-Beispiel habe ich also eine Regel erstellt, die in meinem Scan/Ablage-Verzeichnis auf Dateien wartet die den Namen “Rechnung_*_12345.pdf” haben. In diesem Fall wird dann ein Batch-File aufgerufen, welches folgenden Inhalt hat:

@echo off
rem Umbenennen der Telekom -Rechnungen

rem Suche nach erstem Vorkommen des Strings "Datum"
scantools\pdfgrep -m 1 Datum %1 > %temp%\$$$MU-Telekom-G-Rechnung.$$$

rem Extrahiere aus dem String Jahr, Monat, Tag für weitere Bearbeitung
set /p renamestring=<%temp%\$$$MU-Telekom-G-Rechnung.$$$
del /q %temp%\$$$MU-Telekom-G-Rechnung.$$$
for /f "tokens=1,2,3,4 delims=. " %%a in ("%renamestring%") do set x_blanks=%%a&set x_day=%%b&set x_month=%%c&set x_year=%%d

rem Extrahiere aus dem übergebenenen Dateinamen mit Pfad nur den Dateinamen ohne Pfad
For %%A in ("%1") do set filename=%%~nxA

rem Umbenennen der Datei
rename %1 "20%x_year%-%x_month%-%x_day% Telekom (G) - %filename%

Bei anderen Dateien kann man aufgrund des Dateinamens schon erkennen, wer der Ersteller der Datei ist und welches Datum es betrifft. Dann kann man mit DropIt-Bordmitteln arbeiten. Beispiel ist ein Kontoauszug der in der Form “Kontoauszug_123456789_Nr_2018_006_per_2018_04_04.pdf” ankommt und später dann mal “2018-04-04 TESTBANK – Kontoauszug_123456789_Nr_2018_006_per_2018_04_04.pdf” heissen soll.

Dafür gibt es dann eine DropIt-Regel, die auf den Dateinamen “KONTOAUSZUG*_dat*_id*.pdf” wartet und dann diese interne DropIt-Regel ausführt:

%FileName#s--(_dat,_id)#>1,4%-%FileName#s--(_dat,_id)#>5,2%-%FileName#s--(_dat,_id)#>7,2% TESTBANK - %FileName%.%FileExt%

Diese Regel holt sich den Text zwischen den Strings “_dat” und “_id” im Dateinamen und extrahiert daraus dann das Datum und setzt es in der korrekten Reihenfolge wieder zusammen. Die Möglichkeiten, die DropIt hier bietet, sind recht mächtig (wenn auch etwas gewöhnungsbedürftig am Anfang). Für Dinge, die darüber hinausgehen, greife ich dann auf die externen Programme zurück.

Manchmal bekommt man beim Download auch mehrere Dateien zusammen als ZIP-File. Für diesen Fall gibt es eine DropIt-Regel, die das ZIP-File im Scan/Ablage-Verzeichnis zuerst auspackt, bevor dann eine andere Regel die ausgepackten Dateien entsprechend weiterbearbeitet.

Mittlerweile bin ich ganz zufrieden mit dem Ergebnis. Die monatliche Download-Orgie ist nun ruck-zuck erledigt und ich muss dann die Dokumente nur noch per Drag & Drop in den richtigen Ordner meines Archivsystems “Office-n-PDF” schieben. Diesen letzten Schritt werde ich demnächst noch versuchen auch zu automatisieren.

Übrigens, der Grund, warum ich die Dateinamen der Dokumente in einer lesbaren Form haben möchte, ist einfach: Sollte ich irgendwann mal anstelle von Office-n-PDF ein anderes Archivsystem nutzen oder die Dokumente einfach in einem Filesystem speichern wollen, kann ich ud trotzdem auf den ersten Blick schon am Dateinamen erkennen um was es sich handelt.

 

Der papierlose Haushalt – Umbenennen von PDFs