%% 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 defend 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
%
% 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