CIB barcode technischer Leitfaden

6. Handhabung von Barcodes mit CoMod

6.3. CIB format

Eingabe
Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument
Dynamisches Generieren der Barcodegrafik über die CIB format Eigenschaft „BarcodeFilename“
Dynamisches Generieren der Barcodegrafik über eine CIB format Callbackfunktion
Dynamisches Generieren einer OMR Strichcodegrafik
Dynamisches Generieren eines DataMatrix ECC 2D Barcodes
Dynamisches Generieren eines QR-Barcodes
Dynamisches Generieren eines PDF417-Barcodes

Eingabe

CIB format verarbeitet mit Barcodefonts formatierte Texte wie alle anderen formatierten Texte. Das heißt, die Buchstabenbreiten werden aus der Schriftart ermittelt und beim Zeilen- und Seitenumbruch berücksichtigt.

Im Dokument eingebettete oder referenzierte Barcodegrafiken werden wie andere Grafiken positioniert und berücksichtigt.

Im Dokument enthaltene spezielle Anweisungen zur dynamischen Generierung einer Barcodegrafik werden ausgewertet, und eine zum dort angegebenen Barcodewert gehörige Barcodegrafik im entsprechenden Barcodetyp generiert.


Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument

Mit einer speziellen Form des INCLUDEPICTURE-Feldes (EinfügenGrafik) wird die dynamische Generierung einer Barcodegrafik angefordert.

{ INCLUDEPICTURE "BARCODE:<Typ>;<Wert>;<Orientierung>;<Breite>;<Höhe>;<Prüfziffer>" }

Das Feld enthält dazu folgende Informationen:

Anweisung

Bedeutung

BARCODE:

Kennzeichnung, dass ein Barcode oder Strichcode erzeugt werden soll

BARCODE:<Typ>;[<Subtyp>;]<Wert>;<Orientierung>;<Breite>;<Höhe>;
<Prüfziffer>[;<Verringerungsmethode>]

<Typ>[;]

Ein Barcodetyp aus der von CIB format unterstützten Menge von Typen:

CodeITF

Code25Industrial

Code25Matrix

Code39

Code39Extended

Code128A

Code128B

Code128C

Code128Auto

DataMatrix

PDF417

QR

[<Subtyp>[;]]

Wird für den Datamatrix Barcode verwendet:

ECCn(n = 0 – 200)

<Wert>[;]

Der individuelle Wert, den der Barcode darstellen soll.

 Achtung:

Bei Code128C und bei CodeITF muss <Wert> aus einer geraden Anzahl von Zeichen bestehen.
Details siehe Kapitel „Barcode Typen“

<Orientierung>[;]

Wie das Strichmuster orientiert sein soll:

horizontalleft (vertikale Striche nebeneinander, erstes Zeichen links)

horizontalright (vertikale Striche nebeneinander, erstes Zeichen rechts)

verticalleft (horizontale Striche untereinander, erstes Zeichen oben)

verticalright (horizontale Striche übereinander, erstes Zeichen unten)

Achtung:

Bezugspunkt für die Orientierung des Barcodes ist die Orientierung des INCLUDEPICTURE-Befehls, d.h. ein vertikal geschriebener INCLUDEPICTURE-Befehl kann bei z.B. verticalleft zu einem horizontalen Barcode führen.

Bei Eingabe des Barcodes über Property „BarcodeFilename“ wird die Orientierung des Barcodes an dem Seitenlayout ausgerichtet.

<Breite>[;]

Vom Barcodetyp abhängige Angaben zu Strichbreiten in mm. (x.xmm )

Für den Typ CodeITF ist der Wert die Strichbreite des schmalen Striches.

<Höhe>[;]

Angabe zur Höhe der Barcode-Balken in mm (x.xmm)

<Prüfziffer>[;]

Ob der Barcode mit oder ohne Prüfziffer generiert werden soll, wird mit diesem Parameter angegeben. (default = mit Prüfziffer)
Soll keine Prüfziffer erstellt werden, wird als letzter Parameter 'nochecksum' gesetzt, ansonsten ist hier keine Eingabe notwendig.

