For many Java-Applications there is the need for displaying PDF files, as defacto standard for document presentation.
Beneath jPDFViewer (Commercial) and pdf-renderer (LGPL, for Swing or other Graphics2D implementations) there is ICEpdf available. It is dual licensed: Commercial and Mozilla Public License. The commercial licence offers support and more sophisticated features like the “font engine”. But for common usage the open source version may suffice.
ICEpdf comes in two flavors:
Java Client: Used for the direct integration into Java-Applications. The result will be an Adobe Reader like window for displaying the pdf, but with additional programmatic access.
ICEpdf Servlet: It renders the individual PDF-pages as images and provides navigation support through the document as well. With this it can be embedded quite nicely into a Web-Application.
But why not returning the PDF directly and let the Adobe-Reader or a similar plugin do the job of displaying? Well there are a couple of reasons:
- There are different plugins in different Versions out there. Remembering the problem with older 7.0x Acrobat Reader Verisons that downloaded the PDF-Files instead of displaying?
- The UI-Controls of the plugins do usually look alien within a given Web-Design. With the ICEpdf Servlet you have full control over the look-and-feel.
- The Plugin usually loads the complete document from the server, causing a high bandwidth utilization for each view, even if only the title slide is presented. The image based display loads only the pages needed.
In addition ICEpdf provides ways for dealing with the content of the pdfs programmatically like extracting or converting.