ICEpdf 4.2.0 Release Notes

Table of Contents

ICEpdf 4.2.0 Release Notes

March 16th, 2011


This document includes the following sections:

About This Release

ICEpdf v4.2 is a certified production release that introduces important new features such as Type 4 Function support, image masking, image decode parameters, and improved memory management and garbage collection performance. This release also includes more than 40 bug-fixes and enhancements.

Notable Changes and Enhancements

  • Rendering Core
    • Fixed a memory leak which prevented embedded xForm objects from properly cleaning up associated resources on page dispose.
    • Improved the overall memory footprint of the rendering core and reduced garbage collection times in worst case scenarios by as much as sixty percent.
    • Fixed an issue where the core 14 fonts were incorrectly assigned fonts from the respective AFM files, resulting in missing text in the OS release.
    • Added support for non-standard image decode attributes which address inverted colours for numerous test files.
    • Fixed a rare rendering core issue where the operation controlling fill and stroke was reversed, resulting in missing page content.
    • Fixed an issue where the font engine was not correctly applying the CIDToGIDmap to a CID font that did not contain an embedded font file, resulting in scrapped text.
    • Added support in both the OS and Pro Cmap classes to support character mapping that contain one to many mappings. Text like 'fi' and 'ft' should now be correctly displayed and extracted.
    • Added support for type 4 functions also known as PostScript calculator which improves colour sampling accuracy.
    • Numerous improvements to font substitution logic for style and font name detection.
    • Fixed an issue where locked annotations were not visible in the Viewer RI.
    • Corrected rare parsing error which incorrectly applied the horizontal text scaling, resulting in overly stretched text.
    • Fixed a rendering quality regression with how images were scaled when the system property org.icepdf.core.scaleImages=true is enabled.
    • Fixed an issue where the system property org.icepdf.core.minMemory was not always respected. The property will now insure that the specified amount of memory will always be kept free of the total allocated memory.
  • Viewer RI
    • Fixed an issue with the PrintHelper class that prevented a user selected paper size from being applied to the current print job.
    • Corrected an issue with the Viewer RI which prevented printing when using the Viewer as a standalone component.
    • Fixed an issue which prevented the setting of black or #000000 colour values when setting page view colours via system properties org.icepdf.core.views.*.color.
    • Updated SearchControllerImpl do aid developers working in a headless environment so that they no longer have to load the SwingController.
    • Fixed an issue where some Octal encoded text was not correctly dispalyed in a document outline.
    • Utility pane divider location is now saved when the viewer is closed.
    • Print dialog will now show in the same window as the main viewer frame in multi-monitor configurations.
  • Examples
    • Added a new example to show how to search a document in headless mode: ./examples/search/
  • Build and Bundle
    • Provided an Ant script in the ./maven2 folder as well as the corresponding POM files to install icepdf-core.jar and icepdf-viewer.jar in a local maven repository.
    • ICEpdf 4.2.0 jars are now available in the maven repository

For a complete list of all changes in this release, see the related JIRA Change Log.

Known Issues

The following section describes the most commonly encountered known issues with this release. For a complete reference of all outstanding issues please refer to the JIRA issue tracker.

  • Batik libraries version 1.7 for SVG export has a known issue which will cause a null pointer when using the class SVGGraphics2D. Please use Batik version 1.6 or earlier (included in this release bundle),
  • Depending on which version of the Java Advanced Imaging (JAI) library you are using, the installer program may assume you are installing it on a J2SE JDK installation. If you install the JAI into a J2SE JRE installation, you may need to move the installed files from the /jre subdirectory that the installer creates to the jre directory above. Newer versions of the JAI installer program have fixed this issue.

Migration Notes

3.x to 4.x Migration Notes

The following changes may affect applications that were originally developed with a previous version of ICEpdf.
ICEpdf Core API

  • When extracting text using the org.icepdf.core.pobjects.Page Object the method not longer turns a Vector of Strings. Instead it now returns the data structure See class document and the example install_dir/icepdf/examples/extraction/ for correct usage.

2.x to 4.x Migration Notes

The following changes may affect applications that were originally developed with a previous version of ICEpdf.

ICEpdf Jar File Changes

  • The ICEpdf jar file names have been updated to better indicate their respective usage.
  • Please update your applications to reflect the new jar names.
    • icepdf-core.jar - was icepdf.jar, contains core ICEpdf rendering classes.
    • icepdf-viewer.jar - was ri_pdf.jar, contains viewer reference implementation.
    • icepdf-pro.jar * - Professional font library available under commercial licensing.
    • icepdf-pro-int.jar * - Professional font library CMap files, available under commercial licensing.
      * Denotes JAR files that are only available in ICEpdf Pro commercial release.

API Packaging Changes

  • ICEpdf 4.0 packaging has been updated to match the domain of the new community site
  • Please update your applications to reflect the new base package name.
    • Former package-name: com.icesoft.*
    • New package-name: org.icepdf.*
  • The ICEpdf API rendering core is now rooted at org.icepdf.core.*.
  • The ICEpdf API viewer reference implementation is now rooted at org.icepdf.ri.*.

System Properties

  • ICEpdf system properties have been changed to match the domain name of the community site
  • Please update your applications use of ICEpdf system properties to reflect the new base package name.
    • Former package-name: com.icesoft.*
    • New package-name: org.icepdf.*

JDK 1.5+ Now Required

  • ICEpdf source code has been updated to the JDK 1.5 Java language specification to take advantage of numerous features and improvements to the Java programming language. As a result, ICEpdf v4.0 is not deployable to Java JRE versions older than 1.5.
  • Older versions of the Java JDK and JRE have been added to Sun's end of life and are no longer publicly supported.
    • JDK 1.3.1 reached the end of its service life (EOSL), December 11th, 2006.
    • JDK 1.4.2 reached the end of its service life (EOSL), October 11th, 2008.
  • For more information on Java Platform Migration please see

Logging System

  • ICEpdf 4.0 now uses Java logging API for all logging tasks.
  • A sample file is included in the directory .../install_dir/icepdf/lib/.
  • The custom logging properties file can be specified with the following system property:
  • Further information on java.util.logging can be found at


Please visit the community site for additional information, demos, and resources.

All questions, comments, or general discussion specific to ICEpdf 4.0 should be made in the ICEpdf Forum forum.

For information on commercial support, professional services, and training, please visit

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

© Copyright 2017 ICEsoft Technologies Canada Corp.