[<Verringerungsmethode>]

Wird für den Datamatrix Barcode verwendet:

auto

yes

no

 

Die spezielle Anweisung hat in der Eingabe für CIB format folgendes Aussehen:

mit Prüfziffer:

{ INCLUDEPICTURE "BARCODE:Code39;1234567890;horizontalleft;0.5mm;7.5mm;" }

ohne Prüfziffer:

{ INCLUDEPICTURE "BARCODE:Code39;1234567890;horizontalleft;0.5mm;7.5mm;nochecksum" }


Einsteuern des Barcodewertes über Variable

Der Barcodewert kann auch über die Datenversorgung variabel eingesteuert werden. Die Eingabe für CIB merge kann wie folgt aussehen, damit der Barcodewert an der richtigen Stelle eingesetzt wird:

 

Variante a:

Durch die CSV Variable wird die komplette Barcodevorgabe angeliefert:

{ INCLUDEPICTURE "{ REF barcode \* Zeichenformat}" }

Variante b:

Durch die CSV Variable wird nur der Barcodewert angeliefert:

{ INCLUDEPICTURE "BARCODE:Code39;{ REF barcodeWert };horizontalleft;0.5mm;15mm;" }

Nachteil: In WORD2007 wird dieser Befehl nach dem ersten Abspeichern aus dem RTF entfernt und durch einen Grafik-Platzhalter ersetzt und damit nicht mehr bearbeitet werden.


Variante c:

{ SET Barcodeanweisung "BARCODE:DataMatrix;ECC200;{REF Text};horizontalleft;20;20;;ansi" }
{ INCLUDEPICTURE "{REF Barcodeanweisung}" }

Diese Variante ist eine Kombination aus a und b, sie vermeidet den Nachteil von Variante b. 

Es wird die Verwendung der Variante c empfohlen.

Aus diesen Informationen baut CIB format im Speicher dynamisch das Strichmuster auf der Barcodegrafik auf und positioniert diese entsprechende der INCLUDEPICTURE-Anweisung.

Hinweis:

Wenn es in Variante a durch den Mischvorgang zu einem leeren Inhalt (= nicht versorgter Barcode) kommt, so wird diese INCLUDEPICTURE Vorgabe von CIB format überlesen, als ob keine Anweisung vorhanden ist. Bei Variante b hingegen wird an Stelle der Barcodegrafik ein Platzhalter dargestellt.


Dynamisches Generieren der Barcodegrafik über die CIB format Eigenschaft „BarcodeFilename“

Alternativ zu einem Barcode-Platzhalter im Dokument kann man auch direkt eine Property des CIB format Modules als Aufrufparameter für Barcodeparameter benutzen.

Bei der Ausgabe eines Dokumentes werden dann diese Vorgaben berücksichtigt und auf den gewünschten Seiten an den gewünschten Stellen, die vorgegebenen Barcodes ausgegeben.

Es ist möglich in dieser Property mehrere Barcodeanweisungen nacheinander abzulegen.

Die Property „BarcodeFilename“ enthält dazu folgende Informationen

Anweisung

Bedeutung

POS:

Positionsangabe, an der der Barcode aufgedruckt werden soll

POS:<x-Wert>;<y-Wert>;< Seitenangabe>;<Barcode>

<x-Wert>[;]

x-Position linke obere Ecke in mm vom linken Papierrand.

Durch Angabe eines negativen Wertes kann der Bezugspunkt auf den rechten Papierrand geändert werden (ab CIB format 5.3.223).

<y-Wert>[;]

y-Position linke obere Ecke in mm vom oberen Papierrand.

Durch Angabe eines negativen Wertes kann der Bezugspunkt auf den unteren Papierrand geändert werden (ab CIB format 5.3.223).

<Seitenangabe>[;]

Auf welchen Seiten des Dokuments der Barcode ausgegeben werden soll:

