Ob ein gelungenes 100-Fragen-Interview im Magazin der "Süddeutschen Zeitung" oder eine Max-Goldt-Kolumne in der "Titanic": Beide liest man immer wieder gerne und möchte sie vielleicht archivieren. Leider werden sie nicht online angeboten. Die alten Hefte aufzuheben lohnt auch nicht recht, denn eigentlich interessiert doch nur hier und da ein Artikel - ganze Zeitungen oder Zeitschriften liest nach zwei Jahren ohnehin kein Mensch mehr.
Viel praktischer als bergeweise Papier zu horten ist es deshalb, die interessanten Beiträge mit einem Scanner zu digitalisieren und als PDF auf Festplatte zu speichern. Damit der Archivar in der ständig wachsenden Bibliothek nicht den Überblick verliert, verwaltet das hier vorgestellte Perlskript »magsafe« die Dokumente in einer Datenbank.
Scannen und Packen
Zwei, drei Seiten sind schnell eingescannt, das hervorragende GUI-Programm Xsane aus dem Sane-Projekt[4] arbeitet über das Sane-Backend mit vielen Scannern zusammen. Sowohl der Epson-Fotoscanner als auch der HP-All-In-One-Officejet aus dem Perlmeister-Testlabor funktionieren problemlos unter Linux. Die Einzelseiten werden als Bilder im PNG-Format abgelegt. (Abbildung 1). Üblicherweise reichen 200 dpi, damit der Text lesbar bleibt und ein Drucker später gerade noch akzeptable Qualität produziert.
Abbildung 1: Xsane digitalisiert den Titanic-Artikel.
Das Convert-Utility fasst mehrere Seiten zu einem PDF-Dokument zusammen, dabei nutzt es einen aus[2] geklauten Trick: »convert -density 200 -quality 95 -resize "1600x1600>" *.png archive.pdf«. Der Aufruf sammelt alle im gegenwärtigen Verzeichnis liegenden PNG-Dateien ein und begrenzt sowohl Höhe als auch Breite auf 1600 Pixel. Kleinere Bilder bleiben wegen des Größer-als-Zeichens unverändert. Die Einzelseiten bündelt Convert zu einer mehrseitigen PDF-Datei mit 200 dpi Auflösung. Die PNGs werden für das PDF-Dokument zu JPG mit 95-prozentiger Qualität konvertiert.
Hat sich der zweiseitige Artikel von Max Goldt dann in die Datei »goldt.pdf« verwandelt, verfrachtet ihn folgender Aufruf ins Archiv:
magsafe -m Titanic -a "Max U
Goldt" -t "Tropfen, Klingeln U
und die üble Weiterleiterei" U
-i 2005/03 -p 44 -d goldt.pdf
So entsteht ein Datensatz mit dem Namen der Zeitschrift (Titanic), dem Artikeltitel (Tropfen, Klingeln ...), der Nummer der Ausgabe (2005/03) und der Startseite (44).
Leichte Datenbank
Die Daten liegen in einer echten Datenbank mit SQL-Abfragemöglichkeit. Der Datenbankmotor SQLite[3] kam im Perl-Snapshot schon öfter zum Einsatz, denn er ermöglicht eine sehr einfache Installation. Wie der Abschnitt "Installation" am Schluss des Artikels zeigt, sind lediglich ein paar CPAN-Module zu laden, das Skript erledigt den Rest. Der Anwender muss keine Datenbank oder Tabelle einrichten.
Das PDF-Dokument selbst liegt allerdings nicht in der Datenbank. Es landet stattdessen in einem Verzeichnis, das alle Dokumente unter fortlaufend nummerierten Dateinamen aufnimmt (Muster: »000001«, »000002« und so weiter). War die Datenbank bislang leer, hat der Befehl oben nun ein neues Dokument »000001« erzeugt, das die PDF-Datei »goldt.pdf« enthält.
Als zweiter Datensatz wandert ein 100-Fragen-Interview von Moritz von Uslar mit Ralph Lauren aus einer-SZ-Magazin-Ausgabe des Jahrgangs 2004 ins Artikelarchiv:
magsafe -m "SZ Magazin" -t "100 Fragen an Ralph Lauren" -i 2004/37 -p 56 -d lauren.pdf
Wie man sieht, dürfen die Angaben zum Autor entfallen. Sie sind in manchen Fällen nicht bekannt, etwa bei Agenturmeldungen, wie sie Tageszeitungen veröffentlichen.