*PPD-Adobe: "4.3"
*% =======================================================
*% Printer Description File
*% Copyright 1992-98 Hewlett-Packard Company
*%    December 10, 1998
*%========================================================
*% PPD for HP LaserJet 4000 Series
*% For Windows NT 5.0
*%========================================================
*% === PPD File Version Information ====
*FileVersion:      "1.6"
*FormatVersion:    "4.3"
*LanguageEncoding: ISOLatin1
*LanguageVersion:  English
*PCFileName:       "HP4000_7.PPD"

*% === Product Version Information ====
*ModelName:     "HP LaserJet 4000 Series"
*ShortNickName: "HP LaserJet 4000 Series PS"
*NickName:      "HP LaserJet 4000 Series PS"
*Product:       "(HP LaserJet 4000 Series)"
*Manufacturer:  "HP"
*PSVersion:     "(2014.108) 1"

*%=== Device Capabilities ==================
*ColorDevice:       False
*DefaultColorSpace: Gray
*FileSystem:        True
*?FileSystem: "
   save 
     false
     (%disk?%)
     { currentdevparams dup /Writeable known
        { /Writeable get {pop true} if }  { pop } ifelse
     } 100 string /IODevice resourceforall
     {(True)}{(False)} ifelse = flush
   restore
"
*End

*LanguageLevel: "2"
*Throughput:    "17"
*TTRasterizer:  Type42
*?TTRasterizer: "
   save
      42 /FontType resourcestatus
      { pop pop (Type42)} {pop pop (None)} ifelse = flush
   restore
"
*End

*%=== Emulations and Protocols =============
*Protocols: PJL TBCP

*SuggestedJobTimeout:  "0"
*SuggestedWaitTimeout: "120"

*PrintPSErrors: True

*%=== Resolution Enhancement  ===============
*OpenUI *Smoothing/Resolution Enhancement: Boolean
*OrderDependency: 20 DocumentSetup *Smoothing
*DefaultSmoothing: True
*Smoothing True/On: "
  << /PostRenderingEnhance true /PostRenderingEnhanceDetails << /REValue 2 /Type 8 >>
  >> setpagedevice"
*End
*Smoothing False/Off: "
  << /PostRenderingEnhance true /PostRenderingEnhanceDetails << /REValue 0 /Type 8 >>
  >> setpagedevice"
*End
*?Smoothing: "
  save
    currentpagedevice /PostRenderingEnhanceDetails get /REValue get
    [(False) (True) (True) (True)]  exch get print
  restore
"
*End
*CloseUI: *Smoothing

*%=== JCL Features ==========================
*JCLBegin:           "<1B>%-12345X@PJL JOB<0A>"
*JCLToPSInterpreter: "@PJL ENTER LANGUAGE = POSTSCRIPT <0A>"
*JCLEnd:             "<1B>%-12345X@PJL EOJ<0A>"

*JCLOpenUI *JCLResolution/Resolution: PickOne
*OrderDependency: 10 JCLSetup *JCLResolution
*DefaultJCLResolution: 600dpi
*JCLResolution 300dpi/300 dpi: "@PJL SET RESOLUTION = 300<0A>"
*JCLResolution 600dpi/600 dpi: "@PJL SET RESOLUTION = 600<0A>"
*JCLResolution 1200dpi/ProRes 1200 : "@PJL SET RESOLUTION = 1200<0A>"
*JCLCloseUI: *JCLResolution

*JCLOpenUI *JCLEconomode/EconoMode: Boolean
*OrderDependency: 10 JCLSetup *JCLEconomode
*DefaultJCLEconomode: False
*JCLEconomode False/Highest Quality: "@PJL SET ECONOMODE = OFF<0A>"
*JCLEconomode True/Save Toner: "@PJL SET ECONOMODE = ON<0A>"
*JCLCloseUI: *JCLEconomode

*%=== Installable Options ==========================
*OpenGroup: InstallableOptions/Installed Options

*OpenUI *Option1/Tray 3: Boolean
*DefaultOption1: False
*Option1 True/Installed: ""
*Option1 False/Not Installed: ""
*?Option1: "
  save
    currentpagedevice /InputAttributes get dup 1 known
    {1 get null ne {(True)}{(False)} ifelse} {pop (False)} ifelse =
  restore
"
*End
*CloseUI: *Option1

*OpenUI *Option2/Tray 4: Boolean
*DefaultOption2: False
*Option2 True/Installed: ""
*Option2 False/Not Installed: ""
*?Option2: "
  save
    currentpagedevice /InputAttributes get dup 4 known
    {4 get null ne {(True)}{(False)} ifelse} {pop (False)} ifelse = flush
  restore
"
*End
*CloseUI: *Option2

*OpenUI *Option3/Duplex Unit: Boolean
*DefaultOption3: True
*Option3 True/Installed: ""
*Option3 False/Not Installed: ""
*?Option3: "
  save
    currentpagedevice /Duplex known
    {(True)}{(False)}ifelse = flush
  restore