Textmarkenname (Bar-/Strichcode auf alle Seiten die mit dieser Textmarke (Ausfertigung) markiert sind. Innerhalb einer Ausfertigung kann auch noch, mit Komma getrennt, durch Angabe eines Wertes aus unterer Liste weiter eingeschränkt werden (ab CIB format 5.3.223)).

First (nur erste Seite),

NoFirst (alle bis auf die erste Seite),

Last (nur letzte Seite),

NoLast (alle bis auf die letzte Seite),

Even (ungerade Seiten)

Odd (gerade Seiten)

All (alle Seiten)

Wert (diese Seite)

Wert1-Wert2 (diesem Seitenbereich)

Wert1-Wert2[,]Wert3 (diesen Seiten/Seitenbereich)

Die Prüfung erfolgt in der Reihenfolge dieser Liste. Erst die Kommandowörter, dann die numerischen Werte und dann Textmarkennamen.

<Barcode>

Komplette Barcodeanweisung (siehe Kapitel Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument“) und
OMR-Strichcode (siehe Kapitel OMR Strichcodes“)

Die Seitenangaben besitzen verschiedene Prioritäten:

All, Odd, Even, NoFirst, NoLast             Priorität: keine

First, Last, Wert                                       Priorität: DIRECT

Wert1-Wert2                                            Priorität: RANGE

Dabei gilt folgende Rangfolge: Keine Priorität < RANGE < DIRECT

Besitzen zwei Angaben gleiche Priorität, so gelten beide, ansonsten gilt die mit der höheren Priorität.

Die Angabe „All;Barcode1;Last;Barcode2“ bewirkt also, dass auf allen Seiten bis auf der letzten, Barcode1 platziert wird und auf der letzten Seite stattdessen Barcode 2 (da Last > All).

Möchte man hingegen auf allen Seiten Barcode1 platzieren und zusätzlich auf der letzten Seite Barcode2, ist dies möglich, wenn man die Angaben durch geschweifte Klammern trennt.

{All;Barcode1}{Last;Barcode2}

Alles, was innerhalb der geschweiften Klammern steht ist durch oben genannte Prioritäten geregelt, zwischen den geschweiften Klammern gilt jedoch keine Priorisierung.

Beispiele für PDF-Konvertierung über Runshell

1.   cibRsh.exe BarcodeFilename=" {POS:6.0mm;211.0mm;All;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;;
POS:6.0mm;215.8mm;All;BARCODE:Code39;000161;verticalright;0.31mm;9.0mm;nochecksum;
POS:6.0mm;255.0mm;Last;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;}
" -f Test.rtf
Im Ergebnis-PDF sind auf allen Seiten, außer der letzten, der erste OMR-Barcode und der Code39 aufgebracht, auf der letzten Seite nur der 2. OMR-Barcode.

 

2.   cibRsh.exe BarcodeFilename=" {POS:6.0mm;211.0mm;All;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;;
POS:6.0mm;215.8mm;All;BARCODE:Code39;000161;verticalright;0.31mm;9.0mm;nochecksum };
{POS:6.0mm;255.0mm;Last;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;}
" -f Test.rtf
Durch das verwenden von Klammern ändert sich das aufbringen der Barcodes, so das auf allen Seiten der erste OMR-Barcode und der Code39, jedoch auf der letzten ZUSÄTZLICH der 2. OMR-Barcode enthalten ist.

 

3.   cibRsh.exe BarcodeFilename=" {POS:6.0mm;211.0mm;All;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;;
POS:6.0mm;215.8mm;All;BARCODE:Code39;000161;verticalright;0.31mm;9.0mm;nochecksum;
POS:6.0mm;255.0mm;NoLast;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;}
" -f Test.rtf
In diesem Beispiel werden auf allen Seiten alle drei Barcodes aufgebracht, auf der letzten aber nur die ersten beiden.

