Webseiten-Werkzeuge

Benutzer-Werkzeuge


Deutsche Post Datamatrix-Barcode

Anforderung

Maschinenlesbare Freimachungsvermerke der Deutsche Post AG helfen, den Briefversand effektiver, kostengünstiger und sicherer zu machen. Maschinenlesbare Freimachungsvermerke sind nichts weiter als eine besondere Form von Barcodes vom Typ DataMatrix, deren Inhalt abhängig vom gewählten Versandverfahren bestimmten Vorgaben der Deutsche Post AG entsprechen muss.

Pressepostetikett Es existieren diverse Dokumente der Deutsche Post AG, die den Inhalt der DataMatrix-Codes im Detail beschreiben. Dabei werden auch genaue Angaben darüber gemacht, wie einzelne Daten zu formatieren sind.

Die Kenntnis oder zumindest die Verfügbarkeit dieser Dokumente wird vorausgesetzt.

Realisierung

Wenn in print2forms ein Barcode gedruckt werden soll, muss dessen Inhalt in Form einer sogenannten Schablone innerhalb eines Barcodefeldes (Bestandteil eines Formulars) beschrieben werden. Da der Inhalt des Barcodes in den seltensten Fällen konstant ist, wird sich der Inhalt in der Regel aus irgendwelchen Nutzdaten zusammensetzen, die im Barcodefeld selbst oder in Suchfeldern ermittelt wurden. Die Schablone enthält deshalb eine oder mehrere Referenzen auf Nutzdaten.

Für die einwandfreie Lesbarkeit der Barcodes wird die Einhaltung bytegenauer Vorgaben notwendig.

print2forms unterstützt Formatierungsanweisungen für die Zusammenstellung der Daten innerhalb dieser Schablonen. Diese Anweisungen orientieren sich an denen aus diversen Programmiersprachen bekannten Mustern und folgen unmittelbar auf die Feldreferenz nach dem Index:

\ABO:1:-24s      \IDS:4:2b 

Jede der Formatierugsanweisungen besteht aus einem Doppelpunkt, gefolgt von einem oder mehrereren der folgenden vier Elemente (in eckigen Klammern bedeutet: Optional):

[ Kennzeichen ] [ Weite ] [ '.' Präzision ] Typ

Kennzeichen

Kennzeichen Bedeutung Standard
Ausrichtung nach Links innerhalb der Feldweite Ausrichtung rechts
+ Vorzeichen '+' oder ' - ' vor numerischen Werten nur '-' bei negativen Werten
0 Führende Nullen bei numerischen Werten keine führenden Nullen

Weite

Der zweite Wert definiert, so vorhanden, die Weite des auszugebenden Feldes. Die Weite ist eine ganzzahlige Zahl und definiert die Mindestweite des Feldes. Füllt das zu formatierende Argument diese Feldweite nicht aus, wird standardmässig mit Leerzeichen links aufgefüllt. Das kann mit den Kennzeichen (s.o.) dahingend geändert werden, dass rechts aufgefüllt wird, oder das zum Auffüllen Nullen verwendet werden.

Ist das zu formatierende Argument länger als die Feldweite, wird das Feld automatisch solange erweitert, bis das Argument vollständig ist. Es wird niemals abgeschnitten (abgesehen von Präzision).

Präzision

Die Präzision ist einen ganzzahlige, nichtnegative Zahl. Die Bedeutung des Wertes für die Präzision hängt vom Typ des auszugebenden Feldes ab.

Typ Bedeutung Standard
d, x, X Spezifiert die minimale Anzahl von Ziffern, die ausgegeben werden. 1
s Spezifiert die maximale Anzahl von Zeichen, die ausgegeben werden.
Überzählige Zeichen werden abgeschnitten.
Komplette Zeichenkette

Typ

Eine Typangabe, welche den Typ beschreibt, als den das jeweils übergebene Argument angesehen werden soll. Mögliche Angaben sind:

Typ Bedeutung
b Das Argument wird als ganze Zahl angesehen und als Bytes ausgegeben. Die Anzahl der auszugebenden Bytes bestimmt die Feldweite und der Wert des Arguments.
d Das Argument wird als ganze Zahl angesehen und dezimal ausgegeben.
x Das Argument wird als ganze Zahl angesehen und hexadezimal ausgegeben. Die Ziffern 'A' bis 'F' werden dabei als Kleinbuchstabe ausgegeben.
X Das Argument wird als ganze Zahl angesehen und hexadezimal ausgegeben. Die Ziffern 'A' bis 'F' werden dabei als Grossbuchstabe ausgegeben.
s Das Argument wird als Zeichenkette angesehen.

Beispiele

Formatierung Bedeutung
:s normale rechtsbündige Ausgabe
:10s rechtsbündige Ausgabe, mit Leerzeichen aufgefüllt
:-10s linksbündige Ausgabe, mit Leerzeichen aufgefüllt
:010d zehnstellige Ausgabe, mit Nullen aufgefüllt (funktioniert auch bei Zeichenketten)
:10.10s linksbündige Ausgabe mit Abschneiden überzähliger Buchstaben nach der zehnten Stelle



Mit diesem Rüstzeug kann man jetzt den Barcode für den maschinenlesbaren Freimachungsvermerk angehen. Im Prinzip werden nur die Formatierungstypen 's' für Zeichenketten und 'b' für numerische Werte benötigt. Die Schablone für den Dienst Pressepost Premiumadress sieht dann so aus (aus Gründen der Übersicht umgebrochen):

DEA\x19\x14\IDS:1:3b\IDS:3:2b\x00\x00\IDS:2:2b\x24\x3F\IDS:4:2b\ABO:1:-24s
\PLZ:2:3b\ORT:2:-24s\STR:1:-22s\HNR:1:-10s\NAM1:1:-30s\NAM2:1:-30s\NAM3:1:-30s\INF:1:-11s



Mit Suchfeldern wurden die einzelnen Bestandteile des Barcodes zusammengesucht. Als Referenz auf die Dokumente der Deutsche Post AG seien hier die Namen und Inhalte der Suchfelder erklärt:

IDS:1 Zeitungskennziffer
IDS:2 Einlieferungsdatum
IDS:3 Heftnummer
IDS:4 Premiumadress-Id
ABO:1 Abonenntennummer
PLZ:1 Postleitzahl
ORT:1 Ortsname
STR:1 Strassenname
HNR:1 Hausnummer
NAM1:1 Name Zeile 1
NAM2:1 Name Zeile 2
NAM3:1 Name Zeile 3
INF:1 Kundenindividuelle Information



Hinweis

  • Bei der Zusammenstellung der Daten für den Barcode werden eine Reihe von Binärdaten in Form hexadezimal kodierter Zeichen benötigt (z.B: '\x19\x14'). Es ist nicht (!) möglich, diese Daten vom Anwendungsprogramm her als Zeichenkette auszugeben und dann in die Schablone einzufügen, weil die eingefügten Daten 1:1 übernommen werden und daher keine Übersetzung der hexadezimal kodierten Zeichen mehr erfolgt.

    Die einzige Möglichkeit, diese Daten doch in das Anwendungsprogramm mit aufzunehmen, wäre, eine Dezimalzahl zu drucken, und diese mit der Formatierung 'b' in die Schablone mit aufzunehmen (z.B: 6420 formatiert mit '2b' ergibt auch zwei Byte mit den Werten hexadezimal 19 und 14, so wie oben bei der Premiumadress-Id).
print2forms/tips/tip13.txt · Zuletzt geändert: 2018-08-31 10:07 (Externe Bearbeitung)