Etiketten und Karteikarten unter Linux drucken

Aus LinuxUser 11/2024

Etiketten und Karteikarten unter Linux drucken

© Takashi Honma / 123RF.com

Klebrige Informationen

Etiketten, Aufkleber und Karteikarten helfen bei Organisationsaufgaben aller Art. Eine maßgeschneiderte Lösung zum Erstellen und Drucken spart da viel Arbeit.

Aufkleber zur Kennzeichnung von Gegenständen aller Art, Kärtchen für Firmenausweise oder für das Bestellwesen im Materiallager – die Anwendungsmöglichkeiten für Etiketten und Aufkleber sind weit gestreut. Für Teilnehmerausweise, Gästekarten oder Seriennummern von Geräten muss jedes Exemplar über spezifische Inhalte verfügen, die man am geschicktesten aus einer Datenbasis heraus erzeugt. Dasselbe gilt für Versand- und Paketaufkleber. In anderen Fällen steht auf allen Ausdrucken derselbe Inhalt, etwa auf Visitenkarten, Absenderaufkleber und Artikelkennzeichnungen. Balken- oder QR-Codes erweisen sich in beiden Varianten mitunter als hilfreich.

Druckmedien

Endlosaufkleber bieten einen entscheidenden Vorteil: Hier gibt es weder angefangene Bögen noch Verschnitt. Kommen Sie ohne Grafik aus, verwenden Sie am besten einen Nadeldrucker. Der arbeitet langsam und lautstark, erfreut dafür aber mit niedrigen Betriebskosten. Im Fachhandel für das Gewerbe treffen Sie auf Laser- und Tintenstrahldrucker, die ebenfalls den Endlosdruck unterstützen. Handelt es sich dabei nicht um reine Aufkleberdrucker, sind solche Geräte allerdings recht teuer.

Die allermeisten Tintenstrahler und Laserdrucker verarbeiten Bogenware, im Regelfall in Formaten von DIN A6 bis DIN A4. In den Handbüchern von Laserdruckern finden Sie meist ausdrückliche Warnungen davor, Aufkleberbögen mehrfach dem Druckvorgang zuzuführen: Die Etiketten können sich bei mehrfachem Gerätedurchlauf von der Trägerfolie ablösen. Im besten Fall verkleben sie sich dann im Bereich der Fixiereinheit und behindern den Papiertransport. Im schlechtesten Fall verursachen sie Schäden an der Mechanik und den Papiersensoren. Restbögen sollten Sie also nur in Tintenstrahldruckern verwenden.

Beabsichtigen Sie, Kartonmaterial zu bedrucken, muss der Drucker mit der Medienstärke zurechtkommen. Guter Druckkarton verfügt über ein Gewicht von bis zu 220 Gramm pro Quadratmeter. Das Handbuch Ihres Druckers gibt Auskunft, ob das Gerät damit zurechtkommt.

Sowohl Etikettenbögen als auch Kartons sollten den Druckweg möglichst flach passieren. Das verhindert Papierstaus, gewellte Medien (Laserdruck) oder abgelöste Aufkleber. Viele Druckermodelle verfügen über eine Universalzufuhr, die Sie extra aufklappen. Besonders bei Laserdruckern finden Sie an der Geräterückseite eine Klappe als Ablage für die bedruckten Bögen, die daneben auch als Zufuhr für dickere Medien und Briefumschläge dient. Von dort aus transportiert das Gerät das Druckgut in die meist oben liegende Ablage.

Kosten sparen

Die Aufkleberbögen haben ihren Preis. Bevor Sie sie in vielerlei Größen beschaffen, überlegen Sie, welche Größe möglichst vielen oder am besten allen Ihren Einsatzzwecken gerecht wird. Ein ganzer Karton eines Formats kommt meist günstiger als viele unterschiedliche Größen in Kleingebinden, wenn Sie auf den Preis des Einzeletiketts umrechnen. Normalerweise stört es in diesem Fall nicht, wenn Sie auf einem Etikett mit dem Platz großzügiger umgehen. Größere Aufkleber können Sie nach dem Bedrucken passend zuschneiden und damit eine Ansammlung verschiedenster Druckmedien vermeiden. Wir gehen hier im Beitrag davon aus, dass ein Drucker auch mit Bögen der Größe DIN A5 zurechtkommt.