4.   cibRsh.exe BarcodeFilename=" {POS:6.0mm;211.0mm;AUSF1,1,AUSF2,1;BARCODE:OMR;1;verticalleft;9.0mm;0.75mm;5.5mm;}
" -f Test.rtf
Der Barcode wird nur auf die erste Seite der Ausfertigungen AUSF1 und AUSF2 aufgebracht.


Dynamisches Generieren der Barcodegrafik über eine CIB format Callbackfunktion

Als weitere Alternative zu einem Barcode-Platzhalter im Dokument kann man dem CIB format Module auch eine Callbackfunktion setzen, die dann bei jeder generierten Ausgabeseite durchlaufen wird.

Man kann auf diese Weise seitenabhängig dynamische Barcodes mit der unter Dynamisches Generieren der Barcodegrafik über die CIB format Eigenschaft“ beschriebenen Property setzen.

Bei der Ausgabe eines Dokumentes werden dann diese Vorgaben berücksichtigt und auf den gewünschten Seiten an den gewünschten Stellen, die vorgegebenen Barcodes ausgegeben.


Dynamisches Generieren einer OMR Strichcodegrafik

Die in den Kapiteln „Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument“ bis „Dynamisches Generieren der Barcodegrafik über eine CIB format Callbackfunktion“ beschriebenen Verfahren können auch zum Einfügen von OMR Strichcodes genutzt werden. Diese enthalten folgende Information:

Spezielle OMR Strichcodegrafik

Anweisung

Bedeutung

BARCODE:

Kennzeichnung, dass ein Bar- oder Strichcode erzeugt werden soll

BARCODE:<Typ>:<Subtyp>;<Daten>;<Orientierung>;<Strichbreite>;<Strichhöhe>

<Typ>

OMR

Dient der Steuerung von Kuvertier-Maschinen.

<Subtyp>

Der Subtyp beschreibt die Funktionen, die die spezielle Kuvertiermaschine unterstützt.
<Subtyp> := [<Subtyp_E>][ <Subtyp_S> ][<Subtyp_N>][ <Subtyp_P>]

 

<Subtyp_E> := “E” | “”  (Envelop | Collect)
Seiten an eine Adresse werden gesammelt (Collect) und bei Adressenwechsel kuvertiert (Envelop).

<Subtyp_S> := “S” | “”  (Seal | NotSeal)
Schließen (Seal) oder nicht schließen (NotSeal) eines Kuverts.

<Subtyp_N> := “1” | “3” | “7” | “”
Kontrollnummerierung, mit der die Kuvertiermaschine die richtige Reihenfolge der Seiten überprüft.

<Subtyp_P> := “P” | “”  (Parity | noParity)
Durch Angabe einer Parität kann die Verarbeitungs-Qualität erhöht werden. Bei gesetzter Parität wird bei ungerader Strichanzahl ein Strich ergänzt.

Beispiel:

OMR:ES3   bedeutet, dass die Kuvertiermaschine folgende Funktionen unterstützt:

Envelop/Collect
Seal/NotSeal
Kontrollnummerierung mit 3 möglichen Nummern (1,2,3)
keine Parität

Achtung: Die Reihenfolge der Subtypen ist durch obige Beschreibung festgelegt. Auf Groß-/Kleinschreibung muss geachtet werden.

<Daten>

Hier wird die konkrete Belegung der von der Kuvertiermaschine unterstützten Funktionen (Subtypen) gemacht, d.h. nur Funktionen, die unter <Subtyp> definiert wurden, können auch mit <Daten> belegt werden.
Die unter <Daten> beschriebenen OMR-Symbole werden auf die Druckseite aufgebracht.
Das Start-Symbol wird immer ausgegeben.

 

[<Envelope/Collect>],[<Seal/NotSeal>],[<Kontrollnummerierung>]

Beispiel:

OMR:ES3;E,,2;   bedeutet die Aufbringung der folgenden Striche:

Start-Symbol
Envelop
NotSeal
Kontrollnummerierung

 

<Orientierung>[;]

