ref: da32d98fb211e126b5c183b294e8b7d68060c541
dir: /sys/lib/postscript/prologues/postdmd.ps/
% % 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