PSUtils

PSUtils is a collection of useful utilities for manipulating PostScript documents. Programs included are psnup, for placing out several logical pages on a single sheet of paper, psselect, for selecting pages from a document, pstops, for general imposition, psbook, for signature generation for booklet printing, and psresize, for adjusting page sizes. PSUtils is available as a tarred gzipped file from psutils.tar.gz

These programs come with NO WARRANTY, implied or express. Use at your own risk.

Environment

These utilities have been compiled and run on Sun-3 and Sun-4 machines under SunOS Solaris 2.3, Solaris 2.1, 4.1.3, 4.1.2, 4.1.1 and 4.0.1, HP9000/375 machines under HPUX 7.0 and HPUX 8.0, Sequent Symmetry machines under Dynix 3.1.4 and PTX 3.2.0, IBM RS/6000, VAX/VMS, Decstation 3100 machines under Ultrix 4.0, SGI 4k5 under Irix 4.1 and 5.2, and x86 machines under MSDOS 6.0 and Windows NT 3.5 and 4.0.

Files

The files contained are:
-rw-r--r--   1 angus        2317 Jun 19  1995 LICENSE
-rw-r--r--   1 angus        2899 Mar 09 09:26 Makefile.bcc
-rw-r--r--   1 angus        2915 Mar 09 09:26 Makefile.msc
-rw-r--r--   1 angus        4135 Mar 09 09:26 Makefile.nt
-rw-r--r--   1 angus        7146 Mar 09 09:26 Makefile.os2
-rw-r--r--   1 angus        2895 Mar 09 09:26 Makefile.sc
-rw-r--r--   1 angus        6913 Mar 09 09:26 Makefile.unix
-rw-r--r--   1 angus       11345 Mar 09 09:20 README
-rw-r--r--   1 angus         678 Nov 02  1995 config.h
-rw-r--r--   1 angus        2373 Jun 19  1995 descrip.mms
-rw-r--r--   1 angus        5773 Mar 14  1996 epsffit.c
-rw-r--r--   1 angus        1291 Nov 02  1995 epsffit.man
-rw-r--r--   1 angus        1236 Nov 02  1995 extractres.man
-rw-r--r--   1 angus        2780 Nov 02  1995 extractres.pl
-rw-r--r--   1 angus         561 Nov 02  1995 fixdlsrps.man
-rw-r--r--   1 angus        1554 Nov 02  1995 fixdlsrps.pl
-rw-r--r--   1 angus         527 Nov 02  1995 fixfmps.man
-rw-r--r--   1 angus         556 Nov 02  1995 fixfmps.pl
-rw-r--r--   1 angus         644 Nov 02  1995 fixmacps.man
-rw-r--r--   1 angus        2170 Nov 02  1995 fixmacps.pl
-rw-r--r--   1 angus         556 Nov 02  1995 fixpsditps.man
-rw-r--r--   1 angus         655 Nov 02  1995 fixpsditps.pl
-rw-r--r--   1 angus         523 Nov 02  1995 fixpspps.man
-rw-r--r--   1 angus        1298 Nov 02  1995 fixpspps.pl
-rw-r--r--   1 angus         531 Nov 02  1995 fixscribeps.man
-rw-r--r--   1 angus         434 Nov 02  1995 fixscribeps.pl
-rw-r--r--   1 angus         553 Nov 02  1995 fixtpps.man
-rw-r--r--   1 angus         663 Nov 02  1995 fixtpps.pl
-rw-r--r--   1 angus         547 Nov 02  1995 fixwfwps.man
-rw-r--r--   1 angus         826 Nov 02  1995 fixwfwps.pl
-rw-r--r--   1 angus         533 Nov 02  1995 fixwpps.man
-rw-r--r--   1 angus         699 Nov 02  1995 fixwpps.pl
-rw-r--r--   1 angus         531 Nov 02  1995 fixwwps.man
-rw-r--r--   1 angus         383 Nov 02  1995 fixwwps.pl
-rw-r--r--   1 angus         711 Apr 06  1995 getafm.man
-rwxr-xr-x   1 angus        6482 Jun 19  1995 getafm.sh
-rw-r--r--   1 angus        1107 Nov 02  1995 includeres.man
-rw-r--r--   1 angus        1435 Nov 02  1995 includeres.pl
-rw-r--r--   1 angus        1901 Jan 03  1996 maketext
-rw-r--r--   1 angus       31406 Jun 19  1995 md68_0.ps
-rw-r--r--   1 angus       35734 Jun 19  1995 md71_0.ps
-rw-r--r--   1 angus         132 Nov 02  1995 patchlev.h
-rw-r--r--   1 angus        2875 Nov 02  1995 psbook.c
-rw-r--r--   1 angus        1156 Nov 02  1995 psbook.man
-rw-r--r--   1 angus        3201 Nov 02  1995 pserror.c
-rw-r--r--   1 angus         561 Nov 02  1995 pserror.h
-rw-r--r--   1 angus         957 Nov 02  1995 psmerge.man
-rw-r--r--   1 angus        2028 Nov 02  1995 psmerge.pl
-rw-r--r--   1 angus       10396 Nov 02  1995 psnup.c
-rw-r--r--   1 angus        4002 Nov 02  1995 psnup.man
-rw-r--r--   1 angus        5379 Nov 02  1995 psresize.c
-rw-r--r--   1 angus        1696 Nov 02  1995 psresize.man
-rw-r--r--   1 angus        6096 Jun 05  1996 psselect.c
-rw-r--r--   1 angus        2117 Mar 09 09:12 psselect.man
-rw-r--r--   1 angus        7784 Dec 06  1995 psspec.c
-rw-r--r--   1 angus         877 Feb 21  1996 psspec.h
-rw-r--r--   1 angus        5159 Nov 02  1995 pstops.c
-rw-r--r--   1 angus        4091 Nov 02  1995 pstops.man
-rw-r--r--   1 angus        9323 Mar 04 13:41 psutil.c
-rw-r--r--   1 angus        1494 Nov 02  1995 psutil.h
-rwxr-xr-x   1 angus        2685 Jun 19  1995 showchar.sh