Achten Sie bei der Größenauswahl der Aufkleber darauf, dass nach einem Zuschnitt stets noch ein Randbereich zum Abziehen verbleibt (Abbildung 1). Freiliegende Trägerfolie genügt hier ebenso. Anderenfalls artet jede Klebearbeit in ein zeitraubendes, nervtötendes Basteln aus. Viele Aufkleberhersteller versehen ihre Bögen ohnehin mit einem Hilfsrand.

Abbildung 1: Die meisten Aufkleberbögen haben einen recht praktischen Hilfsrand.

Abbildung 1: Die meisten Aufkleberbögen haben einen recht praktischen Hilfsrand.

Oft benötigt man die Paketaufkleber im Format DIN A5 (210 x 148 Millimeter). Viele Hersteller bieten entsprechende Druckmedien an, entweder direkt in diesem Format oder in Form von zwei Aufklebern auf einem Träger im Format DIN A4. Im letzteren Fall schneiden Sie das Druckmedium zwischen den beiden Aufklebern durch, falls Sie einen Laserdrucker verwenden. Nur wirklich zu bedruckende Aufkleber durchlaufen den Drucker. Die Probleme mit sich ablösenden Aufklebern im Gerät vermeiden Sie damit.

Aus einem DIN-A4-Druckbogen erhalten Sie zwei DIN-A5-Aufkleber, vier DIN-A6-Etiketten oder acht Aufkleber in DIN-A7-Größe. Einen DIN-A5-Bogen nutzen Sie je nach Bedarf für zwei DIN-A6-, vier DIN-A7- oder acht DIN-A8-Etiketten (Abbildung 2). Unabhängig davon können Sie geringere Breiten beziehungsweise Höhen und die Abmessungen gängiger Aufkleber verwenden, solange die dabei entstehenden Zuschnitte zumindest einen Hilfsrand aufweisen. Die Tabelle “Formatgrößen” gibt die Zuschnittgrößen für DIN-Formate an.

Abbildung 2: Zuschnittmöglichkeiten Druckmedien.

Abbildung 2: Zuschnittmöglichkeiten Druckmedien.

Format

Größe (mm)

DIN A4

210 x 297

DIN A5

148 x 210

DIN A6

105 x 148

DIN A7

74 x 105

DIN A8

52 x 74

DIN A9

37 x 52

Mit geeigneten Geräten schneiden Sie die Bögen nach dem Bedrucken in kleinere Aufkleberformate zu. Für das Zurichten einzelner Aufkleberbögen genügt ein Schneidelineal (Abbildung 3) mit möglichst scharfer Schneide. Aufkleberstapel aus bis zu 100 Bögen schneidet eine Stapelschneidemaschine. Hat das Schneidegerät wie das in Abbildung 4 gezeigte antike Stück (noch) keinen Handschutz, ist besondere Vorsicht angebracht. Ausführungen für den gewerblichen Einsatz verfügen über den dafür vorgeschriebenen Handschutz, was Unfälle weitgehend vermeiden sollte.

Abbildung 3: Für den Zuschnitt einzelner Bögen genügt ein schlichtes Schneidelineal.

Abbildung 3: Für den Zuschnitt einzelner Bögen genügt ein schlichtes Schneidelineal.


Abbildung 4: Mit einer Stapelschneidemaschine verarbeiten Sie in einem Rutsch bis zu 100 Bögen.

Abbildung 4: Mit einer Stapelschneidemaschine verarbeiten Sie in einem Rutsch bis zu 100 Bögen.

Schnittmarken erleichtern das Zuschneiden der Aufkleberbögen. Am besten drucken Sie sich ein Schablonenblatt aus, beispielsweise mit gLabels 3 [1]. Abbildung 5 zeigt einen Teil dieses Blatts. Für das Arbeiten mit einem Schneidelineal übertragen Sie mit Bleistift die notwendigen Marken am Rand. Beim Einsatz einer Stapelschneidemaschine legen Sie das Papierblatt einfach auf die zu zerlegenden Aufkleberbögen und stellen die Maschine nach den Linien ein.

Abbildung 5: Ein ausgedrucktes Schablonenblatt erleichtert das Zuschneiden der Bögen.

Abbildung 5: Ein ausgedrucktes Schablonenblatt erleichtert das Zuschneiden der Bögen.

Datenquellen für den Aufkleber

