ref: 47ec5de29e56c4cf223e0582b930b88ca2a589ee
dir: /sys/src/cmd/gs/lib/align.ps/
% Copyright (C) 1989, 1996 Aladdin Enterprises. All rights reserved. % % This software is provided AS-IS with no warranty, either express or % implied. % % This software is distributed under license and may not be copied, % modified or distributed except as expressly authorized under the terms % of the license contained in the file LICENSE in this distribution. % % For more information about licensing, please refer to % http://www.ghostscript.com/licensing/. For information on % commercial licensing, go to http://www.artifex.com/licensing/ or % contact Artifex Software, Inc., 101 Lucas Valley Road #110, % San Rafael, CA 94903, U.S.A., +1(415)492-9861. % $Id: align.ps,v 1.4 2002/02/21 21:49:28 giles Exp $ % Print a page that indicates the proper settings of Margins and HWMargins % for a given device. Requires a Level 2 system. % Reset the offset and margins. << /PageOffset [0 0] /Margins [0 0] /.HWMargins [0 0 0 0] >> setpagedevice << /ImagingBBox null >> setpagedevice % Determine the actual page size. clippath pathbbox newpath /y1 exch def /x1 exch def pop pop % Draw lines that should be exactly 1" in from each edge, % and should extend precisely to the edge of the paper. 1 setlinewidth 0 setgray 72 0 moveto 0 y1 rlineto stroke 0 72 moveto x1 0 rlineto stroke % Print the text in the middle of the page. /S 80 string def 108 480 moveto /Helvetica 12 selectfont { currentfile S readline pop dup (%END) eq { pop exit } if gsave show grestore 0 -15 rmoveto } loop Let the distance in inches from the left edge of the page to the vertical line be H, and from the bottom edge to the horizontal line be V; let the lengths of the gaps at the top and bottom of the vertical line be T and B respectively, and the gaps at the left and right of the horizontal line be L and R. For correct alignment of pages, put the following line in a file named (for example) margins.ps, and then mention margins.ps on the gs command line when printing any of your own files: << /.HWMargins [ml mb mr mt] /Margins [x y] >> setpagedevice where ml = L * 72, mb = B * 72, mr = R * 72, mt = T * 72, %END /res currentpagedevice /.MarginsHWResolution get def ( x = (1 - H) * ) show res 0 get =string cvs show (, y = (V - 1) * ) show res 1 get =string cvs show showpage