Programs

psbook
Rearranges pages into signatures
psselect
Selects pages and page ranges
pstops
Performs general page rearrangement and selection
psnup
Put multiple pages per physical sheet of paper
psresize
Alter document paper size
epsffit
Fits an EPSF file to a given bounding box
psselect in modeled after Chris Torek's dviselect program, and pstops is modeled after Tom Rokicki's dvidvi program. psbook is modeled on my own dvibook program, which borrows heavily from Chris Torek's dviselect.

Scripts

getafm (sh)
Outputs PostScript to retrieve AFM file from printer
showchar (sh)
Outputs PostScript to draw a character with metric info
fixdlsrps (perl)
Filter to fix DviLaser/PS output so that PSUtils works
fixfmps (perl)
Filter to fix framemaker documents so that psselect etc. work
fixmacps (perl)
Filter to fix Macintosh documents with saner version of md
fixpsditps (perl)
Filter to fix Transcript psdit documents to work with PSUtils
fixpspps (perl)
Filter to fix PSPrint PostScript so that psselect etc. work
fixscribeps (perl)
Filter to fix Scribe PostScript so that psselect etc. work
fixtpps (perl)
Filter to fix Troff Tpscript documents
fixwfwps (perl)
Filter to fix Word for Windows documents for PSUtils
fixwpps (perl)
Filter to fix WordPerfect documents for PSUtils
fixwwps (perl)
Filter to fix Windows Write documents for PSUtils
extractres (perl)
Filter to extract resources from PostScript files
includeres (perl)
Filter to include resources into PostScript files
psmerge (perl)
Hack script to merge multiple PostScript files

Installation

UUdecode md71_0.uue and md68_0.uue (if supplied encoded). Copy the most appropriate makefile to "Makefile", and edit the copy to put in required paths for BINDIR, SCRIPTDIR, MANDIR, INCLUDEDIR, an PERL. Alter values of MANEXT to put the manual pages in a different section if desired, change PAPER to set the default paper size, "make", and "make install".

Bugs

The utilities don't check for PS-Adobe-?.? conformance; they assume documents conform. Utilities need an extra save/restore around whole document on a SPARCPrinter with NeWSPrint 1.0, because of bugs in the xnews server.

Bug fixes and suggestions to angus@harlequin.co.uk

Updates

I have abandoned updating PSUtils.

Windows Users

Please make sure that you have selected `Generate DSC Comments' in your printer driver setup. These utilities need DSC comments to tell where page boundaries are.

Dvips Users

The latest versions of dvips have changed the default setting of the DSC comment flag; you must generate with DSC comments for PSUtils to work.

Acknowledgements

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

        Brian Colfer            brianc@labmed.ucsf.edu
        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           etxkrjg@se.ericsson.solsta
        Larry Weissman          larryw@nsr.bioeng.washington.edu 
        Michael L. Brown        brown@wi.extrel.com
        Hunter Goatley	        goathunter@wkuvx1.bitnet
        John Interrante         interran@uluru.Stanford.edu
        Maurizio Cremonesi      MAUCREM@imiclvx.earn
        Matthew Stier           Matthew.Stier@East.Sun.com
        Gerry Pratt             cca13@seq1.kl.ac.uk
        Robert Joop             rj@rainbow.in-berlin.de
	Johan Vromans		jv@squirrel.nl
	Bryan Faubion		bryanf@tc.fluke.com
	Chris Ritson		C.R.Ritson@ncl.ac.uk
	Michele Marziani	MARZIANI@VAXFE.INFN.IT
	Michael I. Schwartz	mschwart@diana.cair.du.edu
	Chris Ritson		C.R.Ritson@newcastle.ac.uk
	Joerg Eisenreich
	Anreas Borchert		borchert@mathematik.uni-ulm.de
	Mike Coleman
	Dale Scheetz		dwarf@polaris.net
	Yves Arrouye		arrouye@marin.fdn.fr
(Apologies to anyone who I have left out, it was not intentional.)

News

Patchlevel 11 contains some significant enhancements to PSUtils, in preparation for the eventual release of version 2 (don't hold your breath waiting for it). These include: Patchlevel 12 was a bug-fix release. Patchlevel 13 contained two new scripts for resource management, and fixes to the Makefile, page labels, and output chaining. Patchlevel 14 has some minor bug fixes. Patchlevel 15 has some minor bug fixes. Patchlevel 16 was a minor bugfix release Patchlevel 17 had some minor bugfixes and improvements