Beschreibung

Home
Beschreibung
Download
Registrierung
FAQ

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.
  • <options> steht je nach verwendetem Druckertyp für die folgenden Optionen:

    a) Ausdruck erfolgt auf einem Laserdrucker
    0 = Es wird keine Prüfziffer generiert (sofern eine Prüfziffer nicht optional ist).
    1 = Aus den Daten des Barcodes wird die Prüfziffer generiert und mit ausgedruckt. Der Aufbau der Prüfziffer entspricht hierbei dem jeweiligen Standard des verwendeten Barcodes.
    2 = Der Klartext erscheint nicht oberhalb, sondern unterhalb des Barcodes.
    3 = 1 + 2
    4 = Als Klartext werden die Barcodedaten ausgegeben.
    5 = 1 + 4
    6 = 2 + 4
    7 = 1 + 2 + 4

    b) Ausdruck erfolgt auf einem Nadeldrucker
    8 =  Es wird keine Prüfziffer generiert (sofern eine Prüfziffer nicht optional ist).
    9 = Aus den Daten des Barcodes wird die Prüfziffer generiert und mit ausgedruckt. Der Aufbau der Prüfziffer entspricht hierbei dem jeweiligen Standard des verwendeten Barcodes.

    Die Auflösung (DPI) beim Ausdruck auf einem Nadeldrucker wird durch die Addition eines der folgenden Werte zum Wert von <options> festgelegt:

    Wert

    Auflösung

    Nadeln

    Beschreibung

    +0 60 DPI 8 Einfache Dichte
    +16 120 DPI 8 Doppelte Dichte, hohe Geschwindigkeit
    +32 120 DPI 8 Doppelte Dichte
    +48 240 DPI 8 Vierfache Dichte
    +64 80 DPI 8 CRT I
    +80 90 DPI 8 CRT II
    +96 60 DPI 24 Einfache Dichte
    +112 120 DPI 24 Doppelte Dichte
    +128 90 DPI 24 CRT III
    +144 180 DPI 24 Dreifache Dichte
    +160 360 DPI 24 Sechsfache Dichte

    So ergibt z.B. der Wert 169 (= 9+160) für einen Barcode mir Prüfziffer (9) zur Ausgabe auf einem 24-Nadeldrucker mit einer Auflösung von 360 DPI  (+160).

 

  • Beispielaufruf:

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.