|
|
1.1 ! root 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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.