*PPD-Adobe: "4.0"
*% Adobe Systems PostScript(R) Printer Description File
*% Copyright 1987-1993 Adobe Systems Incorporated. 
*% All Rights Reserved. 
*% Permission is granted for redistribution of this file as
*% long as this copyright notice is intact and the contents
*% of the file is not altered in any way from its original form.
*% End of Copyright statement
*FormatVersion: "4.0"
*FileVersion: "1.2"
*PCFileName: "DCD21501.PPD"
*LanguageVersion: English
*Product: "(DEClaser 2150)"
*PSVersion: "(51.4) 20"
*ModelName: "Digital DEClaser 2150"
*NickName: "Digital DEClaser 2150 v51.4"

*% === Basic Capabilities ===============
*FreeVM: "389120"
*LanguageLevel: "1"
*ColorDevice: False
*DefaultColorSpace: Gray
*VariablePaperSize: False
*Extensions: CMYK 
*Throughput: "8"
*Password: "0"
*ExitServer: "
   count 0 eq { true }{ dup statusdict /checkpassword get exec not } ifelse 
   { (WARNING : Cannot perform the exitserver command.) = 
     (Password supplied is not valid.) = 
     (Please contact the author of this software.) = flush
     quit 
   } if 
   serverdict /exitserver get exec"
*End
*Reset: "
   count 0 eq { true }{ dup statusdict /checkpassword get exec not } ifelse
   { (WARNING : Cannot reset printer.) =
     (Password supplied is not valid.) =
     (Please contact the author of this software.) = flush
     quit
   } if
   serverdict /exitserver get exec
   systemdict /quit get exec
   (WARNING : Printer Reset Failed.) = flush"
*End

*DefaultResolution: 300dpi
*?Resolution: "
  save
  initgraphics
  matrix defaultmatrix dup 
  0 get dup mul exch 1 get dup mul add sqrt
  72 mul round cvi
  (          ) cvs print (dpi) = flush
  restore"
*End

*% === DECimage (Smoothing) ============
*OpenUI *Smoothing/DECimage: Boolean
*OrderDependency: 50 AnySetup *Smoothing
*DefaultSmoothing: Off
*Smoothing Off: "false statusdict /setDECimage get exec"
*Smoothing On: "true statusdict /setDECimage get exec"
*?Smoothing: "
   save statusdict /DECimage get exec
   {(On)}{(Off)} ifelse = flush restore"
*End
*CloseUI: *Smoothing

*% === DECimageparams (bits per pixel) ============
*OpenUI *BitsPerPixel/DECimage controls: PickOne
*OrderDependency: 50 AnySetup *BitsPerPixel
*DefaultBitsPerPixel: Off
*BitsPerPixel Off/Standard: "0.0 1.0 0.0 1 statusdict /setDECimageparams get exec"
*BitsPerPixel 1/High Contrast: "0.2 0.8 0.0 1 statusdict /setDECimageparams get exec"
*BitsPerPixel 2/Low Contrast: "-0.4 1.5 0.0 1 statusdict /setDECimageparams get exec"
*BitsPerPixel 4/Sharp: "0.0 1.0 2.0 1 statusdict /setDECimageparams get exec"
*BitsPerPixel 8/Soft: "0.0 1.0 -1.0 1 statusdict /setDECimageparams get exec"
*CloseUI:BitsPerPixel

*% Halftone Information ===============
*ScreenFreq: "60.0"
*ScreenAngle: "45.0"
*DefaultScreenProc: Dot
*ScreenProc Dot: "
{abs exch abs 2 copy add 1 gt {1 sub dup mul exch 1 sub dup mul add 1 
sub }{dup mul exch dup mul add 1 exch sub }ifelse }
"
*End
*ScreenProc Line: "{ pop }"
*ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"

*DefaultTransfer: Null
*Transfer Null: "{ }"
*Transfer Null.Inverse: "{ 1 exch sub }"