"
*End
*CloseUI: *Option3

*OpenUI *Option4/Printer Hard Disk: Boolean
*DefaultOption4: False
*Option4 True/Installed: "<</Collate true>> setpagedevice"
*Option4 False/Not Installed: "<</Collate false>> setpagedevice"
*?Option4: "
  save 
    false
    (%disk?%)
    { currentdevparams dup /Writeable known
    { /Writeable get {pop true} if }  { pop } ifelse
    } 100 string /IODevice resourceforall
    {(True)}{(False)} ifelse = flush
  restore
"
*End
*CloseUI: *Option4

*OpenUI *Option5/Envelope Feeder: Boolean
*DefaultOption5: False
*Option5 True/Installed: ""
*Option5 False/Not Installed: ""
*?Option5: "
  save
    currentpagedevice /InputAttributes get
    2 get 
    null ne {(True)}{(False)} ifelse = flush
  restore
"
*End 
*CloseUI: *Option5

*OpenUI *InstalledMemory/Total Printer Memory: PickOne
*DefaultInstalledMemory: 4MB
*InstalledMemory 4MB/4 - 7 MB: ""
*InstalledMemory 8MB/8 - 11 MB: ""
*InstalledMemory 12MB/12 - 19 MB: ""
*InstalledMemory 20MB/20 - 27 MB: ""
*InstalledMemory 28MB/28 - 35 MB: ""
*InstalledMemory 36MB/36 MB or more: ""
*?InstalledMemory: "
  save
    currentsystemparams /RamSize get 
    524288 div ceiling cvi 2 div
    /size exch def
    size 36 ge 
      {(36MB)} 
       {size 28 ge 
          {(28MB)}
          {size 20 ge
             {(20MB)}
             {size 12 ge
                {(12MB)}
                {size 8 ge
                   {(8MB)}
                   {(4MB)} ifelse
             } ifelse
          } ifelse
       } ifelse
    } ifelse = flush
  restore
"
*End
*CloseUI: *InstalledMemory
*CloseGroup: InstallableOptions

*FreeVM: "2200000"
*VMOption 4MB/4 - 7 MB: "2200000"
*VMOption 8MB/8 - 11 MB: "6000000"
*VMOption 12MB/12 - 19 MB: "9400000"
*VMOption 20MB/20 - 27 MB: "17000000"
*VMOption 28MB/28 - 35 MB: "24500000"
*VMOption 36MB/36 MB or more: "32000000"

*%=== UI Constraints =============================
*% If A than not B  (Also include the reverse constraints if appropriate)
*%
*% If optional 250/500 sheet trays are not installed, disable access to Lower and LargeCapacity Trays
*UIConstraints: *Option1 False *InputSlot Lower
*UIConstraints: *Option2 False *InputSlot LargeCapacity

*% If the duplexer is not installed disable duplex modes.
*UIConstraints: *Option3 False *Duplex DuplexNoTumble
*UIConstraints: *Option3 False *Duplex DuplexTumble

*% If the envelope feeder is not installed disable envelope slot.
*UIConstraints: *Option5 False *InputSlot Envelope

*% Don't allow these paper sizes/types in the Envelope Feeder
*UIConstraints: *PageSize Letter    *InputSlot Envelope
*UIConstraints: *PageSize Executive *InputSlot Envelope
*UIConstraints: *PageSize Legal     *InputSlot Envelope
*UIConstraints: *PageSize A4        *InputSlot Envelope
*UIConstraints: *PageSize A5        *InputSlot Envelope
*UIConstraints: *PageSize B5        *InputSlot Envelope

*UIConstraints: *PageRegion Letter    *InputSlot Envelope
*UIConstraints: *PageRegion Executive *InputSlot Envelope
*UIConstraints: *PageRegion Legal     *InputSlot Envelope
*UIConstraints: *PageRegion A4        *InputSlot Envelope
*UIConstraints: *PageRegion A5        *InputSlot Envelope
*UIConstraints: *PageRegion B5        *InputSlot Envelope

*% If selected page size is an envelope disable access to paper trays 2, 3 and 4
*UIConstraints: *PageSize Env10       *InputSlot Middle
*UIConstraints: *PageSize Env10       *InputSlot Lower
*UIConstraints: *PageSize Env10       *InputSlot LargeCapacity
*UIConstraints: *PageSize EnvMonarch  *InputSlot Middle
*UIConstraints: *PageSize EnvMonarch  *InputSlot Lower
*UIConstraints: *PageSize EnvMonarch  *InputSlot LargeCapacity
*UIConstraints: *PageSize EnvDL       *InputSlot Middle
*UIConstraints: *PageSize EnvDL       *InputSlot Lower
*UIConstraints: *PageSize EnvDL       *InputSlot LargeCapacity
*UIConstraints: *PageSize EnvC5       *InputSlot Middle
*UIConstraints: *PageSize EnvC5       *InputSlot Lower
*UIConstraints: *PageSize EnvC5       *InputSlot LargeCapacity
*UIConstraints: *PageSize EnvISOB5    *InputSlot Middle
*UIConstraints: *PageSize EnvISOB5    *InputSlot Lower
*UIConstraints: *PageSize EnvISOB5    *InputSlot LargeCapacity

