# Changes in the most recent release of Ghostscript

This document is news about the most recent Ghostscript release. For earlier versions, see the history documents:

> History of Ghostscript versions 9.n
> History of Ghostscript versions 8.n
> History of Ghostscript versions 7.n
> History of Ghostscript versions 6.n
> History of Ghostscript versions 5.n
> History of Ghostscript versions 4.n
> History of Ghostscript versions 3.n
> History of Ghostscript versions 2.n
> History of Ghostscript versions 1.n

For other information, see the Ghostscript overview.

## Version 9.21 (2017-03-16)

This is the fifteenth full release in the stable 9.x series.

Highlights in this release include:

- pdfwrite now preserves annotations from input PDFs (where possible).

- The GhostXPS interpreter now provides the pdfwrite device with the data it requires to emit a ToUnicode CMap: thus allowing fully searchable PDFs to be created from XPS input (in the vast majority of cases).

- Ghostscript now allows the default color space for PDF transparency blends.

- The Ghostscript/GhostPDL configure script now has much better/fuller support for cross compiling.

- The tiffscaled and tiffscaled4 devices can now use ETS (Even Tone Screening)

- The toolbin/pdf_info.ps utility can now emit the PDF XML metadata.

- Ghostscript has a new scan converter available (currently optional, but will become the default in a near future release). It can be enabled by using the command line option: '-dSCANCONVERTERTYPE=2'. This new implementation provides vastly improved performance with large and complex paths.

- The usual round of bug fixes, compatibility changes, and incremental improvements.

For a list of open issues, or to report problems, please visit bugs.ghostscript.com.

### Incompatible changes

- The planned device API tidy (still!) did not happen for this release, due to time pressures, but we still intend to undertake the following: We plan to somewhat tidy up the device API. We intend to remove deprecated device procs (methods/function pointers) and change the device API so every device proc takes a graphics state parameter (rather than the current scheme where only a very few procs take an imager state parameter). This should serve as notice to anyone maintaining a Ghostscript device outside the canonical source tree that you may (probably will) need to update your device(s) when these changes happen. Devices using only the non-deprecated procs should be trivial to update.

### Changelog

See the history file for complete log of changes.

Copyright © 2005-2017 Artifex Software, Inc. All rights reserved.

This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at http://www.artifex.com/ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134, San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.

Ghostscript version 9.21, 16 March 2017