X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=cmyk.ps;h=73ecfda27ed6ae408ed30407cf03fb61d7905b6d;hb=80d5c2f420e30982360cd7398e63898e05111c9f;hp=143a6cd3b64c5787484a615b62643fdb54d12326;hpb=4fcbb2cc1702c3e1452d3100fc9c4ab032df757a;p=pandemic-rising-tide.git diff --git a/cmyk.ps b/cmyk.ps index 143a6cd..73ecfda 100644 --- a/cmyk.ps +++ b/cmyk.ps @@ -1,5 +1,31 @@ %! +/copyright [ + (cmyk.{ps,pdf}) + (v0.1) + (Copyright 2019) + (Ian Jackson) + (GNU AGPL v3+) + (NO WARRANTY) +] def + +% cmyk printer sample test +% +% Copyright (C) 2019 Ian Jackson +% +% This program is free software: you can redistribute it and/or modify +% it under the terms of the GNU Affero General Public License as +% published by the Free Software Foundation, either version 3 of the +% License, or (at your option) any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU Affero General Public License for more details. +% +% You can obtain a copy of the GNU Affero General Public License +% from . + % CYM K % % 9^3 0 1 2 9 pagex @ 9 x 9 x 3 = 243 @@ -18,9 +44,8 @@ % horiz M } M-C-K grid % vert' C } M-C-K grid -% 16^3 x 0 .. 3 1 Y per page -% 8^3 x 4 .. 7 4 Y per page 8 = 0 2 4 6 8 10 12 15 -% 8 10 13 15 +/debug false def +%/debug true def /paperx 595 def /papery 842 def @@ -38,32 +63,50 @@ % o = outer, i = inner, f = final -/margox 5 def -/margoy 5 def +/margox 2 def +/margoy 2 def /margix 2 def /margiy 2 def -/margbx 10 def -/margby 10 def +/margby 2 def % strid = stride /digits [ (0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (a) (b) (c) (d) (e) (f) ] def +/cctexty 8 def +/ccfont /Helvetica findfont cctexty scalefont def + /Helvetica findfont texty scalefont setfont +/ifdebug { debug exch if } def + /klist_get { klist blackx blacky knx mul add get } def -/kentry_moveto { - blackx stridix mul - blacky neg kmy add stridiy mul - szfy +0.5 mul add +/kentry_x { + textx + magentax stridox mul add + blackx stridix mul add + +} def +/kentry_y { + blacky neg kmy add stridiy mul + cyany neg gm add stridoy mul add +} def + +/cmy_xy2val { + maxval gm div mul round cvi +} def + +/maxvalshow { + (/) show + maxval (_) cvs show } def /someyellow { @@ -84,88 +127,70 @@ /szfx stridix margix sub def /szfy stridiy margiy sub def - 0 1 gm { /magenta exch def - 0 1 gm { /cyan exch def - - gsave - textx 0 translate + 0 1 gm { /cyany exch def + 0 1 kmy { /blacky exch def - magenta stridox mul - cyan neg gm add stridoy mul translate + 0 1 gm { /magentax exch def + 0 1 kmx { /blackx exch def + gsave szfy setlinewidth - - 0 1 kmx { /blackx exch def - 0 1 kmy { /blacky exch def - - cyan gn div - magenta gn div - yellow gn div + kentry_x kentry_y translate - klist_get base div + cyany gm div + magentax gm div + yellowval maxval div + klist_get maxval div + { 4 copy } ifdebug setcmykcolor - kentry_moveto moveto - + 0 szfy +0.5 mul moveto szfx 0 rlineto stroke + { gsave + /Helvetica findfont 6.5 scalefont setfont + 0 + 1 1 4 { + index + 0.5 ge { + pop 1 + } if } for + setgray + 0 1 3 { + 6.5 mul 0 exch moveto + 20 string cvs show } for + grestore } ifdebug - grestore - } for - } for - - gsave - - 0 gridoy translate - - text_l_p text_u_p and { - gsave - 0 0 moveto (K) show - - gsave - 0 stridoy neg translate - - 0 1 kmx { /blackx exch def - 0 1 kmy { /blacky exch def - kentry_moveto exch 0.65 mul exch moveto - klist_get digits exch get - show - } for - } for - grestore - grestore - } if - - text_u_p { - gsave - textx 0 translate - 0 0 moveto (Y) show ytext show - 1 1 gm { /magenta exch def - gm stridox mul 0 moveto - digits gm get show - } for - grestore + cyany 0 le blacky 0 le and { % top row + 0 setgray + 0 stridiy margoy add translate + 0 0 moveto + text_u } if grestore -} def - -/ranges { - - 0 1 gm { /yellow exch def - - /ytext digits yellow get def + } for + } for - someyellow + gsave + 0 kentry_y translate + 0 0 moveto + text_l + grestore - finish_page } for + } for + + gsave + 0 printareay texty sub translate + 0 0 moveto text_ul + grestore } def @@ -181,59 +206,140 @@ start_page start_page } def -/base 16 def +/maxval 8 def -/gm 15 def +/gm 8 def -/knx 2 def -/kny 2 def +/knx 1 def +/kny 3 def -/klist [ 0 1 2 3 ] def +/klist [ 0 1 2 ] def /ylist [ 0 1 2 3 5 8 11 15 ] def /gridox szox def /gridoy szoy def -/text_l_p true def -/text_u_p true def +/text_yellow { + (Y) show + yellowval (_) cvs show +} def -ranges +/text_ul { text_yellow } def -/ranges2 { +/text_cyan { + (C) show + cyany cmy_xy2val (_) cvs show +} def +/text_magenta { + (M) show + magentax cmy_xy2val (_) cvs show + magentax gm ge { maxvalshow } if +} def -/gm 8 def +/text_l { + 0 texty 0.25 mul translate + cyany 0 le { + (K) show + klist blacky get (_) cvs show + 0 texty moveto + } if + blacky 0 le { + text_cyan + cyany gm 2 sub ge { + gsave + ccfont setfont + cctexty 0.75 mul texty -0.75 mul translate + 90 rotate + 0 1 1 { /copyrighty exch def + 0 cctexty copyrighty neg mul moveto + copyright cyany neg gm add 2 mul copyrighty add get + dup stringwidth + neg exch neg exch rmoveto + show + } for + grestore + } if + } if +} def +/text_u { + text_magenta +} def -/gridox szox 2 div margbx sub def -/gridoy szoy 2 div margby sub def +/ranges { + 0 1 maxval { /yellowval exch def -0 1 1 { /yellowpage exch def -0 1 1 { /yellowx exch def -0 1 1 { /yellowy exch def + /ytext { digits yellow get } def -/yellowix - yellowpage 4 mul - yellowy neg 1 add 2 mul add - yellowx add def + someyellow -gsave - yellowx gridox margbx add mul - yellowy gridoy margby add mul - translate + finish_page + } for +} def +ranges - /yellow ylist yellowix get def +/gm 4 def +/gn 5 def - /text_l_p yellowx 0 le def - /text_u_p yellowy 1 ge def +/knx 2 def +/kny 1 def + +/text_u { + yellowy 0 le { + magentax 0 le { + (K) show + klist blackx get (_) cvs show + blackx knx 1 sub eq { + maxvalshow + } if + ( ) show + } if + blackx 0 le { + text_magenta + magentax gm ge { + gsave + ( ) show + ccfont setfont +% stridox gn mul stridoy sub 0 translate + % stridix 0.5 mul -0.25 cctexty mul 0 exch moveto + 0 1 1 { + ( ) show + copyright exch get + show + } for + grestore + } if + } if + } if +} def +/text_ul { +} def +/text_l { + 0 texty 0.5 mul translate + cyany 0 le { 0 texty moveto text_yellow } if + 0 0 moveto text_cyan +} def + +/ranges2 { + + /gridoy szoy margby 4 mul sub gn div def - someyellow -grestore + 0 1 gm { /yellowy exch def -} for -} for -finish_page -} for + /yellowval yellowy cmy_xy2val def + /text_u_p yellowy 1 ge def + gsave + 0 + yellowy neg gm add gridoy margby add mul + translate + someyellow + grestore + } for + + finish_page } def -/klist [ 4 5 6 7 ] def ranges2 -/klist [ 8 10 13 15 ] def ranges2 + /text_l_p true def + +/klist [ 3 4 ] def ranges2 +/klist [ 6 8 ] def /text_l_p false def ranges2