horizontalleft – den Strichcode von links nach rechts ausgeben

horizontalright – den Strichcode von rechts nach links ausgeben

verticaltopverticalleft - den Strichcode von oben nach unten ausgegeben

verticalbottomverticalright – den Strichcode von unten nach oben ausgegeben

(default = verticaltop)

<Strichbreite>[;]

Breite (Länge) der Striche in mm oder in(inch)

<Strichhöhe>

Höhe (Dicke) der Striche in mm oder in(inch)


Die spezielle Anweisung hat in der Eingabe für CIB format folgendesAussehen:

{ INCLUDEPICTURE "BARCODE:OMR:ES3;E,S,2;verticalleft;10mm;0.5mm;0.16in" }


Offene OMR Strichcodegrafik

Da jede Kuvertiermaschine ihre speziellen Strichfolgen für die einzelnen Funktionen hat, kann man hier direkt die Daten eingeben.

Anweisung

Bedeutung

BARCODE:

Kennzeichnung, dass ein Barcode oder Strichcode erzeugt werden soll

BARCODE:<Typ>;<Daten>;<Orientierung>;
<Strichbreite>;<Strichhöhe>;<Lückenhöhe>;

<Typ>[;]

OMR

<Daten>[;]

0 - Lücke

1 - Strich

<Orientierung>[;]

horizontalleft – den Strichcode von links nach rechts ausgeben

horizontalright – den Strichcode von rechts nach links ausgeben

verticaltopverticalleft - den Strichcode von oben nach unten ausgegeben

verticalbottomverticalright – den Strichcode von unten nach oben ausgegeben

(default = verticaltop)

<Strichbreite>[;]

Breite (Länge) der Striche in mm oder in(inch)

<Strichhöhe>[;]

Höhe (Dicke) der Striche in mm oder in(inch)

<Lückenhöhe>[;]

Höhe (Dicke) der Lücken in mm oder in(inch)

Die Lückenhöhe beinhaltet auch den Strich.


Beispiel in einem vertikalen Barcode:

Die spezielle Anweisung hat in der Eingabe für CIB format folgendes Aussehen:

{ INCLUDEPICTURE "BARCODE:OMR;101011;verticalleft;10mm;0.5mm;0.16in;" }

 



Dynamisches Generieren eines DataMatrix ECC 2D Barcodes

Die in den Kapiteln „Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument“ bis „Dynamisches Generieren der Barcodegrafik über eine CIB format Callbackfunktion“ beschriebenen Verfahren können auch zum Einfügen von Datamatrix Barcodes genutzt werden. Diese enthalten folgende Information:

Spezielle DataMatrix ECC 2D Barcodes


Anweisung

Bedeutung

BARCODE:

Kennzeichnung, dass ein Bar- oder Strichcode erzeugt werden soll

BARCODE:<Typ>;<Daten>;......

<Typ>[;]

Typbezeichnung "DataMatrix" angeben

<Subtyp>[;]

Subtypbezeichnung: "ECCn" (n=1-200), default: ECC200

<Wert>[;]

Der individuelle Wert, den der Barcode darstellen soll

<Orientierung>[;]

horizontalleft – den Symbolcode von links nach rechts ausgeben

horizontalright – den Symbolcode von rechts nach links ausgeben

verticaltopverticalleft - den Symbolcode von oben nach unten ausgegeben

verticalbottomverticalright – den Symbolcode von unten nach oben ausgegeben

Default: horizontalleft

<Breite>[;]

Gewünschte Breite in der sich der Wert abbilden soll (in mm).

Die Berechnung der Symbolgröße erfolgt dann automatisch.

<Höhe>[;]

Gewünschte Höhe in der sich der Wert abbilden soll (in mm),

Die Berechnung der Symbolgröße erfolgt dann automatisch.

<Matrixgröße>[;]

Es kann die Anzahl der Zeilen und Spalten vorgeben werden:

Gültige Werte sind "s" für "Square" (=quadratisches Symbol) oder "r" für "Rectangle" ( = rechteckiges Symbol).  Noch nicht implementiert!

