Open Source im professionellen Einsatz
Linux-Magazin 03/2011
© Sergey Ilin, 123RF.com

© Sergey Ilin, 123RF.com

Automatisiert Zeitschriftenartikel in PDF-Files konvertieren

Am Fließband

Beim halbautomatischen Umwandeln von gedruckten Zeitschriftenartikeln ins PDF-Format hilft das heute vorgestellte Perl-Skript. Den Ablauf triggert ein Taster am Scanner.

518

Langjährige Leser wissen, dass meine Perl-Snapshots seit bald 14 Jahren erscheinen. Daher stapeln sich inzwischen rund 150 Ausgaben des Linux-Magazins in meiner Wohnung und belegen etwa zweieinhalb Regalmeter. Weil sich die Anmietung zusätzlichen Stauraums mit einem Blick auf den Mietspiegel von San Francisco verbietet, sollten die historischen Magazine nun in der Altpapiertonne landen. Der Nostalgie wegen wollte ich aber vorher die Seiten der Perl-Kolumne mit einem Scanner und einem Skript [2] ins PDF-Format retten.

Wider das Ermatten

Scanprogramme wie »xsane« oder das Ubuntu neuerdings beiliegende »simple-scan« erledigen Einzelscans ohne viel Aufwand. Beim Einlesen mehrerer Zeitschriftenseiten, deren Jpeg-Bilder danach in ein mehrseitiges PDF-Dokument einfließen sollen, ermattet ohne bessere Automatisierung aber auch der fleißigste Scanner-Operator schnell.

Das Perl-Skript »artscan« führt deshalb per Menü durch den Scanvorgang und zeigt in einer Listbox in Echtzeit die gerade ablaufenden Schritte an (Abbildung 1). Als zusätzliche Erleichterung muss ich lediglich den grünen Knopf am Scanner drücken, sobald die aktuelle Artikelseite ordnungsgemäß positioniert ist (Abbildung 2). Um eine Reihe bereits eingescannter Einzelbilder zu verwerfen, tippe ich stattdessen [N] (für new), worauf das Skript die bis dahin bereits zwischengespeicherten Bilder vergisst.

Abbildung 1: Das Programm protokolliert die einzelnen Schritte in einer Listbox mit.

Nach dem Scannen der letzten Seite eines Artikels betätige ich die Taste [F] (für finish). Das Skript überführt daraufhin die zwischengespeicherten Einzelseiten mit Hilfe des Programms »convert« aus dem Fundus der Imagemagick-Programmsammlung vom PNM-Format in Jpeg-Bilder.

Abbildung 2: Auf Knopfdruck läuft der Scanner an und liest das Titelbild der Oktober-Ausgabe des Linux-Magazins aus dem Jahr 1996 ein. Der Bediener muss nicht die PC-Tatstatur benutzen.

Schrumpfen mit Jpeg

Die damit verbundene Kompression reduziert den Speicherbedarf um bis zu 90 Prozent. Ein weiterer Aufruf von »convert« bündelt die Jpeg-Sammlung dann zu einem mehrseitigen PDF-Dokument und legt es in einem voreingestellten Ausgabeverzeichnis ab. Die Fußzeile im Terminal zeigt den Pfad des Ergebnisdokuments an. Den Scanvorgang löst der User entweder durch Drücken der Taste [S] aus oder durch den am Scanner befindlichen grünen Knopf.

Während der Operator am Scanner hantiert und krampfhaft versucht die Vorlage trotz des Falzes möglichst bündig einzulegen, wäre es äußerst umständlich, auch noch das im Terminal laufende Skript zu bedienen, um den Scanvorgang zu starten. Scanner wie ein von mir benutztes Modell von Epson verfügen deshalb über einen Knopf, der über das USB-Interface dem Rechner ein Signal gibt, das er beliebig interpretieren kann.

Das unter Ubuntu erhältliche Paket »scanbuttond« [3] enthält einen Daemon, der eventuell angeschlossene Scanner überwacht und jedes Mal, wenn der Scannerknopf aktiviert wurde, das voreingestellte Skript »/etc/scanbuttond/buttonpressed.sh« laufen lässt. Füge ich in dieses Skript eine Zeile wie

kill -USR1 `cat /tmp/pdfs/pid`

ein, sendet es bei jedem Knopfdruck das Signal »USR1« an den Prozess, der seine PID in der Datei »/tmp/pdfs/pid« abgelegt hat. Das Skript »artscan« schreibt sofort nach dem Hochfahren die in Perl als »$$« vorliegende PID des aktuellen Prozesses samt einem abschließenden Zeilenumbruch in diese PID-Datei. Dafür greift es auf die Funktion »blurt()« aus dem Fundus des Moduls Sysadm::Install zurück.

Linux-Magazin kaufen

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

Deutschland

Ähnliche Artikel

  • Ich glotz' TV

    Nina Hagens Medien-Nutzungsverhalten zu kopieren ist für einen Auslandsdeutschen gar nicht einfach. Doch ein Internet-Fernsehportal, die abgekupferte Technik eines Geräts und Perl verhelfen Exilanten sogar zu zeitversetztem Pantoffelkino. Hier Gebliebene haben natürlich genauso viel Spaß.

  • Babylon zu fünft

    Kaum ein Thema trennt Entwickler so nachhaltig wie die Frage nach der besten Programmiersprache. Typisierung, Datenstrukturen, Freiheit in der Syntax oder Kürze des Code halten als Argumente her. Das Linux-Magazin hat prominenten Protagonisten von fünf populären Sprachen die gleiche Aufgabe gestellt.

  • Vom Thron gestürzt

    Nur wenige Tage nach Erscheinen des vorletzten Hefts gingen die Einsendungen im Stundentakt ein. Anhänger aller möglichen Sprachen wollten beweisen, dass sie besser programmieren können als es die Sprachpäpste im Linux-Magazin getan hatten. Die Auswertung zeigt: Das Volk irrt nicht.

  • Babylon zu fünft

    Kaum ein Thema trennt Entwickler so nachhaltig wie die Frage nach der besten Programmiersprache. Typisierung, Datenstrukturen, Freiheit in der Syntax oder Kürze des Code halten als Argumente her. Das Linux-Magazin hat prominenten Protagonisten von fünf populären Sprachen die gleiche Aufgabe gestellt.

  • Auf den Mund geschaut

    Sprechende Bilder: Diesen Ausdruck nimmt Robert Bargmann recht wörtlich. Sein Forschungsprojekt "Lernbasierte Gesichtsanimation" sorgt auf der Basis von Audiodaten bei 3D-Modellen unter Linux automatisch für die entsprechende Mundbewegung.

comments powered by Disqus

Ausgabe 09/2017

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