===== Barcode =====
Im folgenden finden sich ein paar einfache Anwendungen für den Einsatz von Barcodes, die Beispielen aus der Prescribe-Dokumentation nachempfunden sind. Sie sollen die vielen Möglichkeiten von Prescribe beim Erstellen von Barcodes demonstrieren.
Da der Prescribe-Emulator für die Erzeugung eine Bibliothek verwendet, die auch in anderen (c4p) Konvertern und auch in (p2f) zum Einsatz kommt, gibt es erfahrungsgemäß beim Druck von Barcodes im Einzelfall erhebliche Abweichungen in der Darstellung verglichen mit einem Kyocera-Drucker.
\\
\\
=== UPC-Code ===
Einer der eklatantesten Unterschiede ist die Handhabung der Klartextzeile. Im nachfolgenden Beispiel ist zu sehen, dass der Text nicht mit der Schrift Nummer 10 ausgegeben wird, sondern, wie von der Norm verlangt, in der Schrift OCR-B. Der Prescribe-Emulator lädt die Schrift in den Drucker und skaliert sie so, dass die vorgesehenen Aussparungen im Barcode ausgefüllt werden. ((Im [[convert4print:prescribe:Anpassungsbereich]] in der PM-Ressource kann dieses Verhalten abgeschaltet werden. Es wird dann die Schrift Courier in einer fixen Grösse verwendet.\\ \\ ))
\\
\\
**Prescribe:**
!R! RES; UNIT I;
FONT 10;
MAP 0.50, 0.50;
BARC 0, Y, '12345678910';
PAGE; EXIT;
\\
**Ausdruck:**
{{convert4print:Prescribe:barcode1.png}}
\\
=== EAN-Code ===
Der EAN-Code ist ein Beispiel für einen Barcode mit kurzen und langen Balken. In Prescribe kann die Länge des langen Balkens unabhängig von der Länge des kurzen Balkens definiert werden. Das wird vom (c4p) Prescribe-Emulator so nicht unterstützt, weil es in der Norm der Barcodes klare Vorgaben für die Länge des kurzen Balkens in Bezug auf den langen Balken gibt. Für den Emulator ist nur die erste Längenangabe im Barcode relevant.
Genauso verhält es sich mit den Breiten für die Balken und Lücken. Auch hier gibt es klare Vorgaben zu den Breitenverhältnissen (hier 1:2:3:4), die vom Emulator automatisch berücksichtigt werden. Insofern gilt tatsächlich nur die erste Breitenangabe.
Wird ein EAN-Code ohne Klartextzeile gedruckt, wird nur eine Balkenhöhe erzeugt.
\\
\\
**Prescribe:**
!R! RES; UNIT D;
MAP 150, 150;
BARC 36, N, '012345678912', 180, 220, 10, 20, 30, 40, 10, 20, 30, 40;
MAP 150, 400;
BARC 36, Y, '012345678912', 220, 250, 5, 10, 15, 20, 5, 10, 15, 20;
CMNT Äquivalent aber inkompatibel mit Original:
BARC 36, Y, '012345678912', 0, 350, 5, 0, 0, 0, 5, 0, 0, 0;
PAGE;
EXIT;
\\
**Ausdruck:**
{{convert4print:Prescribe:barcode2.png}}
\\
=== Grösse Klartextzeile ===
Die Grösse der Schrift, mit der die Klartextzeile gedruckt wird, wird vom Prescribe-Konverter automatisch justiert. Dabei spielt sowohl die Länge der Balken als auch deren Breite eine Rolle.
Für die Breite und die Länge des Balkens wird eine Schriftgrösse errechnet. Zum Zuge kommt dann immer die kleinere der beiden Grössen. Das verhindert Ausreisser bei Barcodes mit extremen Breiten zu Höhe Verhältnissen. ((Im [[convert4print:prescribe:Anpassungsbereich]] in der PM-Ressource kann dieses Verhalten abgeschaltet werden. Es wird dann die Schrift Courier in einer fixen Grösse verwendet.\\ \\ ))
\\
\\
**Prescribe:**
!R! RES; UNIT D;
MAP 100, 600;
BARC 19, Y, '0123ABC',
60, 60, 5, 10, 10, 10, 5, 10, 10, 10;
MAP 100, 750;
BARC 19, Y, '0123ABC',
120, 120, 5, 10, 10, 10, 5, 10, 10, 10;
MAP 900, 600;
BARC 19, Y, '0123ABC',
300, 300, 5, 10, 10, 10, 5, 10, 10, 10;
PAGE; EXIT;
\\
**Ausdruck:**
{{convert4print:Prescribe:barcode3.png}}
\\
=== Application Identifier ===
Beim EAN-128 gibt es Vorgaben bezüglich der Formatierung der Klarschriftzeile. Teile des Inhalts sind sogenannte Application Identifer, Kennziffern, die beschreiben, welche Bedeutung und welche Länge die nachfolgenden Daten haben - zum Beispiel eine Seriennummer oder ein Mindesthaltbarkeitsdatum.
Der Prescribe-Emulator kennzeichnet die Application Identifier in der Klartextzeile durch runde Klammern und macht die Zeile so leichter lesbar.
\\
\\
**Prescribe:**
!R! RES; UNIT D;
MAP 150, 150;
BARC 42, Y, '20131310062517100630', 200, 200;
PAGE;
EXIT;
\\
**Ausdruck:**
{{convert4print:Prescribe:barcode4.png}}
\\
=== Zusätzliche Barcodes ===
Im Prescribe-Emulator können noch eine Reihe weiterer Barcodetypen genutzt werden, die ein Kyocera-Drucker nicht anbietet (siehe [[convert4print:prescribe:barc|BARC]]). Als Beispiel sind hier ein Leitcode und ein Identcode der Deutschen Post ausgewählt worden.
Dokumentation zu den einzelnen Barcodetypen findet sich in der Beschreibung des [[convert4print:barcode:barcode|Barcode-Konverters]].
\\
\\
**Prescribe:**
!R! RES; UNIT D;
MAP 100, 150;
BARC 50, Y, '6701750440280';
MAP 1100, 150;
BARC 51, Y, '58356840580';
PAGE;
EXIT;
\\
**Ausdruck:**
{{convert4print:Prescribe:barcode5.png}}
\\
==== PDF 417 ====
Beim zweidimensionalen Barcode vom Typ %%PDF%% 417 werden die zu kodierenden Daten zwischen den beiden Kommandos //XBAR// und //ENDB// eingeschlossen, weil dieser Barcodetyp alle Zeichen des Zeichensatzes kodieren kann.
Im Beispiel wird ein erster Barcode mit dem Fehlerkorrekturlevel 1 gedruckt - dem Standard. Der zweite Barcode nutzt nicht nur den Fehlerkorrekturlevel 4, sondern ist auch vom Typ %%PDF%% 417 Truncated, was mit dem entsprechenden //XBCP// Kommandos eingestellt wurde. Es ist deutlich zu sehen, dass der zweite Barcode aufgrund des höheren Fehlerkorrekturlevels viel mehr Daten kodiert, selbst wenn er rechts abgeschnitten ist, und damit eine ganze Spalte fehlt.
\\
\\
**Prescribe:**
!R! RES; UNIT D;
MZP 100, 100;
XBCP 1, 6;
XBAR;convert4print Prescribe Emulator;ENDB;
MZP 800, 100;
XBCP 3, 4;
XBCP 9;
XBAR;convert4print Prescribe Emulator;ENDB;
PAGE; EXIT;
\\
**Ausdruck:**
{{convert4print:Prescribe:barcode6.png}}