The PDF file format allows you to use many forms of compression in a PDF file. Many of these (JPEG, LZW, etc) are built into Java but several are not. So you need to write your own handler or find a third-party library.
One of the formats not supported by Java is jbig2. So we wrote our own version over the course of a year. Because there is no other library for this on the Java platform, we released with some code to attach to JAI and put it under an Open Source BSD license so everyone can use it. It is free and unsupported and you can get details here. Indeed several of our competitors have paid us the ultimate compliment of using this release in their code to try and compete!
However, we were not happy with version 1.0 (we are perfectionists at heart) so we have continued to develop it inhouse (and I am afraid we keep this to ourselves so if you are not one of commercial customers you do not have access to it). We have worked on making much faster and also handling alsorts of ‘features’ you find in jbig2 data in PDF files. Today we will have yet jbig2 another update in the latest commercial JPedal PDF library release. We hope you find it useful!