Skip to main content
Skip table of contents

Release iText 5.0.6

The release of iText 5.0.6 brings plenty of fixes of bugs reported in the last three months (the previous release was on November 2nd). Continue reading to find out more.

Release Notes:

iText 5.0.6 Core

The most substantial changes are in the HTMLWorker functionality. Some new features were added, but most of all: the code has been rewritten to make it easier to extend. This will allow us to support more tags and styles soon (in iText 5.1.0).

We also have a new core developer, Balder Van Camp, who is screening the code, optimizing performance and reducing the memory use. He has also moved the resources (such as font metrics) from the source code directories into a separate folder. More code reorganizations will follow in iText 5.1.0.


iText 5.0.6 Core

  • 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.
    • Added some extra short-cut variables to create page size with Landscape orientation.
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.