Category Archives: Java

FOP and ZXing compatibility

From the I’ve been trying to get this to work — this tip may save you some time department:

Apache FOP is for doing graphics with XML and XSLT.

FOP version 0.95 came out in August 2008. 1.0 in July 2010. 1.1 in October 2012.

ZXing is for doing QR codes.

ZXing 0.1.2 was released in March 2012, and seems to no longer be in active development.

The important bit: As far as I can see, ZXing works fine with FOP 0.95 (which was current when it was released), but not with later versions.

I kept getting these errors:

SEVERE: Image not available. URI: (instream-object). Reason: org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found for null (No context info available)
org.apache.xmlgraphics.image.loader.ImageException: The file format is not supported. No ImagePreloader found for null

With any amount of fiddling, I couldn’t get it to work on Windows and Java 1.7. Nobody online appears to have noted this issue. You might have more luck…

Or maybe there is no solution to it. If so, I hope this saves you some time.

(Barcode4J, which we also use, seems to work with all currently available versions of FOP. It also has QR functionality, provided via ZXing, but this is only available in the unreleased code, which presumably has alpha status, and you have to build yourself. Barcode4J also hasn’t been updated in some years, last released in December 2010.)

Misc stuff

Cool links I’ve found recently:

Super (MOV to AVI conversion).

VB to Java converter. That is, it compiles VB6 code into a Java class. Latest update here. Q+A. (No, you can’t download it yet, they’re still working on it.)

Oh, guess who’s on about giving away Digital set top boxes again? Yup. I do like this argument, actually: It is not the Government’s job to champion new technology. It is the Government’s job to provide universal infrastructure and manage the task in a financially responsible way.

XML Notepad, which after a looooong time not being available, is back, and upgraded. (Requires the .Net Framework 2).

Is Flash the new Java?

For a while back in the 90s, it seemed like Java would be the last word in interactive web pages, animations, etc etc. Every second web site had some kind of irritating Java applet animated banner.

But it’s faded. In its place we have Flash. It’s not quite write-once, run-anywhere… but it is write once, run on PC, Mac, Linux and Solaris. Which anyway you look at it is just about all of the browser market.

Java still finds a home on mobile devices, and for server development, but is becoming less common on web sites, particularly since it stopped being bundled with IE/Windows.

Perhaps Flash has the upper hand because a lot of web development with heavily interactive content (particularly advertising) is driven by graphic designers and multimedia people rather than programmers, giving Macromedia an advantage over Sun.

Now, if only there could be a ban on developing complete sites in Flash.