aboutsummaryrefslogtreecommitdiff
path: root/postscript/prologues/roundpage.ps
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2004-05-15 23:45:13 +0000
committerrsc <devnull@localhost>2004-05-15 23:45:13 +0000
commit13f7391e4a38634221f4a63da9f58f58473e77b0 (patch)
tree65b538843c8fbfbb5000de18ad6145ce82531781 /postscript/prologues/roundpage.ps
parent36a9115fcbe8ddb0baacc07f8c33add9a9f7b307 (diff)
downloadplan9port-13f7391e4a38634221f4a63da9f58f58473e77b0.tar.gz
plan9port-13f7391e4a38634221f4a63da9f58f58473e77b0.tar.bz2
plan9port-13f7391e4a38634221f4a63da9f58f58473e77b0.zip
More files!
Diffstat (limited to 'postscript/prologues/roundpage.ps')
-rw-r--r--postscript/prologues/roundpage.ps30
1 files changed, 30 insertions, 0 deletions
diff --git a/postscript/prologues/roundpage.ps b/postscript/prologues/roundpage.ps
new file mode 100644
index 00000000..68d2d443
--- /dev/null
+++ b/postscript/prologues/roundpage.ps
@@ -0,0 +1,30 @@
+%
+% 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
+