Für den Aufkleberdruck müssen die notwendigen Daten in strukturierter Form vorliegen, um ein entsprechendes Druckergebnis zu erzielen. Den kleinsten gemeinsamen Nenner stellt hier das CSV-Format dar. Bei allen im Folgenden gezeigten Beispielen lässt sich eine CSV-Datei als Datengrundlage verwenden. Stattdessen können Sie aber beispielsweise auch unter LibreOffice eine Datenbankverbindung erstellen und für den Aufkleberdruck nutzen. Die Vielfalt der Datenbanksysteme und ihrer spezifischen Eigenheiten bezüglich der Office-Anbindung ergäbe aufgrund des thematischen Umfangs locker einen eigenen Beitrag, weswegen wir uns hier auf CSV beschränken.

Die Datenstruktur ist für eine Datenbank und eine LO-Calc-Datei identisch (Tabelle “Struktur Musterdaten”). Die Shell-Beispiele in den nächsten Abschnitten arbeiten ohne festgelegte Feldtypen. Das Feld code enthält den Wert für das Erzeugen eines Balken- oder QR-Codes. Die erzeugte CSV-Datei trägt den Namen daten.csv, die für die Beispiele verwendeten Musterdaten finden Sie in Listing 1.

Feld

Inhalt

info

auszudruckender Text

zahl

Fließkommazahl

code

Ganzzahl für QR-Code

Listing 1

daten.csv

Schraube M6,50.00,123456
Schraube M8,30.00,234567
Mutter M8,70.00,345678
Mutter M6,90.00,456789

Datenquelle erstellen

Im einfachsten Fall erfassen Sie die Druckdaten in LO Calc und exportieren Sie von dort ins CSV-Format. Dazu wählen Sie im Tabellenfenster den Menüpunkt Speichern unter. Im Dateidialog legen Sie in der Formatauswahl rechts unten CSV fest. Dann geben Sie als Dateinamen daten.csv ein und klicken auf Speichern.

Doch auch aus anderen Anwendungen lassen sich die Daten für den Aufkleberdruck unkompliziert ins CSV-Format umsetzen. Aus einer Postgres-Datenbank etwa extrahieren Sie die Daten mit dem Shell-Client Psql [2] und speichern Sie mit einem Shell-Einzeiler als CSV ab (Listing 2, erste Zeile).

Listing 2

CSV erzeugen

$ psql -t -Pformat=csv -c "select * from daten;" > daten.csv
$ sqlite3 -csv sqlite-daten/aufkleber.sqlite3 "select * from daten;" | tr -d \" > daten.csv

Verwenden Sie SQLite, navigieren Sie im GUI-Programm Sqlitebrowser [3] in die Datenansicht der zu exportierenden Tabelle. Dort klicken Sie auf die Schaltfläche Tabelle wie angezeigt speichern und wählen dann den Eintrag Nach CSV exportieren (Abbildung 6). Im folgenden Optionsfenster (Abbildung 7) entfernen Sie den Haken bei Spaltennamen in der ersten Zeile. Unter String-Zeichen wählen Sie Blank, verzichten also auf einen gesonderten Texttrenner. Anschließend klicken Sie auf Speichern und geben als Dateinamen ein daten.csv ein. Alternativ gelingt der Export aber auch direkt via Shell (Listing 2, zweite Zeile). Dabei löschen Sie via Tr die Anführungszeichen, die Texte abgrenzen.

Abbildung 6: Über die Exportfunktion des GUI-Clients Sqlitebrowser speichern Sie die Daten als CSV-Datei.

Abbildung 6: Über die Exportfunktion des GUI-Clients Sqlitebrowser speichern Sie die Daten als CSV-Datei.


Abbildung 7: In Sqlitebrowser lassen sich die Exportoptionen detailliert festlegen.

Abbildung 7: In Sqlitebrowser lassen sich die Exportoptionen detailliert festlegen.

Eingabe per Shell

Liegen die Daten für die Aufkleber noch nirgends vor, können Sie sie auch mit einem beliebigen Texteditor Sie Zeile für Zeile erfassen. Nach jedem Feld setzen Sie ein Komma, jede Zeile schließen Sie durch einen Druck auf die Eingabetaste ab. Das ist der schnellste Weg, bisher nicht irgendwo abrufbare Daten in eine CSV-Datei zu bekommen.

Eleganter klappt das Ganze jedoch mit einem kleinen Shell-Skript (Listing 3), das jeden Datensatz an die angegebene Datei anfügt. Das Skript hilft dabei, die Struktur zu wahren. Insbesondere vermeidet es Inkonsistenzen, die bei Erfassung per Editor auftreten können, wie vergessene Kommas.

