iText Changelog

What's new in iText 5.4.5

Dec 5, 2013
  • The work that was planned for iText 5.4.4, but postponed due to a customer priority, has now been done: we have completed support for PDF/A, more specifically PDF/A-2 and PDF/A-3. XAdES-EPES support has also been added.
  • Apart from the work that was scheduled, we've also fixed some iText 5.4.4-related issues that were reported to us by our customer; the new PdfCopy functionality to preserve the structure tree as well as the interactive form fields should now be ready for use. At the same time, some other PDF/UA-related issues were fixed, even in iText RUPS.
  • Other improvements include the parsing functionality and an extra digital signatures feature that allows you to add information about the application that signed the PDF to the signature dictionary. As always, we've also fixed some bugs, for instance in XML Worker where we still experienced some problems with images in cells and with the order in which CSS styles are processed.

New in iText 5.4.0 (Feb 16, 2013)

  • Apart from many bugfixes, such as fixing a multithreading problem introduced in iText 5.3.5, this release focuses on the creation of structured PDFs.
  • It's now possible to create PDFs that are automatically tagged when using iText's high-level objects such as Document, Paragraph, PdfPTable, etc.
  • Tagged PDF is a first step towards better support for PDF/UA and PDF/A (level A) compliance.

New in iText 5.3.4 (Nov 3, 2012)

  • Major changes were made with respect to verification and validation of digital signatures, more specifically for PAdES 4 (LTV) documents.
  • Initial preparations were made for high-level support for Tagged PDF.

New in iText 5.3.3 (Sep 27, 2012)

  • Most of the changes involve the digital signatures API which is documented in a white paper which will be released next week.
  • This release fixes some bugs in PdfReader, PdfAWriter, and JPEG/TIFF handling.
  • New functionality to allow page breaks at specific row numbers has been added to PdfPTable.

New in iText 5.2.1 (Apr 2, 2012)

  • This version fixes some bugs which have been reported in the last few weeks.
  • It also brings some changes in support of other projects, such as XML Worker.
  • For instance, it adds some functionality to the Paragraph class to mimic the behavior of a or tag in HTML.

New in iText 5.2.0 (Mar 1, 2012)

  • A large part of this release involves PDF parsing.
  • It adds support for special encodings and foreign languages.
  • It fixes parsing errors and makes iText more tolerant when reading invalid PDF syntax.
  • Furthermore, iText is now able to generate PDFs larger than 2 GB.
  • This release fills some gaps regarding the implementation of PAdES, and reduced the dependency on java.awt to ease the use of iText on Google Android and GAE.

New in iText 5.1.3 (Nov 14, 2011)

  • iText 5.1.3 brings the long awaited support for PAdES-LTV. Examples on how to use this functionality that will be part of the upcoming PDF-2 standard will be following soon.
  • We've also improved the code for parsing PDFs for images. It can now be done using much less code than before. We've added support for JavaScript when parsing bookmarks to XML (or vice-versa) and some convenience methods to ColumnText.
  • Furthermore, we've fixed plenty of bugs that were reported since the previous release, for instance a bug that garbled the output when parsing PDFs with fonts using a ToUnicodeMap, an issue with page numbers that were shown even when the page label should have been empty, and so on.
  • Finally, we've made iText more tolerant towards PDFs that weren't created correctly. For instance a PDF with a binary zero in the Producer name, or PDFs where the /Outlines dictionary isn't an indirect reference.

New in iText 5.1.2 (Aug 15, 2011)

  • Functionality was added that allows you to completely remove an optional content layer (OCG).
  • This is mainly a maintenance release that fixes all bugs reported on the mailing list since June 6.

New in iText 5.1.1 (Jun 9, 2011)

  • Some functionality that was needed in XML Worker 1.0.0 was introduced.
  • For instance, high level interfaces (Indentable, Spaceable) and a WritableDirectElement class were introduced.
  • The logging that was introduced in 5.1.0 was changed so that it works the same way other logging frameworks do.
  • A simple System.out logger, SysoLogger, is now provided.
  • Some bugs were fixed to solve PDF reading and parsing problems, to solve problems with list symbols, and to avoid ClassCastExceptions when reading/manipulating existing OCG layers.

