I have a label stock that has two labels side by side, so I've written my code to print identically on both of these labels.
The issue is that a printer sees this as one label, but I need it to see them as two. How then, could I possibly trick the printer into thinking two labels have been printed?
If ZPL can print 2 separate pieces of code on one label this might be possible. If there's a command that makes a single label count as 2 then it's definitely possible.
Related
My code is here:
http://staging.advanced-technology-group.com/?density=8&quality=grayscale&width=4&height=6&units=inches&index=0&zpl=%5EXA%0A%0A%5ECI28%0A%5ECWZ%2CE%3ATT0003M_.FNT%0A%5EFS%5EXZ%5EXA%5EFWN%5EFO70%2C50%5EA0%2C30%2C25%5EFH%5EFD_ce_8e%0A%5EFS%5EFO70%2C90%5EBY2%5EB3%2C%2C100%5EFDtestprodcuct%5EFS%5EXZ
The problem i face, is that i calibrate the zebra printer (gc 420t) with the following:
hold the feed button, the led blinks once, then twice, then i release the feed button.
Then i notice that half of the label is not printed. Given that i use the above offsets. What should one do? There are two ways to make the label print correctly. Either with the printer make it print the label in the middle, or with putting instead of 70, a larger value in the FS command. How would you suggest i should proceed? If i use the code, is there a command to use instead of FS, a command that would tell the printer to print the label in the middle of the paper?
I currently know how many labels I want to print and use ^PQ# to print that amount but the trouble is getting an incrementing count printed on the corner of each label.
There are a couple problems right now. First is that Zebra doesn't have anything letting me print the odometer value on the zebra printer. It will kind of let me print the number of centimetres or inches using ~WQOD, but it comes with a lot of extra information that I don't want. I couldn't find any commands in the manual just letting me print the number of labels with the reset-able odometer.
I could create a counter outside of the printer then send a request to print each label with a new number on the top right, however, that overloads the printer and causes connection issues with the printer if I print too many labels.
Are there any ways to overcome either of those issues so I can print an incrementing counter on each label?
The command to print a sequence of numbers across labels is ^SN. It is specifically used with ^PQ.
^SN001,1,N^FS
^PQ3
To not overload the printer, send all individual labels within one connection, as a single string stream, don't open a separate connection for each.
We have a web app that batches the ZPL for many shipping labels (UPS, USPS, FedEx) at a time. For some reason it will randomly mis-print where is just prints the barcodes, but nothing else. This usually only starts after about label 20 or so in the batch, and even then, it is not consistent in the labels after that. Sometimes it does it, sometimes it doesn't. It is consistent in that it does it to the USPS labels and not UPS or FedEx.
If we reprint just that label's zpl, it prints fine.
So I was wondering if there is some limit we're running into with batching. We send just one long zpl string for the entire batch, each label separated with ^XA....^XZ.
The printer is a GX420T.
Any ideas?
Example mis-print - I drew black lines on the barcodes to make them not readable for privacy
I am working on a set of ZPL validation routines which parse arbitrary ZPL files, sanitize them, edit certain key commands (label length, print speeds, etc), and extract some useful information.
Since this printer is generating labels for a free-running shipping line I really need to know how long it's going to take from the moment I send the ZPL file to the printer until I'll be ready to apply the label. It is clear that the print time is directly linked to the label length and print speeds, but the label render time (conversion of ZPL into ready to print image in printer memory) is less obvious.
Since I'm printing label contents provided by numerous third parties, I can't simply measure the time for the labels. I've asked Zebra and gotten no guidance, so I'm wondering if anyone has an idea of how to estimate the render time? Am I stuck trying to estimate the processing time of every individual ZPL command?
My experience over the last couple of years working with differnt zebra printers (Z4M, ZM400, GK420t) is, that the label that is send to the printer is printed almost instantaneously.
I am developing a Windows Mobile App that requires printing into a Zebra printer. Problem is, I do not have the printer with me here in my country since the client did not provide any.
My approach was to design a label first in ZebraDesigner2, then print out the label into a text file. Printing the label to a text file instead of a printer sends out the ZPL Code to produce the label I was trying to print. Hence, I can generate ZPL codes faster by designing a label first then seeing the ZPL code. Kinda like having a drag and drop GUI with a background XML.
Say that I have this simple label that contains this text:
Hello World!
If I print this in ZebraDesigner2 it would be written to my text file as:
CT~~CD,~CC^~CT~
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR5,5~SD15^JUS^LRN^CI0^XZ
^XA
^MMT
^PW609
^LL0406
^LS0
^FT1,29^A0N,28,28^FH\^FDHello World!^FS
^PQ1,0,1,Y^XZ
My main question is, which one do I include in my C# Code if im going to send this code to the printer via my Windows Mobile C# app? Do I include the part with ^XA until ^XZ? I believe that CT~~CD,~CC^~CT~ should not be included in my code If im not mistaken.
Late answer, but since this is getting viewed...
The CT line and first set of XA..XZ sequence sets up the modes, label length, printable area, etc.
If you remove those, it will take those settings from the label/printer settings, which is usually what you want. The printers can sense the length and width of the label.
Leaving them in can cause big problems, because if you define the printable area in your label, and then the next label type submitted does not, it will use the settings you have defined -- which can cause blank areas in the label, eg. cutoff USPS Label barcodes that are printed after your Zebra Designer custom labels.
Found this out the hard way - leave those out, and you should leave out of the remaining XA..XZ sequence the MMT, PW609, LL0406, and LS0 as well - your Hello World will not be affected.
If you really want to limit the area printed to, set up margins inside the printable area, etc, refer to the manual.
you have to look at the programmers guide before you remove anything of the code. The CT~ command for example changes the control prefix.
Search the internet or zebra.com site for "ZPL Programming guide".
So, leave the text file as is and then include that into your windows mobile application.
PS: zebra offers SDKs for label/receipt printers: http://www.zebra.com/gb/en/products-services/software/adapt-software.html
PS2: without a test printer you may get bad final results.