*PPD-Adobe: "4.0"
*% Digital Equipment Corporation PagePress Printer Description File
*% Copyright (C) 1992 Digital Equipment Corporation
*% All Rights Reserved.
*% 
*% December 17, 1992
*% 
*FormatVersion: "4.0"
*FileVersion: "1.0"
*LanguageVersion: English
*PCFileName: "DCD32501.PPD"
*Product: "(DEClaser 3250)"
*PSVersion: "(47) 30"
*ModelName: "Digital DEClaser 3250"
*NickName: "Digital DEClaser 3250 v47"

*% === Options and Constraints ==========
*OpenGroup: InstallableOptions/Options Installed
*OpenUI *Option1/Optional Envelope Feeder: Boolean
*DefaultOption1: False
*Option1 True/Installed: ""
*Option1 False/Not Installed: ""
*CloseUI: *Option1
*CloseGroup: InstallableOptions

*UIConstraints: *Option1 False *InputSlot Envelope
*UIConstraints: *InputSlot Envelope *Option1 False
*UIConstraints: *ManualFeed True *Duplex
*UIConstraints: *Duplex *ManualFeed True
*UIConstraints: *ManualFeed True *InputSlot Envelope
*UIConstraints: *InputSlot Envelope *ManualFeed True
*UIConstraints: *ManualFeed True *TraySwitch True
*UIConstraints: *TraySwitch True *ManualFeed True
*UIConstraints: *InputSlot Envelope *TraySwitch True
*UIConstraints: *TraySwitch True *InputSlot Envelope
*UIConstraints: *Duplex *InputSlot Envelope
*UIConstraints: *InputSlot Envelope *Duplex

