Annotation of researchv10no/cmd/postscript/cropmarks/cropmarks.ps, revision 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.