*% If selected page region is an envelope disable access to paper trays 2, 3 and 4
*UIConstraints: *PageRegion Env10       *InputSlot Middle
*UIConstraints: *PageRegion Env10       *InputSlot Lower
*UIConstraints: *PageRegion Env10       *InputSlot LargeCapacity
*UIConstraints: *PageRegion EnvMonarch  *InputSlot Middle
*UIConstraints: *PageRegion EnvMonarch  *InputSlot Lower
*UIConstraints: *PageRegion EnvMonarch  *InputSlot LargeCapacity
*UIConstraints: *PageRegion EnvDL       *InputSlot Middle
*UIConstraints: *PageRegion EnvDL       *InputSlot Lower
*UIConstraints: *PageRegion EnvDL       *InputSlot LargeCapacity
*UIConstraints: *PageRegion EnvC5       *InputSlot Middle
*UIConstraints: *PageRegion EnvC5       *InputSlot Lower
*UIConstraints: *PageRegion EnvC5       *InputSlot LargeCapacity
*UIConstraints: *PageRegion EnvISOB5    *InputSlot Middle
*UIConstraints: *PageRegion EnvISOB5    *InputSlot Lower
*UIConstraints: *PageRegion EnvISOB5    *InputSlot LargeCapacity

*% Don't allow A5, envelopes, transparencies or labels to be duplexed
*UIConstraints: *PageSize A5         *Duplex DuplexNoTumble
*UIConstraints: *PageSize Env10      *Duplex DuplexNoTumble
*UIConstraints: *PageSize EnvMonarch *Duplex DuplexNoTumble
*UIConstraints: *PageSize EnvDL      *Duplex DuplexNoTumble
*UIConstraints: *PageSize EnvC5      *Duplex DuplexNoTumble
*UIConstraints: *PageSize EnvISOB5   *Duplex DuplexNoTumble

*UIConstraints: *MediaType Transparency *Duplex DuplexNoTumble
*UIConstraints: *MediaType Labels       *Duplex DuplexNoTumble

*UIConstraints: *PageRegion A5         *Duplex DuplexNoTumble
*UIConstraints: *PageRegion Env10      *Duplex DuplexNoTumble
*UIConstraints: *PageRegion EnvMonarch *Duplex DuplexNoTumble
*UIConstraints: *PageRegion EnvDL      *Duplex DuplexNoTumble
*UIConstraints: *PageRegion EnvC5      *Duplex DuplexNoTumble
*UIConstraints: *PageRegion EnvISOB5   *Duplex DuplexNoTumble

*UIConstraints: *PageSize A5         *Duplex DuplexTumble
*UIConstraints: *PageSize Env10      *Duplex DuplexTumble
*UIConstraints: *PageSize EnvMonarch *Duplex DuplexTumble
*UIConstraints: *PageSize EnvDL      *Duplex DuplexTumble
*UIConstraints: *PageSize EnvC5      *Duplex DuplexTumble
*UIConstraints: *PageSize EnvISOB5   *Duplex DuplexTumble

*UIConstraints: *MediaType Transparency *Duplex DuplexTumble
*UIConstraints: *MediaType Labels       *Duplex DuplexTumble

*UIConstraints: *PageRegion A5         *Duplex DuplexTumble
*UIConstraints: *PageRegion Env10      *Duplex DuplexTumble
*UIConstraints: *PageRegion EnvMonarch *Duplex DuplexTumble
*UIConstraints: *PageRegion EnvDL      *Duplex DuplexTumble
*UIConstraints: *PageRegion EnvC5      *Duplex DuplexTumble
*UIConstraints: *PageRegion EnvISOB5   *Duplex DuplexTumble

*% Cannot duplex custom page sizes or feed from envelope tray
*NonUIConstraints: *CustomPageSize True *Duplex DuplexNoTumble
*NonUIConstraints: *CustomPageSize True *Duplex DuplexTumble
*NonUIConstraints: *InputSlot Envelope  *CustomPageSize True

*%=== Paper Sizes =================
*OpenUI *PageSize: PickOne
*OrderDependency: 30 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter/Letter: "
  <</PageSize [612 792] /ImagingBBox null>> setpagedevice"
*End
*PageSize Executive/Executive: "
  <</PageSize [522 756] /ImagingBBox null>> setpagedevice"
*End
*PageSize Legal/Legal: "
  <</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
*End
*PageSize A4/A4: "
  <</PageSize [595 842] /ImagingBBox null>> setpagedevice"
*End
*PageSize A5/A5: "
  <</PageSize [420 595] /ImagingBBox null>> setpagedevice"