Gültige Werte sind

bei Quadraten:

10x10,12x12,14x14, 16x16, 18x18, 20x20,22x22,24x24, 26x26, 32x32, 36x36, 40x40,44x44,48x48, 52x52, 64x64, 72x72, 80x80,88x88,96x96, 104x104, 120x120, 132x132, 144x144,

bei Rechtecken:

8x18, 8x32, 12x26, 12x36, 16x36, 16x48

<Codepage>[;]

Codepage die benutzt wird, um den übergebenen Wert intern zu übersetzen (default: ansi).

Gültige Werte: ansi

<Prüfziffer>[;]

Die Prüfziffer gibt es bei diesem BarcodeType nicht.

Es ist nur ein leerer Platzhalter erforderlich.

<Komprimierung>[;]

Bei der Komprimierung von Datamatrix Barcodes wird der Datentyp ASCII Methode unterstützt.

Es ist nur ein leerer Platzhalter erforderlich.

Komprimierungsmethode benutzt eine ASCII-Komprimierung oder eine C40-Komprimierung für den Datamatrix Barcode.

 

Gültige Werte:

auto – benutzt alle Komprimierungen um den kleinstmöglichen Barcode zu bekommen(default)

yes – ASCII-Komprimierung wird immer verwendet

no – kein ASCII-Komprimierung wird verwendet

<Barcodeform>

(ab CIB format 5.3.236)

Die Barcodeform wird nicht mehr ausgewertet.

Es ist nur ein leerer Platzhalter erforderlich.

Die erzeugten Barcodes können quadratische oder rechteckige Form haben.

Gültiger Wert:

only-square  Eine quadratische Form wird fest vorgegeben .


Die spezielle Datamatrix Anweisung hat in der Eingabe für CIB format/barcode innerhalb eines Dokumentes folgendes Aussehen:
{ INCLUDEPICTURE "BARCODE:DataMatrix;ECC200;ABC123456789Z;horizontalleft;28mm;28mm;22x22;ansi;;;" }

Komprimierungsmethode des Datamatrix Barcodes

Bei der Komprimierung von Datamatrix Barcodes wird der Datentyp ASCII Methode unterstützt. Die ASCII-Komprimierung wird benutzt um Daten, welche hauptsächlich ASCII-Zeichen(0-127) beinhalten, zu komprimieren. Es werden ein alphanumerische Zeichen oder zwei numerische Zeichen pro Byte kodiert.

Größendarstellung von Data Matrix Code ECC 200   

Untere Aufstellung gibt Auskunft, wie viele Daten in einen Data Matrix Code passen:

Quadratische Symbole

Darstellbare Daten

Symbol­anzahl

Alpha-numeri-sche Ziffern

Alpha-numeri-sche Zeichen

Byte

Maximal korrigier-bare Fehler

10x10

6

3

1

2

12x12

10

6

3

3

14x14

16

10

6

5

16x16

24

16

10

6

18x18

36

25

16

7

20x20

44

31

20

9

22x22

60

43

28

10

24x24

72

52

34

12

26x26

88

64

42

14

32x32

124

91

60

18

36x36

172

127

84

21

40x40

228

169

112

24

44x44

288

214

142

28

48x48

348

259

172

34

52x52

408

304

202

42

64x64

560

418

278

56

72x72

736

550

366

72

80x80

912

682

454

96

88x88

1152

862

574

112

96x96

1392

1042

694

136

104x104

1632

1222

814

168

120x120

2100

1573

1048

204

132x132

2608

1954

1302

248

144x144

3116

2335

1556

310


Rechteckige Symbole

Darstellbare Daten

Symbol­anzahl

Ziffern

Zeichen

Byte

Maximal korrigierbare Fehler

8x18

10

6

3

7

8x32

20

13

8

11

12x24

32

22

14

32

12x36

44

31

20

44

16x36

64

46

30

64

16x48

98

72

47

