iText 5.5.7 (September 18)

Tags: ReleaseiText 5Release Notes
There's a new 60-page tutorial in the works about creating e-Invoices with iText. This book will be presented at Adobe's Headquarters in San Jose at the PDF Association's PDF Technical Conference. In the pdfa jar of iText 5.5.7, you'll find code that allows you to create ZUGFeRD invoices as a PDF document with an XML attachment that complies either with the ZUGFeRD Basic profile or the ZUGFeRD Comfort profile. All you need to do to create the XML, is to implement either the BasicInvoice or the ComfortInvoice interface. These are invoices that consist of nothing but getX() methods in which you provide the content of your invoice (such as seller, buyer, invoice lines,...). The functionality is currently released in beta, let us know if you want more info before the official release of the tutorial.

This release also brings several improvements, especially in these areas:
  • The CleanUp functionality: several bug fixes; we've also resolved some inconsistencies between iText and iTextSharp.
  • Forms: fixed some problems with special (or missing) fonts, fixed some edge cases when merging forms.
  • Tables: fixed edge case errors, for instance problem:
    • with skip first header/last footer,
    • when splitting rows,
    • regarding performance issues with nested tables.
  • Reading PDF: better exception messages when "bad" PDFs are being read. For instance: we've found a PDF that had (illegal) circular references that resulted in an endless loop. We can now fail early before the JVM goes out of memory.
  • Digital signatures: added functionality to manage the field lock dictionary, solved a problem with the signing time attribute, and other fixes
We noticed some differences when using iText with Java 7 versus using iText with Java 8. These are now solved. We've added the PdfASmartCopy class. You can now choose for external caching when creating PDF/A (to save memory). We've also introduced some improvements to PdfStamper: you can now add named destinations, and you can incrementally update a file on disk (if you want to save memory). For the full list of updates, see the Changelog 5.5.7.