Label Printer Issue

I am using BarcodeMBS to create and render barcodes for two label printers. Initially, I was unable to scan the barcode printed on a Dymo printer, but after adjusting some of the printer driver options, it is working well. I have been unable to get the GoDex printer to produce a barcode I can scan. I generate the image to print as a graphics picture and send it to the printer. GoDex tech support suggested I should use the printer’s built-in barcode function, but was unable to tell me how I might do that with Xojo. The manual for the EZPL language the printer uses describes the command kine that needs to be sent to draw the correct barcode where I want it, but it does not describe how to send the code (use their program or upload it with Windows HyperTerminal) in a meaningful way. When I send it before the image downloads, it doesn’t do anything. When I send the command line after the image, the command line code appears on the label along with the image, but not the barcode itself. Thinking the PrinterSetup configures the printer, presumably using the commands in the manual, I examined the PrinterSetup strings that I save in an SQLite database. Nothing seemed to match any of the codes in the manual and the four PrinterSetups I stored (for labels of different shapes and orientations) all appeared identical. Any help sending the internal barcode string or enhancing the resolution of the printed image would be greatly appreciated.

Looks like its plain text
At least according to their manual (page 74 of EZPL_EN_201605_version_J.pdf)

But that IS a WAG based on a quick read (since I dont have a GoDex)

Briefly looking at BarcodeMBS it seems that its a barcode image generation system, not a system for talking to barcode printer per se. It would be akin to drawing the barcode in your paint package of choice and firing that at the barcode printer which in turn you hope acts just like a regular printer and “prints” the image onto the label. This isn’t what you want to do as any dithering or image adjustment during this process will render the barcode unreadable, which sounds like what is happening.

From a brief look at GoDex, they provide a com port to the printer as well as a printer driver which makes things a lot easier. When I wrote a zebra label printing system in windows a few years ago I had to fire the raw print data at the printer using winspool (much fun).

It looks like you are given a comm port (whatever one you are assigned, you’ll need to figure that out, eg. /dev/ttyUSB0 or some other tty). You essentially need to open that port in your code and fire the correct set of characters and codes at the printer and it will all of a sudden kick in and print the label you have just sent it. There are usually a few examples with the documentation so you don’t have to play around for long before you get something out, the hardest part is making sure you are talking to the label printer (correct bauds etc if needed).

All that being said, it might be easier to fire raw data at the printer driver using lp -o raw … but without one sitting on my desk, its hard to speculate.

If you let me know what series printer it is or link the manual I might be able to shed a little more light on it.

On Windows, it’s just a matter of choosing the right print driver. The barcode Is just another image m

To print a label using a Zebra printer I do this:

  • Install the printer using its driver on a windows pc/server:
  • Share the printer. In my case the printer is shared with the name “T402”. Even the printer and the xojo app are on the same pc/server, you have to share the printer.
  • Xojo app generates the ZPL code using a template txt file and save it into a new file on a temporary folder
    The template file is a txt file with a code like this:
^XA^PW816^LL200
^LH55,10
^FO10,10,^BY2,3,10^B3N,N,160,Y,N^FD|BARCODE|^FS
^FO40,10^A0,20,20^FD|TEXT|^FS
^XZ

the xojo app load the code from the template, replace |BARCODE| with the barcode to print and |TEXT| with a custom text and save it as a new file called “zplCodeForPrinter.txt” on the filesystem

  • using the xojo shell, launch a command like this
/D:"\\\\printerNetworkPath\\T402" "C:\\path\\zplCodeForPrinter.txt"
  • the label is printed
  • the xojo app deletes the temporary file “C:\path\zplCodeForPrinter.txt”

Errata corrige:
In the previous post I forgot a part of the shell command.
the command to launch using shell is this:

print /D:"\\\\printerNetworkPath\\T402" "C:\\path\\zplCodeForPrinter.txt"

Or simply copy file to device…