New in iText 5.1.0 (May 10, 2011)

  • Java 5 is now used instead of JDK 1.4.
  • Many methods were changed so that they use interfaces rather than classes; for instance, Map instead of HashMap.
  • Modularization was also increased.
  • PDF 2 functionality was put into an extra jar.
  • XML/HTML functionality was rewritten as a separate project.
  • The rendering of tables was refactored.
  • This fixes several bugs that occurred when using tables with combinations of colspan and rowspan.

New in iText 5.0.6 (Feb 8, 2011)

  • Changes made by Paulo Soares:
  • Added an event to signal that a table will continue in the next page (adapted from code from Nurettin Dag).
  • HTMLWorker: relative cell widths are supported in tables (Samuli Tuomola).
  • Tagged XML extraction didn't consider indirect /K objects or page contents with an array.
  • PdfStamper: non pdfdocencoding characters were being wiped out from the producer name.
  • TiffImage: images with 1 bit per pixel may also use a pallete.
  • Added RectangleReadOnly.setRotation() override to throw an exception if a read only Rectangle is changed.
  • Parsing PDF:
  • CMapAwareDocumentFont: Some PDFs have a diff map bigger than 256 characters.
  • CMapParser: Fix to read broken ToUnicode cmaps.
  • Cache the fonts used in text extraction.
  • Changes made by Mark Storer:
  • Added basic support for rich text values in form fields. No appearance support as yet.
  • added support for web hex colors without a leading '#', and some tests.
  • The meaning of transparent (0 or 0x00) and opaque (1, 255, or 0xFF) was switched in the WebColors class.
  • Changes made by Kevin Day:
  • PDF parser: handle slightly malformed embedded images
  • Changes made by Balder Van Camp:
  • Clean-up of different classes and methods
  • Improved MessageLocalization - removed methods getComposedMessage(...) and replaced with 1 that handles all for unlimited {1} .. {x} replacement parameters
  • removing unnecessary brackets
  • objects implementing equals should implement hashcode too
  • Performance and memory optimalisations:
  • calling new Long() or Integer() causes memory allocation .valueOf() is more memory friendly.
  • changed creation of Characters in EntitiesToSymbol, EntitiesToUnicode, IanaEncodings
  • strings += in loops replaced by stringbuilder/buffer append
  • Reorganization of the code
  • Separated resources from Java code
  • Removed the dependency on HtmlTags in Font used by setStyle(String style)
  • Removed dependency on HtmlTags in attempt to separate xml parsing from html parsing to allow creating different modules from different parts of itext.
  • Introduced NewLineHandler/NeverNewLineHandler that takes over the task HtmlTags was doing
  • New class XMLUtil contains utility methods, some methods previously found in SimpleXMLParser
  • Changes made by Bruno Lowagie:
  • Reorganization of HTMLWorker and related classes
  • Patch #3044060 by Nurettin Dag: padding-left was ignored when parsing HTML with HTMLWorker
  • Patch #3044063 by Nurettin Dag: bullets generated from HTML need extra space
  • Patch #3044071 by Nurettin Dag: making some private variables protected so that users can access them from a subclass.
  • Patch #3044077 by Nurettin Dag: When a paragraph containing an image is converted to PDF using HTMLWorker height of the line is calculated only by the size of the text in it. The calculation of lines containing images should consider the image height as well.
  • Patch #3044496 by Nurettin Dag: support for table alignment in HTMLWorker.
  • Patch #3105516 by Nurettin Dag: Using HTMLWorker if a table has alignment defined it also applied to rows in the table (and it shouldn't).
  • Patch #3044568 by Nurettin Dag: Whitespace in HTML isn't always ignored when it should be
  • Static final String values for HTMLWorker providers. See suggestion by Keith O. on the mailing list.
  • Rewrite of HTMLWorker introducing an HTMLTagProcessor interface
  • Adding a new constructor for HTMLWorker taking a Map of tags and HTMLTagProcessor objects
  • Replacing hard coded Strings by a static final String.
  • Removing ElementTags and Markup in favor of HtmlTags.
  • RUPS: XFA Tree should be scrollable.
  • Adding a type to the structure element as suggested by Jose (jmrrva).
  • Patch #3044413 by Nurettin Dag: sometimes when an image does not fit the current page it is still flushed to that page instead of getting pushed to the next page.
  • Patch #3105505 by Nurettin Dag that gives users control over the spacing between image and the line above.
  • Patch #3105552 by Nurettin Dag: Y-line value is wrong when a table has a spacing after that extends to below the bottom margin.
  • Patch #3105584 by Nurettin Dag: introduction of scaleToFitLineWhenOverflow a parameter that lets you decide if iText needs to scale an image down if it doesn't fit the available width of the page.
  • Fixed bug #3114043: when content really doesn't fit a row, iText should throw an Exception instead of printing the error message to the PDF
  • Removed the main() methods from GreekAlphabetFactory, RomanAlphabetFactory, RomanNumberFactory, Pfm2afm, Base64, CMapParser and SimplePatternParser.
  • Fixed problem with existing OCGs by avoiding a NullPointerException as suggested by R Bolotov on the mailing list (24/01/2011 18:31)
  • Added Rectangle and RectangleReadOnly constructors that accept a rotation value.
  • Added a setRotation() method that sets the rotation to 0, 90, 180, or 270.

