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

