cropmarks.ps (3031B)
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 % 9 10 /CropmarkDict 40 dict dup begin 11 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 18 19 /marklength .3 def % inches 20 /markstart .125 def % inches 21 /markend .04 def % inches 22 /marklinewidth .25 def % points 23 24 /inch {72 mul} def 25 /min {2 copy gt {exch} if pop} def 26 /max {2 copy lt {exch} if pop} def 27 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 32 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 41 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 50 51 /checkpagesize { 52 height totalheight lt width totalwidth lt or expandpage and { 53 expandpagesize 54 pagedimensions 55 } if 56 } def 57 58 /expandpagesize { % device dependent code 59 /Product statusdict begin /product where {pop product}{()} ifelse end def 60 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 79 80 /getscaling { 81 scaletofit 82 {height totalheight div width totalwidth div min 1 min} 83 {1} 84 ifelse 85 } def 86 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 96 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 107 108 /@PreviousShowpage /showpage load def 109 110 end def 111 112 % 113 % Cropmarks - in the default coordinate system. 114 % 115 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 131