New in iText 2.1.5 (Mar 8, 2009)

  • Internal changes were made to increase the readability of the code as well as the memory and CPU usage of the library.
  • Most of the bugs reported in the last three months have been fixed.
  • New functionality includes support for the JBIG2 format, support for actions in FdfWriter, support for the HR tag in HTMLWorker, and a method to add blank pages in PdfCopy.

New in iText 2.1.4 (Nov 11, 2008)

  • Changes made by Paulo:
  • Title and Description should be a XmpArray (patch provided by Katja Sondermann)
  • CJKFont: A resource was not closed.
  • PdfCopy/PdfCopyFields: The bookmarks were being written twice.
  • PdfReader: A fix to take care of broken PDFs that have whitespaces after "stream" before the LF.
  • PdfWriter: Fonts are output in the order they are added.
  • PdfGraphics2D: The patch to simulate bold broke transparency (Bill Ensley).
  • PDF-A requires an EOL after obj
  • Local goto doesn't throw exception for inexistent local destination.
  • PdfStamper: Creates the SigFlags is there's a signature.
  • Changes made by Howard:
  • RtfShape: Fix missing RtfDocument objects. Allows for shape objects to be added correctly.
  • RTF: changed getBytes() to use DocWriter.getISOBytes(...) for proper byte output.
  • Fix image processing for import. Control word shprslt is for Old version of Word and is not supported at this time. Send data to null destination.
  • RTF: Preparing for import into elements.
  • Fixed some tags.
  • Changes made by Xavier:
  • javadoc cleanup: invalid @throws removed
  • removed unused imports
  • fixed svn keyword substitution Changes made by Bruno
  • Code contribution by Kevin Day (see mailing list November 3, 2008): classes that already allow us to parse a PDF content stream to retrieve text; could form the foundation of more elaborate PDF parsing. Includes some classes from fontbox.org (BSD license).
  • Bigfix by Mark Storer: rhints not taken into account in create method of PdfGraphics2D
  • AcroFields: added a new method setListSelection
  • Exceptions thrown by XmpReader are now caught (see mails Stepan Rybar November 2008 reporting a problem with PDFs generated using FOP)
  • In 2.1.3, I introduced a bug that made the XMP data corrupt and caused the problem reported by Paul Ryan (on the mailing list, July 28)
  • CFFFontSubset: Ulrich Telle solved a problem when subsetting a CFF font (only blanks were displayed when opening the document with Adobe Reader 8 or higher).
  • TextField: V was only shown when the value wasn't empty AND a value wasn't required. I think it's sufficient to omit V when the field is empty; the extra constraint that the field may not be required is too strict.
  • PdfPRow: Fixed a problem with setNoWrap(true) in combination with setRotation(180)
  • Implementation of multiselect listbox support in XfdfReader asked for on the mailing list on October 28, 2008
  • Fixed a Copy/Paste error mentioned on the mailing list on September 1 2008 by Jean-Christophe Dorchies.
  • Bug reported and fixed in the SF bugtracker (#2094155; Carl Freeland): g2.currentFillGState = this.currentFillGState; was missing in PdfGraphics2D.create()
  • Fixed a bug reported in the SF bugtracker (#2124088): Broken auto numbering when using a ChapterAutoNumber as LargeElement.
  • Fixed a bug reported in the SF bugtracker (#2186356): When a paragraph that contains a PDFPTable gets added to another paragraph, an IndexOutOfBoundsException gets thrown.
  • New method addSignature, based on a suggestion by Michael Klink (see mailing list October 29, 2008)