# Label- Drucker ZEBRA mit Platzhalter?



## Chräshe (31 August 2012)

Hallo allerseits,

Aus grauer Vorzeit kann ich mich an einen Label-Printer erinnern, der Mehrere Etiketten gespeichert hatte. Über die Serielle Schnittstelle wurden nur der Typ ausgewählt und die veränderlichern Datenfelder übertragen. 

Geht das bei den aktuellen ZEBRA- Druckern auch so?
Angedacht war der Drucker „ZM400“ mit der Software „ZebraDesigner Pro“ zum einrichten.

Ziel wäre, dem Kunden ein Etikett vorzubereiten, das mit Platzhalter ausgestattet ist. Über die Schnittstelle kommen dann nur noch die Daten. Somit könnten kleine Änderungen im Aussehen oder das tauschen des Logos vom Kunden eigenständig umgesetzt werden… 

Zudem wäre es für den Etiketten- Entwurf sehr viel komfortabler, das Aussehen grafisch zu gestalten, anstatt jede Linie mit Koordinaten festlegen zu müssen!
Die Anleitung hiefür steht zwar im „ZEBRA Programmier-Handbuch“ mit 994 Seiten, aber es gibt spannendere Lektüre… 

Ich hatte erwartet, dass es mit der Software „ZebraDesigner Pro“ möglich ist ein Etikett mit entsprechenden Platzhaltern zu erstellen und auf dem Drucker zu speichern. Leider finde ich im Handbuch keinen konkreten Hinweis. Die Demoversion zum freien runterladen gibt auch nicht mehr Aufschluss…

Kann mir jemand sagen, ob meine Erwartungen zu hoch waren?
Wie setzt Ihr solche Anforderungen um?
Gibt es ein anderes Programm das genau meinen Vorstellungen entspricht?

Jede Rückmeldung, auch die, dass es keine einfache Lösung gibt ist willkommen. Dann brauche ich nichts mehr zu suchen, was es nicht gibt! 

Gruß
 Chräshe


----------



## Chräshe (3 September 2012)

Hallo allerseits,

arbeitet von euch niemnad mit dem  „ZebraDesigner Pro?
Pusselt ihr die Etiketten immer mit „ZPL- Komandos“ zusammen?

Gruß
 Chräshe


----------



## nekron (3 September 2012)

Das funktioniert auch mit dem Zebradesigner, ich kann dir am Freitag mal ein Demolabel raussuchen, sowie die entsprechenden Druckkommandos ...

Vorher schaffe ich das leider wg IBN nicht 
...

Vielleicht fällt mir die Vorgehensweise noch ein 

Gruß,
Nekron


----------



## Chräshe (3 September 2012)

Hallo Nekron,

Schön dass ich doch nicht ganz alleine bin. Inzwischen hab ich aber eine Lösung. 
Im „ZPL II Programming Guide“ auf der Seite 49 konnte ich folgendes Beispiel finden:


```
[FONT=courier new]
^XA                        - Zeichen für Anfang
^XF[COLOR=#ff0000]R[/COLOR]:SAMPLE.GRF            - Projekt „SAMPLE“ auf dem Speicher „[COLOR=#ff0000]R[/COLOR]“ wird geladen (Accepted Values: [COLOR=#ff0000]R, E, B, A[/COLOR])
^FN1^FD[COLOR=#0000cd]Acme Printing[/COLOR]^FS    - [COLOR=#0000cd]Text für in Platzhalter  1 [/COLOR]
^FN2^FD[COLOR=#0000cd]14042[/COLOR]^FS            - [COLOR=#0000cd]Text für in Platzhalter  2…[/COLOR]
^FN3^FD[COLOR=#0000cd]Screw[/COLOR]^FS
^FN4^FD[COLOR=#0000cd]12345678[/COLOR]^FS
^FN5^FD[COLOR=#0000cd]Macks Fabricating[/COLOR]^FS
^XZ                        - Zeichen für Ende[/FONT]
```
Die Entscheidende Info ist, dass man die „Platzhalter“ im „ZebraDesigner“ als Abfrage-Variable für die Tastatureingabe definiert.


Soll das Etikett auch nach Spannung aus auf dem Drucker bleiben, sollte man es unbedingt auf das „Internal Flash“ kopieren. Der Befehl per Schnittstelle zum abrufen muss dann von ^XF*R*  auf ^XF*E *geändert werden…

Gruß
 Chräshe


----------



## nekron (3 September 2012)

Genau so funktioniert das ganze ...

Schoen das es so geklappt hat 

Gruß,
Nekron


----------



## seppi (16 Oktober 2014)

Ich bedanke mich auch gleich mal für die Info, allerdings hab ich jetzt noch ein riesen Problem.

Ich habe mit dem Zebradesigner ein "Formular" gezeichnet und mit der Funktion Export das Formular auf den Drucker gespeichert.
Den Drucker habe ich vorerst über USB als GENERIC-Drucker angeschlossen.

Im Texteditor hab ich alles so reingeschrieben wie in dem Beispiel und das dann an den Drucker gesendet.

Das Formular wird auch ausgedruckt, der variable Text allerdings nicht.

Ich habs vorerst ganz einfach gehalten:
Hier das Formular und die definierte Variable ^FN1




Und hier meine Text-Datei die ich an den Drucker sende:
^XA                       
^XFE:KLT.GRF
^FN1^FDxx.xxxxx-xxxx^FS        
^XZ

Das Formular wird ausgedruckt, aber an der Stelle von den Fragezeichen steht einfach nichts! Habs mit numerisch,alphanumersich, ... probiert.
Ab und zu sieht man ganz am Rand den Text "xx.xxxxx-xxxx" ganz klein und gedruckt. 

Es sieht so aus wie wenn er die Variable nicht richtig interprediert.