*% Paper Handling ===================
*% Use these entries to set paper size most of the time, unless there is
*% specific reason to use PageRegion.
*% Note: On the 2150 and 2250 xxxtray operators depend on statusdict being
*%       on the stack. This is why constructs below use "begin...end"
*%       rather than "get exec".
*OpenUI *PageSize: PickOne
*OrderDependency: 30 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "statusdict begin lettertray end"
*PageSize Legal: "statusdict begin legaltray end"
*PageSize Executive: "statusdict begin executivetray end"
*PageSize A4: "statusdict begin a4tray end"
*PageSize A5: "statusdict begin a5tray end"
*PageSize 7x9: "statusdict begin 7x9tray end"
*PageSize Statement: "statusdict begin halflettertray end"
*PageSize twothirdsa4/Two Thirds A4: "statusdict begin twothirdsa4tray end"
*PageSize Monarch/Monarch Envelope: "statusdict begin 3.875x7.5tray end"
*PageSize Comm10/Comm10 Envelope: "statusdict begin 4.125x9.5tray end"
*PageSize B5/B5 Envelope: "statusdict begin b5tray end"
*PageSize C5/C5 Envelope: "statusdict begin c5tray end"
*PageSize DL/DL Envelope: "statusdict begin dltray end"
*PageSize LetterSmall: "statusdict begin lettertray end lettersmall"
*PageSize LegalSmall: "statusdict begin legaltray end legalsmall"
*PageSize A4Small: "statusdict begin a4tray end a4small"
*?PageSize: "
  save
    13 dict
      dup /lettertray (Letter) put
      dup /legaltray (Legal) put
      dup /executivetray (Executive) put
      dup /a4tray (A4) put
      dup /a5tray (A5) put
      dup /7x9tray (7x9) put
      dup /halflettertray (Statement) put
      dup /twothirdsa4tray (twothirdsa4) put
      dup /3.875x7.5tray (Monarch) put
      dup /4.125x9.5tray (Comm10) put
      dup /b5tray (B5) put
      dup /c5tray (C5) put
      dup /dltray (DL) put
    statusdict /papersize get exec
    3 1 roll  {get} stopped {(Unknown)}if
    exch  not { print (.Transverse) }if
    = flush
  restore"
*End
*CloseUI: *PageSize

*% These entries will set up the frame buffer. Usually used with manual feed.
*OpenUI *PageRegion: PickOne
*OrderDependency: 40 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter: "letter"
*PageRegion Legal: "legal"
*PageRegion Executive: "executivepage"
*PageRegion A4: "a4"
*PageRegion A5: "a5"
*PageRegion 7x9: "7x9"
*PageRegion Statement: "halfletter"
*PageRegion twothirdsa4/Two Thirds A4: "twothirdsa4"
*PageRegion Monarch/Monarch Envelope: "3.875x7.5"
*PageRegion Comm10/Comm10 Envelope: "4.125x9.5"
*PageRegion B5/B5 Envelope: "b5"
*PageRegion C5/C5 Envelope: "c5"
*PageRegion DL/DL Envelope: "dl"
*PageRegion LetterSmall: "lettersmall"
*PageRegion LegalSmall: "legalsmall"
*PageRegion A4Small: "a4small"
*CloseUI: *PageRegion

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "11.52 1.44 594.96 777.84 "
*ImageableArea Legal: "11.52 1.44 594.96 993.84 "
*ImageableArea Executive: "11.52 8.88 510.48 749.04 "
*ImageableArea A4: "11.52 2.64 575.76 826.08 "
*ImageableArea A5: "11.52 1.44 402.96 582.0 "
*ImageableArea 7x9: "11.52 1.44 487.44 634.8 "
*ImageableArea Statement: "11.52 1.44 376.08 598.8 "
*ImageableArea twothirdsa4/Two Thirds A4: "11.52 1.44 541.2 582.0 "
*ImageableArea Monarch/Monarch Envelope: "11.52 1.44 260.88 526.8 "
*ImageableArea Comm10/Comm10 Envelope: "11.52 5.04 280.08 674.4 "
*ImageableArea B5/B5 Envelope: "11.52 1.44 498.96 715.2 "
*ImageableArea C5/C5 Envelope: "11.52 2.64 441.36 636.96 "
*ImageableArea DL/DL Envelope: "11.52 1.44 299.28 609.6 "
*ImageableArea LetterSmall: "26.88 24.48 579.6 755.76 "
*ImageableArea LegalSmall: "61.44 36.24 545.04 960.48 "
*ImageableArea A4Small: "23.04 25.68 564.24 806.64 "
*?ImageableArea: "
  save
    /cvp { (                ) cvs print ( ) print } bind def
    /upperright {10000 mul floor 10000 div} bind def
    /lowerleft {10000 mul ceiling 10000 div} bind def
    newpath clippath pathbbox
    4 -2 roll exch 2 {lowerleft cvp} repeat
    exch 2 {upperright cvp} repeat flush
  restore"
