131 lines · 3.0 KB · Text
RawDownload
%% 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