----------



## seppi (20 Oktober 2014)

Möchte den Beitrag nochmal hoch schieben, in der Hoffnung, dass mir jemand weiterhelfen kann.


----------



## sla (27 Oktober 2014)

seppi schrieb:


> Möchte den Beitrag nochmal hoch schieben, in der Hoffnung, dass mir jemand weiterhelfen kann.




Ich weiß nicht, ob dies weiterhilft. Ich habe mal vor 10 Jahren ein Projekt (allerdings rechnerseitig) realisiert, wo relativ komplexe Etiketten und Serien von Etiketten gedruckt wurden. Ich habe damals mit dem Designer Layouts erstellt und dann PRN-Dateien erzeugt. (Drucken in Datei).

Im Designer habe ich für die Datenfelder Keys-Definiert, die immer mit dem Prefix # anfangen.
z.B. #POSBEZ14


^XA~TA000~JSN^LT0^MNW^MTD^PON^PMN^LH0,0^JMA^PR4,4^MD0^JUS^LRN^CI0^XZ
^XA#
^MMT
^LL1772
^PW1228
^LS0
^FT274,261^A0B,58,57^FH\^FD#ART^FS
^FT1075,1050^A0B,37,36^FH\^FD#POSBEZ16^FS
^FT691,1051^A0B,37,36^FH\^FD#POSBEZ08^FS
^FT979,1049^A0B,37,36^FH\^FD#POSBEZ14^FS
^FT595,1051^A0B,37,36^FH\^FD#POSBEZ06^FS
^FT1027,1050^A0B,37,36^FH\^FD#POSBEZ15^FS
^FT739,1049^A0B,37,36^FH\^FD#POSBEZ09^FS
^FT883,1049^A0B,37,36^FH\^FD#POSBEZ12^FS
^FT499,1051^A0B,37,36^FH\^FD#POSBEZ04^FS
^FT932,1049^A0B,37,36^FH\^FD#POSBEZ13^FS
^FT643,1051^A0B,37,36^FH\^FD#POSBEZ07^FS
^FT547,1051^A0B,37,36^FH\^FD#POSBEZ05^FS
^FT787,1049^A0B,37,36^FH\^FD#POSBEZ10^FS
^FT835,1049^A0B,37,36^FH\^FD#POSBEZ11^FS
^FT354,1051^A0B,37,36^FH\^FD#POSBEZ01^FS
^FT403,1051^A0B,37,36^FH\^FD#POSBEZ02^FS
^FT451,1051^A0B,37,36^FH\^FD#POSBEZ03^FS
^FT1066,1620^A0B,37,36^FH\^FD#FOLGE^FS
^FT173,544^A0B,37,36^FH\^FD#DD_MM_YYYY_HH_MI_SS^FS
^FT310,1619^A0B,37,36^FH\^FD#KOMMISSION^FS
^FT252,1619^A0B,37,36^FH\^FD#LIEFERANT^FS
^FT170,1619^A0B,58,57^FH\^FD#WARENAUSZEICHNUNG^FS
^FO192,135^GB0,1484,7^FS
^PQ1,0,1,Y^XZ

Ich habe dann diese Datei zum Start des Print-Tasks eingelesen und in Abhängigkeit der Druckdaten, die Schlüssel durch die betreffenden Werte des Druckjobs ersetzt.
Dann wurde das entstandene Byte-Array direkt auf den Label-Printer ausgegeben. (Hart angesteuert!)

// harte Ansteuerung in C#
SafeFileHandle printer = CreateFile(druStamm.DruNamSys.ToString() //Druckername, GENERIC_WRITE, 0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero);
if (printer.IsInvalid)
{
Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error());
}

using (FileStream lpt1 = new FileStream(printer, FileAccess.ReadWrite))
{
using (StreamWriter writer = new StreamWriter(lpt1))
{
writer.Write(buffer);  // Byte-Array nach LPT
}
}

Im Prinzip sollte das auch in der SPS gehen. Man hat natürlich keine Dateien, könnte aber einen DB für jedes Layout (PRN-Content) definieren. Man sollte das wahrscheinlich in SCL implementieren.


----------



## blimaa (6 August 2015)

Hi

Ich hole das Thema nochmals kurz hoch.
Ich habe ein ZT410 und schreibe mein Label mit dem Zebra designer V2 auf den Drucker danach steuere ich den Drucker an. Dabei wird allerdings wie bei Seppi nur das gespeicherte Label gedruckt. 
Die Eingabefelder sind auch als Tastatureingabe gemacht worden.

Hat jemand das Problem lösen können?
Gruss blimaa


----------



## KopfjacK (11 Januar 2018)

Hallöchen,

ich habe zwar nix mit SPS zu tun, habe mich aber extra registriert um diese Frage zu beantworten, auch wenn sie schon etwas zurückliegt.
Ich habe mir einen Wolf gesucht, bis ich eine Lösung gefunden hatte, daher auch meine Antwort um dies anderen zu ersparen:

Bei allen, bei denen der Aufruf wie bei seppi

^XA                       
 ^XFE:KLT.GRF
 ^FN1^FDxx.xxxxx-xxxx^FS        
 ^XZ

nicht funktioniert hat, der kann folgendes versuchen:

statt ^FN1 einfach ^FN11 eingeben.

Bei uns in der Firma war es tatsächlich der Fall, dass bei mit dem Zebra-Designer erstellte Etiketten das erste Feld mit
^FN11 anzusprechen war und nicht mit ^FN1.

Ich weiß nicht, ob das jetzt nur ein dubioser Fall bei uns ist, oder ob ich mit dem Beitrag einigen "Suchenden" weiterhelfen konnte.
Bei uns war dies des Rätsels Lösung.

Gruß
KopfjacK


----------