*End

*% These provide the physical dimensions of the paper (by keyword)
*DefaultPaperDimension: Letter
*PaperDimension Letter: "612 792"
*PaperDimension Legal: "612 1008"
*PaperDimension Executive: "522 756"
*PaperDimension A4: "595 842"
*PaperDimension A5: "419 595"
*PaperDimension 7x9: "504 648"
*PaperDimension Statement: "396 612"
*PaperDimension twothirdsa4: "561 595"
*PaperDimension Monarch/Monarch Envelope: "279 540"
*PaperDimension Comm10/Comm10 Envelope: "297 684"
*PaperDimension C5/C5 Envelope: "459 649"
*PaperDimension B5/B5 Envelope: "516 729"
*PaperDimension DL/DL Envelope: "311 623"
*PaperDimension LetterSmall: "612 792"
*PaperDimension LegalSmall: "612 1008"
*PaperDimension A4Small: "595 842"

*OpenUI *InputSlot: PickOne
*OrderDependency: 20 AnySetup *InputSlot
*DefaultInputSlot: OnlyOne
*InputSlot OnlyOne: ""
*CloseUI: *InputSlot

*OpenUI *ManualFeed: Boolean
*OrderDependency: 20 AnySetup *ManualFeed
*DefaultManualFeed: False
*ManualFeed True: "statusdict /manualfeed true put"
*ManualFeed False: "statusdict /manualfeed false put"
*?ManualFeed: "
  save
  statusdict /manualfeed get
  {(True)}{(False)}ifelse = flush
  restore"
*End
*CloseUI: *ManualFeed

*DefaultOutputBin:  OnlyOne
*DefaultOutputOrder:  Normal