Listing 3

eingabe.sh

#! /bin/bash
read -p "Dateiname: " dn
if [ -z $dn ]; then
 echo "Dateiname leer. Abbruch!"
 exit
fi
while true; do
 read -p "info: " info
 read -p "zahl: " zahl
 zahl=$(echo $zahl | tr \, \. )
 read -p "code: " code
 echo "$info $zahl $code"
 read -p "Daten anfügen (*) " anf
 if [ "$anf" = "*" ]; then
  echo "$info,$zahl,$code" >> $dn
 fi
 read -p "Weiter [Eingabe], Abbruch [Strg]+[C] " we
done

Balken- und QR-Code

Balken- und 2D-Codes tragen maschinenlesbare Informationen, die sich mittels eines Barcodelesers, Imagers oder Smartphones erfassen lassen. Für Ihre Aufkleber erzeugen Sie maschinenlesbare Codes auf verschiedene Weise.

Innerhalb eines Shell-Skripts gelingt das mit Tools wie GNU Barcode [4], Zint [5] oder Qrencode [6], für die grafische Oberfläche bietet Zint-qt [7] eine komfortable Alternative. Weitere Möglichkeiten bieten das Aufkleberprogramm gLabels 3, die Bürosuite LibreOffice und – für Puristen – das Textsatzsystem LaTeX. Liegen die Codes schon vor dem Erstellen der Druckdaten als kleine Grafikdateien vor, brauchen Sie sie nur noch in das Druckdokument einzufügen. Anderenfalls erzeugen Sie die Codes beim Generieren der Druckausgabe.

Mit Zint und dessen GUI-Frontend Zint-qt liegt ein vielseitiges Werkzeug für Barcodes vor. Rufen Sie mittels zint -t eine Liste der unterstützten Codevarianten ab, führt das Tool nicht weniger als 146 Codetypen auf. Die Handbuchseite des Programms nennt eine Vielzahl von Optionen, die wichtigsten fasst die Tabelle “Zint: Optionen” zusammen.

Aktion

Option

Ausgabedatei

-o Name.Format

Ausgabedatei (Stapelbetrieb)

-o Name~~~.Format

Stapelbetrieb

--batch

Eingabedatei (Stapelbetrieb)

-i Datei

Datenwert (Einzelaufruf)

-d Wert

Code-Typ

-b Typ

Text unter Code fetten

--bold

Format der Ausgabedatei

--filetype=Format

Codetypen auflisten

-t

Skalierung

--scale=Wert

Mögliche Ausgabeformate: bmp, emf, eps, gif, pcx, png, svg, tif, txt (nur für Prüfzwecke).

Das Listing 4 zeigt drei Codeschnipsel für die Arbeit mit Zint. Die Option --batch arbeitet alle Werte einer Eingabedatei ab. Als Ergebnis erhalten Sie für jeden Wert eine Bilddatei mit dem Balken- oder QR-Code. Für die Ausgabe müssen Sie dazu einen Dateinamen mit Platzhaltern (~) angeben.

Listing 4

Barcodes mit Zint

### einzelnen Code erzeugen
$ zint -o barcode.png -b 20 -d 1234
### Eingabedatei erzeugen
$ cat daten.csv | cut -d \, -f3 > code.dat
### Stapel abarbeiten
$ zint -o barcode~~~.png -batch -b 20 -i code.dat

Ein Nachteil des Stapelbetriebs liegt in den erzeugten Dateinamen, die Sie im weiteren Arbeitsverlauf wieder mit den dazugehörenden Daten zusammenführen müssen. Das Listing 5 zeigt das Shell-Skript ziba.sh, das als “kleine” Lösung für dieses Problem dienen kann, solange die Werte für den Code keine Leerzeichen enthalten. Die Bilddateien tragen als Namensbestandteil den Inhalt unseres Datenfelds code. Bei alphanumerischen Werten, beispielsweise für QR-Codes, erweitern Sie die Struktur um eine Datensatznummer im Dateinamen der Bilddatei. Damit klappt die Zusammenführung beim Aufkleberdruck wieder.

Listing 5

ziba.sh

#!/bin/bash
for i in $(cat daten.csv | \
           cut -d"," -f3); \
 do
  zint -o $i.png -b 20 -d $i
 done

gLabels 3