*End
*PageSize B5/B5 (JIS): "
  <</PageSize [516 729] /ImagingBBox null>> setpagedevice"
*End
*PageSize Env10/Envelope #10: "
  <</PageSize [297 684] /ImagingBBox null>> setpagedevice"
*End
*PageSize EnvMonarch/Envelope Monarch: "
  <</PageSize [279 540] /ImagingBBox null>> setpagedevice"
*End
*PageSize EnvDL/Envelope DL: "
  <</PageSize [312 624] /ImagingBBox null>> setpagedevice"
*End
*PageSize EnvC5/Envelope C5: "
  <</PageSize [459 649] /ImagingBBox null>> setpagedevice"
*End
*PageSize EnvISOB5/Envelope B5: "
  <</PageSize [499 709] /ImagingBBox null>> setpagedevice"
*End
*?PageSize: "
   save
   currentpagedevice /PageSize get aload pop
   2 copy gt {exch} if 
   (Unknown) 
   11 dict
   dup [612 792]  (Letter) put
   dup [522 756]  (Executive) put
   dup [612 1008] (Legal) put
   dup [595 842]  (A4) put
   dup [420 595]  (A5) put
   dup [516 729]  (B5) put
   dup [297 684]  (Env10) put
   dup [279 540]  (EnvMonarch) put
   dup [312 624]  (EnvDL) put
   dup [459 649]  (EnvC5) put
   dup [499 709]  (EnvISOB5) put
   { exch aload pop 4 index sub abs 5 le exch 
      5 index sub abs 5 le and 
      {exch pop exit} {pop} ifelse
   } bind forall
   = flush pop pop
   restore
"
*End
*CloseUI: *PageSize

*OpenUI *PageRegion: PickOne
*OrderDependency: 40 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter/Letter: "
  <</PageSize [612 792] /ImagingBBox null>> setpagedevice"
*End
*PageRegion Executive/Executive: "
  <</PageSize [522 756] /ImagingBBox null>> setpagedevice"
*End
*PageRegion Legal/Legal: "
  <</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
*End
*PageRegion A4/A4: "
  <</PageSize [595 842] /ImagingBBox null>> setpagedevice"
*End
*PageRegion A5/A5: "
  <</PageSize [420 595] /ImagingBBox null>> setpagedevice"
*End
*PageRegion B5/B5 (JIS): "
  <</PageSize [516 729] /ImagingBBox null>> setpagedevice"
*End
*PageRegion Env10/Envelope #10: "
  <</PageSize [297 684] /ImagingBBox null>> setpagedevice"
*End
*PageRegion EnvMonarch/Envelope Monarch: "
  <</PageSize [279 540] /ImagingBBox null>> setpagedevice"
*End
*PageRegion EnvDL/Envelope DL: "
  <</PageSize [312 624] /ImagingBBox null>> setpagedevice"
*End
*PageRegion EnvC5/Envelope C5: "
  <</PageSize [459 649] /ImagingBBox null>> setpagedevice"
*End
*PageRegion EnvISOB5/Envelope B5: "
  <</PageSize [499 709] /ImagingBBox null>> setpagedevice"
*End
*CloseUI: *PageRegion

*DefaultImageableArea: Letter
*ImageableArea Letter/Letter: "12.24 12.06 599.76 779.06"
*ImageableArea Executive/Executive: "13.32 12.06 508.68 743.06"
*ImageableArea Legal/Legal: "12.24 12.06 599.76 995.06"
*ImageableArea A4/A4: "13.44 12.06 581.76 828.74"
*ImageableArea A5/A5: "12.00 12.00 407.00 583.00"
*ImageableArea B5/B5 (JIS): "12.50 12.50 503.50 715.50"
*ImageableArea Env10/Envelope #10: "12.12 12.06 284.76 671.06"
*ImageableArea EnvMonarch/Envelope Monarch: "12.72 12.06 266.16 527.06"
*ImageableArea EnvDL/Envelope DL: "13.80 12.06 297.96 610.58"
*ImageableArea EnvC5/Envelope C5: "12.60 12.06 446.52 636.02"
*ImageableArea EnvISOB5/Envelope B5: "13.20 12.06 485.52 695.54"
*?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

*DefaultPaperDimension: Letter 
*PaperDimension Letter/Letter: "612 792"
*PaperDimension Executive/Executive: "522 756"
*PaperDimension Legal/Legal: "612 1008"
*PaperDimension A4/A4: "595 842"
*PaperDimension A5/A5: "420 595"
*PaperDimension B5/B5 (JIS): "516 729"
*PaperDimension Env10/Envelope #10: "297 684"
*PaperDimension EnvMonarch/Envelope Monarch: "279 540"
*PaperDimension EnvDL/Envelope DL: "312 624"
*PaperDimension EnvC5/Envelope C5: "459 649"
*PaperDimension EnvISOB5/Envelope B5: "499 709"

*LandscapeOrientation: Plus90