*% === Basic Capabilities ===============
*LanguageLevel: "1"
*Extensions: CMYK
*Emulators: hplj dec
*StartEmulate hplj: "10 statusdict /setsoftwareiomode get exec\004\033\045\070"
*StopEmulate hplj: "<1B7F>0"
*StartEmulate dec: "10 statusdict /setsoftwareiomode get exec"
*StopEmulate dec: "<1B>%/4"
*FreeVM: "405316"
*ColorDevice: False
*DefaultColorSpace: Gray
*VariablePaperSize: False
*FileSystem: False
*Throughput: "13"
*Password: "0"
*ExitServer: "
  count 0 eq {  % is the password on the stack?
    true
  }{
    dup % potential password
    statusdict /checkpassword get exec not
  } ifelse
  {  %  if no password or not valid
    (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 {  % is the password on the stack?
    true
  }{
    dup % potential password
    statusdict /checkpassword get exec not
  } ifelse
  {  %  if no password or not valid
    (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: "
{dup mul exch dup mul add 1.0 exch sub }
"
*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 ===================
*% Code in this section selects a tray and sets up a frame buffer.
*OpenUI *PageSize: PickOne
*OrderDependency: 30 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "statusdict /lettertray get exec"
*PageSize Legal: "statusdict /legaltray get exec"
*PageSize Executive: "statusdict /executivetray get exec"
*PageSize A4: "statusdict /a4tray get exec"
*PageSize TwoThirdsA4: "statusdict /twothirdsa4tray get exec"
*PageSize A5: "statusdict /a5tray get exec"
*PageSize B4: "statusdict /b4tray get exec"
*PageSize B5/B5 Envelope: "statusdict /b5tray get exec"
*PageSize C5/C5 Envelope: "statusdict /c5tray get exec"
*PageSize DL/DL Envelope: "statusdict /dltray get exec"
*PageSize Statement: "statusdict /halflettertray get exec"
*PageSize 7x9: "statusdict /7x9tray get exec"
*PageSize 10x14: "statusdict /10x14tray get exec"
*PageSize Monarch/Monarch Envelope: "statusdict /3.875x7.5tray get exec"
*PageSize Comm10/Common #10 Envelope: "statusdict /4.125x9.5tray get exec"
*PageSize LetterSmall: "statusdict /lettersmalltray get exec"
*PageSize LegalSmall:  "statusdict /legalsmalltray get exec"
*PageSize A4Small: "statusdict /a4smalltray get exec"
*?PageSize: "
 save
    15 dict
      dup /lettertray (Letter) put
      dup /legaltray (Legal) put
      dup /executivetray (Executive) put
      dup /a4tray (A4) put
      dup /a5tray (A5) put
      dup /b4tray (B4) put
      dup /b5tray (B5) put
      dup /halflettertray (Statement) put
      dup /10x14tray (10x14) put
      dup /c5tray (C5) put
      dup /dltray (DL) put
      dup /7x9tray (7x9) put
      dup /3.875x7.5tray (Monarch) put
      dup /4.125x9.5tray (Comm10) put
      dup /twothirda4tray (TwoThirdsA4) 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 Statement: "halfletter"
*PageRegion TwoThirdsA4: "twothirdsa4"
*PageRegion Legal: "legal"
*PageRegion A4: "a4"
*PageRegion A5: "a5"
*PageRegion B4: "b4"
*PageRegion B5/B5 Envelope: "b5"
*PageRegion C5/C5 Envelope: "c5"
*PageRegion DL/DL Envelope: "dl"
*PageRegion 7x9: "7x9"
*PageRegion 10x14: "10x14"
*PageRegion Monarch/Monarch Envelope: "3.875x7.5"
*PageRegion Comm10/Common #10 Envelope: "4.125x9.5"
*PageRegion LetterSmall: "lettersmall"
*PageRegion LegalSmall: "legalsmall"
*PageRegion A4Small: "a4small"
*PageRegion Executive: "executivepage"
*CloseUI: *PageRegion

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "14.16 10.08 597.36 782.64"
*ImageableArea Legal: "14.16 10.08 597.36 998.64"
*ImageableArea TwoThirdsA4: "14.64 10.08 546.24 585.84"
*ImageableArea A4: "15.36 9.6 579.36 832.8"
*ImageableArea A5: "13.92 10.08 405.36 585.84"
*ImageableArea B4: "15.36 10.08 713.04 1022.4"
*ImageableArea B5/B5 Envelope: "14.16 10.08 501.6 719.04"
*ImageableArea LetterSmall: "29.28 30.72 582.24 762.0"
*ImageableArea A4Small: "26.88 30.72 568.32 811.68"
*ImageableArea Executive: "11.28 10.08 510.24 746.64"
*ImageableArea C5/C5 Envelope: "14.64 10.08 444.48 639.84"
*ImageableArea DL/DL Envelope: "12.0 10.08 299.76 614.16"
*ImageableArea Statement: "15.6 10.08 379.92 602.64"
*ImageableArea 7x9: "13.92 10.08 489.84 638.64"
*ImageableArea 10x14: "14.16 10.08 705.36 998.64"
*ImageableArea Monarch/Monarch Envelope: "14.88 10.08 264.0 530.64"
*ImageableArea Comm10/Common #10 Envelope: "14.16 10.08 282.72 674.64"
*ImageableArea LegalSmall: "63.84 42.24 547.68 966.48"

*?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 A4: "595 842"
*PaperDimension A5: "420 595"
*PaperDimension B4: "729 1032"
*PaperDimension B5/B5 Envelope: "516 729"
*PaperDimension LetterSmall: "612 792"
*PaperDimension A4Small: "595 842"
*PaperDimension Executive: "540 720"
*PaperDimension 7x9: "504 648"
*PaperDimension 10x14: "720 1008"
*PaperDimension Monarch/Monarch Envelope: "279 540"
*PaperDimension Comm10/Common #10 Envelope: "297 684"
*PaperDimension TwoThirdsA4: "561 595"
*PaperDimension C5/C5 Envelope: "459 649"
*PaperDimension DL/DL Envelope: "311 623"
*PaperDimension Statement: "396 612"
*PaperDimension LegalSmall: "612 1008"

*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

*OpenUI *InputSlot: PickOne
*OrderDependency: 20 AnySetup *InputSlot
*DefaultInputSlot: Upper
*InputSlot Envelope: "0 statusdict /setpapertray get exec"
*InputSlot Upper: "1 statusdict /setpapertray get exec"
*InputSlot Lower: "2 statusdict /setpapertray get exec"
*InputSlot LargeCapacity: "3 statusdict /setpapertray get exec"
*?InputSlot: "
  save
    4 dict
    dup 1 (Envelope) put
    dup 2 (Upper) put
    dup 3 (Lower) put
    dup 4 (LargeCapacity) put
    statusdict /papertray get exec get
    = flush
  restore"
*End
*CloseUI: *InputSlot

*DefaultOutputBin:  OnlyOne
*DefaultOutputOrder:  Normal

*OpenUI *Duplex: PickOne
*OrderDependency: 50 AnySetup *Duplex
*DefaultDuplex: None
*Duplex None: "false statusdict /setduplexmode get exec false statusdict /settumble get exec"
*Duplex DuplexNoTumble: "true statusdict /setduplexmode get exec false statusdict /settumble get exec"
*Duplex DuplexTumble: "true statusdict /setduplexmode get exec true statusdict /settumble get exec"
*?Duplex: "
  save
    statusdict /duplexmode get exec
    {statusdict /tumble get exec
    {(DuplexTumble)}{(DuplexNoTumble)}ifelse}
    {(None)} 
    ifelse = flush
  restore"
*End
*CloseUI: *Duplex

*OpenUI *TraySwitch: Boolean
*OrderDependency: 50 AnySetup *TraySwitch
*DefaultTraySwitch: False
*TraySwitch True: "statusdict /trayswitch true put"
*TraySwitch False: "statusdict /trayswitch false put"
*?TraySwitch: "
save
  statusdict /trayswitch get {(True)}{(False)}ifelse = flush
restore
"
*End
*CloseUI: *TraySwitch

*% Font Information =====================
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.000)" Standard
*Font AvantGarde-BookOblique: Standard "(001.000)" Standard
*Font AvantGarde-Demi: Standard "(001.000)" Standard
*Font AvantGarde-DemiOblique: Standard "(001.000)" Standard
*Font Bookman-Demi: Standard "(001.000)" Standard
*Font Bookman-DemiItalic: Standard "(001.000)" Standard
*Font Bookman-Light: Standard "(001.000)" Standard
*Font Bookman-LightItalic: Standard "(001.000)" Standard
*Font Courier: Standard "(001.000)" Standard
*Font Courier-Bold: Standard "(001.000)" Standard
*Font Courier-BoldOblique: Standard "(001.000)" Standard
*Font Courier-Oblique: Standard "(001.000)" Standard
*Font Helvetica: Standard "(001.000)" Standard
*Font Helvetica-Bold: Standard "(001.000)" Standard
*Font Helvetica-BoldOblique: Standard "(001.000)" Standard
*Font Helvetica-Narrow: Standard "(001.000)" Standard
*Font Helvetica-Narrow-Bold: Standard "(001.000)" Standard
*Font Helvetica-Narrow-BoldOblique: Standard "(001.000)" Standard
*Font Helvetica-Narrow-Oblique: Standard "(001.000)" Standard
*Font Helvetica-Oblique: Standard "(001.000)" Standard
*Font LubalinGraph-Book: Standard "(001.000)" Standard
*Font LubalinGraph-BookOblique: Standard "(001.000)" Standard
*Font LubalinGraph-Demi: Standard "(001.000)" Standard
*Font LubalinGraph-DemiOblique: Standard "(001.000)" Standard
*Font NewCenturySchlbk-Bold: Standard "(001.000)" Standard
*Font NewCenturySchlbk-BoldItalic: Standard "(001.000)" Standard
*Font NewCenturySchlbk-Italic: Standard "(001.000)" Standard
*Font NewCenturySchlbk-Roman: Standard "(001.000)" Standard
*Font Palatino-Bold: Standard "(001.000)" Standard
*Font Palatino-BoldItalic: Standard "(001.000)" Standard
*Font Palatino-Italic: Standard "(001.000)" Standard
*Font Palatino-Roman: Standard "(001.000)" Standard
*Font Souvenir-Demi: Standard "(001.000)" Standard
*Font Souvenir-DemiItalic: Standard "(001.000)" Standard
*Font Souvenir-Light: Standard "(001.000)" Standard
*Font Souvenir-LightItalic: Standard "(001.000)" Standard
*Font Symbol: Special "(001.001)" Special
*Font Times-Bold: Standard "(001.000)" Standard
*Font Times-BoldItalic: Standard "(001.000)" Standard
*Font Times-Italic: Standard "(001.000)" Standard
*Font Times-Roman: Standard "(001.000)" Standard
*Font ZapfChancery-MediumItalic: Standard "(001.000)" Standard
*Font ZapfDingbats: Special "(001.000)" 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
(*) = 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: "busy"
*Status: "waiting"
*Status: "printing"
*Status: "printing test page"
*Status: "warming up"
*Status: "offline"
*Status: "PrinterError: out of paper"
*Status: "PrinterError: no paper tray"
*Status: "PrinterError: paper transport error"
*Status: "PrinterError: cover open"

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

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrinterError: "out of paper"
*PrinterError: "no paper tray"
*PrinterError: "paper transport error"
*PrinterError: "cover open"
*PrinterError: "manual feed timeout

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

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

*DefaultColorSep: ProcessBlack.53lpi.300dpi/ 53 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"

*% end of PPD file for DEClaser 3250