Das Programm gLabels bietet alles, was Sie zur Aufkleber- oder Visitenkartenherstellung benötigen. Sie wählen aus zahlreichen Aufkleber- und Kartenformaten aus, können aber auch eigene festlegen. Das klappt sowohl für identische Aufkleber respektive Karten als auch im Seriendruck. Benötigen Sie immer wieder dieselben Druckinhalte, legen Sie sie am besten in PDF-Dateien ab.

Der Programmstart verläuft etwas zäh, doch sobald sich die Benutzeroberfläche aufgebaut hat, gibt es keine Verzögerungen mehr. Mit Neue Datei erstellen beginnen Sie die Arbeit und wählen aus einem umfangreichen Katalog das verwendete Bogenmuster aus. Anschließend legen Sie fest, ob Sie im Hoch- oder Querformat drucken wollen. Als Ergebnis sehen Sie das Bogenraster. Nach einem Klick auf Anwenden erscheint der Editor für den einzelnen Ausdruck (Abbildung 8). Dessen Werkzeugleiste bietet alle notwendigen Funktionen.

Abbildung 8: Im komfortablen Editor von gLabels erstellen Sie neue Aufkleber.

Abbildung 8: Im komfortablen Editor von gLabels erstellen Sie neue Aufkleber.

Um Serienaufkleber anzufertigen, klicken Sie auf das ganz rechts liegende Symbol Mischeinstellungen bearbeiten. Im entsprechenden Dialog (Abbildung 9) geben Sie die Datei mit den zu druckenden Daten und deren Format an. Die Felder innerhalb eines Datensatzes kennzeichnet eine Nummer. Um die passenden Feldnummern für die Ausgabe zu identifizieren, klicken Sie auf das nach rechts zeigende Dreieck vor dem Datensatznamen. So erkennen Sie anhand des Inhalts die gesuchte Feldnummer.

Abbildung 9: Die f&uuml;r den Seriendruck ben&ouml;tigten Felder identifizieren Sie &uuml;ber <span class="ui-element">Mischeinstellungen bearbeiten</span>.

Abbildung 9: Die für den Seriendruck benötigten Felder identifizieren Sie über Mischeinstellungen bearbeiten.

Nach dem Schließen dieses Fensters können Sie die Datenfelder verwenden. Konstanten Text und einzulesende Daten bearbeiten Sie mit Textobjekt erzeugen. Dabei mischen Sie den Text mit den nach dem Schema ${Feldnummer} notierten Feldinhalten (Abbildung 10). Barcode erzeugen Sie durch Klick auf das Barcode-Symbol (Strichcodeobjekt erzeugen). Dabei verwenden Sie gleichbleibende Werte (Literale) oder geben als Schlüssel die Feldnummer an.

Abbildung 10: Serienaufkleber.

Abbildung 10: Serienaufkleber.

Im Menü Stil wählen Sie das Backend sowie unter Stil den Codetyp. Allerdings kann nicht jedes Backend jeden Codetyp erzeugen. Klicken Sie dann im Druckmenü auf Labels. In diesem Dialog legen Sie unter anderem fest, ob gLabels Schnittmarken und – für die erste Vorschau – Begrenzungen mit ausgibt. In der Vorschau (Abbildung 11) sehen Sie anschließend, ob die Ausrichtung passt und genügend Platz für die Inhalte bereitsteht.

Abbildung 11: Druckvorschau.

Abbildung 11: Druckvorschau.

Entspricht die Ausgabe am Bildschirm Ihren Vorstellungen, entfernen Sie über Labels gegebenenfalls die Schnittmarken und Begrenzungen wieder. Vergessen Sie am Ende nicht, die Arbeit zu speichern. Zu guter Letzt legen Sie nur noch den oder die Aufkleberbögen in den Drucker ein und klicken auf das Druckericon ganz rechts – fertig.

LibreOffice

Das Erstellen identischer Aufkleber klappt unter LibreOffice Writer relativ leicht. Über Datei | Neu | Etiketten gelangen Sie in einen Dialog, in dem Sie den unformatierten Text eingeben. Als Format geben Sie Tabelle an. Unter Marke wählen Sie den Hersteller der Etiketten an, unter Typ den Bogentyp (Abbildung 12). Anschließend klicken Sie auf Neues Dokument und erhalten am Bildschirm eine Vorschau des Aufkleberbogens (Abbildung 13).

Abbildung 12: Im Reiter <span class="ui-element">Etiketten</span> von LO&nbsp;Writer geben Sie die Werte f&uuml;r identische Aufkleber ein.