*%=== Custom Paper Support =================
*%Orientation and Margin (offsets) values are not utilized
*% Smallest = 3x5, Largest = 8.5 x 14

*VariablePaperSize: True

*LeadingEdge Short: ""
*DefaultLeadingEdge: Short

*MaxMediaWidth:  "612"
*MaxMediaHeight: "1008"
*HWMargins:      16 16 16 16
*CustomPageSize True: "
  pop pop pop
  <</DeferredMediaSelection true /PageSize [ 7 -2 roll ] /ImagingBBox null >>
  setpagedevice
"
*End

*ParamCustomPageSize Width:        1 points 216 612
*ParamCustomPageSize Height:       2 points 360 1008
*ParamCustomPageSize WidthOffset:  3 points 0 0
*ParamCustomPageSize HeightOffset: 4 points 0 0
*ParamCustomPageSize Orientation:  5 int 1 1

*RequiresPageRegion All: True

*%=== Paper Sources ====================
*OpenUI *InputSlot: PickOne
*OrderDependency: 20 AnySetup *InputSlot
*DefaultInputSlot: Middle
*InputSlot Upper/Tray 1: "<</ManualFeed false /MediaPosition 3>> setpagedevice"
*InputSlot ManualFeed/Tray 1 (Manual): "<</ManualFeed true /MediaPosition 3>> setpagedevice"
*InputSlot Middle/Tray 2: "<</ManualFeed false /MediaPosition 0>> setpagedevice"
*InputSlot Lower/Tray 3: "<</ManualFeed false /MediaPosition 1>> setpagedevice"
*InputSlot LargeCapacity/Tray 4: "<</ManualFeed false /MediaPosition 4>> setpagedevice"
*InputSlot Envelope/Envelope Feeder: "<</ManualFeed false /MediaPosition 2>> setpagedevice"
*?InputSlot: "
   save
      currentpagedevice /InputAttributes get /Priority get
      aload pop pop pop pop
      [(Middle) (Lower) (Envelope) (Upper) (LargeCapacity)] exch get = flush
   restore
"
*End
*CloseUI: *InputSlot

*%=== Media Type ===========================
*OpenUI *MediaType/Media Type: PickOne
*OrderDependency: 50 AnySetup *MediaType
*DefaultMediaType: None
*MediaType None/None: ""
*MediaType Plain/Plain: "<</MediaType (Plain)>> setpagedevice"
*MediaType Preprinted/Preprinted: "<</MediaType (Preprinted)>> setpagedevice"
*MediaType Letterhead/Letterhead: "<</MediaType (Letterhead)>> setpagedevice"
*MediaType Transparency/Transparency: "<</MediaType (Transparency)>> setpagedevice"
*MediaType Prepunched/Prepunched: "<</MediaType (Prepunched)>> setpagedevice"
*MediaType Labels/Labels: "<</MediaType (Labels)>> setpagedevice"
*MediaType Bond/Bond: "<</MediaType (Bond)>> setpagedevice"
*MediaType Recycled/Recycled: "<</MediaType (Recycled)>> setpagedevice"
*MediaType Color/Color: "<</MediaType (Color)>> setpagedevice"
*MediaType Cardstock/Card Stock: "<</MediaType (Card Stock)>> setpagedevice"
*MediaType Rough/Rough: "<</MediaType (Rough)>> setpagedevice"
*?MediaType: "
  save
    currentpagedevice /InputAttributes get dup
    /Priority get
    0 get get
    /MediaType get
    (Rough) anchorsearch
      {pop pop (Rough)} if  
    = flush
  restore
"
*End
*CloseUI: *MediaType

*%=== Fit to Page =========================
*OpenUI *HPPaperPolicy/Fit to Page: PickOne
*OrderDependency: 10 AnySetup *HPPaperPolicy
*DefaultHPPaperPolicy: PromptUser
*HPPaperPolicy PromptUser/Prompt User: "
   <</DeferredMediaSelection true>> setpagedevice"
*End
*HPPaperPolicy NearestSizeAdjust/Nearest Size and Scale: "
   <</DeferredMediaSelection false /Policies << /PageSize 3 >> >> setpagedevice"
*End
*HPPaperPolicy NearestSizeNoAdjust/Nearest Size and Crop: "
   <</DeferredMediaSelection false /Policies << /PageSize 5 >> >> setpagedevice"
*End
*CloseUI: *HPPaperPolicy

*%=== Halftone Information =================
*ScreenFreq:  "106.0"
*ScreenAngle: "45.0"

*ResScreenFreq 300dpi/300 dpi:  "60.0"
*ResScreenAngle 300dpi/300 dpi: "45.0"
*ResScreenFreq 600dpi/600 dpi:  "106.0"
*ResScreenAngle 600dpi/600 dpi: "45.0"
*ResScreenFreq 1200dpi/1200 dpi:  "180.0"
*ResScreenAngle 1200dpi/1200 dpi: "45.0"

