



| |
Das Programm BARCODE erweitert nahezu jede beliebige
UNIX*-Anwendung um die Möglichkeit des Ausdrucks von Barcodes und zwar sowohl auf Laser-
als auch auf Nadeldruckern.
Als Laserdrucker kommen hierbei sämtliche Modelle
in Frage, die kompatibel zum HP-Laserjet 4* sind. Dies sind heutzutage die meisten
Laserdrucker auf dem Markt. Falls ein 9- oder 24-Nadeldrucker zum
Einsatz kommen soll, wird hier der Epson*-Modus unterstützt. Da die Firma Epson* mit
Ihrer Druckersprache einen Industriestandard definiert hat, sollte in den meisten Fällen
auch Ihr Modell mit dem BARCODE-Programm zusammenarbeiten.
Die Funktion des Programms BARCODE ist denkbar einfach:
Es fungiert als eine Art Druckerfilter und untersucht die von Ihrer Anwendung stammenden
Druckdaten auf das Vorhandensein einer speziellen Sequenz, die Sie zuvor innerhalb der
Anwendung an geeigneter Stelle eingefügt haben. Solange diese Sequenz nicht in dem zu
druckenden Datenstrom auftritt, werden die Daten unverändert an den Drucker
durchgereicht. Tritt nun aber diese Befehlssequenz auf, so wird ein entsprechender Barcode
in Form entsprechender PCL-5e*-( bzw. Epson-) Kommandos in den Datenstrom eingefügt.
Unter UNIX* z.B. genügt es also, den ursprünglichen Druckbefehl gegen eine
Befehlsfolge der Art
cat $1 | barcode [<registration
id>]| lp
zu ersetzen. Ohne Angabe des Parameters [<registration
id>] werden die zu druckenden Daten allerdings in zufälliger Folge
durchmischt.
Der cat-Befehl reicht die Druckdatei, deren Name als Script-Parameter $1
erwartet wird, über den Pipe-Befehl|an
das Programm barcode weiter. Dieses wiederum interpretiert die Daten in
der oben beschriebenen Art und Weise und gibt sie wiederum mittels des Pipe-Befehls|an den eigentlichen Druckbefehl lp
weiter.
Sobald diese Vorbereitungen getroffen sind, können die zu druckenden Daten Ihrer
Anwendung an beliebiger Stelle durch Barcodes ergänzt werden werden. Dazu wird
einfach in das zu druckende Dokument bzw. Formular eine Barcode-Sequenz eingefügt:
!R! BARCODE
<mode>,"<text>","<data>",<x>,<y>,<width>,<height>,<rotation>,<options>;EXIT;
Die Platzhalter in spitzen Klammern <....> haben folgende
Bedeutung:
- <mode> steht für den
Barcode-Typ, mögliche Werte z.Zt.:
0 für "Interleaved 2 of 5 ",
1 für "Code 39",
2 für "Code 128" oder "EAN128"
3 für "Codabar",
4 für "MSI",
5 für "EAN-13".
- "<text>" steht für den
Klartext, der über bzw. unter den Barcode gedruckt werden soll.
Diese Funktion steht nur bei der Ausgabe auf Laserdruckern zur Verfügung. Es wird
ein in der Zeichendichte (CPI) an die jeweilige Barcode- breite angepaßter Zeichensatz
"ISO 8859-1 Latin 1 / ECMA1" der Schriftart "Courier" verwendet.
Gegebenenfalls muß die Höhe der Zeichen durch beidseitiges Hinzufügen von Leerzeichen
reduziert werden.
Achtung: Aus programmtechnischen Gründen muß zumindest ein Leerzeichen als Text
angegeben werden, da andernfalls das Barcode-Kommando nicht als solches erkannt wird!
- "<data>" steht für die
als Barcode zu druckende Ziffernfolge. Sie wird ggf. vorne mit einer "0"
aufgefüllt, denn "interleaved 2of5"-Barcodes können incl. einer evtl.
Prüfsumme immer nur eine gerade Anzahl Ziffern darstellen !
- <x> steht für den horizontalen
Abstand (in mm) des Barcodes:
- relativ zur aktuellen Druckposition (bei Laserdruckern). Negative Werte sind hier
möglich!
- vom linken Seitenrand (bei Nadeldruckern)
- <y> steht für den vertikalen
Abstand (in mm) des Barcodes relativ zur aktuellen Druckposition. Negative Werte bewirken
eine Verschiebung nach oben (nur Laserdrucker) , positive nach unten.
- <width> steht für die Breite des
gesamten Barcodes (in mm, in Scan-Richtung gesehen).
Aufgrund technologischer Einschränkungen kann es insbesondere bei Nadeldruckern zu
größeren Abweichungen von dem hier angegebenen Wert kommen.
- <height> steht für die Höhe der
Balken (in mm, senkrecht zur Scan-Richtung).
- <rotation> hier steht eine
0 für eine waagerechte Darstellung und 1 für eine um 90 Grad gegen den Uhrzeigersinn
gedrehte Darstellung. Die Drehung um 90 Grad wird allerdings nur bei der Ausgabe auf
Laserdrucker unterstützt.
Nach diesem kurzen Demotext wird ein Barcode gezeichnet.
Bezugspunkt für die relative Positionsangabe -40, 20 ist die aktuelle Cursorposition zu
Beginn des Barcode-Befehls. In diesem Fall steht der Cursor am Beginn der kommenden Zeile
(wegen des <CR> am Ende dieser Zeile!).
!R! BARCODE 0, "Seriennummer", "08154711", -40, 20, 35, 15, 1,0; EXIT;
Der obige Befehl zeichnet einen senkrecht orientierten '2 of 5'-Barcode mit einer
Länge (in Scan-Richtung) von 35 mm und 15 mm langen Balken. Die Startposition des
Barcodes liegt 40 mm links u. 20 mm unterhalb der Grundlinie des ersten "!".
* Alle Warennamen werden ohne Gewährleistung der freien Verwendbarkeit benutzt und
sind möglicherweise eingetragene Warenzeichen.
|