| % |
| % Version 3.3.2 prologue for DMD bitmap files. |
| % |
| |
| /#copies 1 store |
| /aspectratio 1 def |
| /formsperpage 1 def |
| /landscape false def |
| /magnification 1 def |
| /margin 0 def |
| /orientation 0 def |
| /rotation 1 def |
| /screenres 100 def |
| /xoffset 0 def |
| /yoffset 0 def |
| |
| /useclippath true def |
| /pagebbox [0 0 612 792] def |
| |
| /inch {72 mul} bind def |
| /min {2 copy gt {exch} if pop} bind def |
| |
| /setup { |
| counttomark 2 idiv {def} repeat pop |
| |
| landscape {/orientation 90 orientation add def} if |
| |
| pagedimensions |
| xcenter ycenter translate |
| orientation rotation mul rotate |
| xoffset inch yoffset inch translate |
| magnification dup aspectratio mul scale |
| |
| /height height margin sub def |
| /width width margin sub def |
| } def |
| |
| /pagedimensions { |
| useclippath { |
| /pagebbox [clippath pathbbox newpath] def |
| } if |
| pagebbox aload pop |
| 4 -1 roll exch 4 1 roll 4 copy |
| landscape {4 2 roll} if |
| sub /width exch def |
| sub /height exch def |
| add 2 div /xcenter exch def |
| add 2 div /ycenter exch def |
| userdict /gotpagebbox true put |
| } def |
| |
| /pagesetup {/page exch def} bind def |
| |
| /bitmap { |
| /scanlines exch def |
| /scanlength exch def |
| /flip exch def |
| /v8format exch def |
| |
| /bytelength scanlength 8 idiv def |
| /picstr bytelength string def |
| /lpicstr bytelength string def |
| /bytelength bytelength 1 sub def |
| |
| gsave |
| |
| % First the overall scaling. |
| |
| height scanlines div width scanlength div min |
| 72 screenres div min |
| dup scale |
| |
| % Followed by the one for the unit square. |
| |
| scanlength neg 2 div scanlines neg 2 div translate |
| scanlength scanlines scale |
| v8format {getv8bitmap} {getbitmap} ifelse |
| grestore |
| } bind def |
| |
| /getbitmap { |
| scanlength scanlines flip [scanlength 0 0 scanlines neg 0 scanlines] { |
| 0 { |
| currentfile token pop dup |
| 0 eq {pop pop exit} if |
| /charcount exch def |
| picstr 1 index charcount getinterval |
| /repl exch def |
| currentfile repl readhexstring pop pop |
| charcount add |
| currentfile token pop { |
| picstr 1 index repl putinterval |
| charcount add |
| } repeat |
| } loop |
| picstr |
| } imagemask |
| } bind def |
| |
| /getv8bitmap { |
| scanlength scanlines flip not [scanlength 0 0 scanlines neg 0 scanlines] { |
| 0 { |
| currentfile token pop dup |
| 0 eq {pop pop exit} if |
| /charcount exch def |
| picstr 1 index charcount getinterval |
| /repl exch def |
| currentfile repl readhexstring pop pop |
| charcount add |
| currentfile token pop { |
| picstr 1 index repl putinterval |
| charcount add |
| } repeat |
| } loop |
| 0 0 picstr { |
| exch lpicstr exch get xor |
| lpicstr exch 2 index exch put |
| 1 add dup |
| } forall |
| pop pop lpicstr |
| } imagemask |
| } bind def |
| |
| /done {/lastpage where {pop lastpage} if} def |