Strichcodes und QR-Codes mit LaTeX erstellen

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}

Abbildung 1: Strichcodes mit ISBN und Buchpreis können Sie mit LaTeX problemlos erzeugen.

Abbildung 1: Strichcodes mit ISBN und Buchpreis können Sie mit LaTeX problemlos erzeugen.

Praktisch einquadriert

QR-Codes begegnen uns überall und dienen den verschiedensten Zwecken. Im einfachsten Fall enthalten sie schlicht einen Text, der sich auf dem Smartphone oder Tablet anzeigen lässt. In der Praxis kommen solche Codes mit Infotexten etwa an Kunstwerken oder Sehenswürdigkeiten zum Einsatz. In LinuxUser enthält der QR-Code am Artikelende die Links zum Beitrag, die sonst angesichts der heute modernen “sprechenden URLs” beträchtlichen Raum einnehmen würden.

Listing 3 enthält ein Beispiel mit einem kurzen Text. Hier kommt wieder der bereits bekannte Befehl psbarcode zum Einsatz, und auch hier enthält die erste geschweifte Klammer den zu codierenden Wert, in diesem Fall einen Text. Die letzte geschweifte Klammer gibt die Art des zu erstellenden Codes an. In diesem Beispiel haben wir außerdem noch eine eckige Klammer ergänzt, deren Inhalt dafür sorgt, dass der QR-Code um 45 Grad gedreht erscheint. Das Ergebnis sehen Sie in Abbildung 2 ganz links.

Listing 3

\psbarcode[rotate=45]{Hallo Welt!}{}{qrcode}

Einfach aufgerufen

Links in Print-Publikationen bringen die praktische Schwierigkeit mit sich, dass man sie erst mühsam abtippen muss. Sind sie hingegen als QR-Code abgedruckt, lässt sich der Code einfach einscannen und die Webseite so schnell aufgerufen. Listing 4 zeigt ein Beispiel für das Umwandeln einer URL in einen QR-Code, das im Prinzip ebenso funktioniert wie bei Texten. Am vorangestellten http:// erkennt die Scanner-App, dass es sich hier um einen Link handelt. In diesem Beispiel färben wir den QR-Code durch den Befehl in der eckigen Klammer blau ein.

Abbildung 2 zeigt an der zweiten Position von links das Ergebnis. Den höchsten Kontrast und damit die beste Lesbarkeit bieten zwar schwarze QR-Codes auf weißem Hintergrund, doch kommen Scanner-Apps normalerweise auch mit farbigen QR-Codes zurecht. Allerdings muss die Farbe dunkel genug sein, um sich deutlich vom Hintergrund abzuheben. Probleme gibt es oft mit hellem QR-Codes auf dunklem Hintergrund: Um solche Codes lesen zu können, muss die Scanner-App die Farben erst invertieren, was nicht alle davon beherrschen.

Listing 4

