BFO PDF Library 2.28.5 and Report Generator 1.2.10

BFO PDF Library 2.28.5

Released late last friday, this is our first release tested and certified with Java 21 - although no changes were required, so previous releases will probably work on Java 21 too. Highlights include:

  • JavaScript support, which atrophied after the removal of the Nashorn JavaScript engine in Java 17, is now working again with the Graal VM.
  • Encryption fixes include adding support for AES256-GCM (as defined in ISO/TS 32003:2023) is supported, although this is extremely new so we don't expect most other tools to support it yet. It's also working in Public Key encryption, which has had a refresh and now supported AES-256 and EC keys. We also crashed if passwords were longer than 32 characters - this is fixed
  • When attempting to repair a structure tree in the PDF to make a file value for PDF/UA, virtually any invalid structure can now be repaired.
  • Various obscure bugs have been found and fixed, thanks to some good test-cases from customers.
  • In the viewer, we now normalize text before searching, which makes it easier to find text using mathematical script characters or in languages that make use of diacritics (so searching for "cote" will now find the word "côte").

BFO Report Generator 1.2.10

We've also put out a new Report Generator which includes these fixes, version 1.2.10. Of particular impact are a more efficient text-layout routine (for the pathalogical case where a backup font is used for a long run of text, and the primary font has no matching glyphs), and also another, final fix to the kashida justification algorith, which was crashing under a very particular layout.

The Report Generator now supports for both the jakarta.servlet and javax.servlet packages.

When migrating to the jakarta.servlet package, change references from:

  • org.faceless.report.PDFFilter to org.faceless.report.JakartaPDFFilter
  • org.faceless.report.PDFProxyServlet to org.faceless.report.JakartaPDFProxyServlet

This will involve changing the WEB-INF/web.xml file of your web application. That's all that's required. See the API docs for details.

Download as always from bfo.com/download