Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
gnulib @ 7d06937
PostScript Utilities

Web site:
Maintainer: Reuben Thomas <>

PSUtils is a suite of utilities for manipulating PostScript documents
produced according to the Document Structuring Conventions. You can select
and rearrange pages, including arrangement into signatures for booklet
printing, combine multple pages into a single page for n-up printing, and
resize, flip and rotate pages.

PSUtils is distributed under the GNU General Public License version 3, or,
at your option, any later version; see the file COPYING. (Some of the input
files in the tests directory are not under this license; see the file
COPYRIGHT in that directory.)

If you simply want to use PSUtils, you will find it in most GNU/Linux
distributions; it is available in brew for macOS and Cygwin for Windows.

The PSUtils utilities intentionally do not check their input is
DSC-conformant, as some programs produce non-conforming output that can be
successfully processed anyway. If PSUtils does not work for you, check
whether your software needs to be configured to produce DSC-conformant
PostScript. The old-scripts directory contains some scripts that fix the
output of certain obsolete programs.


PSUtils requires Perl 5.14 or later plus the IPC::Run3 module, and also
libpaper, which allows named paper sizes to be used and configured:



You need a standard POSIX environment.

Having unpacked the source tarball, run:

./configure && make check && [sudo] make install

For build options, see ./configure --help

Note that to use the scripts before installing them, you need to run them
with pre-inst-env; for example:

./pre-inst-env ./psnup -2


To build from git, you need the following extra programs installed:

  automake, autoconf, git

Then run:


Now follow the normal installation instructions above.


Please send bug reports, patches and suggestions to the bug tracker or
maintainer (see the top of this file).


PSUtils was written by Angus Duggan, who maintained it up to release 1
patchlevel 17, and Reuben Thomas.

psselect in modeled on Chris Torek's dviselect, as is psbook, via Angus
Duggan's dvibook; pstops is modeled on Tom Rokicki's dvidvi. psjoin was
originally written by Tom Sato:

Bug fixes and suggestions for improvements to PSUtils have come from many
people, including:

        Brian Colfer  
        Charles A. Finnell      finnell@org.mitre.lear
        Conrad Kimball          cek@com.boeing.sdc
        J. W. Hawtin
        Jochen Schwarze         schwarze@de.isa
        Ken Carpenter           khc@edu.ksu.eece
        Kristian Jorg 
        Larry Weissman 
        Michael L. Brown
        Hunter Goatley	        goathunter@wkuvx1.bitnet
        John Interrante
        Maurizio Cremonesi      MAUCREM@imiclvx.earn
        Matthew Stier 
        Gerry Pratt   
        Robert Joop   
	Johan Vromans
	Bryan Faubion
	Chris Ritson
	Michael I. Schwartz
	Chris Ritson
	Joerg Eisenreich
	Andreas Borchert
	Mike Coleman
	Dale Scheetz
	Yves Arrouye
	Stanislav Brabec
        Peter Breitenlohner
        Jiri Popelka
        Eric S. Raymond

(Apologies to anyone left out; it was not intentional.)