An Oracle blog about BI Publisher

2D Barcode Addendum

Having finally got my external drive back(long story) today from Oklahoma (thank you so much Sammy) Im back with a full compliment of Oracle and blogging tools at my disposal. I have missed JDeveloper this past week, which I have found, I immensely prefer over Eclipse (let the flaming commence :0)

I use Zoundry Raven for writing articles and its not installed locally but on my external drove, so I have been soldiering on with the blog server's pain in the backside UI for writing. Now I have my favority editor back and things are calming down workwise, I will start to get the Excel template posts out. Today thou, a note about 2D barcode support or more specifically any barcode that needs some data manipulation before the barcode font is applied.

I wrote about these fonts a long time back and laid out the java class you would need to write if you had an algorithm from the font manufacturer to use. I missed out a valuable point and James at Luminex fell into the trap. He was wanting to use the datamatrix font from IDAutomation but and had built the java class to be called from the RTF template but it was not encoding or at least did not appear to be.

New debugging feature to the rescue. Kan over at the bipconsultng blog documented the feature a while back. Just adding <?xdo-debug-level:'STATEMENT'?> to my test template generated all the debug files in my c:\temp directory. No messing with files, just a simple command ... at last! Kan has documented the feature here.
I must also publicly apologize to Leslie who, has pointed out that the feature is officially documented in the New Features guide for Note to self, check the New features guide in future and RTFM!
With the log in hand I spotted a java error stack referencing a missing code128a method, huh?

Looking at James' class he had the following snippet:

ENCODERS.put("code128b",mUtility.getClass().getMethod("code128b", clazz));
ENCODERS.put("code128c",mUtility.getClass().getMethod("code128c", clazz));
ENCODERS.put("pdf417",mUtility.getClass().getMethod("pdf417", clazz));
ENCODERS.put("datamatrix",mUtility.getClass().getMethod("datamatrix", clazz));

His class did not include the other code128 and pdf147 methods and BIP was expecting them. An easy fix, just comment them out, rebuild and deploy and the encoding started working. If you are hitting similar problems, check that class and ensure all of the referenced methods are available, if not, delete or get commenting. James now has purdy labels popping out that his hard ware can read, sweet!

Join the discussion

Comments ( 6 )
  • James Sayles Wednesday, June 23, 2010
    Purchase Email list of ERP/CRM installbase users like JD Edwards (US & Europe), PeopleSoft, Oracle E-Business Suite, SAP etc ...at markdown rates this quarter.
    Email: jamessgdo@gmail.com
    These lists give you access to decision makers of customers that have purchased products of various ERP & CRM install base. The database could be used for marketing your services/skills and lead generation purposes.
    Email me for additional details,samples and rates:
  • Mark Young Sunday, August 1, 2010
    Very helpful, I look forward to researching this a little more. Hopefully I can see some good results with trying this and putting my own spin on it.
  • guest Thursday, February 16, 2012

    Among those familiar barcodes. accutually,QR Code is my favorite one.

  • barcode verifiers Thursday, March 15, 2012

    This is a very informative, detailed post - do you have similar information re QR codes?

    Thank you.

  • Kirk Lott Thursday, March 15, 2012

    Dear Tim,

    Thank you for sharing.

    Do you have similar info regarding QR codes? QR Code (abbreviated from Quick Response Code) is the trademark for a type of matrix barcode (or two-dimensional code) first designed for the automotive industry.

  • Tim Friday, March 16, 2012

    Hi Kirk

    The QR code will work just like a PDF147 font with Publisher. You'll need the font itself and the font vendors java encoding libraries.

    I took a look at IDAutomation's offering and its as good as ever.


    I hope to have some time next week to implement it and then blog it.


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.