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.
| Tags | multimedia Graphics Graphics Conversion Viewers Software Development Interpreters |
|---|---|
| Licenses | AFPL GPLv3 |
| Operating Systems | BeOS Mac OS X Mac OS X Windows Windows Windows OS Independent OS/2 POSIX |
| Implementation | C |
Recent releases


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.


Release Notes: Flexibility for controlling color based upon the graphic object type was introduced. New tiffscaled8, tiffscaled24, and pngmonod devices were added. Downscaling is now supported for png16m and pnggray. The PDF interpreter now tries continue interpreting a PDF after encountering an error in a stream. x11alpha was re-enabled as the default device on Unix systems, now that compatibility problems between anti-aliased output and transparency are resolved. A new experimental text output/extraction device was introduced. The XFonts functionality was removed. Source revision control was moved to Git.


Release Notes: A new halftone technique for sampled image data was introduced for monochrome devices, avoiding performance problems with the existing implementation. Further performance, memory use, and stability improvements were made for recently introduced features. Unix/Linux build fixes and various other bug fixes were made.


Release Notes: A new, robust CFF parser was implemented in C, replacing the previous PostScript one. The tiffscaled device was added, which renders internally as tiffgray, but then downsamples by an integer scale factor and error diffuses to 1bpp output. DSC compatible output was added to ps2write. A number of performance, memory use, and stability improvements with the new features introduced in 9.00 were made, plus the usual bug fixes.


Release Notes: This release includes a move to an ICC-based color rendering workflow. The second major change in this release is that glyph rendering for all font types except Type 3 is now handled by Freetype (via a much improved and enhanced Font API).
Recent comments
27 Mar 2009 12:12
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
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
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.
A massive parallel-processing computing platform that solves big data problems.
A cross platform, hardware accelerated, versatile stereo and 4D audio mixing library.