*DefaultScreenProc: Dot
*ScreenProc HPEnhanced: "
	{ /EnhancedHalftone /Halftone findresource }"
*End
*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 }"

*DefaultHalftoneType:    9
*AccurateScreensSupport: False

*OpenUI *HPHalftone/Levels of Gray: PickOne
*OrderDependency: 10 DocumentSetup *HPHalftone
*DefaultHPHalftone: PrinterDefault
*HPHalftone PrinterDefault/Printer's Current Setting: ""
*HPHalftone Enhanced/Enhanced: "
   << /Install {
     currentpagedevice /HWResolution get
     dup 0 get 600 eq exch 1 get 600 eq and
     { /EnhancedColorRendering600 } { /EnhancedColorRendering } ifelse
     /ColorRendering findresource setcolorrendering
     /EnhancedHalftone /Halftone findresource sethalftone
     { } settransfer false setstrokeadjust
   }
   >> setpagedevice
   currentpagedevice /HWResolution get dup 0 get 600 eq exch 1 get 600 eq and
   {
       << /PostRenderingEnhance true
            /PostRenderingEnhanceDetails << /REValue 0 /Type 8 >>
       >> setpagedevice
   } if
   /setscreen { pop pop pop } def
   /setcolorscreen { pop pop pop pop pop pop pop pop pop pop pop pop } def
   /sethalftone { pop } def 
"
*End
*HPHalftone Standard/Standard: "
     << /Install {
     currentpagedevice /HWResolution get
     dup 0 get 600 eq exch 1 get 600 eq and dup
     currentpagedevice /PostRenderingEnhance get
     currentpagedevice /PostRenderingEnhanceDetails get /REValue get 0 ne and
     { {/DefaultColorRenderingRE600} {/DefaultColorRenderingRE} ifelse}
     { {/DefaultColorRendering600} {/DefaultColorRendering} ifelse} ifelse
     /ColorRendering findresource setcolorrendering
     { /DefaultHalftone600 } {/DefaultHalftone} ifelse
     /Halftone findresource sethalftone
     {} settransfer false setstrokeadjust
   } >> setpagedevice
   currentpagedevice /HWResolution get dup 0 get 600 eq exch 1 get 600 eq and
   {
     << /PostRenderingEnhance true /PostRenderingEnhanceDetails
     << /REValue 0 /Type 8 >> >> setpagedevice
   } if
"
*End
*?HPHalftone: "
   save
      currenthalftone /HalftoneType get 9 eq 
     {(Enhanced)} {(Standard)} ifelse = flush
   restore
"
*End
*CloseUI: *HPHalftone

*%=== Duplex ====================================
*OpenUI *Duplex/Duplex:  PickOne
*OrderDependency: 50 AnySetup *Duplex
*DefaultDuplex: None
*Duplex None/Off (1-Sided): "
  <</Duplex false>> setpagedevice"
*End
*Duplex DuplexNoTumble/Flip on Long Edge (Standard): "
  <</Duplex true /Tumble false>> setpagedevice"
*End
*Duplex DuplexTumble/Flip on Short Edge: "
  <</Duplex true /Tumble true>> setpagedevice"
*End
*?Duplex: "
   save
   currentpagedevice /Duplex known
   false ne
     { currentpagedevice /Duplex get
        { currentpagedevice /Tumble get
            {(DuplexTumble)}{(DuplexNoTumble)}ifelse
        } { (None)}    ifelse 
     }{(None)}  ifelse = flush
   restore
"
*End 
*CloseUI: *Duplex

*%=== Color Control ========================
*DefaultColorSep: ProcessBlack.106lpi.600dpi/106 lpi / 600 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 85 lpi / 600 dpi  (5,5,2,6,6,2,20/3,0) ====
*ColorSepScreenAngle ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi: "45.0"
*ColorSepScreenAngle CustomColor.85lpi.600dpi/85 lpi / 600 dpi: "45.0"
*ColorSepScreenAngle ProcessCyan.85lpi.600dpi/85 lpi / 600 dpi: "71.5651"
*ColorSepScreenAngle ProcessMagenta.85lpi.600dpi/85 lpi / 600 dpi: "18.4349"
*ColorSepScreenAngle ProcessYellow.85lpi.600dpi/85 lpi / 600 dpi: "0.0"