Abbildung 12: Im Reiter Etiketten von LO Writer geben Sie die Werte für identische Aufkleber ein.


Abbildung 13: Im Anschluss an die Dateneingabe zeigt LO&nbsp;Writer eine Vorschau des Etikettenbogens.

Abbildung 13: Im Anschluss an die Dateneingabe zeigt LO Writer eine Vorschau des Etikettenbogens.

Möchten Sie für die Aufkleber auf eine Datenbank wie PostgreSQL zugreifen, fallen einige Vorarbeiten an. Zunächst einmal benötigt Ihr Benutzerkonto administrativen Zugriff auf die Postgres-Datenbank. Gegebenenfalls richten Sie das via Psql mit dem Kommando alter role Benutzer with password 'Passwort' ein.

Anschließend rufen Sie zum Einrichten einer Datenbankverbindung LibreOffice Base auf. Dort wählen Sie unter Verbindung zu einer bestehenden Datenbank herstellen als DBMS PostgreSQL aus (Abbildung 14) und setzen die Einrichtung mit Vor fort. Als Verbindungszeichenfolge verwenden Sie postgresql://localhost:5432/Datenbankname (Abbildung 15). Zur Benutzerauthentifizierung geben Sie den Benutzernamen und das Kennwort für die Datenbank ein. Anschließend klicken Sie auf Verbindung testen. Funktioniert der Verbindungstest, schließen Sie den Vorgang OK ab (Abbildung 16).

Abbildung 14: So geben Sie in LO&nbsp;Base die zu kontaktierende Datenbank an.

Abbildung 14: So geben Sie in LO Base die zu kontaktierende Datenbank an.


Abbildung 15: Die Verbindungsinformationen liefern Sie in Form eines URI.

Abbildung 15: Die Verbindungsinformationen liefern Sie in Form eines URI.


Abbildung 16: Nach Angabe der Benutzerauthentifizierung nehmen Sie einen Verbindungstest vor.

Abbildung 16: Nach Angabe der Benutzerauthentifizierung nehmen Sie einen Verbindungstest vor.

Speichern Sie die Informationen über die Datenbank und konfigurieren Sie die Anmeldung wie in Abbildung 17 gezeigt. Nun wechseln Sie wieder in den Etiketten-Dialog von LO Writer. Dort wählen Sie den gespeicherten Datenbanknamen aus, legen die zu verwendende Tabelle fest und übernehmen das auszugebende Datenbankfeld mit dem Pfeil nach links in den Aufkleber. Dann legen Sie noch Marke und Typ des Druckmediums fest und klicken auf Neues Dokument (Abbildung 18).

Abbildung 17: Nach dem Anmelden der Datenbank in LO&nbsp;Base speichern Sie die entsprechenden Informationen.

Abbildung 17: Nach dem Anmelden der Datenbank in LO Base speichern Sie die entsprechenden Informationen.


Abbildung 18: In LO&nbsp;Writer &uuml;bernehmen Sie die Informationen aus der Datenbank f&uuml;r den Seriendruck.

Abbildung 18: In LO Writer übernehmen Sie die Informationen aus der Datenbank für den Seriendruck.

Zum Ausdruck klicken Sie in der Werkzeugleiste von LO Writer auf das Druckersymbol und bestätigen im folgenden Dialog die Frage nach einem Serienbriefdruck mit Ja (Abbildung 19). Als Ausgabeort wählen Sie entweder einen Drucker oder, wenn Sie die Etiketten des Öfteren benötigen, eine Datei. Im letzteren Fall lassen Sie die Daten Als ein Dokument speichern (Abbildung 20). In beiden Fällen starten Sie die Ausgabe und mit OK. Ein gespeichertes Dokument eröffnet die Möglichkeit, es vor der Ausgabe auf den Drucker noch manuell nachzubearbeiten (Abbildung 21).

Abbildung 19: Nach einem Klick auf das Druckersymbol best&auml;tigen Sie den Serienbriefdruck mit <span class="ui-element">Ja</span>.

Abbildung 19: Nach einem Klick auf das Druckersymbol bestätigen Sie den Serienbriefdruck mit Ja.


Abbildung 20: Als Ausgabeziel bestimmen entweder einen Drucker oder eine Datei.

Abbildung 20: Als Ausgabeziel bestimmen entweder einen Drucker oder eine Datei.


Abbildung 21: In einer Datei abgelegte Etiketten k&ouml;nnen Sie nachtr&auml;glich noch bearbeiten.

