% | |
% Tries to round clipping path dimensions, as stored in array pagebbox, so they | |
% match one of the known sizes in the papersizes array. Lower left coordinates | |
% are always set to 0. | |
% | |
/roundpagebbox { | |
7 dict begin | |
/papersizes [8.5 inch 11 inch 14 inch 17 inch] def | |
/mappapersize { | |
/val exch def | |
/slop .5 inch def | |
/diff slop def | |
/j 0 def | |
0 1 papersizes length 1 sub { | |
/i exch def | |
papersizes i get val sub abs | |
dup diff le {/diff exch def /j i def} {pop} ifelse | |
} for | |
diff slop lt {papersizes j get} {val} ifelse | |
} def | |
pagebbox 0 0 put | |
pagebbox 1 0 put | |
pagebbox dup 2 get mappapersize 2 exch put | |
pagebbox dup 3 get mappapersize 3 exch put | |
end | |
} bind def | |