Your company here — click to reach over 10,000 unique daily visitors

psnup - Man Page

put multiple pages of a PostScript document on to one page




Put multiple pages of a PostScript document on to one page.


number of pages to impose on each output page

-p,  --paper=PAPER

output paper name or dimensions

-P,  --inpaper=PAPER

input paper name or dimensions

-m,  --margin=DIMENSION

width of margin around each output page [default 0pt]; useful for thumbnail sheets, as the original page margins will be shrunk

-b,  --border=DIMENSION

width of border around each input page

-d,  --draw[=DIMENSION]

draw a line of given width around each page [relative to input page size; argument defaults to 1pt; default is no line]

-l,  --rotatedleft

input pages are rotated left 90 degrees

-r,  --rotatedright

input pages are rotated right 90 degrees

-f,  --flip

swap output pages' width and height

-c,  --transpose

swap columns and rows (column-major order)

-t,  --tolerance=NUMBER

maximum wasted area in square pt [default: 100,000]

-q,  --quiet

don't show page numbers being output


display this help and exit

-v,  --version

display version information and exit

psnup aborts with an error if it cannot arrange the input pages so as to waste less than the given tolerance.

The output paper size defaults to the input paper size; if that is not given, the default given by the `paper' command is used.

The input paper size defaults to the output paper size.

In row-major order (the default), adjacent pages are placed in rows across the paper; in column-major order, they are placed in columns down the page.

psnup uses pstops to impose multiple logical pages on to each physical sheet of paper.

Paper sizes can be given either as a name (see paper(1)) or as widthxheight (see psutils(1) for the available units).

Exit status


if OK,


if arguments or options are incorrect, or there is some other problem starting up,


if there is some problem during processing, typically an error reading or writing an input or output file.


The potential use of this utility is varied but one particular  use is in conjunction with psbook(1). For example, using groff to create a PostScript document and lpr as  the UNIX print spooler a typical command line might look like this:

groff -Tps -ms file | psbook | psnup -2 | lpr

where file is a 4 page document this command will result in a  two page document printing two pages of file per page and rearranges the page order to match the input pages 4 and 1  on the first output page and pages 2 then 3 of the input document  on the second output page.


Written by Angus J. C. Duggan and Reuben Thomas.


PostScript is a trademark of Adobe Systems Incorporated.

See Also

psutils(1), paper(1)

Referenced By

psutils(1), tl-psutils(1).

February 2023 psnup 2.10