Recent changes in Ghostscript

# 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.19 (2016-03-23)

This is the thirteenth full release in the stable 9.x series, and is mainly a maintenance release.

Highlights in this release include:

- New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were primarily added to allow pdfwrite to be configured correctly for PDF/A output from GhostPCL. See: pdfwrite with PCL input for more details.

  Ghostscript users should continue to use the existing pdfmark and setdistillerparams capabilities.

- Metadata pdfmark is now implemented. This allows the user to specify an XMP stream which will be written to the Catalog of the PDF file. A new pdfmark 'Ext_Metadata' has been defined. This takes a string parameter which contains XML to be added to the XMP normally created by pdfwrite.

  See pdfwrite pdfmark extensions for more information.

- An experimental, rudimentary raster trapping implementation implementation has been added to the Ghostscript graphics library. See Trapping for details.

- The halftone threshold array generation tools (part of `toolbin/halftone`) have been improved with `thresh_remap` which allows folding the transfer function (AKA toner response curve (TRC)) into the threshold array so that highlights are improved. Further, `gen_stochastic` has improved support for minimum dot size and shape.

- Plus 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

- (Minor) API change: copy_alpha now supports 8 bit depth (as well as the previous 2 and 4).

- The gs man pages are woefully out of date and basically unmaintained. With the release following 9.19, we intend to replace their contents with a very limited summary of (unlikely to ever change aspects of) calling Ghostscript, and a pointer to the (maintained) HTML documentation. That is, unless a volunteer is willing to update, and commit to maintaining the man pages.

- We plan (ideally for the release following 9.19) to somewhat tidy up the device API. We plan to remove deprecated device procs (methods/function pointers). We also intend to merge the imager state and graphics state (thus eliminating the imager state), 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-2016 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.19, 23 March 2016