home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3.4.17 [SPARC, PA-RISC] / nextstep33_risc.iso / NextLibrary / PrinterTypes / English.lproj / Apple_LaserWriter.ppd < prev    next >
PostScript Printer Description  |  1995-02-06  |  11KB  |  351 lines

  1. *PPD-Adobe: "4.0"
  2. *% Adobe Systems PostScript(R) Printer Description File
  3. *% Copyright 1987-1993 Adobe Systems Incorporated. 
  4. *% All Rights Reserved. 
  5. *% Permission is granted for redistribution of this file as
  6. *% long as this copyright notice is intact and the contents
  7. *% of the file is not altered in any way from its original form.
  8. *% End of Copyright statement
  9. *FormatVersion: "4.0"
  10. *FileVersion: "3.3"
  11. *PCFileName: "APPLE230.PPD"
  12. *LanguageVersion: English
  13. *Product: "(LaserWriter)"
  14. *PSVersion: "(23.0) 0"
  15. *ModelName: "Apple LaserWriter"
  16. *NickName: "Apple LaserWriter v23.0"
  17.  
  18. *% General Information and Defaults ===============
  19. *ColorDevice: False
  20. *DefaultColorSpace: Gray
  21. *FreeVM: "173936"
  22. *LanguageLevel: "1"
  23. *VariablePaperSize: False
  24. *FileSystem: False
  25. *Throughput: "8"
  26. *Password: "0"
  27. *ExitServer: "
  28.   count 0 eq {  % is the password on the stack?
  29.     true
  30.   }{
  31.     dup    % potential password
  32.     statusdict /checkpassword get exec not
  33.   } ifelse
  34.   {  %  if no password or not valid
  35.     (WARNING : Cannot perform the exitserver command.) =
  36.     (Password supplied is not valid.) =
  37.     (Please contact the author of this software.) = flush
  38.     quit
  39.   } if
  40.   serverdict /exitserver get exec
  41. "
  42. *End
  43.  
  44. *Reset: "
  45.   count 0 eq {  % is the password on the stack?
  46.     true
  47.   }{
  48.     dup    % potential password
  49.     statusdict /checkpassword get exec not
  50.   } ifelse
  51.   {  %  if no password or not valid
  52.     (WARNING : Cannot reset printer.) =
  53.     (Password supplied is not valid.) =
  54.     (Please contact the author of this software.) = flush
  55.     quit
  56.   } if
  57.   serverdict /exitserver get exec
  58.   systemdict /quit get exec
  59.   (WARNING : Printer Reset Failed.) = flush
  60. "
  61. *End
  62.  
  63. *DefaultResolution: 300dpi
  64. *?Resolution: "
  65. save
  66.   initgraphics
  67.   0 0 moveto currentpoint matrix defaultmatrix transform
  68.   0 72 lineto currentpoint matrix defaultmatrix transform
  69.   3 -1 roll sub dup mul
  70.   3 1 roll exch sub dup mul
  71.   add sqrt round cvi
  72.   (          ) cvs print (dpi) = flush
  73. restore
  74. "
  75. *End
  76.  
  77. *% Halftone Information ===============
  78. *ScreenFreq: "60.0"
  79. *ScreenAngle: "45.0"
  80. *DefaultScreenProc: Dot
  81. *ScreenProc Dot: "
  82. {dup mul exch dup mul add 1.0 exch sub }
  83. "
  84. *End
  85. *ScreenProc Line: "{ pop }"
  86. *ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"
  87.  
  88. *DefaultTransfer: Null
  89. *Transfer Null: "{ }"
  90. *Transfer Null.Inverse: "{ 1 exch sub }"
  91.  
  92. *% Paper Handling ===================
  93. *% Use these entries to set paper size most of the time, unless there is
  94. *% specific reason to use PageRegion.
  95. *OpenUI *PageSize: PickOne
  96. *OrderDependency: 30 AnySetup *PageSize
  97. *DefaultPageSize: Letter
  98. *PageSize Letter/US Letter: "letter"
  99. *PageSize Legal/US Legal: "legal"
  100. *PageSize LetterSmall/US Letter Small: "lettersmall"
  101. *PageSize LegalSmall/US Legal Small: "legal"
  102. *PageSize A4: "a4"
  103. *PageSize Monarch/Monarch Envelope Edge Fed: "letter"
  104. *PageSize Com10/Com10 Envelope Edge Fed: "letter"
  105. *?PageSize: "
  106. save
  107.   [(Letter)(Legal)] statusdict /pagetype get exec
  108.   {get} stopped { pop pop (Unknown)} if = flush
  109. restore
  110. "
  111. *End
  112. *CloseUI: *PageSize
  113.  
  114. *% These entries will set up the frame buffer. Usually used with manual feed.
  115. *OpenUI *PageRegion: PickOne
  116. *OrderDependency: 40 AnySetup *PageRegion
  117. *DefaultPageRegion: Letter
  118. *PageRegion Letter/US Letter: "letter"
  119. *PageRegion Legal/US Legal: "legal"
  120. *PageRegion LetterSmall/US Letter Small: "lettersmall"
  121. *PageRegion LegalSmall/US Legal Small: "legal"
  122. *PageRegion A4: "a4"
  123. *PageRegion Monarch/Monarch Envelope Edge Fed: "letter"
  124. *PageRegion Com10/Com10 Envelope Edge Fed: "letter"
  125. *CloseUI: *PageRegion
  126.  
  127. *% The following entries provide information about specific paper keywords.
  128. *DefaultImageableArea: Letter
  129. *ImageableArea Letter/US Letter: "18 8 593 784 "
  130. *ImageableArea Legal/US Legal: "65 37 547 972 "
  131. *ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
  132. *ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
  133. *ImageableArea A4:"17 22 578 820 "
  134. *ImageableArea Monarch/Monarch Envelope Edge Fed: "19 269 274 773 "
  135. *ImageableArea Com10/Com10 Envelope Edge Fed: "19 125 292 773 "
  136. *?ImageableArea: "
  137. save
  138.   /cvp {(                ) cvs print ( ) print } bind def
  139.   /upperright {10000 mul floor 10000 div} bind def
  140.   /lowerleft {10000 mul ceiling 10000 div} bind def
  141.   newpath clippath pathbbox
  142.   4 -2 roll exch 2 {lowerleft cvp} repeat
  143.   exch 2 {upperright cvp} repeat flush
  144.  restore
  145. "
  146. *End
  147.  
  148. *% These provide the physical dimensions of the paper (by keyword)
  149. *DefaultPaperDimension: Letter
  150. *PaperDimension Letter/US Letter: "612 792"
  151. *PaperDimension Legal/US Legal: "612 1008"
  152. *PaperDimension LetterSmall/US Letter Small: "612 792"
  153. *PaperDimension LegalSmall/US Legal Small: "612 1008"
  154. *PaperDimension A4: "595 842"
  155. *PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
  156. *PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
  157.  
  158. *RequiresPageRegion All: True
  159. *OpenUI *InputSlot: PickOne
  160. *OrderDependency: 20 AnySetup *InputSlot
  161. *DefaultInputSlot: Cassette
  162. *InputSlot Cassette: ""
  163. *CloseUI: *InputSlot
  164.  
  165. *OpenUI *ManualFeed/Manual Feed: Boolean
  166. *OrderDependency: 20 AnySetup *ManualFeed
  167. *DefaultManualFeed: False
  168. *ManualFeed True: "statusdict /manualfeed true put"
  169. *ManualFeed False: "statusdict /manualfeed false put"
  170. *?ManualFeed: "
  171. save
  172.  statusdict /manualfeed get {(True)}{(False)}ifelse = flush
  173. restore
  174. "
  175. *End
  176. *CloseUI: *ManualFeed
  177.  
  178. *DefaultOutputOrder: Reverse
  179.  
  180. *% Font Information =====================
  181. *DefaultFont: Courier
  182. *Font Courier-Bold: Standard "(001.000)" Standard ROM
  183. *Font Courier-BoldOblique: Standard "(001.000)" Standard ROM
  184. *Font Courier-Oblique: Standard "(001.000)" Standard ROM
  185. *Font Helvetica: Standard "(001.001)" Standard ROM
  186. *Font Helvetica-Bold: Standard "(001.001)" Standard ROM
  187. *Font Helvetica-BoldOblique: Standard "(001.000)" Standard ROM
  188. *Font Helvetica-Oblique: Standard "(001.000)" Standard ROM
  189. *Font Symbol: Special "(001.001)" Special ROM
  190. *Font Times-Bold: Standard "(001.001)" Standard ROM
  191. *Font Times-BoldItalic: Standard "(001.001)" Standard ROM
  192. *Font Times-Italic: Standard "(001.001)" Standard ROM
  193. *Font Times-Roman: Standard "(001.000)" Standard ROM
  194. *?FontQuery: "
  195. save
  196.  /str 100 string dup 0 (fonts/) putinterval def
  197.  {
  198.    count 1 gt
  199.    {
  200.      exch dup str 6 94 getinterval cvs
  201.      (/) print print (:) print
  202.      FontDirectory exch known
  203.      {(Yes)}{(No)} ifelse =
  204.    }
  205.    {exit} ifelse
  206.  }bind loop
  207.  (*) = flush
  208. restore
  209. "
  210. *End
  211.  
  212. *?FontList: "
  213. save
  214.   FontDirectory { pop == } bind flush forall (*) = flush
  215. restore
  216. "
  217. *End
  218.  
  219. *% Printer Messages (verbatim from printer):
  220. *Message: "%%[ exitserver: permanent state may be changed ]%%"
  221. *Message: "%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%"
  222. *Message: "\FontName\ not found, using Courier"
  223.  
  224. *% Status (format: %%[ status: <one of these> ]%% )
  225. *Status: "idle"
  226. *Status: "busy"
  227. *Status: "waiting"
  228. *Status: "printing"
  229. *Status: "PrinterError: timeout, clearing printer"
  230. *Status: "PrinterError: timeout"
  231. *Status: "PrinterError: paper entry misfeed"
  232. *Status: "PrinterError: no toner cartridge"
  233. *Status: "PrinterError: service call"
  234. *Status: "PrinterError: paper entry misfeed"
  235. *Status: "PrinterError: no paper tray"
  236. *Status: "PrinterError: out of paper"
  237. *Status: "PrinterError: cover open"
  238. *Status: "PrinterError: resetting printer"
  239. *Status: "PrinterError: manual feed timeout"
  240. *Status: "PrinterError: warming up"
  241.  
  242. *% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
  243. *Source: "serial9"
  244. *Source: "serial25"
  245. *Source: "AppleTalk"
  246.  
  247. *% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
  248. *PrinterError: "timeout, clearing printer"
  249. *PrinterError: "timeout"
  250. *PrinterError: "paper entry misfeed"
  251. *PrinterError: "no toner cartridge"
  252. *PrinterError: "service call"
  253. *PrinterError: "paper entry misfeed"
  254. *PrinterError: "no paper tray"
  255. *PrinterError: "out of paper"
  256. *PrinterError: "cover open"
  257. *PrinterError: "resetting printer"
  258. *PrinterError: "manual feed timeout"
  259. *PrinterError: "warming up"
  260.  
  261. *%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
  262.  
  263. *% Color Separation Information =====================
  264.  
  265. *DefaultColorSep: ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi
  266.  
  267. *InkName: ProcessBlack/Process Black
  268. *InkName: CustomColor/Custom Color
  269. *InkName: ProcessCyan/Process Cyan
  270. *InkName: ProcessMagenta/Process Magenta
  271. *InkName: ProcessYellow/Process Yellow
  272.  
  273. *% For 60 lpi / 300 dpi =====================================================
  274.  
  275. *ColorSepScreenAngle ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "45"
  276. *ColorSepScreenAngle CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "45"
  277. *ColorSepScreenAngle ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "15"
  278. *ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "75"
  279. *ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "0"
  280.  
  281. *ColorSepScreenFreq ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "60"
  282. *ColorSepScreenFreq CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "60"
  283. *ColorSepScreenFreq ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "60"
  284. *ColorSepScreenFreq ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "60"
  285. *ColorSepScreenFreq ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "60"
  286.  
  287. *% For 53 lpi / 300 dpi =====================================================
  288.  
  289. *ColorSepScreenAngle ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
  290. *ColorSepScreenAngle CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
  291. *ColorSepScreenAngle ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "71.5651"
  292. *ColorSepScreenAngle ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "18.4349"
  293. *ColorSepScreenAngle ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "0.0"
  294.  
  295. *ColorSepScreenFreq ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
  296. *ColorSepScreenFreq CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
  297. *ColorSepScreenFreq ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
  298. *ColorSepScreenFreq ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
  299. *ColorSepScreenFreq ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "50.0"
  300.  
  301. *% This patch file inserts a delay before manualfeed to fix a bug
  302. *% in the version 23 LaserWriter.
  303. *JobPatchFile 1/ManualFeedDelay: "
  304. save 
  305. /version23-manualfeedpatch where { pop false } { true }ifelse
  306.  % we don't do an explicit 'get' since product and version MAY
  307.  % be in systemdict or statusdict - this technique gets the lookup
  308.  % without failure
  309. statusdict begin
  310.   product (LaserWriter) eq        % true if LaserWriter
  311.   version cvr 23.0 eq             % true if version 23
  312. end
  313.  
  314. and  % only install this patch if both are true
  315. and  % true only if patch is not installed and is for this printer
  316.      % save object and boolean on stack
  317. dup { exch restore }if
  318. % either true OR saveobject false
  319. dup
  320. {
  321.   /version23-manualfeedpatch true def
  322.   /oldversion23-showpage /showpage load def
  323.   /showpage       % this showpage will wait extra time if manualfeed is true
  324.   {%
  325.      statusdict /manualfeed known
  326.      {% manualfeed known in statusdict
  327.         statusdict /manualfeed get
  328.         {% if true then we loop for 5 seconds
  329.            usertime 5000 add       % target usertime
  330.            { % loop
  331.              dup usertime sub 0 lt
  332.              { exit }if
  333.            }loop
  334.            pop             % pop the usertime off the stac
  335.         }if
  336.      }if
  337.      oldversion23-showpage
  338.   }bind def
  339. }if
  340. not{ restore }if
  341. "
  342. *End
  343.  
  344. *% For "LaserWriter" version 23.0
  345. *% Produced by "GETapd.ps" version 2.0 edit 45
  346. *% Converted to meet 4.0 specification
  347. *% Last Edit Date: Aug 11 1993
  348. *% The byte count of this file should be exactly 011416 or 011766
  349. *% depending on the filesystem it resides in.
  350. *% end of PPD file for LaserWriter
  351.