Annotation of researchv10no/cmd/postscript/cropmarks/cropmarks.ps, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.