*% Font Information =====================
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.002)" Standard
*Font AvantGarde-BookOblique: Standard "(001.002)" Standard
*Font AvantGarde-Demi: Standard "(001.003)" Standard
*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard
*Font Bookman-Light: Standard "(001.001)" Standard
*Font Bookman-LightItalic: Standard "(001.001)" Standard
*Font Bookman-Demi: Standard "(001.001)" Standard
*Font Bookman-DemiItalic: Standard "(001.001)" Standard
*Font Courier: Standard "(002.002)" Standard
*Font Courier-Oblique: Standard "(002.002)" Standard
*Font Courier-Bold: Standard "(002.002)" Standard
*Font Courier-BoldOblique: Standard "(002.002)" Standard
*Font Helvetica: Standard "(001.002)" Standard
*Font Helvetica-Oblique: Standard "(001.002)" Standard
*Font Helvetica-Bold: Standard "(001.002)" Standard
*Font Helvetica-BoldOblique: Standard "(001.002)" Standard
*Font Helvetica-Narrow: Standard "(001.002)" Standard
*Font Helvetica-Narrow-BoldOblique: Standard "(001.002)" Standard
*Font Helvetica-Narrow-Bold: Standard "(001.002)" Standard
*Font Helvetica-Narrow-Oblique: Standard "(001.002)" Standard
*Font LubalinGraph-Book: Standard "(001.002)" Standard
*Font LubalinGraph-BookOblique: Standard "(001.002)" Standard
*Font LubalinGraph-Demi: Standard "(001.002)" Standard
*Font LubalinGraph-DemiOblique: Standard "(001.002)" Standard
*Font NewCenturySchlbk-Roman: Standard "(001.004)" Standard
*Font NewCenturySchlbk-Italic: Standard "(001.003)" Standard
*Font NewCenturySchlbk-Bold: Standard "(001.006)" Standard
*Font NewCenturySchlbk-BoldItalic: Standard "(001.004)" Standard
*Font Palatino-Roman: Standard "(001.001)" Standard
*Font Palatino-Italic: Standard "(001.002)" Standard
*Font Palatino-Bold: Standard "(001.002)" Standard
*Font Palatino-BoldItalic: Standard "(001.002)" Standard
*Font Souvenir-Light: Standard "(001.002)" Standard
*Font Souvenir-LightItalic: Standard "(001.002)" Standard
*Font Souvenir-Demi: Standard "(001.002)" Standard
*Font Souvenir-DemiItalic: Standard "(001.002)" Standard
*Font Symbol: Special "(001.003)" Special
*Font Times-Roman: Standard "(001.002)" Standard
*Font Times-Italic: Standard "(001.002)" Standard
*Font Times-Bold: Standard "(001.002)" Standard
*Font Times-BoldItalic: Standard "(001.004)" Standard
*Font ZapfChancery-MediumItalic: Standard "(001.003)" Standard
*Font ZapfDingbats: Special "(001.002)" Special

*?FontQuery: "
save
 /str 100 string dup 0 (fonts/) putinterval def
 {
   count 1 gt
   { 
     exch dup str 6 94 getinterval cvs
     (/) print dup print (:) print exch
     FontDirectory exch known
     { pop (Yes) }
 	 { 
 	   length 6 add str 0 3 -1 roll getinterval
 	   mark exch status
       {cleartomark (Yes)}{cleartomark (No)} ifelse
     } ifelse =
   }
   {exit} ifelse
 }bind loop
 (*) = flush
restore
"
*End