98


Regeln für DataMatrix ECC 2D Barcodes

Folgende Regeln werden in unten genannter Reihenfolge auf die Aufrufparameter eines Datamatrix-Barcodes angewendet (Auszug aus dem Programmcode):

1) no MM size (no width and no height), no matrix size (no NxN)
a) matrix - first smallest suitable matrix size
b) cell size - 1x1 mm
2) no MM size, largest matrix size
a) matrix - largest matrix size
b) cell size - 1x1 mm
3) no MM size, too small matrix size
a) matrix - first smallest suitable matrix size
b) cell size - 1x1 mm
4) no MM size, wrong matrix size
a) matrix - first smallest suitable matrix size
b) cell size - 1x1 mm 
5) MM size (width is set, no height), matrix size (all cases 1-4)
a) matrix - according to case 1-4
b) cell size = [width / matrix.cx, width / matrix.cx] (mode which allow to scale the whole barcode by x-axis) 
6) MM size (no width, height is set), matrix size (all cases 1-4)
a) matrix - according to case 1-4
b) cell size = [height / matrix.cy, height / matrix.cy] (mode which allow to scale the whole barcode by y-axis) 
7) MM size (width is set, height is set), matrix size (all cases 1-4)
a) width / matrix.cx == height / matrix.cy (i.e. correct proportion was set)
b) matrix - according to case 1-4
c) cell size = [width / matrix.cx, height / matrix.cy]
d) width / matrix.cx != height / matrix.cy (i.e. incorrect proportion was set)
e) matrix - according to case 1-4
f) cell size = [width / matrix.cx, width / matrix.cx]


Dynamisches Generieren eines QR-Barcodes

Die in den Kapiteln „Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument“ bis „Dynamisches Generieren der Barcodegrafik über eine CIB format Callbackfunktion“ beschriebenen Verfahren können auch zum Einfügen von QR-Barcodes genutzt werden. Diese enthalten folgende Information:

QR-Barcode

(ab CIB format Version 5.3.237, bzw. 6.0.14)

Anweisung

Bedeutung

BARCODE:

Kennzeichnung, dass ein Bar- oder Strichcode erzeugt werden soll.

Syntax:

BARCODE:<Typ>“;" <Wert> ";" <Orientierung> ";" <Breite> ";" <Höhe> ";" <Matrixgröße> ";" <Codepage> “;” <Prüfziffer/Korrekturlevel> “;” <Komprimierung>

<Typ>[;]

Typbezeichnung "QR" angeben

<Wert>[;]

Der individuelle Wert, den der Barcode darstellen soll

<Orientierung>[;]

horizontalleft – den Symbolcode von links nach rechts ausgeben

horizontalright – den Symbolcode von rechts nach links ausgeben

verticaltopverticalleft - den Symbolcode von oben nach unten ausgegeben

verticalbottomverticalright – den Symbolcode von unten nach oben ausgegeben

Default: horizontalleft

<Breite>[;]

Gewünschte Breite in der sich der Wert abbilden soll (in mm).

<Höhe>[;]

Gewünschte Höhe in der sich der Wert abbilden soll (in mm).

<Matrixgröße>[;]

Keine Eingabe.

<Codepage>[;]

Codepage die benutzt wird, um den übergebenen Wert intern zu übersetzen (default: ansi).

Gültige Werte: ansi

<Prüfziffer/Korrekturlevel>[;]

Die Prüfziffer gibt es bei 2D-Barcodes nicht.
Default ist daher immer nochecksum.

Hier kann aber das Korrekturlevel (ECL) angegeben werden. Das Level geht von 0 (gering Korrektur) bis 3 (maximale Korrektur = default).

Level                Parameter        Korrektur-Möglichkeit

   L                   ECL0                7%   zerstörte Information

   M                 ECL1                15% zerstörte Information

   Q                  ECL2                25% zerstörte Information

   H                  ECL3                30% zerstörte Information

 

Mögliche Eingaben:

