The blog has moved to ... Many google searches point here so I am leaving it operational, but there will be no new posts.

Saturday, October 15, 2011

Generating barcodes with ruby and rails

Recently I had to convert some functionality from an old MS Access system to a Ruby on Rails application. The Access system generated a report that included a barcode; they were using a barcode font installed on the machine running access. I figured generating the barcode server side in the web app was going to be much nicer than installing barcode fonts on the client browsers. And since this is Ruby, I figured...
There must be a gem for that 
Sure enough, the barby gem. It allows you to output your barcode as png, gif, svg, pdf, etc...

In my case I generated png barcodes and included image references to those in my view files.

Sample code

There is no pixel setting, it uses some other type of unit to determine size; using the xdim, margin and height options you can tweak the size, but I found that it was not very precise - for my use case it was good enough.

The generated barcode does not include the value, it is just the image which can be scanned using a barcode scanner, but it would be nice if there was an option to include the value below that. This is somewhat trivial to add in your view using html.

Overall I was really pleased with this gem!



Icaro said...

Im getting
No such file or directory - /public/barcodes/barcode_BARBY.png

Is there anyway to not to create the png and then display it from public resources? like streaming each time i call a coupon for instance?.


House 9 said...

Try setting your path to "#{Rails.root}/public/barcodes"

Icaro said...

Perfect, thanks. How can i display the value at the bottom of the same image?

House 9 said...

As far as i know the gem does not support that feature. You need to add that text to your pdf, html, etc... Might want to check the google groups link above for additional help