align.ps 2.11 KB
Newer Older
1
% Copyright (C) 2001-2019 Artifex Software, Inc.
2
% All Rights Reserved.
3
%
4 5
% This software is provided AS-IS with no warranty, either express or
% implied.
6
%
7 8 9
% 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.
10
%
11
% Refer to licensing information at http://www.artifex.com or contact
12 13
% Artifex Software, Inc.,  1305 Grant Avenue - Suite 200, Novato,
% CA 94945, U.S.A., +1(415)492-9861, for further information.
14
%
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

% 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
68
/res currentpagedevice /HWResolution get def
69 70 71 72
(        x = (1 - H) * ) show res 0 get =string cvs show
(, y = (V - 1) * ) show res 1 get =string cvs show

showpage