How to print (barcode) labels from a Ruby on Rails Application?

Klaus picture Klaus · Apr 3, 2011 · Viewed 7.1k times · Source

My first application I have developed in RoR is for some Kiosk Touchscreen PCs used in our stock. When the stock worker picked up some material he enters the quantity in a Form.
Now I want to print a label containing: customer name, material description, quantity, and a barcode on our Zebra printer.
How would I do that from a Ruby on Rails Application ?

  • Sending directly the control chars needed for ZPL (Zebra Printer Language) from the controller ? ( not very comfortable )

  • Create a view in HTML send it to the client, and the client has to print it. ( not very confortable and error prone, as the stock worker has to do additional steps, may choose the wrong printer or maybe don't print the label at all )

  • Create a pdf document from the controller and send it to the printer from the server ( oh, no the printer does not understand pdf, so I have to control a pdf reader to do the printing ?? That wouldn't be very fast as it will send the label as a graphic image to the printer

  • Create a gem which will hide all the logic needed for printing ? ( Are there any gems which already do this ? )

I would appreciate every comment.

Thanks

Klaus

Answer

Cole W picture Cole W · Apr 7, 2011

I would send the raw ZPL to the printer. You can use a tool like Bartender (I would suggest installing Bartender Only from that link. You can basically design your label in this tool. After you've designed your label you would download the bartender printer drivers for your zebra printer and set up a dummy printer with these drivers and print this label you designed to a file. This will give you the raw zpl. From this you can basically substitute all the dynamic data into the zpl file you printed in the previous step and send this directly to the printer via serial, tcp/ip or usb.