|
|
1.1 ! root 1: % ! 2: % Version 3.3.2 prologue for DMD bitmap files. ! 3: % ! 4: ! 5: /#copies 1 store ! 6: /aspectratio 1 def ! 7: /formsperpage 1 def ! 8: /landscape false def ! 9: /magnification 1 def ! 10: /margin 0 def ! 11: /orientation 0 def ! 12: /rotation 1 def ! 13: /screenres 100 def ! 14: /xoffset 0 def ! 15: /yoffset 0 def ! 16: ! 17: /useclippath true def ! 18: /pagebbox [0 0 612 792] def ! 19: ! 20: /inch {72 mul} bind def ! 21: /min {2 copy gt {exch} if pop} bind def ! 22: ! 23: /setup { ! 24: counttomark 2 idiv {def} repeat pop ! 25: ! 26: landscape {/orientation 90 orientation add def} if ! 27: ! 28: pagedimensions ! 29: xcenter ycenter translate ! 30: orientation rotation mul rotate ! 31: xoffset inch yoffset inch translate ! 32: magnification dup aspectratio mul scale ! 33: ! 34: /height height margin sub def ! 35: /width width margin sub def ! 36: } def ! 37: ! 38: /pagedimensions { ! 39: useclippath { ! 40: /pagebbox [clippath pathbbox newpath] def ! 41: } if ! 42: pagebbox aload pop ! 43: 4 -1 roll exch 4 1 roll 4 copy ! 44: landscape {4 2 roll} if ! 45: sub /width exch def ! 46: sub /height exch def ! 47: add 2 div /xcenter exch def ! 48: add 2 div /ycenter exch def ! 49: userdict /gotpagebbox true put ! 50: } def ! 51: ! 52: /pagesetup {/page exch def} bind def ! 53: ! 54: /bitmap { ! 55: /scanlines exch def ! 56: /scanlength exch def ! 57: /flip exch def ! 58: /v8format exch def ! 59: ! 60: /bytelength scanlength 8 idiv def ! 61: /picstr bytelength string def ! 62: /lpicstr bytelength string def ! 63: /bytelength bytelength 1 sub def ! 64: ! 65: gsave ! 66: ! 67: % First the overall scaling. ! 68: ! 69: height scanlines div width scanlength div min ! 70: 72 screenres div min ! 71: dup scale ! 72: ! 73: % Followed by the one for the unit square. ! 74: ! 75: scanlength neg 2 div scanlines neg 2 div translate ! 76: scanlength scanlines scale ! 77: v8format {getv8bitmap} {getbitmap} ifelse ! 78: grestore ! 79: } bind def ! 80: ! 81: /getbitmap { ! 82: scanlength scanlines flip [scanlength 0 0 scanlines neg 0 scanlines] { ! 83: 0 { ! 84: currentfile token pop dup ! 85: 0 eq {pop pop exit} if ! 86: /charcount exch def ! 87: picstr 1 index charcount getinterval ! 88: /repl exch def ! 89: currentfile repl readhexstring pop pop ! 90: charcount add ! 91: currentfile token pop { ! 92: picstr 1 index repl putinterval ! 93: charcount add ! 94: } repeat ! 95: } loop ! 96: picstr ! 97: } imagemask ! 98: } bind def ! 99: ! 100: /getv8bitmap { ! 101: scanlength scanlines flip not [scanlength 0 0 scanlines neg 0 scanlines] { ! 102: 0 { ! 103: currentfile token pop dup ! 104: 0 eq {pop pop exit} if ! 105: /charcount exch def ! 106: picstr 1 index charcount getinterval ! 107: /repl exch def ! 108: currentfile repl readhexstring pop pop ! 109: charcount add ! 110: currentfile token pop { ! 111: picstr 1 index repl putinterval ! 112: charcount add ! 113: } repeat ! 114: } loop ! 115: 0 0 picstr { ! 116: exch lpicstr exch get xor ! 117: lpicstr exch 2 index exch put ! 118: 1 add dup ! 119: } forall ! 120: pop pop lpicstr ! 121: } imagemask ! 122: } bind def ! 123: ! 124: /done {/lastpage where {pop lastpage} if} def
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.