Open Source im professionellen Einsatz
Linux-Magazin 05/2005

Artikelarchiv im Eigenbau

Papiercontainer

Manche Zeitschriftenartikel gibt es einfach nicht online. Das Skript, um das es in dieser Ausgabe des Perl-Snapshots geht, archiviert die eingescannte Druckversion solcher Beiträge im PDF-Format und nutzt eine kleine Datenbank, um sie später wiederzufinden.

513

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.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Füttern nach Programm

    Englische Vokabeln oder Vim-Kommandos in mundgerechten Stücken serviert sind ungleich verdaulicher als jedes Supersize-Mahl. Das diesmal im Snapshot vorgestellte Skript macht Lernwillige zu Verkostern eines täglich wechselnden E-Mail-Häppchens.

  • Trainierter DJ

    Je nach Stimmungslage haben Musikliebhaber mal Lust auf Rock, mal auf Schmusepop. Ein MP3-Player mit grafischer GTK-Oberfläche wählt aus der privaten Sammlung passende Lieder aus, erstellt eine Playliste und spielt sie ab. Das Perl Object Environment sorgt dafür, dass alles flüssig abläuft.

  • Datenspeicher für Sparsame

    SQLite bringt zwar die Funktionalität einer relationalen SQL-Datenbank mit, kommt aber ohne aufwändig zu administrierende Server aus. Dieser Artikel vergleicht die Bibliothek mit ihren Konkurrenten und zeigt, wie man sie in eigene Programme einbaut.

  • Kein Etikettenschwindel

    Jeder kennt es aus dem Supermarkt: Die Kassiererinnen scannen Barcodes ein. Diese Technik hat aber noch ganz andere Anwendungsmöglichkeiten, jeder kann davon profitieren: Mit einem Lesegerät für 25 Euro lässt sich auch die hauseigene Bibliothek, CD- oder DVD-Sammlung erfassen.

  • Perl-Snapshot

    Viele Ubuntu-User wissen gar nicht, dass ihnen der Zeitgeist-Daemon heimlich über die Schulter schaut und ihre Desktop-Aktionen mitprotokolliert. Einige Perl-Skripte bereiten die Lauscherberichte auf und bringen interessante Tatsachen über die Usergewohnheiten ans Tageslicht.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.