123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- %
- % Center pages, based on pageheight and pagewidth, and redefine showpage
- % to put cropmarks at each corner. Device dependent code to expand the
- % paper size goes in procedure expandpagesize. Currently only supports
- % a Linotronic 200P typesetter using 12 inch wide paper. You'll have to
- % add code to expandpagesize to support different typesetters or even a
- % 200P that's running differently.
- %
- /CropmarkDict 40 dict dup begin
- /expandpage true def
- /magnification 1 def
- /pageheight 11.0 def
- /pagewidth 8.5 def
- /scaletofit false def
- /scaling 1 def
- /marklength .3 def % inches
- /markstart .125 def % inches
- /markend .04 def % inches
- /marklinewidth .25 def % points
- /inch {72 mul} def
- /min {2 copy gt {exch} if pop} def
- /max {2 copy lt {exch} if pop} def
- /setup {
- /markspace markstart marklength add markend add inch marklinewidth add def
- /totalheight pageheight inch markspace 2 mul add def
- /totalwidth pagewidth inch markspace 2 mul add def
- pagedimensions
- checkpagesize
- /scaling getscaling def
- xcenter ycenter translate
- scaling scaling scale
- pagewidth inch 2 div neg pageheight inch 2 div neg translate
- clippage
- } def
- /pagedimensions {
- clippath pathbbox newpath
- 4 -1 roll exch 4 1 roll 4 copy
- sub /width exch def
- sub /height exch def
- add 2 div /xcenter exch def
- add 2 div /ycenter exch def
- } def
- /checkpagesize {
- height totalheight lt width totalwidth lt or expandpage and {
- expandpagesize
- pagedimensions
- } if
- } def
- /expandpagesize { % device dependent code
- /Product statusdict begin /product where {pop product}{()} ifelse end def
- Product (Linotype) eq { % Linotronic 200P and other models?
- statusdict /setpageparams known {
- /maxwidth 12.0 inch def % 12 inch wide paper?
- totalheight maxwidth le {
- totalheight
- totalwidth
- maxwidth totalheight sub 2 div
- 0
- }{
- totalwidth maxwidth min
- totalheight
- maxwidth totalwidth maxwidth min sub 2 div
- 1
- } ifelse
- statusdict /setpageparams get exec
- } if
- } if
- } def
- /getscaling {
- scaletofit
- {height totalheight div width totalwidth div min 1 min}
- {1}
- ifelse
- } def
- /clippage {
- newpath
- 0 0 moveto
- pagewidth inch 0 rlineto
- 0 pageheight inch rlineto
- pagewidth neg inch 0 rlineto
- closepath clip
- newpath
- } def
- /cropmark {
- gsave
- translate
- rotate
- marklinewidth dup translate
- 0 0 transform round exch round exch itransform translate
- markstart inch 0 moveto marklength inch 0 rlineto stroke
- 0 markstart inch moveto 0 marklength inch rlineto stroke
- grestore
- } bind def
- /@PreviousShowpage /showpage load def
- end def
- %
- % Cropmarks - in the default coordinate system.
- %
- /showpage {
- gsave
- CropmarkDict begin
- initgraphics
- marklinewidth setlinewidth
- xcenter ycenter translate
- scaling scaling scale
- 0 pagewidth inch 2 div pageheight inch 2 div cropmark
- 90 pagewidth inch neg 2 div pageheight inch 2 div cropmark
- 180 pagewidth inch neg 2 div pageheight inch 2 div neg cropmark
- 270 pagewidth inch 2 div pageheight inch 2 div neg cropmark
- @PreviousShowpage
- end
- grestore
- } bind def
|