History of Changes
Introduction and explanation of symbols
Changes are sorted by "type" and then chronologically with the most recent at the top. These symbols denote the various action types: =add, =fix, =remove, =update
Version 2.10 (9 Oct 2024)
Changes to the Code Base
- FOP-3135: Allow source resolution configuration
- FOP-3144: Add new schema to handle pdf/a and pdfa/ua
- XGC-127: Set an automatic module name
- XGC-139: Switch to spotbugs
- XGC-141: Do not use a singleton for ImageImplRegistry
Version 2.9 (22 Aug 2023)
Changes to the Code Base
- XGC-133: Fix test for Java 11
- FOP-3127: Allow XMP at PDF page level
Version 2.8 (9 Nov 2022)
Changes to the Code Base
- FOP-3051: Upgrade to Commons IO 2.11
- FOP-3055: Use a event for a draw image error
- FOP-3091: Add transparency color support for PS
- XGC-130: Allow subproperties in XMP
- XGC-132: Fallback to raw png if ImageIO cannot read image
Version 2.7 (20 Jan 2022)
Changes to the Code Base
- XGC-128: Remove image transparency for PS
- FOP-3038: Allow sections which need security permissions to be run when AllPermission denied in caller code
- FOP-3032: Embed pdf into afp using unique type
Version 2.6 (20 Jan 2021)
Changes to the Code Base
- XGC-123: Decode image at page load rather than document load
- XGC-122: Dont load DTDs in XMP
Version 2.4 (5 Nov 2019)
Changes to the Code Base
- FOP-2821: 1 bit image fails when using PreloaderRawPNG
- FOP-2856: Support compile on Java 12
- FOP-2873: Update to PDFBox 2.0.16
- XGC-112: TIFF resolution wrong on Java 10
- XGC-116: Don't draw fully transparent alpha on PS
Version 2.3 (23 May 2018)
Changes to the Code Base
- FOP-2251: PDF to PostScript not showing transparency
- FOP-2739: Avoid rastering PDF with Smask to image
- FOP-2740: PDF to PostScript tiling pattern error in Acrobat
- FOP-2753: PDF to PostScript allow fop fonts as fallback
- XGC-98: UndeclaredThrowableException while loading images
- XGC-111: Improve error message when language is empty
Version 2.2 (24 March 2017)
Changes to the Code Base
- Support for Maven Build Process
- AFP rounded corners not in CMYK
Version 2.1 (14 January 2016)
Changes to the Code Base
- Fix "insufficient data for an image" error: jai_imageio dependency regression
- Fix performancy penalty caused by excessive DeflaterOutputStream.write(byte) calls, thanks to Andre Klemann
- Include ps-setpagedevice when dsc-compliant is false
- UndeclaredThrowableException while loading images
- Add PreloaderRawPNG to handle images ImageIO cant
- Add support for PDF/A-3
- Support CMYK JPEG in AFP
- Support PDF/UA
- Truetype support for AFP
Version 2.0.1 (3 June 2015)
Changes to the Code Base
- PDF VT support. Committed by SS.
- PDF to PS deduplication of images. Committed by SS.
Version 2.0 (1 Octomber 2014)
Changes to the Code Base
-
Reduce PDF to PS filesize. Committed by SS.
-
PDF-A preflight warnings. Committed by SS.
-
DSCParser always throws DSCException %%EOF not found when checkEOF is false. Committed by VH. Patch by Teon Metselaar, applied with minor changes + a test case.
-
Weird border color inheritance (hashCode collisions). Committed by LB. Thanks to AG.
-
Image written as having 72 DPI instead of its intrinstic resolution. Committed by LB.
-
Javadocs fails on Java 8. Committed by SS.
-
JPEG is squashed. Committed by SS.
-
64bit image missing in pdf. Committed by LB. Thanks to SS.
-
FOP-1801: conversion B&W GIF=>PDF creates PDF with colorspace RGB if FOP0.95 and Gray if FOP0.20.5;. Committed by LB. Thanks to Thanasis Giannimaras.
-
Incorrect rendering of GIF images. Committed by LB. Thanks to Thanasis Giannimaras.
-
CMYK TIFF is rendered using RGB colourspace in Postscript output. Committed by LB. Thanks to SS.
-
Add support for APP1 (Exif) segment in JPEG images. Committed by LB.
-
Add support for svg gradients when generating PostScript. Committed by LB. Thanks to RM.
-
SVN line clipping not correct when outputting to Postscript. Committed by RM.
-
Make JPEGFile more resilient against potentially malformed JPEGs. Committed by JM.
-
Added new subroutine to support OTF CFF in PostScript. Committed by LB. Thanks to RM.
-
1 bit TIFF error. Committed by LB. Thanks to SS.
-
JBIG2 PDF not shown in PS. Committed by LB. Thanks to SS.
-
provide a way to close the resources associated to an image without fully loading it. Committed by VH.
-
Use event producer when Colour Profile in PNG Image is bad. Committed by LB. Thanks to SS.
-
Change to XGC to support the changes in FOP for image scaling. Scaling by resolution is removed to avoid duplicate scaling. Committed by LB. Thanks to RM.
-
Fixes gradient fill opacity incorrectly inherits stroke opacity of previous svg element. Committed by LB.
-
Little endian support for tiff images. Commited by LB. Thanks to JM and RM. See Issue [54195] (https://issues.apache.org/bugzilla/show_bug.cgi?id=54196)
-
support for sRGB and iCCP chunks. Committed by LB. See Issue [53408]
-
Support rdf:resource attributes in XMP. Committed by GA. Thanks to Brian Carlson. See Issue 50497.
-
Should never use Error to report runtime errors. Committed by GA. Thanks to Sebastian Bazley. See Issue 47174.
-
Ensure that throwables have meaningful messages. Committed by GA. Thanks to Sebastian Bazley. See Issue 47175.
-
Support for T.4 Group 3 1D encoding. Committed by PH. Thanks to JM and Mehdi Houshmand. See Issue 51911.
-
Fixed a bug formatting ISO 8601 dates with negative two-digit time zones. Committed by JM. Thanks to Florian Barbera Vila Bollain. See Issue 51039.
-
Allow to override priority when registering an ImageWriter on the ImageWriterRegistry. Committed by JM. Thanks to Joshua Marquart. See Issue 49696.
-
Fix for TIFFs which report zero as their resolution. This resulted in an exception. Committed by JM.
-
Removed dependency on com.sun classes to achieve compatibility with Apache Harmony, OpenJDK and possibly other JVMs. Committed by JM.
-
Removal of the deprecated
TextHandler.drawString(String, float, float)
method. Committed by JM. -
Minor build improvements to eliminate warning and parameterize junit formatting. Eliminate (5) deprecation warnings. Committed by GA.
-
Various code style fixes Committed by JM. Thanks to Glenn Adams. See Issue 49703.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Glenn Adams (GA), Luis Bernado(LB), Alexios Giotis (AG), Peter Hancock(PH), Vincent Hennebert (VH), Jeremias Märki (JM). Robert Meyer(RM), Simon Steiner (SS)
This is a list of other contributors:
Brian Carlson, Florian Barbera Vila Bollain, Glenn Adams, JM and Mehdi Houshmand, Joshua Marquart, Sebastian Bazley, Thanasis Giannimaras.
Version 1.5 (20 October 2012)
Changes to the Code Base
There is no significative change since Release Version 1.5-RC1.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Glenn Adams (GA), Max Berger (MB), Chris Bowditch (CB), Adrian Cumiskey (AC), Christian Geisert (CG), Peter Hancock (PH), Vincent Hennebert (VH), Clay Leeds (CL), Jeremias Märki (JM), Cameron McCormack (CM), Simon Pepping (SP).
This is a list of other contributors:
Brian Carlson, Florian Barbera, Glenn Adams, Joshua Marquart, Julien Aymé, Luis Bernardo, Matthias Reischenbacher, Mehdi Houshmand, Robert Meyer, Sebastian Bazley, Vila Bollain.
Version 1.5-RC1 (2 July 2012)
Changes to the Code Base
-
Add two PNG image loaders, one using internal XGC PNG code, the other using an externally supplied IDAT chunk (for raw decoding). Committed by GA. Thanks to Luis Bernardo, Matthias Reischenbacher. See Issue 53408.
-
Fix corner cases involving long/double conversion and rounding error in double division when rounding 5E-N for certain N. Committed by GA. Thanks to Julien Aymé. See Issue 53327.
-
Fix determination of use of precise vs fast formatting in order to fix regression with value 5.22534294505995E-4, decimals: 17, precision: 17. Committed by GA. Thanks to Julien Aymé. See Issue 53327.
-
Upgrade to checkstyle-5.5 and ensure no warnings. Committed by GA. See Issue 53352.
-
Improve performance for certain kinds of PNG images. Committed by GA. Thanks to Luis Bernardo. See Issue 51149.
-
Fix handling of values less than 1E-300. Committed by GA. Thanks to Julien Aymé. See Issue 53327.
-
Fix handling of NaN, {+,-}Infinity, and other edge cases in double format utility. Committed by GA. Thanks to Julien Aymé. See Issue 43940.
-
Unify date formatting between FOP and XGC as well as tidying the date format code. Committed by GA. Thanks to Robert Meyer. See Issue 53184.
-
Fix for XGC when rendering PostScript using SVG being drawn upside down when using a custom affine transform. Committed by GA. Thanks to Robert Meyer. See Issue 53177.
-
Use new double format utility. Committed by GA. Thanks to Julien Aymé. See Issue 43940.
-
Add double format utility to improve thread safety and performance. Committed by GA. Thanks to Julien Aymé. See Issue 43940.
-
Support rdf:resource attributes in XMP. Committed by GA. Thanks to Brian Carlson. See Issue 50497.
-
Should never use Error to report runtime errors. Committed by GA. Thanks to Sebastian Bazley. See Issue 47174.
-
Ensure that throwables have meaningful messages. Committed by GA. Thanks to Sebastian Bazley. See Issue 47175.
-
Minor build improvements to eliminate warning and parameterize junit formatting.
Eliminate (5) deprecation warnings. Committed by GA.
-
Support for T.4 Group 3 1D encoding. Committed by PH. Thanks to Mehdi Houshmand. See Issue 51911.
-
Fixed a bug formatting ISO 8601 dates with negative two-digit time zones. Committed by JM. Thanks to Florian Barbera, Vila Bollain. See Issue 51039.
-
Removed dependency on com.sun classes to achieve compatibility with Apache Harmony,OpenJDK and possibly other JVMs. Committed by JM.
-
Removal of the deprecated
TextHandler.drawString(String, float, float)
method. Committed by JM. -
Various code style fixes Committed by JM. Thanks to Glenn Adams. See Issue 49703.
-
Allow to override priority when registering an ImageWriter on the ImageWriterRegistry. Committed by JM. Thanks to Joshua Marquart. See Issue 49696.
-
Fix for TIFFs which report zero as their resolution. This resulted in an exception. Committed by JM.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Glenn Adams (GA), Max Berger (MB), Chris Bowditch (CB), Adrian Cumiskey (AC), Christian Geisert (CG), Peter Hancock (PH), Vincent Hennebert (VH), Clay Leeds (CL), Jeremias Märki (JM), Cameron McCormack (CM), Simon Pepping (SP).
This is a list of other contributors:
Brian Carlson, Florian Barbera, Glenn Adams, Joshua Marquart, Julien Aymé, Luis Bernardo, Matthias Reischenbacher, Mehdi Houshmand, Robert Meyer, Sebastian Bazley, Vila Bollain.
Version 1.4 (7 July 2010)
Changes to the Code Base
-
Added getter and setter for enabling/disabling comments in PSGenerator. Committed by JM. Thanks to Julien Aymé. See Issue 49250.
-
Small optimization which only generates code for a clipping area if an element is not fully inside the clipping area. Committed by JM. Thanks to Calixte Denizet. See Issue 49056.
-
Added option to enable/disable the generation of compact vs. verbose PostScript code. Committed by JM. See Issue 48797.
-
Added shorthands for many PostScript commands to get more compact PostScript files. Committed by JM. Thanks to Calixte Denizet. See Issue 48797.
-
Added code for supporting the AdobeStandardCyrillic encoding. Committed by JM. Thanks to Andrey Koltunov. See Issue 48395.
-
Added interface for Color Conversions. Committed by CB. Thanks to Peter Hancock. See Issue 48237.
-
Added support for configurable additional penalties for preloader, loader and converter plug-ins in the ImageImplRegistry (in addition to the hard-coded penalties). Committed by JM.
-
Enabled native encoding of CMYK images for PostScript output. Committed by JM. Thanks to Venkat Reddy. See Issue 48264.
-
Support loading of ICC Profiles from PNG and JPEG when used through ImageIO. Committed by MB.
-
Added 60 seconds expiration for invalid URIs in the image cache to recover from temporarily unavailable images. Committed by JM.
-
Added TexturePaint support for PSGraphics2D (PostScript tiling patterns). Committed by JM. Thanks to Jiří Kunhart. See Issue 46583.
-
XMP framework: Added support for the structure property shorthand form and for specifying simple property values as attributes on rdf:Description elements. Committed by JM.
-
Added RefinedImageFlavor to the image loading framework for better refinement of image flavors. Committed by JM.
-
Two properties didn't get copied in copy constructor of PSState. Committed by JM. Thanks to Julien Aymé. See Issue 49364.
-
Bugfix for detecting multi-strip CCITT-encoded TIFFs. Committed by JM.
-
Bugfix: Properly handle file URLs where URL.getHost() is an empty string. Committed by JM.
-
Bugfix: Clip area got lost while cloning GraphicContext. Committed by JM.
-
Switched from linear RGB to sRGB for the fallback color model, in order to avoid trouble with some images (CMYK TIFF, for example). Committed by JM.
-
Bugfix: reset graphic state when a page is finished in PostScript. Committed by JM.
-
Bugfix: glyph names starting with ‘u’ but not in the ‘official’ glyph list could cause a StringIndexOutOfBoundsException because they were parsed as u1234-like unicode values. Committed by VH.
-
Bugfix: Streams were not closed in Service class. Committed by JM.
-
Catching IllegalArgumentException in XMPSerializer when the Transformer implementation in use doesn't support the INDENT key. Committed by JM.
-
Added the ability to assign a string value for a key in a postscript dictionary. Committed by AC. Thanks to Jiří Kunhart. See Issue 46292.
-
Made loading images via Image I/O more robust: A PNG with a zero resolution should fall back to the default resolution. Committed by JM. See Issue 45789.
-
JPEGPreloader: Fixed interpretation of JPEG resolution when "dots per centimeter" is specified. Committed by JM. See Issue 45835.
-
Bugfix: Added missing start/endPrefixMapping() calls when serializing XMP packets. Committed by JM.
-
Optimization for PostScript state handling in (E)PSDocumentGraphics2D. Committed by JM. Thanks to Julien Aymé. See Issue 49339.
-
PS output: Using shorthand procedures for rectangles instead of the generic shape processor. Committed by JM. Thanks to Julien Aymé. See Issue 49338.
-
Moved method disableClipping from AbstractPSDocumentGraphics2D to PSGraphics2D. Committed by JM. Thanks to Julien Aymé. See Issue 49337.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Adrian Cumiskey (AC), Chris Bowditch (CB), Jeremias Märki (JM), Max Berger (MB), Vincent Hennebert (VH).
This is a list of other contributors:
Andrey Koltunov, Calixte Denizet, Jiří Kunhart, Julien Aymé, Peter Hancock, Venkat Reddy.
Version 1.3.1 (11 June 2008)
Changes to the Code Base
-
Added fallbacks for Type 1 fonts which don't have the normal "one", "two" etc. glyphs, but actually only provide "oneoldstyle", "twooldstyle" etc. Committed by JM.
-
Added an image loader for XML Graphics Commons' internal TIFF codec. Committed by JM.
-
Added image processing hints to ignore an optionally embedded color profile in JPEG images. Committed by JM.
-
Made file URLs with a host (as happens when using UNC paths) work when loading images. Committed by JM. See Issue 44902.
-
Bugfix for classpath resources: the code doesn't just check the system class loader anymore. Committed by MB.
-
Bugfix for a potential multi-threading issue concerning the use of the java.text package. Committed by JM.
-
Bugfix for extracting ICC color profiles from JPEG images. Committed by JM.
-
Fixed two cases of unclosed input streams in image loader code. Committed by JM.
-
Bugfix for unhandled NumberFormatException in Glpyhs when a unknown glyph name starting with "u" is found. Committed by JM.
-
Bugfix for ImageEncodingHelper which produced false results if an image's sample model used BGR instead of RGB. Committed by JM.
-
Fixed behaviour for the cases where a corrupt PNG image is encountered. Committed by JM.
-
Bugfix for EOFException when pre-loading very small PNG images (file size < 88 bytes). Committed by JM.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Jeremias Märki (JM), Max Berger (MB).
Version 1.3 (07 Feb 2008)
Changes to the Code Base
-
Image Loading: Support for passing in SAXSource instance. Committed by JM. Thanks to Adam Strzelecki. See Issue 44466.
-
The package org.apache.xmlgraphics.image.loader was added. It contains a general image loading framework for various image formats (bitmap & vector). Committed by JM.
-
XMP: Added support for structured properties. Committed by JM.
-
PostScript: Added classes for "BoundingBox" DSC comments. Committed by JM.
-
Added support for classpath resources (find files in JAR files in the classpath using their MIME type) Committed by JM. Thanks to Max Berger. See Issue 42980.
-
Application of the patch in Bugzilla 43069: New Macro safe-set-page-device which guards against the possibility of invalid/unsupported postscript key/values being issued to the implementing postscript page device Committed by CB. Thanks to Adrian Cumiskey. See Issue 43069.
-
Bugfix for ISO 8601 date formatting with negative time zones in the XMP package. Committed by JM.
-
Bugfix for XMP serialization: arrays with only one entry were serialized as simple property which could lead to information loss for merge operations. Committed by JM.
-
PostScript: Fixed %%EOF checking for nested documents. Committed by JM.
-
PostScript: Improved robustness of DSC parsing (multi-line comments with no value on the first line don't cause crashes anymore, fallback for unparsable DSC comments). Committed by JM.
-
Fixed a possible NPE in the TIFF codec (in the TIFFImage constructor). Committed by JM. Thanks to Sergey Orlov. See Issue 43120.
-
Support for Java 1.3 has been dropped. Java 1.4 or later is required now. Committed by JM.
-
PostScript: Improved PSImageUtils by introducing the ImageEncoder interface and allowing for streams instead of byte arrays for data transfer which can lower memory consumption. Committed by JM.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Chris Bowditch (CB), Jeremias Märki (JM).
This is a list of other contributors:
Adam Strzelecki, Adrian Cumiskey, Max Berger, Sergey Orlov.
Version 1.2 (21 July 2007)
Changes to the Code Base
-
Added support for CMYK and GRAY color spaces for PSGenerator (moved there from PSGraphics2D). Committed by JM. Thanks to Adrian Cumiskey. See Issue 42507.
-
Fixed literal text string escaping in PSGenerator. Some characters were not properly escaped. Committed by JM.
-
Fixed the PDF/A namespace according to ISO-19005-1:2005/Cor.1:2007 and deprecated the use of the draft PDF/A namespace used by Adobe Acrobat 7.x. Committed by JM.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Jeremias Märki (JM).
This is a list of other contributors:
Adrian Cumiskey.
Version 1.1 (22 Dec 2006)
Changes to the Code Base
-
Added the start of an XMP metadata framework. Committed by JM.
-
ImageWriter abstraction now supports writing multi-page formats like TIFF. Committed by JM.
-
ImageWriter implementation for TIFF output using Image I/O API. Committed by JM.
-
Default implementation for AbstractGraphics2D.drawText(ACI, float, float) so PSGraphics2D supports painting text using the AttributedCharacterIterator. Committed by JM. Thanks to Max Berger.
-
Various fixes and improvements in the ImageWriter abstraction. Committed by JM.
-
Bugfix: The generation of the PostScript setdash command was assuming that only integer values can be used but that isn't the case. Committed by JM.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Jeremias Märki (JM).
This is a list of other contributors:
Max Berger.
Version 1.0 (17 Apr 2006)
Changes to the Code Base
- Initial release with several components from Batik and FOP: Image codecs, Image writer abstraction, I/O classes, Java2D helpers, PostScript library with Graphics2D implementation. Committed by JM.
Contributors to this release
We thank the following people for their contributions to this release.
This is a list of all people who participated as committers:
Jeremias Märki (JM).
All Committers
This is a list of all people who have ever participated as committers on this project.
-
Glenn Adams (GA)
-
Max Berger (MB)
-
Chris Bowditch (CB)
-
Adrian Cumiskey (AC)
-
Christian Geisert (CG)
-
Vincent Hennebert (VH)
-
Clay Leeds (CL)
-
Jeremias Märki (JM)
-
Cameron McCormack (CM)
-
Simon Pepping (SP)
-
Volunteer needed (open)