ZPL setup GX430t - zebra-printers

I use Raspberry Pi connected to a Zebra GX430t with CUPS. I use the "Local Raw Printer" driver and I send the ZPL directly to the printer using Python.
I use the termal transfert mode, but I have a problem with the printer (300dpi), because the printing of the datamatrix is quite blurry, so I can't read it.
I emailed the Zebra support, and they told me to modify the temperature of the printing head, but I have no clue on how to do it with ZPL. I also have to modify the grayscale with ZPL. Do you know how to do one of this commands please ?
Plus, could you confirm that ^MTT is the command to set the printer to Thermal Transfert and that ^PW is used to set the width of the label ? Is the configuration saved in the printer, even when turned off, until the configuration change ?

Use ^MDa command. where a is the value of the darkness level. Value is 0 to 30 in increments of 0.1.
Yes, ^MTa sets printer mode where a is the setting, T= Thermal Transfer, D= Direct

Related

PowerShell Script to set default paper size on an Epson Printer

Epson printers, by default, have a paper size of 80mm x 297mm (or something close to 297)
The datawindow in my program is longer than that, so it prints a second page and duplicates the header.
If you go into the printer properties and set the paper length to 80mm x 2970mm then everything works fine.
I am trying to write a powershell script that will automate this process.
The Printer Name is "EPSON TM-T20IIIL Receipt" and the Paper Size Value that I want it to be set to is "Roll Paper 80 x 3276 mm"
EDIT This is a roll receipt printer
This seems like it would work for a regular printer that has a PaperSize Value of A0-A10. The problem Im facing is that the Epson Roll Receipt printer does not have any of these values. Is there a corresponding value to the size I'm looking for?
Set-PrintConfiguration -PrinterName "EPSON TM-T20IIIL Receipt" -PaperSize A4
Printer size options available
[1]: https://i.stack.imgur.com/Fo0AY.png
Since Epson receipt printers are not what I would say are "normal" printers, you can't use typical Windows print settings to set these values. When printing, you basically only send text and basic commands to the printer. Most of the configuration settings are actually stored in the Flash memory on the printer and not in the driver. For ex. the logos at the start of a receipt is stored on the printer, and not generated at all by the driver. Similarly, options for automatically cutting paper at the end of printing. I believe that paper/roll size falls under these kind of settings because the printer needs to know the width of the paper to know how to handle the text being sent to it (remember, we are only sending basic raw text to the printer, and the printer determines how to print it).
Therefore to configure the printer, while the basic driver is needed, you actually have to use the Epson Advanced Printer Driver to configure the printer, and then use APD to export the configuration. That exported configuration can be used to set up new printers. For ex. using APD v5 driver.
First install and fully configure the printer with all the configurations that you want. (paper/roll sizes, logos, cut/no cut at end of print, etc.)
Export the configuration by running Start -> All Programs -> EPSON -> EPSON Advanced Printer Driver 5 and open Register, Change and Delete EPSON TM Printer
Select the printer, and from the menu select Copy Installation -> Create
Select the installation package type. e.g. I suggest Complete package (with the APD Utility)
Now you can use that installation package to install a fully configured printer on any new machines.

Printing barcodes on Epson thermal printer

I have acquired an Epson thermal printer (TM-T82II) with a control utility (APD5) that allows me to configure and test the printer. I use the utility to (try to) print barcodes, but cannot find any documentation on how to make use of the Code128 support I need.
I want to print out a Code 128 barcode for "PQR123X1122331807110011223344". I seem to be able to do this by specifying a test string of "{APQR123X1122331807110011223344" to encode the string in Font A, and likewise use "{BPQR123X1122331807110011223344" to encode it entirely in Font B. Both generate barcodes too wide for the paper I have. However, there is a large run of digits after the "X" which is more efficiently encoded in Font C and that I know will fit (I have an example from another printer). The obvious thing of using "{APQR123X{C1122331807110011223344" produces garbage.
Can anyone point to documentation that unravels how Epson do font-switching in Code 128?
#Omatai,
Epson's ESC/POS printer language does not use fonts for rendering barcodes. If you are directly sending escape codes to the Epson printer, GS w is the command to set the barcode width in ESC/POS, where w is a number between from 2 (thinnest) to 6 (thickest) which specifies the width of the barcode's minimum element. The actual measurement is dependent on the model of the Epson printer.
Epson ESC/POS Documentation: https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=2
To help you further, this group would need to know more about the programming model that you are using and the associated code that you are attempting to use.
Terry Warwick, Microsoft

How do I change the Zebra ZP 450 left position with OS X?