*ColorSepScreenFreq ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi: "84.8528"
*ColorSepScreenFreq CustomColor.85lpi.600dpi/85 lpi / 600 dpi: "84.8528"
*ColorSepScreenFreq ProcessCyan.85lpi.600dpi/85 lpi / 600 dpi: "94.8683"
*ColorSepScreenFreq ProcessMagenta.85lpi.600dpi/85 lpi / 600 dpi: "94.8683"
*ColorSepScreenFreq ProcessYellow.85lpi.600dpi/85 lpi / 600 dpi: "30.0"
*ColorSepScreenProc ProcessYellow.85lpi.600dpi/85 lpi / 600 dpi: "
{1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch
1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch
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

*%  For 106 lpi / 300 dpi  =========================
*ColorSepScreenAngle ProcessBlack.106lpi.300dpi/106 lpi / 300 dpi: "45.0"
*ColorSepScreenAngle CustomColor.106lpi.300dpi/106 lpi / 300 dpi: "45.0"
*ColorSepScreenAngle ProcessCyan.106lpi.300dpi/106 lpi / 300 dpi: "71.5651"
*ColorSepScreenAngle ProcessMagenta.106lpi.300dpi/106 lpi / 300 dpi: "18.4349"
*ColorSepScreenAngle ProcessYellow.106lpi.300dpi/106 lpi / 300 dpi: "0.0"
     
*ColorSepScreenFreq ProcessBlack.106lpi.300dpi/106 lpi / 300 dpi: "106.066"
*ColorSepScreenFreq CustomColor.106lpi.300dpi/106 lpi / 300 dpi: "106.066"
*ColorSepScreenFreq ProcessCyan.106lpi.300dpi/106 lpi / 300 dpi: "94.8683"
*ColorSepScreenFreq ProcessMagenta.106lpi.300dpi/106 lpi / 300 dpi: "94.8683"
*ColorSepScreenFreq ProcessYellow.106lpi.300dpi/106 lpi / 300 dpi: "100.0"

*%  For 106 lpi / 600 dpi  =========================
*ColorSepScreenAngle ProcessBlack.106lpi.600dpi/106 lpi / 600 dpi: "45.0"
*ColorSepScreenAngle CustomColor.106lpi.600dpi/106 lpi / 600 dpi: "45.0"
*ColorSepScreenAngle ProcessCyan.106lpi.600dpi/106 lpi / 600 dpi: "71.5651"
*ColorSepScreenAngle ProcessMagenta.106lpi.600dpi/106 lpi / 600 dpi: "18.4349"
*ColorSepScreenAngle ProcessYellow.106lpi.600dpi/106 lpi / 600 dpi: "0.0"
     
*ColorSepScreenFreq ProcessBlack.106lpi.600dpi/106 lpi / 600 dpi: "106.066"
*ColorSepScreenFreq CustomColor.106lpi.600dpi/106 lpi / 600 dpi: "106.066"
*ColorSepScreenFreq ProcessCyan.106lpi.600dpi/106 lpi / 600 dpi: "94.8683"
*ColorSepScreenFreq ProcessMagenta.106lpi.600dpi/106 lpi / 600 dpi: "94.8683"
*ColorSepScreenFreq ProcessYellow.106lpi.600dpi/106 lpi / 600 dpi: "100.0"

*%  For 180 lpi / 1200 dpi  =========================
*ColorSepScreenAngle ProcessBlack.180lpi.1200dpi/180 lpi / 1200 dpi: "45.0"
*ColorSepScreenAngle CustomColor.180lpi.1200dpi/180 lpi / 1200 dpi: "45.0"
*ColorSepScreenAngle ProcessCyan.180lpi.1200dpi/180 lpi / 1200 dpi: "71.5651"
*ColorSepScreenAngle ProcessMagenta.180lpi.1200dpi/180 lpi / 1200 dpi: "18.4349"
*ColorSepScreenAngle ProcessYellow.180lpi.1200dpi/180 lpi / 1200 dpi: "0.0"
     
*ColorSepScreenFreq ProcessBlack.180lpi.1200dpi/180 lpi / 1200 dpi: "180"
*ColorSepScreenFreq CustomColor.180lpi.1200dpi/180 lpi / 1200 dpi: "180"
*ColorSepScreenFreq ProcessCyan.180lpi.1200dpi/180 lpi / 1200 dpi: "161"
*ColorSepScreenFreq ProcessMagenta.180lpi.1200dpi/180 lpi / 1200 dpi: "161"
*ColorSepScreenFreq ProcessYellow.180lpi.1200dpi/180 lpi / 1200 dpi: "170"

*% Patch for downloading Ture Type font as Outline.
*ADORequiresEExec: True

*%=== Font Information =====================
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
*Font AvantGarde-Demi: Standard "(001.007S)" Standard ROM
*Font AvantGarde-DemiOblique: Standard "(001.007S)" Standard ROM
*Font Bookman-Demi: Standard "(001.004S)" Standard ROM
*Font Bookman-DemiItalic: Standard "(001.004S)" Standard ROM
*Font Bookman-Light: Standard "(001.004S)" Standard ROM
*Font Bookman-LightItalic: Standard "(001.004S)" Standard ROM
*Font Courier: Standard "(002.004S)" Standard ROM
*Font Courier-Bold: Standard "(002.004S)" Standard ROM
*Font Courier-BoldOblique: Standard "(002.004S)" Standard ROM
*Font Courier-Oblique: Standard "(002.004S)" Standard ROM
*Font Helvetica: Standard "(001.006S)" Standard ROM
*Font Helvetica-Bold: Standard "(001.007S)" Standard ROM
*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow: Standard "(001.006S)" Standard ROM
*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard ROM
*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard ROM
*Font Helvetica-Oblique: Standard "(001.006S)" Standard ROM
*Font NewCenturySchlbk-Bold: Standard "(001.009S)" Standard ROM
*Font NewCenturySchlbk-BoldItalic: Standard "(001.007S)" Standard ROM
*Font NewCenturySchlbk-Italic: Standard "(001.006S)" Standard ROM
*Font NewCenturySchlbk-Roman: Standard "(001.007S)" Standard ROM
*Font Palatino-Bold: Standard "(001.005S)" Standard ROM
*Font Palatino-BoldItalic: Standard "(001.005S)" Standard ROM
*Font Palatino-Italic: Standard "(001.005S)" Standard ROM
*Font Palatino-Roman: Standard "(001.005S)" Standard ROM
*Font Symbol: Special "(001.007S)" Special ROM
*Font Times-Bold: Standard "(001.007S)" Standard ROM
*Font Times-BoldItalic: Standard "(001.009S)" Standard ROM
*Font Times-Italic: Standard "(001.007S)" Standard ROM
*Font Times-Roman: Standard "(001.007S)" Standard ROM
*Font ZapfChancery-MediumItalic: Standard "(001.007S)" Standard ROM
*Font ZapfDingbats: Special "(001.004S)" Special ROM
*?FontQuery: "
   save
   { count 1 gt
      { exch dup 127 string cvs (/) print print (:) print
      /Font resourcestatus {pop pop (Yes)} {(No)} ifelse =
      } { exit } ifelse
   } bind loop
   (*) = flush
   restore
"
*End

*?FontList: "
   save
     (*) {cvn ==} 128 string /Font resourceforall
     (*) = 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: "warming up"/warming up
*Status: "idle"/idle
*Status: "busy"/busy
*Status: "waiting"/waiting
*Status: "printing"/printing
*Status: "initializing"/initializing
*Status: "printing test page"/printing test page
*Status: "PrinterError: cover open or no toner cartridge"/cover open or no toner cartridge
*Status: "PrinterError: cover open"/cover open
*Status: "PrinterError: needs attention"/needs attention
*Status: "PrinterError: no toner cartridge"/no toner cartridge
*Status: "PrinterError: warming up"/warming up
*Status: "PrinterError: manual feed"/manual feed
*Status: "PrinterError: out of paper"/out of paper
*Status: "PrinterError: Paper Jam"/Paper Jam
*Status: "PrinterError: paper jam"/paper jam
*Status: "PrinterError: page protect needed"/page protect needed
*Status: "PrinterError: out of memory"/out of memory
*Status: "PrinterError: output bin full"/output bin full
*Status: "PrinterError: resetting printer"/resetting printer
*Status: "PrinterError: toner is low"/toner is low
*Status: "PrinterError: off line"/off line

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrinterError: "cover open or no toner cartridge"/cover open or no toner cartridge
*PrinterError: "cover open"/cover open
*PrinterError: "needs attention"/needs attention
*PrinterError: "no toner cartridge"/no toner cartridge
*PrinterError: "warming up"/warming up
*PrinterError: "manual feed"/manual feed
*PrinterError: "out of paper"/out of paper
*PrinterError: "Paper Jam"/Paper Jam
*PrinterError: "paper jam"/paper jam
*PrinterError: "page protect needed"/page protect needed
*PrinterError: "out of memory"/out of memory
*PrinterError: "output bin full"/output bin full
*PrinterError: "resetting printer"/resetting printer
*PrinterError: "toner is low"/toner is low
*PrinterError: "off line"/off line

*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
*Source: "BiTronics"/BiTronics
*Source: "other I/O"/other I/O
*Source: "AppleTalk"/AppleTalk
*Source: "APPLETALK"/AppleTalk
*Source: "ATALK"/AppleTalk
*Source: "LocalTalk"/LocalTalk
*Source: "Parallel"/Parallel
*Source: "EtherTalk"/EtherTalk
*Source: "NOVELL"/NOVELL
*Source: "DLC/LLC"/DLC/LLC
*Source: "ETALK"/EtherTalk
*Source: "TCP/IP"/TCP/IP

*Password: "()"
*ExitServer: "
 count 0 eq
 { false } { true exch startjob } ifelse
 not {
     (WARNING: Cannot modify initial VM.) =
     (Missing or invalid password.) =
     (Please contact the author of this software.) = flush quit
     } if
"
*End
*Reset: "
  count 0 eq { false } { true exch startjob } ifelse
  not {
    (WARNING: Cannot reset printer.) =
    (Missing or invalid password.) =
    (Please contact the author of this software.) = flush quit
    } if
  systemdict /quit get exec
  (WARNING : Printer Reset Failed.) = flush
"
*End

*% =======================================
*% For "HP LaserJet 4000 Series" version 2014.108
*% =======================================