*?FontList: "
save
FontDirectory { pop == } bind forall flush
/filenameforall where
{
    pop (fonts/*) 
       {dup length 6 sub 6 exch getinterval cvn == } bind
    128 string filenameforall flush
} if 
(*) = flush
restore
"
*End

*% Printer Messages (verbatim from printer):
*Message: "%%[ exitserver: permanent state may be changed ]%%"
*Message: "%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%"
*Message: "\FontName\ not found, using Courier"

*% Status (format: %%[ status: <one of these> ]%% )
*Status: "initializing"
*Status: "idle"
*Status: "printing"
*Status: "printing test page"
*Status: "busy"
*Status: "offline"
*Status: "waiting"
*Status: "warming up"
*Status: "resetting printer"
*Status: "PrinterError: cover open"
*Status: "PrinterError: no toner cartridge"
*Status: "PrinterError: no paper tray"
*Status: "PrinterError: out of paper"
*Status: "PrinterError: manual feed timeout"
*Status: "PrinterError: load option tray"
*Status: "PrinterError: paper entry misfeed"
*Status: "PrinterError: paper exit misfeed"
*Status: "PrinterError: printing engine test"
*Status: "PrinterError: beam detect error"
*Status: "PrinterError: request manual feed of letter"
*Status: "PrinterError: request manual feed of legal"
*Status: "PrinterError: request manual feed of a4"
*Status: "PrinterError: request manual feed of executive"
*Status: "PrinterError: request manual feed of b5"
*Status: "PrinterError: request manual feed of a5"
*Status: "PrinterError: request manual feed of 7x9"
*Status: "PrinterError: request manual feed of halfletter"
*Status: "PrinterError: request manual feed of two-thirddsa4"
*Status: "PrinterError: request manual feed of c5"
*Status: "PrinterError: request manual feed of dl"
*Status: "PrinterError: request manual feed of 4.125x9.5"
*Status: "PrinterError: request manual feed of 3.875x7.5"
*Status: "PrinterError: paper path 1"
*Status: "PrinterError: paper path 3"
*Status: "PrinterError: paper path 4"
*Status: "PrinterError: paper path 6"
*Status: "PrinterError: Service 50"
*Status: "PrinterError: Service 51"
*Status: "PrinterError: Service 52"
*Status: "PrinterError: Service 57"
*Status: "PrinterError: Service 68"
*Status: "PrinterError: Service 80"
*Status: "PrinterError: Service 81"
*Status: "PrinterError: Service 82"
*Status: "PrinterError: Service 83"
*Status: "PrinterError: Service 84"
*Status: "PrinterError: Service 85"
*Status: "PrinterError: Service 86"

*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
*Source: "serial 25"
*Source: "Centronics"

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrinterError: "cover open"
*PrinterError: "no toner cartridge"
*PrinterError: "no paper tray"
*PrinterError: "out of paper"
*PrinterError: "manual feed timeout"
*PrinterError: "load option tray"
*PrinterError: "paper entry misfeed"
*PrinterError: "paper exit misfeed"
*PrinterError: "printing engine test"
*PrinterError: "beam detect error"
*PrinterError: "request manual feed of letter"
*PrinterError: "request manual feed of legal"
*PrinterError: "request manual feed of a4"
*PrinterError: "request manual feed of executive"
*PrinterError: "request manual feed of b5"
*PrinterError: "request manual feed of a5"
*PrinterError: "request manual feed of 7x9"
*PrinterError: "request manual feed of halfletter"
*PrinterError: "request manual feed of two-thirddsa4"
*PrinterError: "request manual feed of c5"
*PrinterError: "request manual feed of dl"
*PrinterError: "request manual feed of 4.125x9.5"
*PrinterError: "request manual feed of 3.875x7.5"
*PrinterError: "paper path 1"
*PrinterError: "paper path 3"
*PrinterError: "paper path 4"
*PrinterError: "paper path 6"
*PrinterError: "Service 50"
*PrinterError: "Service 51"
*PrinterError: "Service 52"
*PrinterError: "Service 57"
*PrinterError: "Service 68"
*PrinterError: "Service 80"
*PrinterError: "Service 81"
*PrinterError: "Service 82"
*PrinterError: "Service 83"
*PrinterError: "Service 84"
*PrinterError: "Service 85"
*PrinterError: "Service 86"

*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"

*% Color Separation Information =====================

*DefaultColorSep: ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi

*InkName: ProcessBlack/Process Black
*InkName: CustomColor/Custom Color
*InkName: ProcessCyan/Process Cyan
*InkName: ProcessMagenta/Process Magenta
*InkName: ProcessYellow/Process Yellow

*%  For 60 lpi / 300 dpi  ===============================

*ColorSepScreenAngle ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "45"
*ColorSepScreenAngle CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "45"
*ColorSepScreenAngle ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "15"
*ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "75"
*ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "0"

*ColorSepScreenFreq ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "60"
*ColorSepScreenFreq ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "60"

*%  For 53 lpi / 300 dpi  ===============================

*ColorSepScreenAngle ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
*ColorSepScreenAngle CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "45.0"
*ColorSepScreenAngle ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "71.5651"
*ColorSepScreenAngle ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "18.4349"
*ColorSepScreenAngle ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "0.0"

*ColorSepScreenFreq ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
*ColorSepScreenFreq CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "53.033"
*ColorSepScreenFreq ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
*ColorSepScreenFreq ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "47.4342"
*ColorSepScreenFreq ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "50.0"

*% For "DEClaser 2150" version 51.4
*% Modified from DEClaser 2250
*% Last Edit Date: May 7 1993
*% The byte count of this file should be exactly 017427 or 017894
*% depending on the filesystem it resides in.
*% end of PPD file for DEClaser 2150