Please Help! I'm trying to print to a 1.5"x1.0" label on a Zebra ZP 450. The printer is connect to a Mac. When I print the label the printout is way over to the left. Only as small part of the bar code print out on the left side of the label. I'm guessing this is cause by the 'left position' in the printer settings. I tried calibrate (two flash and four flash) with no luck. I tried using zebrasetuputil app also with no luck (don't may not know enough of the programming to write it correctly).
Is there a terminal command I could use to change the default left position setting within the printer?
Sorry I'm new to all of this. Any help would be great!
OSX 10.11.1
Zebra ZP 450
Label Size: 1.5"x1.0"
Send this command to the printer:
^XA^LS0^XZ
^XA Starts the format (always required)
^LSa sets the offset where a = offset
^XZ End format (always required)
See the ZPL Programming Guide
Additionally, there is a command you can set to prevent other labels from setting these offsets. (Sorry, don't know off the top of my head) It's a very good idea because ideally these offset should only be used for printers that are exhibiting wear, and need an offset to account for physical differences.
Using it for label formats will cause all sorts of problems with label formats that don't set it, because the labels that do set it will cause the ones that don't to be offset.

noedynamic barcode on thermal printers are not scanned

I am printing barcodes using neodynamic but there are issues in scanning on thermal printers while printing on laser printer, can scan easily. I have zebra printer TLP 2844. When code is like "G00001" then it scan but when code is like "G00001-ABC-ABC" it is not scanned. Barcode settings are
barcode.Symbology = Symbology.Code128
barcode.BarWidth = 0.2
barcode.BarHeight = 5
barcode.TextAlignment = Alignment.AboveLeft
barcode.CodeAlignment = Alignment.BelowLeft
Thanks in advance.
The main issue here is that Neodynamic Barcode generates an image that gets printed. On the Zebra that image might be too low in resolution.
Do you only use the Neodynamic Barcode? If so, and under the premise that you need to use Neodynamic, then you need to get the Neodynamic ThermalLabel SDK, otherwise I'd recommend that you create the label layout in ZPL/EPL directly, then you can tell the printer directly to create a barcode of a specific symbology and content and it'll do the job just fine for you.

Printing a graphic to a Zebra LP2844 with the GW EPL command?

I need to print an image that is being returned to me through a web service (the data is returned as RAW) and I cannot for the life of me figure out how to print a graphic to a label with EPL.
The EPL manual defines the Graphic Write instruction as:
GWp1, p2, p3, p4, DATA
All of the parameters are returned to me, so I don't have to worry about calculating the height, width, etc., but my problem is that I don't know how to format the DATA.
The manual says DATA should be
Raw binary data without graphic file formatting. Data must be in bytes.
I've tried passing a binary string and a hex string, but nothing seems to work. There is no example on how to use this command in the EPL manual and after hours of searching online I have not been able to find a single example of how to use the command (i.e. example EPL commands that I can copy & paste to send to the printer).
Does anyone have an idea of how to use this command? Could you provide me with an example? (by example I don't mean a framework, code, etc., what I mean is just the plain EPL commands).
I can confirm that the data is in raw, uncompressed binary. It is also inverted-- that is, the 0 bits print as black, at least on my UPS-firmware LP-2844. I have no idea why all the examples from Zebra show the data as encoded into a hex representation.
It's worth noting that most print servers (HP Jetdirect, Lantronix LPS1-T, and almost certainly the Zebra built-in and external print servers) will form a binary connection to the printer if you spit data at them on port 9100 (using netcat for example):
nc printer_hostname_or_ip_address 9100 < test_file.txt
You get no feedback from the printer, except for the label having printed or not.
It takes my LP-2844 (UPS Firmware) printer about 5-6 seconds to print a label containing a 816 wide x 1218 tall downloaded bitmap onto a 4" wide x 6" tall label. It seems to be all imaging time: sending three labels at once is not any faster, and the network connection (through a Lantronix LPS1-T) is held open until the final label prints. That image is at the native resolution of the printer (203 dots/inch), and there is no dithering or resizing going on (I don't think EPL2 even knows how to dither or resize).
It might be possible to speed up the imaging time by optimizing the label into many smaller bitmaps (and horizontal and vertical line segments, and perhaps filled-in rectangular blocks). This wouldn't be a very hard optimization because the image is a single-bit black and white bitmap, and the code would be fairly simple. I don't know if it would really speed it up, though.
A more modern Zebra GX420 running ZPL with a built-in ethernet port ($500 online) can print the same label (with essentially the same graphic download encoding) in 1-2 seconds.
By the way, since I haven't yet actually answered the question, the raw EPL code for this is:
(a blank line)
N
q816
Q1218,20
GW10,10,102,1218,(124236 bytes of inverted bitmap data)
P
all the newlines are 0x0a (unix-style).
Maybe this will help, it has examples (and corrects an error in the manual). Also, it may be easier to use the GM command instead and just delete the image each time (see here for a stackexhange related question).
That being said, I've never gotten my Eltrons to successfully print an image (but my jobs don't require it).
Good luck!!
EDIT: Here's another link with example Perl code. They're aiming for Chinese characters but show how to print the Great Wave image (which oddly is Japanese).
I found that it is not possible to send a graphic to a Zebra printer with EPL using ASCII characters. The data must actually be sent as RAW data. So, for example, you can't send a graphic to the printer using Zebra Setup Utilities, or through any other means that cannot write RAW data from a file directly through the printer.
The only way around this I've found is to create the label as an image and send that image to the printer via a print command within your application.

Resources