Open Source im professionellen Einsatz
Linux-Magazin 05/2011
© Carlos Caetano, 123RF.com

© Carlos Caetano, 123RF.com

Automatisierter Labeldruck in Open Office dank Perl-Skript

Gute Etikette

Open Office hilft mit einer Vielzahl vorkonfigurierter Formate beim Ausdrucken von selbstklebenden Etiketten. Perl speist die dazu erforderlichen Adressdaten ins Dokument ein.

466

Wer noch altmodisch Glückwunschkarten mit der Hand schreibt und verschickt, hat vielleicht schon mal damit geliebäugelt, sich das Adressieren zu vereinfachen und auf selbstklebende Etiketten umzustellen. Das heute vorgestellte Perl-Skript liest kommaseparierte Texte ein und druckt sie zeilenweise auf solche Labels. Die praktischen Laser-tauglichen Abziehetiketten auf A4-Papier (zum Beispiel Abbildung 1) kosten etwa einen halben Cent pro Stück und helfen nicht nur beim antiquierten Snail-Mail-Versand, sondern eignen sich auch zum Beschriften von Geräten oder Kabeln. Wie wär's zum Beispiel damit, mal den Kabelverhau unterm Schreibtisch zu beschriften, damit der gestresste Home-Admin das Routernetzteil beim nächsten Mal sofort findet?

Abbildung 1: Laser-taugliche Etiketten, 30 pro Blatt, 4200 pro Karton. Der einzelne Aufkleber ist billig und dabei praktisch.

Vorkonfigurierte Formate

Open Office Writer kennt bereits von Haus aus die Etikettenformate vieler Hersteller und erzeugt über das Menü »Datei | Neu | Etiketten« (Abbildung 2) entsprechende tabellenartige Dokumente. Der User muss im Dialog in Abbildung 2 dazu nur den Hersteller und den Produktcode der verwendeten Etiketten eingeben, schon stimmen die Maße.

Abbildung 2: Im Open Office Writer öffnet der Labels-Eintrag aus dem »Datei | Neu«-Menü eine reiche Auswahl von Aufkleber-Formaten.

Die so frisch angelegten Dokumente befüllt der User nur noch mit Textdaten und klickt auf »Drucken« – viel einfacher, als selbst ein Programm zur Druckerpositionierung zu schreiben. Und da Open Office seine Dokumente im offenen ODF-Format ablegt, ist es ein Leichtes, die Tabellendaten mittels eines selbst gestrickten Perl-Skripts aus einer CSV-Datei zu lesen und ins Dokument einzustreuen.

Zip-Archiv in ODT

Vor dem automatisierten Einspeichern der Adressen erstellt der User manuell mit Open Office einmalig ein Testdokument als Vorlage und tippt einige Teststrings in die ersten vier Felder ein (Abbildung 3). Das dann als »template.odt« abgespeicherte Dokument besteht, wie das »unzip«-Kommando in Abbildung 4 zeigt, aus einem Zip-Archiv mit etlichen XML-Dateien, deren interessanteste »content.xml« ist, weil sie den mit XML-Markup versehenen Textinhalt des Dokuments enthält.

Abbildung 3: Der User tippt Beispieltexte in die Tabellenfelder des Open-Office-Dokuments ein.

Abbildung 4: Ein Unzip-Aufruf fördert die XML-Dateien des Open-Office-Dokuments zutage, »content.xml« enthält die Texte.

Was nun dort steht und in welchen Markup-Strukturen die vom User vorher in die Tabellenelemente eingegebenen Strings gelandet sind, zeigt der Aufruf des Skripts in Listing 1 mittels »oo-dumper template.odt«. Es nutzt das CPAN-Modul OpenOffice::OODoc und ruft dessen Konstruktor »ooDocument()« mit dem Namen der zu untersuchenden Datei auf. Als »member« legt Zeile 11 »content« fest, zeigt sich also am Dokumentinhalt interessiert und nicht an ausgelagerten Kopf- oder Fußzeilen, wiederverwertbaren Style-Definitionen oder Meta-Informationen.

Listing 1

»oo-dumper«

01 #!/usr/local/bin/perl -w
02 use strict;
03 use OpenOffice::OODoc;
04
05 (my $file) = @ARGV;
06
07 die "usage: $0 file" unless defined $file;
08
09 my $doc = ooDocument(
10     file   => $file,
11     member => "content",
12 );
13
14 (my $element) = $doc->selectElements(
15     '//office:body');
16
17 print $element->_dump();

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

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

Deutschland

Ähnliche Artikel

  • Ab die Post!

    Um nur schnell einen Brief am Computer zu schreiben, lohnt sich der Start von Open Office kaum. Wer nicht zum Kugelschreiber greifen will, wirft den Perl-Interpreter an. Ein Modul hilft auf Open-Office-Dokumente zuzugreifen. So sind sauber formatierte Briefe in Windeseile erstellt und ausgedruckt.

  • Beschriftungs-Himmel

    Um Kuverts für normale Postbriefe zu erstellen, braucht man weder ein Office-Paket noch Latex. Auch mit Perls Postscript-Modulen, einer Adressdatenbank und dem im Folgenden vorgestellten Skript lassen sich massenweise Umschläge beschriften.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

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