Abbildung 21: In einer Datei abgelegte Etiketten können Sie nachträglich noch bearbeiten.

Das Erzeugen eines Balken- oder QR-Codes bietet LibreOffice Writer nicht an. Zwar gibt es eine Barcode-Erweiterung (Barcode_2.4.0.oxt [8]) für das Programm, doch die bot im Test keine Möglichkeit, mit dem Seriendruck zusammenzuarbeiten.

LaTeX und Shell

Für das skriptgesteuerte, automatisierte Erzeugen von Aufklebern und Karten bietet sich das Zusammenspiel von Datenbank, LaTeX und der Shell an. Die im Folgenden gezeigte Vorgehensweise beruht wieder auf der schon bekannten daten.csv und setzt auf fest programmierte Aufkleberabmessungen (Avery Zweckform 3481 / Herma 4473, 70 x 41 Millimeter). Auch die Gestaltung des Aufklebers selbst ist fix in LaTeX-Code gegossen. Das Anpassen an eigene Formate erfordert ein wenig Aufmerksamkeit und zieht einiges Ausprobieren nach sich. Funktioniert das Konstrukt (Listing 6) aber erst einmal, erzeugen Sie damit ohne viel Geklicke in der GUI Ihre Aufkleber oder Karten.

Listing 6

materialaufkleber.sh

#!/bin/sh
# Ausgabedatei anlegen
cp aufklekopf.tex aufkleber.tex
for k in $(cat daten.csv | cut -d \, -f3); do
  info=$(cat daten.csv | grep $k | cut -d \, -f1)
  zahl=$(cat daten.csv | grep $k | cut -d \, -f2)
  # Spaltenzähler setzen
  t=1
  if [ $t -eq 1 ]; then
    echo "\\\\begin{minipage}[t][3.8cm][c]{6.5cm}{$info $zahl \\\\vspace{0.2cm}\\\\\\\\ \\\begin{pspicture}(0,-8pt)(3cm,1cm)
    \psbarcode{$k}{includetext width=1.0 height=0.4}{code128}
    \\\\end{pspicture}}
    \\\\end{minipage} & " >> aufkleber.tex
    # Nächste Spalte ist 2
    t=2
    continue
 fi
 if [ $t -eq 2 ]; then
   echo "\\\\begin{minipage}[t][3.8cm][c]{6.5cm}{$info $zahl \\\\vspace{0.2cm}\\\\\\\\ \\\begin{pspicture}(0,-8pt)(3cm,1cm)
   \psbarcode{$k}{includetext width=1.0 height=0.4}{code128}
   \\\\end{pspicture}}
   \\\\end{minipage} & " >> aufkleber.tex
   # Nächste Spalte ist 3
   t=3
   continue
 fi
 if [ $t -eq 3 ]; then
   echo "\\\\begin{minipage}[t][3.8cm][c]{6.5cm}{$info $zahl \\\\vspace{0.2cm}\\\\\\\\ \\\begin{pspicture}(0,-8pt)(3cm,1cm)
   \psbarcode{$k}{includetext width=1.0 height=0.4}{code128}
   \\\\end{pspicture}}
   \\\\end{minipage} & " >> aufkleber.tex
   # Nächste Spalte ist wieder 1
   t=1
   continue
 fi
done
# Fehlende Tabellenfelder abschließen
if [ $1 -eq 1 ]; then
  echo " & & \\\\\\\\" >> aufkleber.tex
fi
if [ $t -eq 2 ]; then
  echo " & \\\\\\\\" >> aufkleber.tex
fi
if [ $t -eq 3 ]; then
  echo "\\\\\\\\" >> aufkleber.tex
fi
echo "\\\\end{longtable}" >> aufkleber.tex
echo '\\end{document}' >> aufkleber.tex
# Druckdatei erzeugen und anzeigen
latex -interaction=nonstopmode aufkleber.tex
dvips aufkleber.dvi
ps2pdf14 aufkleber.ps
# Druckdatei anzeigen
okular aufkleber.pdf

Das Shell-Skript aus Listing 6 legt zunächst einmal die Ausgabedatei aufkleber.tex an. Neben der üblichen Einleitung eines TeX-Dokuments mit der Einbindung von Paketen und der Festlegung weiterer Optionen enthält sie auch noch die Eröffnung einer Tabelle des Typs longtable. Dazu legt die Datei aufklekopf.tex (Listing 7) mittels {CCC} drei Spalten fest. In Form des Pakets pst-barcode [9] offeriert LaTeX auch eine Möglichkeit, Balken- und QR-Codes auszugeben.