\psbarcode[linecolor=blue]{http://www.linuxuser.de}{}{qrcode}

Schnell verbunden

Nicht nur Links machen unnötig Mühe, wenn man sie von Hand abtippen muss: Für WLAN-Zugangsdaten gilt dasselbe. Auch hier schaffen QR-Codes Abhilfe. Stehen WLAN-Zugangsdaten als QR-Code bereit, kann man die Verbindung schnell herstellten. Listing 5 enthält ein Beispiel für das Erzeugen eines entsprechenden QR-Codes. Wieder taucht der altbekannte Befehl für den QR-Code auf (erste Zeile), wobei als Wert die Zugangsdaten erscheinen. An dem vorangestellten WIFI: erkennt die Scanner-App, dass es sich um WLAN-Zugangsdaten handelt, und baut üblicherweise per Knopfdruck die WLAN-Verbindung auf. Es folgen die Art der Verschlüsselung, die SSID und das Passwort.

In diesem Beispiel haben wir noch einen Befehl aus dem PSTricks-Paket ergänzt (zweite Zeile*). Er bewirkt, dass zusätzlich der Text “WLAN-Zugangsdaten” in kleinster serifenloser Schrift (Befehle in der dritten geschweiften Klammer) ausgegeben wird. Er erscheint im Abstand von null Punkt (Wert in der ersten geschweiften Klammer) in einem Winkel von 90 Grad von der linken unteren Ecke (Wert in der eckigen Klammer) um 90 Grad gedreht (Wert in der zweiten geschweiften Klammer) an den angegebenen Koordinaten (Wert in der runden Klammer). Das Ergebnis sehen Sie in Abbildung 2 an der zweiten Position von rechts.

Listing 5

\psbarcode{WIFI:T:WPA;S:MeinWLAN;P:MeinPasswort;;}{}{qrcode}
\uput{0pt}[90]{90}(2.25,0){\textsf{\tiny{WLAN-Zugangsdaten}}}

Leicht kontaktiert

Immer häufiger zieren QR-Codes auch Visitenkarten. Auf diese Weise lassen sich Kontaktinformationen einfach einlesen und im Adressbuch speichern. Ein Beispiel für den entsprechenden LaTeX-Code finden Sie in Listing 6. Diesmal enthält der Befehl psbarcode in der ersten geschweiften Klammer als Wert den Inhalt einer VCard-Datei (Zeilen 2 bis 12). Dabei gilt es, eine Besonderheit zu beachten: Jeder Eintrag in der VCard muss in einer eigenen Zeile stehen. Damit LaTeX den Zeilenumbruch korrekt vornimmt, kommt zudem der Befehl obeylines zum Einsatz (Zeile 1), außerdem müssen Sie die Zeilenenden mit der Sequenz ^^J kennzeichnen.

QR-Codes bringen eine eingebaute Fehlerkorrektur mit. Auch wenn der Scanner einen (je nach Version und Auflösung unterschiedlich großen) Teil des QR-Codes nicht lesen kann, lässt sich der Code trotzdem vollständig entschlüsseln. In der Praxis können Sie sich diese Eigenschaft zunutze machen, um ein Bild in den QR-Code einzufügen. So ergänzen Sie den QR-Code mit Kontaktdaten etwa um ein Foto, ein Logo oder – wie im Beispiel ganz rechts in Abbildung 2 – um ein Icon mit einer Postkarte.

Der Befehl aus dem PSTricks-Paket in Zeile 13 legt an den in der runden Klammer angegebenen Koordinaten auf den QR-Code die in der geschweiften Klammer angegebene Bilddatei. Damit das funktioniert, laden Sie in der Präambel zusätzlich das Paket graphicx [7]. Nun überdeckt zwar das Bild einen Teil des QR-Codes, doch – vorausgesetzt das Bild fällt nicht zu groß aus – die Kontaktinformationen bleiben trotzdem vollständig lesbar.

Listing 6

\obeylines
\psbarcode{
BEGIN:VCARD^^J
VERSION:4.0^^J
N:Mustermann;Max;;^^J
FN:Max Mustermann^^J
ADR;TYPE=home:;;Hauptstr. 42;Musterstadt;;12345;Germany^^J
TEL;TYPE=home:+49123456789^^J
TEL;TYPE=cell:+49170123456789^^J
EMAIL:max.mustermann@example.com^^J
URL:http://www.example.com^^J
END:VCARD^^J}{}{qrcode}
\rput(2.15,2.2){\includegraphics{postkarte.eps}}

Abbildung 2: QR-Codes mit verschiedenem Inhalt – hier von links nach rechts Text, URL, WLAN-Zugangsdaten und Kontaktinformationen – lassen sich mit LaTeX schnell und einfach generieren.

Abbildung 2: QR-Codes mit verschiedenem Inhalt – hier von links nach rechts Text, URL, WLAN-Zugangsdaten und Kontaktinformationen – lassen sich mit LaTeX schnell und einfach generieren.

Fazit

Strich- und QR-Codes sind allgegenwärtig und bieten die Möglichkeit, unterschiedlichste Informationen schnell und unkompliziert per Smartphone oder Tablet einzulesen und weiterzuverarbeiten. Mit dem LaTeX-Paket PST-Barcode erstellen Sie problemlos selbst eine Fülle von Strich- und QR-Codes für die verschiedensten Zwecke, und das in professioneller Qualität. 

Der Autor

Der Benediktiner-Mönch Daniel Tibi von der Abtei Kornelimünster in Aachen promoviert in Kirchenrecht an der KU Leuven. Als Wissenschaftler nutzt er gekonnt die umfangreichen Möglichkeiten von LaTeX aus, als freier Autor schreibt er über seine Erfahrungen mit dem Textsatzsystem.

Infos

[1] Paket PST-Barcode: http://ctan.org/pkg/pst-barcode

[2] Paket PSTricks: http://www.ctan.org/pkg/pstricks-base

[3] XeTeX-Projektseite: http://tug.org/xetex/

[4] ImageMagick: http://imagemagick.org

[5] Paket Auto-PST-PDF: http://ctan.org/pkg/auto-pst-pdf

[6] OpenEANDB: http://opengtindb.org

[7] Paket Graphicx: http://ctan.org/pkg/graphicx

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 01/2016 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