home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / gnu / fax-3.2.1 / ps / pstofaxbits.ps < prev    next >
Encoding:
Text File  |  1992-07-31  |  11.5 KB  |  390 lines

  1. %! PS-Adobe-2.0
  2. %%
  3. %% %W% %G% %U%
  4. %%
  5. %% For GhostScript 2.0
  6. %% Program for reading a .ps file and writing out a PPM file.
  7. %% Original version by Phillip Conrad - Perfect Byte, Inc.
  8. %% Modified 06/26/90 for a color file
  9. %% Modified on 08/02/90 for using the CORRECT color map.
  10. %% Modified by L. Peter Deutsch -- Aladdin Enterprises -- 08/02/90
  11. %% Modified by L. Peter Deutsch -- Aladdin Enterprises -- 08/25/90 --
  12. %%   converted from a one-shot program to a utility package,
  13. %%   designed to be used from an interactive terminal.
  14. %% Modified by Henry Minsky 11/03/90
  15. %%   for each showpage, it writes out a ppm file with name filename.ppm.N
  16. %%   where N increments each showpage, starting at 1
  17. %% Modified by David Siegel 7/10/91
  18. %%   to use FileNameIn and FileNameOut, for more logical use
  19. %%
  20. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  21.  
  22. %%%%%% Define the directory for holding the PPM information
  23.  
  24. /ppmdict 30 dict def
  25. ppmdict begin
  26.  
  27.   /Horz_dpi 205 def        % fax fine resolution mode
  28.   /Vert_dpi 196 def
  29.   /Palette1 [1 1 1 rgbcolor 0 0 0 rgbcolor] def
  30.   /Palette8
  31.     [
  32. %========== Below We put all 256 color entries as color objects ======
  33. %========== Colors were taken from the x-windows default colors ======
  34. 0.000   0.000   0.000   rgbcolor
  35. 1.000   1.000   1.000   rgbcolor
  36. 0.659   0.659   0.659   rgbcolor
  37. 0.922   0.922   0.922   rgbcolor
  38. 0.361   0.361   0.361   rgbcolor
  39. 0.216   0.216   0.216   rgbcolor
  40. 0.373   0.573   0.620   rgbcolor
  41. 0.522   0.800   0.867   rgbcolor
  42. 0.204   0.314   0.341   rgbcolor
  43. 0.122   0.188   0.204   rgbcolor
  44. 0.447   0.620   0.996   rgbcolor
  45. 0.627   0.867   1.000   rgbcolor
  46. 0.247   0.341   0.549   rgbcolor
  47. 0.149   0.204   0.329   rgbcolor
  48. 0.380   0.525   0.847   rgbcolor
  49. 0.184   0.184   0.392   rgbcolor
  50. 1.000   1.000   0.000   rgbcolor
  51. 0.690   0.886   1.000   rgbcolor
  52. 1.000   0.000   0.000   rgbcolor
  53. 0.502   0.502   0.502   rgbcolor
  54. 0.937   0.875   0.518   rgbcolor
  55. 0.333   0.996   0.333   rgbcolor
  56. 0.996   0.000   0.000   rgbcolor
  57. 0.400   0.996   0.341   rgbcolor
  58. 0.996   0.596   0.478   rgbcolor
  59. 0.996   0.792   0.443   rgbcolor
  60. 0.996   0.996   0.996   rgbcolor
  61. 0.996   0.553   0.486   rgbcolor
  62. 0.996   0.663   0.467   rgbcolor
  63. 0.996   0.769   0.447   rgbcolor
  64. 0.996   0.722   0.459   rgbcolor
  65. 0.996   0.576   0.482   rgbcolor
  66. 0.996   0.584   0.478   rgbcolor
  67. 0.996   0.710   0.459   rgbcolor
  68. 0.596   0.996   0.365   rgbcolor
  69. 0.996   0.545   0.490   rgbcolor
  70. 0.996   0.651   0.467   rgbcolor
  71. 0.996   0.698   0.463   rgbcolor
  72. 0.996   0.686   0.463   rgbcolor
  73. 0.996   0.745   0.455   rgbcolor
  74. 0.996   0.514   0.494   rgbcolor
  75. 0.996   0.988   0.416   rgbcolor
  76. 0.996   0.047   0.604   rgbcolor
  77. 0.996   0.012   0.314   rgbcolor
  78. 0.996   0.031   0.710   rgbcolor
  79. 0.404   0.082   0.996   rgbcolor
  80. 0.996   0.984   0.247   rgbcolor
  81. 0.996   0.329   0.294   rgbcolor
  82. 0.000   0.753   0.000   rgbcolor
  83. 0.125   0.753   0.000   rgbcolor
  84. 0.251   0.753   0.000   rgbcolor
  85. 0.376   0.753   0.000   rgbcolor
  86. 0.502   0.753   0.000   rgbcolor
  87. 0.627   0.753   0.000   rgbcolor
  88. 0.753   0.753   0.000   rgbcolor
  89. 0.878   0.753   0.000   rgbcolor
  90. 0.000   0.878   0.000   rgbcolor
  91. 0.125   0.878   0.000   rgbcolor
  92. 0.251   0.878   0.000   rgbcolor
  93. 0.376   0.878   0.000   rgbcolor
  94. 0.502   0.878   0.000   rgbcolor
  95. 0.627   0.878   0.000   rgbcolor
  96. 0.753   0.878   0.000   rgbcolor
  97. 0.878   0.878   0.000   rgbcolor
  98. 0.000   0.000   0.251   rgbcolor
  99. 0.125   0.000   0.251   rgbcolor
  100. 0.251   0.000   0.251   rgbcolor
  101. 0.376   0.000   0.251   rgbcolor
  102. 0.502   0.000   0.251   rgbcolor
  103. 0.627   0.000   0.251   rgbcolor
  104. 0.753   0.000   0.251   rgbcolor
  105. 0.878   0.000   0.251   rgbcolor
  106. 0.000   0.125   0.251   rgbcolor
  107. 0.125   0.125   0.251   rgbcolor
  108. 0.251   0.125   0.251   rgbcolor
  109. 0.376   0.125   0.251   rgbcolor
  110. 0.502   0.125   0.251   rgbcolor
  111. 0.627   0.125   0.251   rgbcolor
  112. 0.753   0.125   0.251   rgbcolor
  113. 0.878   0.125   0.251   rgbcolor
  114. 0.000   0.251   0.251   rgbcolor
  115. 0.125   0.251   0.251   rgbcolor
  116. 0.251   0.251   0.251   rgbcolor
  117. 0.376   0.251   0.251   rgbcolor
  118. 0.502   0.251   0.251   rgbcolor
  119. 0.627   0.251   0.251   rgbcolor
  120. 0.753   0.251   0.251   rgbcolor
  121. 0.878   0.251   0.251   rgbcolor
  122. 0.000   0.376   0.251   rgbcolor
  123. 0.125   0.376   0.251   rgbcolor
  124. 0.251   0.376   0.251   rgbcolor
  125. 0.376   0.376   0.251   rgbcolor
  126. 0.502   0.376   0.251   rgbcolor
  127. 0.627   0.376   0.251   rgbcolor
  128. 0.753   0.376   0.251   rgbcolor
  129. 0.878   0.376   0.251   rgbcolor
  130. 0.000   0.502   0.251   rgbcolor
  131. 0.125   0.502   0.251   rgbcolor
  132. 0.251   0.502   0.251   rgbcolor
  133. 0.376   0.502   0.251   rgbcolor
  134. 0.502   0.502   0.251   rgbcolor
  135. 0.627   0.502   0.251   rgbcolor
  136. 0.753   0.502   0.251   rgbcolor
  137. 0.878   0.502   0.251   rgbcolor
  138. 0.000   0.627   0.251   rgbcolor
  139. 0.125   0.627   0.251   rgbcolor
  140. 0.251   0.627   0.251   rgbcolor
  141. 0.376   0.627   0.251   rgbcolor
  142. 0.502   0.627   0.251   rgbcolor
  143. 0.627   0.627   0.251   rgbcolor
  144. 0.753   0.627   0.251   rgbcolor
  145. 0.878   0.627   0.251   rgbcolor
  146. 0.000   0.753   0.251   rgbcolor
  147. 0.125   0.753   0.251   rgbcolor
  148. 0.251   0.753   0.251   rgbcolor
  149. 0.376   0.753   0.251   rgbcolor
  150. 0.502   0.753   0.251   rgbcolor
  151. 0.627   0.753   0.251   rgbcolor
  152. 0.753   0.753   0.251   rgbcolor
  153. 0.878   0.753   0.251   rgbcolor
  154. 0.000   0.878   0.251   rgbcolor
  155. 0.125   0.878   0.251   rgbcolor
  156. 0.251   0.878   0.251   rgbcolor
  157. 0.376   0.878   0.251   rgbcolor
  158. 0.502   0.878   0.251   rgbcolor
  159. 0.627   0.878   0.251   rgbcolor
  160. 0.753   0.878   0.251   rgbcolor
  161. 0.878   0.878   0.251   rgbcolor
  162. 0.000   0.000   0.502   rgbcolor
  163. 0.125   0.000   0.502   rgbcolor
  164. 0.251   0.000   0.502   rgbcolor
  165. 0.376   0.000   0.502   rgbcolor
  166. 0.502   0.000   0.502   rgbcolor
  167. 0.627   0.000   0.502   rgbcolor
  168. 0.753   0.000   0.502   rgbcolor
  169. 0.878   0.000   0.502   rgbcolor
  170. 0.000   0.125   0.502   rgbcolor
  171. 0.125   0.125   0.502   rgbcolor
  172. 0.251   0.125   0.502   rgbcolor
  173. 0.376   0.125   0.502   rgbcolor
  174. 0.502   0.125   0.502   rgbcolor
  175. 0.627   0.125   0.502   rgbcolor
  176. 0.753   0.125   0.502   rgbcolor
  177. 0.878   0.125   0.502   rgbcolor
  178. 0.000   0.251   0.502   rgbcolor
  179. 0.125   0.251   0.502   rgbcolor
  180. 0.251   0.251   0.502   rgbcolor
  181. 0.376   0.251   0.502   rgbcolor
  182. 0.502   0.251   0.502   rgbcolor
  183. 0.627   0.251   0.502   rgbcolor
  184. 0.753   0.251   0.502   rgbcolor
  185. 0.878   0.251   0.502   rgbcolor
  186. 0.000   0.376   0.502   rgbcolor
  187. 0.125   0.376   0.502   rgbcolor
  188. 0.251   0.376   0.502   rgbcolor
  189. 0.376   0.376   0.502   rgbcolor
  190. 0.502   0.376   0.502   rgbcolor
  191. 0.627   0.376   0.502   rgbcolor
  192. 0.753   0.376   0.502   rgbcolor
  193. 0.878   0.376   0.502   rgbcolor
  194. 0.000   0.502   0.502   rgbcolor
  195. 0.125   0.502   0.502   rgbcolor
  196. 0.251   0.502   0.502   rgbcolor
  197. 0.376   0.502   0.502   rgbcolor
  198. 0.502   0.502   0.502   rgbcolor
  199. 0.627   0.502   0.502   rgbcolor
  200. 0.753   0.502   0.502   rgbcolor
  201. 0.878   0.502   0.502   rgbcolor
  202. 0.000   0.627   0.502   rgbcolor
  203. 0.125   0.627   0.502   rgbcolor
  204. 0.251   0.627   0.502   rgbcolor
  205. 0.376   0.627   0.502   rgbcolor
  206. 0.502   0.627   0.502   rgbcolor
  207. 0.627   0.627   0.502   rgbcolor
  208. 0.753   0.627   0.502   rgbcolor
  209. 0.878   0.627   0.502   rgbcolor
  210. 0.000   0.753   0.502   rgbcolor
  211. 0.125   0.753   0.502   rgbcolor
  212. 0.251   0.753   0.502   rgbcolor
  213. 0.376   0.753   0.502   rgbcolor
  214. 0.502   0.753   0.502   rgbcolor
  215. 0.627   0.753   0.502   rgbcolor
  216. 0.753   0.753   0.502   rgbcolor
  217. 0.878   0.753   0.502   rgbcolor
  218. 0.000   0.878   0.502   rgbcolor
  219. 0.125   0.878   0.502   rgbcolor
  220. 0.251   0.878   0.502   rgbcolor
  221. 0.376   0.878   0.502   rgbcolor
  222. 0.502   0.878   0.502   rgbcolor
  223. 0.627   0.878   0.502   rgbcolor
  224. 0.753   0.878   0.502   rgbcolor
  225. 0.878   0.878   0.502   rgbcolor
  226. 0.000   0.000   0.753   rgbcolor
  227. 0.125   0.000   0.753   rgbcolor
  228. 0.251   0.000   0.753   rgbcolor
  229. 0.376   0.000   0.753   rgbcolor
  230. 0.502   0.000   0.753   rgbcolor
  231. 0.627   0.000   0.753   rgbcolor
  232. 0.753   0.000   0.753   rgbcolor
  233. 0.878   0.000   0.753   rgbcolor
  234. 0.000   0.125   0.753   rgbcolor
  235. 0.125   0.125   0.753   rgbcolor
  236. 0.251   0.125   0.753   rgbcolor
  237. 0.376   0.125   0.753   rgbcolor
  238. 0.502   0.125   0.753   rgbcolor
  239. 0.627   0.125   0.753   rgbcolor
  240. 0.753   0.125   0.753   rgbcolor
  241. 0.878   0.125   0.753   rgbcolor
  242. 0.000   0.251   0.753   rgbcolor
  243. 0.125   0.251   0.753   rgbcolor
  244. 0.251   0.251   0.753   rgbcolor
  245. 0.376   0.251   0.753   rgbcolor
  246. 0.502   0.251   0.753   rgbcolor
  247. 0.627   0.251   0.753   rgbcolor
  248. 0.753   0.251   0.753   rgbcolor
  249. 0.878   0.251   0.753   rgbcolor
  250. 0.000   0.376   0.753   rgbcolor
  251. 0.125   0.376   0.753   rgbcolor
  252. 0.251   0.376   0.753   rgbcolor
  253. 0.376   0.376   0.753   rgbcolor
  254. 0.502   0.376   0.753   rgbcolor
  255. 0.627   0.376   0.753   rgbcolor
  256. 0.753   0.376   0.753   rgbcolor
  257. 0.878   0.376   0.753   rgbcolor
  258. 0.000   0.502   0.753   rgbcolor
  259. 0.125   0.502   0.753   rgbcolor
  260. 0.251   0.502   0.753   rgbcolor
  261. 0.376   0.502   0.753   rgbcolor
  262. 0.502   0.502   0.753   rgbcolor
  263. 0.627   0.502   0.753   rgbcolor
  264. 0.753   0.502   0.753   rgbcolor
  265. 0.878   0.502   0.753   rgbcolor
  266. 0.000   0.627   0.753   rgbcolor
  267. 0.125   0.627   0.753   rgbcolor
  268. 0.251   0.627   0.753   rgbcolor
  269. 0.376   0.627   0.753   rgbcolor
  270. 0.502   0.627   0.753   rgbcolor
  271. 0.627   0.627   0.753   rgbcolor
  272. 0.753   0.627   0.753   rgbcolor
  273. 0.878   0.627   0.753   rgbcolor
  274. 0.000   0.753   0.753   rgbcolor
  275. 0.125   0.753   0.753   rgbcolor
  276. 0.251   0.753   0.753   rgbcolor
  277. 0.376   0.753   0.753   rgbcolor
  278. 0.502   0.753   0.753   rgbcolor
  279. 0.627   0.753   0.753   rgbcolor
  280. 0.753   0.753   0.753   rgbcolor
  281. 0.878   0.753   0.753   rgbcolor
  282. 0.000   0.878   0.753   rgbcolor
  283. 0.125   0.878   0.753   rgbcolor
  284. 0.251   0.878   0.753   rgbcolor
  285. 0.376   0.878   0.753   rgbcolor
  286. 0.502   0.878   0.753   rgbcolor
  287. 0.627   0.878   0.753   rgbcolor
  288. 0.753   0.878   0.753   rgbcolor
  289. 0.878   0.878   0.753   rgbcolor
  290.     ] def
  291.  
  292.   % Turn off the prompt
  293.   /prompt {} userdict begin def end
  294.  
  295.   % Redefine copypage and showpage appropriately
  296.   /copypage
  297.    { ppmdict begin
  298.     /PageCount PageCount 1 add def
  299.  
  300.     FileNameOut (.ppm.) concatstrings
  301.     PageCount (xxxxxx) cvs concatstrings
  302.  
  303.     /PageFileName exch def
  304.  
  305.     PageFileName (w) file
  306.         /FileDescOut exch def
  307.  
  308.     FileDescOut Device writeppmfile
  309.     FileDescOut closefile
  310.  
  311.     /WrotePage true def
  312.      end
  313.    } userdict begin def end
  314.  
  315.   /showpage
  316.    { copypage erasepage initgraphics
  317.    } userdict begin def end
  318.  
  319.   % the main procedure
  320.   % <filename> <palette> Convert -
  321.   /Convert            
  322.    { /Palette     exch def
  323.      /FileNameOut exch def
  324.      /FileNameIn  exch def
  325.  
  326.      /PageCount 0 def
  327.  
  328.      /ScaleX Horz_dpi 72 div def
  329.      /ScaleY Vert_dpi 72 div def
  330.  
  331.      /Width 85 Horz_dpi mul 5 add 10 div cvi def % add 5 to round up!
  332.      /Height 11 Vert_dpi mul def
  333.  
  334.      [ScaleX 0.0 0.0 ScaleY neg 0.0 Height]
  335.      Width Height Palette makeimagedevice
  336.        /Device exch def
  337.      Device setdevice
  338.  
  339.      /WrotePage false def
  340.  
  341.      % For running the file, remove ppmdict from the dict stack
  342.      FileNameIn end run        % ppmdict
  343.  
  344.      ppmdict begin
  345.      WrotePage not { showpage } if    % make sure the page got written
  346.      end            % ppmdict
  347.  
  348.    } def
  349.  
  350. end                % ppmdict
  351.  
  352. %%%%%% Define the user-callable procedures
  353.  
  354. /ppmsetdensity
  355.  { ppmdict begin
  356.    /Vert_dpi exch def
  357.    /Horz_dpi exch def
  358.    end
  359.  } def
  360.  
  361. /ppmsetprefix
  362.  { ppmdict begin
  363.    /OutFilePrefix exch def
  364.    end
  365.  } def
  366.  
  367. /ppm1run
  368.  { ppmdict begin   Palette1 Convert
  369.  } def
  370.  
  371. /ppm8run
  372.  { ppmdict begin   Palette8 Convert
  373.  } def
  374.  
  375. /ppm24run
  376.  { ppmdict begin   null Convert
  377.  } def
  378.  
  379. %%%%%% Display instructions for the user.
  380.  
  381. % (Usage: (file) ppmNrun\n) print
  382. % (   converts file.ps to file.ppm (single page),\n) print
  383. % (     or file.1ppm, file.2ppm, ... (multi page).\n) print
  384. % (   N is # of bits per pixel (1, 8, or 24).\n) print
  385. % (Examples: (golfer) ppm1run   ..or..   (escher) ppm8run\n) print
  386. % (Optional commands you can give first:\n) print
  387. % (   horiz_DPI vert_DPI ppmsetdensity\n) print
  388. % (   (dirname/) ppmsetprefix\n) print
  389. % flush
  390.