Listing 7

aufklekopf.tex

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{ngerman}
\usepackage{lscape}
\usepackage{color}
\usepackage{graphics}
\usepackage{supertabular}
\usepackage{longtable}
\usepackage{alltt}
\usepackage{multicol}
\usepackage{marvosym}
\usepackage[dvipsnames, table, fixinclude]{xcolor}
\usepackage{listings}
\usepackage{graphicx}
\usepackage{pstricks-add}
\usepackage{pst-barcode}
\usepackage{pstricks-add}
\definecolor{grau}{gray}{0.85}
\definecolor{weis}{gray}{1.0}
%\setlength{\textwidth}{15cm}
\setlength{\oddsidemargin}{-5.0mm}
\setlength{\evensidemargin}{-5.0mm}
\setlength{\topmargin}{-3.5cm}
\setlength{\textheight}{29.5cm}
\pagestyle{empty}
\begin{document}
\begin{longtable}{ccc}

Die For-Schleife des Skripts liest die Daten aus der CSV-Datei daten.csv ein. Stattdessen könnten Sie sie, wie in Listing 8 auszugsweise gezeigt, direkt aus einer Datenbank holen. Für eine tiefergehende Datenbanknutzung verwenden Sie bei eigenen Anpassungen des Shell-Skripts im Kopf der For-Schleife entsprechende Benutzerabfragen und die daraus folgenden Where-Klauseln. Im anderen Fall setzen Sie auf Ergebnistabellen, die immer denselben Namen tragen und die Sie für eine Ausgabe ohne weiteren Eingriff verwenden.

Listing 8

Datenbankzugriff (Ausschnitt)

[...]
for k in $(psql -t -c "select code from daten order by code;"); do
  info=$(psql -t -c "select info from daten where code='$k';")
  zahl=$(psql -t -c "select zahl from daten where code='$k';")
  [...]
done

Die als Resultat eines Durchlauf des Shell-Skripts entstandene DVI-Datei zeigt Abbildung 22.

Abbildung 22: Die entstandene DVI-Datei enth&auml;lt die per Shell-Skript und LaTeX erstellten Aufkleber.

Abbildung 22: Die entstandene DVI-Datei enthält die per Shell-Skript und LaTeX erstellten Aufkleber.

Fazit

Unter Linux stehen Ihnen verschiedene Möglichkeiten zum Ausdruck von Etiketten oder Karteikarten zur Verfügung. Dabei erweist sich gLabels 3 als besonders umfangreiches und leistungsfähiges Programm zu diesem Zweck. Mit LibreOffice benötigen Sie mehr Arbeitsschritte, um zum Ziel zu gelangen. Eine maßgeschneiderte Kombination aus Shell-Skript und LaTeX verursacht zwar beim erstmaligen Erstellen mehr Arbeit, aber anschließend können Sie mit einem Aufruf immer wieder konsistent das gewünschte Ergebnis erzielen. Alle drei Möglichkeiten arbeiten zudem sicher und gewährleisten den Datenschutz: Kein einziger Schritt erfolgt mittels einer Onlinedienstleistung, alles geschieht ausschließlich lokal. (jlu)

Der Autor

Harald Zisler beschäftigt sich seit den frühen 90er-Jahren mit FreeBSD und Linux. Er verfasst Zeitschriftenbeiträge und Bücher zu Technik- und EDV-Themen.

Infos

  1. gLabels 3: https://help.gnome.org/users/glabels/stable/

  2. DBMS auf der Shell: Harald Zisler, “In der Kartei stöbern”, LU 06/2024, S. 24, https://www.linux-community.de/49901

  3. Sqlitebrowser: https://sqlitebrowser.org

  4. GNU Barcode: https://www.gnu.org/software/barcode/

  5. Zint: https://www.zint.org.uk/

  6. Qrencode: https://github.com/fukuchi/libqrencode

  7. Zint und Zint-qt: Daniel Tibi, “Schwarz-Weiß-Denken”, LU 03/2024, S. 40, https://www.linux-community.de/49872

  8. LO-Barcode-Erweiterung: https://extensions.libreoffice.org/en/extensions/show/barcode

  9. Pst-barcode: https://ctan.org/pkg/pst-barcode

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 11/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben