Blob


1 %
2 % Center pages, based on pageheight and pagewidth, and redefine showpage
3 % to put cropmarks at each corner. Device dependent code to expand the
4 % paper size goes in procedure expandpagesize. Currently only supports
5 % a Linotronic 200P typesetter using 12 inch wide paper. You'll have to
6 % add code to expandpagesize to support different typesetters or even a
7 % 200P that's running differently.
8 %
10 /CropmarkDict 40 dict dup begin
12 /expandpage true def
13 /magnification 1 def
14 /pageheight 11.0 def
15 /pagewidth 8.5 def
16 /scaletofit false def
17 /scaling 1 def
19 /marklength .3 def % inches
20 /markstart .125 def % inches
21 /markend .04 def % inches
22 /marklinewidth .25 def % points
24 /inch {72 mul} def
25 /min {2 copy gt {exch} if pop} def
26 /max {2 copy lt {exch} if pop} def
28 /setup {
29 /markspace markstart marklength add markend add inch marklinewidth add def
30 /totalheight pageheight inch markspace 2 mul add def
31 /totalwidth pagewidth inch markspace 2 mul add def
33 pagedimensions
34 checkpagesize
35 /scaling getscaling def
36 xcenter ycenter translate
37 scaling scaling scale
38 pagewidth inch 2 div neg pageheight inch 2 div neg translate
39 clippage
40 } def
42 /pagedimensions {
43 clippath pathbbox newpath
44 4 -1 roll exch 4 1 roll 4 copy
45 sub /width exch def
46 sub /height exch def
47 add 2 div /xcenter exch def
48 add 2 div /ycenter exch def
49 } def
51 /checkpagesize {
52 height totalheight lt width totalwidth lt or expandpage and {
53 expandpagesize
54 pagedimensions
55 } if
56 } def
58 /expandpagesize { % device dependent code
59 /Product statusdict begin /product where {pop product}{()} ifelse end def
61 Product (Linotype) eq { % Linotronic 200P and other models?
62 statusdict /setpageparams known {
63 /maxwidth 12.0 inch def % 12 inch wide paper?
64 totalheight maxwidth le {
65 totalheight
66 totalwidth
67 maxwidth totalheight sub 2 div
68 0
69 }{
70 totalwidth maxwidth min
71 totalheight
72 maxwidth totalwidth maxwidth min sub 2 div
73 1
74 } ifelse
75 statusdict /setpageparams get exec
76 } if
77 } if
78 } def
80 /getscaling {
81 scaletofit
82 {height totalheight div width totalwidth div min 1 min}
83 {1}
84 ifelse
85 } def
87 /clippage {
88 newpath
89 0 0 moveto
90 pagewidth inch 0 rlineto
91 0 pageheight inch rlineto
92 pagewidth neg inch 0 rlineto
93 closepath clip
94 newpath
95 } def
97 /cropmark {
98 gsave
99 translate
100 rotate
101 marklinewidth dup translate
102 0 0 transform round exch round exch itransform translate
103 markstart inch 0 moveto marklength inch 0 rlineto stroke
104 0 markstart inch moveto 0 marklength inch rlineto stroke
105 grestore
106 } bind def
108 /@PreviousShowpage /showpage load def
110 end def
113 % Cropmarks - in the default coordinate system.
116 /showpage {
117 gsave
118 CropmarkDict begin
119 initgraphics
120 marklinewidth setlinewidth
121 xcenter ycenter translate
122 scaling scaling scale
123 0 pagewidth inch 2 div pageheight inch 2 div cropmark
124 90 pagewidth inch neg 2 div pageheight inch 2 div cropmark
125 180 pagewidth inch neg 2 div pageheight inch 2 div neg cropmark
126 270 pagewidth inch 2 div pageheight inch 2 div neg cropmark
127 @PreviousShowpage
128 end
129 grestore
130 } bind def