It was more work than expected, but we've finally released iText 5.1.0.
The core iText® library
The first change that jumps to the eye, is that we no longer release "just the jar". You can now download a zip file containing several jars at SourceForge. The most important jars are those with the binaries: itextpdf-5.1.0.jar and itext-xtra-5.1.0.jar. Note that we've split iText in two parts: the core library and extra functionality. In the future, we'll provide even more different modules. Why? Because we're also working on an Android version of iText. Currently, the Android version is trimmed down to an "iText light" version (no encryption, no parsing,...). We'd like to be able to offer iText as a combination of different modules in the future. For instance: if you don't need PDF 2 functionality, then you don't need to ship the itext-xtra.jar with your application. [If you want to know more about getting the Android version and using it in a commercial app, please contact our sales department. The other jars in the zip file are marked with javadoc and sources, they contain the API documentation and the iText source code.
The extra jars
As soon as encryption or digital signatures are involved, you need the BouncyCastle jars. If you need hyphenation, you need itext-hyph-xml.jar. For CJK fonts, itext-asian.jar needs to be in your CLASSPATH. In very, very, very rare occasions, you may also need itext-asiancmaps.jar (if you don't know if you need this jar, you don't need it). Recently, we've received some reports about inconsistencies between some versions of iText with some versions of BouncyCastle. We were able to reproduce the problem, and we've found out that iText 5.1.0 works best with BouncyCastle 1.46 for JDK15. That's why we've made a version 2 of the extra jars. We've released them as extrajars-2.0.zip.
We've moved the source code for RUPS from the iText project to https://sourceforge.net/projects/itextrups/ In the past, we were using iText ourselves as a tool to debug PDFs, but we've never made an official release. We just ran the tool from our Eclipse environment. People who saw us working with RUPS asked us: where can we find that tool? Can we also use it outside of Eclipse? For those people, we've now made an exe and we've released it as version 1.0.0.
As promised, we're investing in the development of a new HTMLWorker. You could already test this functionality using our XML Worker demo. Many people have provided useful feedback through this demo; this allowed us to fix plenty of bugs. We've published XML Worker on https://sourceforge.net/projects/xmlworker/. The first version that was released to the public was 0.9.0, but after some extra tests, we discovered we had overlooked a minor bug, so we've released 0.9.1 immediately after 0.9.0. Chances are that the release cycle of XML Worker will be shorter than the release cycle of the core iText in the next few months.
XML Worker turned out to be a good tool to test iText functionality. If you look at the changelogs, you'll notice that a large part of the code that deals with positioning tables has been rewritten. We've discovered and fixed plenty of bugs involving strange combinations of colspan and rowspan.
For backward compatibility, the old HTMLWorker hasn't been removed from the core iText yet, but as soon as we've written sufficient documentation for the new XML Worker, we'll deprecate HTMLWorker.
Now that we've released the long awaited iText 5.1.0, we'll focus on documentation now. All the examples from iText in Action — Second Edition should work with the new version of iText, but we'll have to add some more examples demonstrating the new functionality. We could easily write an extra chapter about the new XML Worker ;-)