Archive for the ‘Barcodes’ Category

Barcode4J 2.0 released

Thursday, May 15th, 2008

I let it slide for too long but now, Barcode4J 2.0 is finally available. Since the last alpha release I’ve been able to fix a number of bugs in DataMatrix and PDF417. As a last-minute addition I’ve added support for the USPS Intelligent Mail Barcode of which you can see an example below.

USPS Intelligent Mail Barcode Example

There’s also a detailed list of changes for this release.

Barcode4J is Project of the Month at SourceForge.net

Wednesday, November 7th, 2007

The title says it all. I was quite surprised when I was approached last month. Reminds me to find time for the final 2.0 release…

Here’s the Project of the Month page.

Barcode4J 2.0 alpha 1 released

Saturday, January 20th, 2007

Barcode4J 2.0 alpha 1 is now released. In the release notes I’m asking for feedback on the new functionality. I hope I’ll get a lot of good feedback (positive or negative) so I can soon do a final 2.0 release.

DataMatrix support in Barcode4J

Friday, January 12th, 2007

Thunderhead has kindly sponsored an implementation of the DataMatrix barcode symbology (ISO/IEC 16022:2000(E)) for Barcode4J. This is now the second 2D symbology I was able to add to the codebase. Although it’s not a complete implementation of the spec, all the important features are implemented. The restrictions (such as lack of structured append and ECI functionality) will be documented in detail on the Barcode4J website.
DataMatrix examples (square and rectangular)

Since the specification is quite complex, it could be that there may still be a bug hidden somewhere, so I’d be very grateful for some feedback. The Barcode4J release is almost ready. Stay tuned!

Royal Mail Customer Barcode for Barcode4J

Wednesday, November 8th, 2006

Today, I’ve uploaded a new barcode type for Barcode4J: the Royal Mail Customer Barcode (CBC). It’s a kind of “four-state” barcode. There are others like that, for example the Australian variant which uses Reed Solomon error correction instead of a simple checksum like Royal Mail. It should be easy to implement the Australian variant by just handling the checksum differently.

Royal Mail Customer Barcode Example

Next on the list for Barcode4J is finishing the DataMatrix implementation I’ve started a while ago. Looks like I can get enough new features together to release Barcode4J 2.0 by the end of the year.

Quick comparison of start times with Java and IKVM-compiled binaries

Sunday, November 5th, 2006

Today, I was curious about the start times of .NET binaries created from Java sources using IKVM. I took the opportunity to add IKVM compilation (kvmc) to Barcode4J’s build.

If I create a shell script that runs Barcode4J’s command-line (PDF417 barcodes as EPS files) interface 20 times, I get the following times:

  • IKVM 0.30: 15 seconds
  • Sun JDK 1.5.0_08: 8 seconds

So, how does it look like if I do the loop in Java code and create 500 barcodes in one call?

  • IKVM 0.30: 1900ms (first 500), 1400ms (second 500 and subsequent)
  • Sun JDK 1.4.2_10: 1800ms (first 500), 1550ms (second 500 and subsequent)
  • Sun JDK 1.5.0_08: 1800ms (first 500), 1550ms (second 500 and subsequent)
  • Sun JDK 6.0beta: 1700ms (first 500), 1400ms (second 500 and subsequent)

Looks like JVM startup time isn’t so bad compared to .NET. But I don’t know how much overhead IKVM brings into the picture.

(I’ve taken all timings multiple times and have rounded the averages to 50ms. Operating System: WinXP SP2, .NET Framework 2.0. Machine: Custom-built AMD Athlon 64 3200+)