nochecksum|ECL0|ECL1|ECL2|ECL3

<Komprimierung>

Bei QR-Barcodes gibt es keine Komprimierung.

Beispiel für einen QR-Barcode:

{ INCLUDEPICTURE "BARCODE:QR;Test QR-Code;horizontalleft;20;20;;ansi;ECL1;" }

Dynamisches Generieren eines PDF417-Barcodes

Die in den Kapiteln „Dynamisches Generieren der Barcodegrafik in einem Platzhalter im Dokument“ bis „Dynamisches Generieren der Barcodegrafik über eine CIB format Callbackfunktion“ beschriebenen Verfahren können auch zum Einfügen von PDF417-Barcodes genutzt werden. Diese enthalten folgende Information:

PDF417-Barcode

(ab CIB format Version 5.3.225, bzw. 6.0.6)

Anweisung

Bedeutung

BARCODE:

Kennzeichnung, dass ein Bar- oder Strichcode erzeugt werden soll.

Syntax:

BARCODE:<Typ>“;”<Subtyp> ";" <Wert> ";" <Orientierung> ";" <Breite> ";" <Höhe> ";" <Matrixgröße> ";" <Codepage> “;” <Prüfziffer/Korrekturlevel> “;” <Komprimierung>

<Typ>[;]

Typbezeichnung "PDF417" angeben

<Subtyp>[;]

Leer, wird derzeit nicht unterstützt.

Es ist nur ein leerer Platzhalter erforderlich.

<Wert>[;]

Der individuelle Wert, den der Barcode darstellen soll

<Orientierung>[;]

horizontalleft – den Symbolcode von links nach rechts ausgeben

horizontalright – den Symbolcode von rechts nach links ausgeben

verticaltopverticalleft - den Symbolcode von oben nach unten ausgegeben

verticalbottomverticalright – den Symbolcode von unten nach oben ausgegeben

Default: horizontalleft

<Breite>[;]

Gewünschte Breite in der sich der Wert abbilden soll (in mm).

<Höhe>[;]

Gewünschte Höhe in der sich der Wert abbilden soll (in mm).

Wenn die Angaben von Höhe und/oder Breite fehlen, wird die Größe des Barcodes aus der Matrixgröße und einer Standard-Balkengröße von 1mm x 1mm berechnet.

<Matrixgröße>[;]

Dimension der Matrix für den PDF417-Barcode.
Es werden die Anzahl der gewünschten Zeilen und Spalten angegeben.


<Zahl> “x” <Zahl> | “x” Zahl> | <Zahl> “x” | “” | <Faktor>

 

<Faktor> gibt das Verhältnis Zeilen zu Spalten in der Form <#.#> an.
So ergibt sich bei einem Faktor von z.B. 0.5 das folgende Verhältnis:
Zeilen = 0.5 x Spalten

Aus Breite, Höhe und Matrixgröße wird automatisch die Balkengröße berechnet.

Diese Angabe ist nicht zwingend erforderlich. Bei Fehlen wird als Default ein Faktor von 0.5 angenommen.

<Codepage>[;]

Codepage die benutzt wird, um den übergebenen Wert intern zu übersetzen (default: ansi).

Gültige Werte: ansi

<Prüfziffer/Korrekturlevel>[;]

Die Prüfziffer gibt es bei 2D-Barcodes nicht.
Default ist daher immer nochecksum.

Hier kann aber das Korrekturlevel (ECL) angegeben werden. Das Level geht von 0 (keine Korrektur = default) bis 8 (sehr große Korrekturmöglichkeiten).

Mögliche Eingaben:

nochecksum|ECL0|ECL1|ECL2|ECL3|ECL4|ECL5|ECL6|ECL7|ECL8

<Komprimierung>

Bei PDF417-Barcodes gibt es keine Komprimierung.


Beispiel für einen PDF417-Barcode:

{ INCLUDEPICTURE "BARCODE:PDF417;;ABC123456789Z;horizontalleft;20;40;;;ECL2" }