Projects / Ghostscript


Ghostscript is a processor for PostScript and PDF files. It can rasterize these files to a wide variety of printers, devices for screen preview, and image file formats. Since applications tend to prepare pages for printing in a high-level format such as PostScript, most Unix users with low-level bitmap printers, such as inkjets, use GhostScript as part of the printing process. In addition, Ghostscript is capable of converting PostScript files, functionality comparable to Adobe Acrobat Distiller, but on the command line. In addition, Ghostscript is used for file import and viewing by a great many other applications, including xv, ImageMagick, gimp, and xdvi. Several GUI wrappers for viewing PostScript and PDF files exist, including GSview, ghostview, gv, ggv, and kghostview. This is far from a comprehensive list.

Operating Systems

Recent releases

  •  03 Apr 2014 00:20

    Release Notes: A improved "eps2write" device was added to replace the deprecated "epswrite" device. The "pdfwrite" device now uses the same color management engine as Ghostscript rendering devices, by default LCMS2. A new "pwgraster" output device was added. The CUPS device now has improved support for PPD-less printing. Memory usage when processing PDF files that use transparency was reduced. Various other minor improvements and bugfixes were made.

    •  02 Sep 2013 09:02

      Release Notes: This is mainly a maintainance release, with some new features added.

      •  14 Feb 2013 14:47

        Release Notes: This release changes to the AGPL, improves thread safety, produces "Direct Web View" PDFs directly, extends the Font API to support PCL/PXL and XPS as well as Postscript/PDF, adds new options adding flexibility to the color management workflow, and adds a BigTIFF output option.

        •  12 Aug 2012 13:34

          Release Notes: PDF/A-2 support was added to the pdfwrite output device. Suport was added to pdfwrite to be run in "server mode" and for the "%d" format in the OutputFile switch, for writing individual files. The output created by ps2write was modified to support the deficiencies in a range of recent PostScript devices. Support for large numbers of separations was improved for the tiffsep* devices, resolving "unencodable pixels" errors. The devices tiffsep, psdcmyk, and psdrgb gained "downscaler" support. Many other bugfixes, compatibility changes, and incremental improvements were made.

          •  09 Feb 2012 13:28

            Release Notes: The PDF interpreter now can make use of the DroidSansFallback TrueType font to automatically substitute for missing CIDFonts. Support for "unmanaged color transformations" (with the command line option "-dUseFastColor") for source DeviceXXX colors was added. A simple ink-coverage device is now included. The TIFF, JPEG, and PNG output devices now support embedding of the device ICC profile. Optimized OpenJPEG sources (for JPEG2000 decoding) are now included in the distribution. jbig2dec gained simple halftone region support. The ps2write device gained output quality and stability improvements.

            Recent comments

            27 Mar 2009 12:12 sigra

            I found a way using GNU Make, pdfinfo (from the poppler package), egrep, sed and bc. The following Makefile will concatenate the files, inserting empty pages where needed so that each subdocument starts on a new paper:
            pagecount = $(shell pdfinfo $(1)|egrep "^Pages: *[[:digit:]]+"|sed "s@^Pages: *\([[:digit:]]\+\)@\1@")
            odd = $(shell echo $(pagecount)%2|bc|grep 1)
            filled = $(1) $(if $(call odd,$(1)),emptypage.pdf)
            whole.pdf: 1.pdf 2.pdf 3.pdf 4.pdf 5.pdf 6.pdf 7.pdf 8.pdf 9.pdf
            gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=$@ -dBATCH $(foreach x,$^,$(call filled,$x)) || rm -f $@

            26 Mar 2009 12:31 sigra

            The following command is useful for concatenating PDF-files:
            gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=out.pdf -dBATCH a.pdf b.pdf

            But I need to modify this so that each subdocument starts on a new paper. This means that if a subdocument has an odd number of pages, an empty page must be inserted after it. Has anyone succeeded with this?

            19 Jan 2000 00:05 drsharky

            This is wonderful!

            I am so amazed that a group of individuals could get together and produce such a useful piece of work -- and then just give it away! Your Unix system is definitely not complete until it has the latest version of GhostScript.

            Don't forget that if you use any recent version of RedHat, your copy of GhostScript is probably out of date.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.