Aus LinuxUser 01/2016

Strichcodes und QR-Codes mit LaTeX erstellen

© sdmix, 123RF

Linientreu

Als Bar- oder QR-Code aufbereitete Informationen lassen sich mit der richtigen App auf dem Smartphone oder Tablet schnell einlesen und weiterverarbeiten. Perfekte Codes dazu erstellen Sie mit LaTeX.

Strich- und 2D-Codes begegnen uns täglich in den verschiedensten Ausführungen und zu den unterschiedlichsten Zwecken. Schon lange reduzieren sie auf Produkten die Wartezeit an der Kasse, wo sich damit die Preise einfach einscannen lassen. Wer ein Buch kaufen möchte, scannt einfach den Strichcode mit der ISBN ein und bestellt das Buch online. Inzwischen ersetzen 2D-Codes auch Briefmarken und finden sich auf Bahnfahrtkarten ebenso wie auf Theater- und Kinokarten. Infotexte zu Sehenswürdigkeiten lassen sich als QR-Code mit den Smartphone oder Tablet einlesen. Eine WLAN-Verbindung bauen Sie im Nu auf, wenn die Zugangsdaten als QR-Code bereitstehen. Kontaktinformationen scannen Sie einfach via QR-Code von der Visitenkarte eines Gesprächspartners.

Mit dem LaTeX-Paket PST-Barcode [1] haben Sie ein mächtiges Werkzeug zur Hand, mit dem Sie viele verschiedene Arten von Codes schnell und einfach erzeugen. Listing 1 zeigt ein Minimalbeispiel für eine LaTeX-Datei mit PST-Barcode. Nach der Angabe der Dokumentenklasse (Zeile 1) laden Sie zunächst das Paket in der Präambel des LaTeX-Dokuments (Zeile 2). PST-Barcode verwendet PSTricks [2], das automatisch mitgeladen wird, sodass Ihnen auch alle Möglichkeiten dieses Pakets zur Verfügung stehen.

Listing 1

\documentclass{article}
\usepackage{pst-barcode}
\begin{document}
\begin{pspicture}(3.5,3)
\psbarcode{4196067008502}{includetext}{ean13}
\end{pspicture}
\end{document}

Im Hauptteil der LaTeX-Datei nutzen Sie die pspicture-Umgebung (Zeilen 4 bis 6), wobei die beiden Zahlen in der runden Klammer (Zeile 4) die Koordinaten für die rechte obere Ecke des Strich- oder 2D-Codes bezeichnen. PST-Barcodes stellt ein Makro bereit (Zeile 5), mit dem Sie eine Fülle von Strich- und 2D-Codes erzeugen können. In die erste geschweifte Klammer gehört der Wert, der als Strich- oder 2D-Code erscheinen soll; die zweite geschweifte Klammer nimmt weitergehende Optionen auf. Im Beispiel findet sich hier die Angabe, dass der Wert auch lesbar dargestellt werden soll. In der letzten geschweiften Klammer legen Sie die Art des zu generierenden Codes fest.

Je nach Strich- oder 2D-Code, den Sie erzeugen wollen, müssen Sie in Listing 1 nur die Koordinaten der rechten oberen Ecke (Zeile 4) sowie die Werte für den Code (Zeile 5) anpassen.

TIPP

Die hier abgedruckten Listings umfassen aus Platzgründen nur den jeweils relevanten Teil des LaTeX-Codes. Die vollständigen Listings finden Sie bei Interesse auf der Heft-DVD zu dieser Ausgabe.

Da PostScript-Code zum Einsatz kommt, können Sie aus der LaTeX-Datei nicht ohne Weiteres mit PDFLaTeX ein PDF-Dokument generieren. Stattdessen verwenden Sie einfach Xe(La)TeX [3], das den Postscript-Code automatisch erkennt und entsprechend verarbeitet. Alternativ generieren Sie aus der LaTeX-Datei mit dem Befehl pslatex Datei ein DVI-File, das Sie dann mittels des Kommandos dvips Datei in eine Postscript-Datei umwandeln.

Abhängig davon, wie Sie den Strich- oder 2D-Code weiterverarbeiten möchten, können Sie anschließend mit ps2pdf Datei ein PDF-Dokument erzeugen. Für eine Bilddatei etwa im SVG- oder PNG-Format greifen Sie zum Programm ImageMagick [4] und setzen folgenden Befehl ab:

$ convert Postscript-Datei Grafik-Datei

Möchten Sie doch PDFLaTeX nutzen, laden Sie im LaTeX-Dokument zusätzlich das Paket auto-pst-pdf [5] und erstellen auf diesem Weg das gewünschte PDF:

$ pdflatex --shell-escape Datei

Aus der Fülle der Möglichkeiten, die PST-Barcode bietet, wollen wir hier beispielhaft näher auf die zwei Varianten eingehen, die in der Praxis wohl am häufigsten zum Einsatz kommen: der ISBN-Strichcode und der QR-Code.

Handelsüblich

Bei der European Article Number EAN handelt es sich um eine 13-stellige Zahl, anhand derer sich ein Produkt im Handel eindeutig identifizieren lässt. Auf Produktverpackungen finden Sie solche EAN-13-Nummern als Strichcodes, die die Verkäuferin an der Kasse scannt und so den Preis automatisch verbucht. Die EAN ermöglicht Ihnen als Verbraucher aber auch, Produktinformationen online abzurufen, etwa über die OpenEANDB [6].

Eine Sonderform der EAN-13-Nummern stellt die Internationale Standardbuchnummer ISBN dar. Lauten deren ersten drei Ziffern 978 (oder 979 – zur Zeit allerdings noch nicht genutzt), handelt es sich bei der EAN um eine ISBN. Es schließt sich die ISBN-Gruppennummer an, die den Sprachraum des Buchs bezeichnet, gefolgt von der Verlagsnummer, einer Unterscheidungsnummer und der letzten Ziffer als Prüfziffer. Neben dem ISBN-Strichcode findet sich auf dem Cover oft ein sogenannter EAN-5-Strichcode mit dem Preis des Buchs.

Listing 2 enthält den LaTeX-Code, der einen Strichcode mit einer ISBN (Zeile 2) sowie einen weiteren Strichcode mit dem Buchpreis (Zeile 5) generiert. Im Befehl in Zeile 2 steht die ISBN selbst in der ersten geschweiften Klammer. Die 978 am Anfang dürfen Sie weglassen, ebenso die Prüfziffer am Schluss – beides ergänzt LaTeX automatisch. Der Befehl in der zweiten geschweiften Klammer legt fest, dass die ISBN auch in Ziffern erscheint. Dem Inhalt der dritten geschweiften Klammer entnimmt LaTeX, dass es einen Code für eine ISBN generieren soll. In Zeile 5 finden sich der Buchpreis in Cent als fünfstellige Zahl mit führenden Nullen (erste geschweifte Klammer) sowie die Art des Codes, den LaTex erzeugen soll (letzte geschweifte Klammer). Die Abbildung 1 zeigt das generierte Ergebnis.

Listing 2

\begin{pspicture}(3.5,3)
\psbarcode{3-88309-455}{includetext}{isbn}
\end{pspicture}
\begin{pspicture}(1.5,3)
\psbarcode{00700}{}{ean5}
\end{pspicture}
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
LinuxUser 01/2016 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: