*PPD-Adobe: "4.1"
*% Adobe PostScript(R) Printer Description File
*% For IBM Color Jetprinter PS 4079
*% For use with Windows NT
*% Produced by Lexmark International, Inc.
*%
*% Copyright (c) 1993 Lexmark International Inc.  All Rights Reserved.
*% Permission is granted for redistribution of this file as
*% long as this copyright notice is intact and the content
*% of the file is not altered in any way from its original form.
*%
*%

*FormatVersion: "4.1"
*FileVersion: "3.0"
*LanguageVersion: English
*PCFileName: "IBM4079.PPD"
*LanguageEncoding: WindowsANSI
*Product: "(IBM Color Jetprinter PS 4079)"
*PSVersion: ""
*ModelName: "IBM Color Jetprinter PS 4079"
*ShortNickName: "IBM 4079 Color Jetprinter PS"
*NickName: "IBM 4079 Color Jetprinter PS"

*% === Options and Constraints ============

*OpenGroup: InstallableOptions/Options Installed
*OpenUI *Option1/Memory Configuration: PickOne
*DefaultOption1: 4Meg
*Option1 4Meg/Basic (4Mb) Memory:  ""
*Option1 8Meg/8Mb Memory:  ""
*Option1 12Meg/12Mb Memory:  ""
*Option1 16Meg/16Mb Memory:  ""
*CloseUI: *Option1

*OpenUI *Option2/Printer Software Version: PickOne
*DefaultOption2: 2502
*Option2 2500/250.0x:  ""
*Option2 2502/250.2x:  ""
*CloseUI: *Option2

*CloseGroup: InstallableOptions

*UIConstraints: *Option1 4Meg  *VMOption
*UIConstraints: *Option1 8Meg  *VMOption 4Meg
*UIConstraints: *Option1 8Meg  *VMOption 12Meg
*UIConstraints: *Option1 8Meg  *VMOption 16Meg
*UIConstraints: *Option1 12Meg *VMOption 4Meg
*UIConstraints: *Option1 12Meg *VMOption 8Meg
*UIConstraints: *Option1 12Meg *VMOption 16Meg
*UIConstraints: *Option1 16Meg *VMOption 4Meg
*UIConstraints: *Option1 16Meg *VMOption 8Meg
*UIConstraints: *Option1 16Meg *VMOption 12Meg

*UIConstraints: *Option2 2500 *ColorModel
*UIConstraints: *Option2 2502 *ColorModel None
*UIConstraints: *Option2 2500 *OutputMode
*UIConstraints: *Option2 2502 *OutputMode None
*UIConstraints: *Option2 2500 *PBrightness
*UIConstraints: *Option2 2502 *PBrightness None
*UIConstraints: *Option2 2500 *PContrast
*UIConstraints: *Option2 2502 *PContrast None

*UIConstraints:  *MediaType Standard *MediaWeight

*% === Basic Capabilities ============
*% System Management==Base=4Meg, (6,8,10,12,16Meg with optional ram) ======

*LanguageLevel: "1"
*FreeVM: "369000"
*VMOption 4Meg/Basic (4Mb) Memory: "369000"
*VMOption 8Meg/8Mb Memory: "909312"
*VMOption 12Meg/12Mb Memory: "1433600"
*VMOption 16Meg/16Mb Memory: "2007040"
*ColorDevice: True
*DefaultColorSpace: CMYK
*Extensions: CMYK
*VariablePaperSize: False
*Throughput: "1"
*Password: "0"

*ExitServer: "
 count 0 eq
 {                       % password not on the stack
   true
 }
 {                       % check password for validity
   dup
   statusdict begin
   checkpassword
   end %statusdict
   not
 } ifelse
 {                       % password invalid or missing
   (WARNING! Cannot perform exitserver.) print
   (Invalid password.) print
   (Please contact system support.) print flush
   quit
 } if
 serverdict begin exitserver
 "
*End

*Reset: "
 count 0 eq
 {                       % password not on the stack
   true
 }
 {                       % check password for validity
   dup
   statusdict begin
   checkpassword
   end %statusdict
   not
 } ifelse
 {                       % password invalid or missing
   (WARNING! Cannot perform exitserver.) print
   (Invalid password.) print
   (Please contact system support.) print flush
   quit
 } if
 serverdict begin exitserver
 systemdict /quit get exec
 (WARNING! Printer Reset failed.) print flush
 "
*End

*% === Resolution ============

*DefaultResolution: 360dpi
*Resolution 360dpi: ""
*?Resolution: "
 save
  initgraphics
  0 0 matrix defaultmatrix transform
  0 72 matrix defaultmatrix transform
  3 -1 roll sub dup mul
  3 1 roll exch sub dup mul
  add sqrt round cvi
  (          ) cvs print (dpi) print flush
 restore
 "
*End

*% === Halftone Information === (For Standard Screening) ===

*ScreenFreq: "60.0"
*ScreenAngle: "24.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 }"
*Transfer Normalized: "{ }"
*Transfer Normalized.Inverse: "{ 1 exch sub }"
*Transfer Red: "{ }"
*Transfer Red.Inverse: "{ 1 exch sub }"
*Transfer Green: "{ }"
*Transfer Green.Inverse: "{ 1 exch sub }"
*Transfer Blue: "{ }"
*Transfer Blue.Inverse: "{ 1 exch sub }"

*OpenUI *MediaColor/Print Quality: PickOne
*OrderDependency: 10 AnySetup *MediaColor
*DefaultMediaColor: None
*MediaColor None/Printer Setting: ""
*MediaColor Draft/Draft: "statusdict begin 3 setprintmethod end"
*MediaColor Transparency/Transparency: "statusdict begin 5 setprintmethod end"
*MediaColor Quality/Quality: "statusdict begin 1 setprintmethod end"
*MediaColor HighQuality/High Quality: "statusdict begin 4 setprintmethod end"
*MediaColor BoldBlack/Bold Black: "statusdict begin 2 setprintmethod end"
*?MediaColor: "
 save statusdict begin
 [(Quality) (BoldBlack) (Draft) (HighQuality) (Transparency)]
 printmethod 1 sub get = flush
 end
 restore"
*End
*CloseUI: *MediaColor

*OpenUI *MediaType/Screening: PickOne
*OrderDependency: 10 AnySetup *MediaType
*DefaultMediaType: None
*MediaType None/Printer Setting: ""
*MediaType Standard/Standard: "statusdict begin 1 setscreening end"
*MediaType Enhanced/Enhanced: "statusdict begin 2 setscreening end"
*?MediaType: "
 save statusdict begin
 [(Standard) (Enhanced)] screening 1 sub get = flush
 end
 restore"
*End
*CloseUI: *MediaType

*OpenUI *MediaWeight/Color Balance: PickOne
*OrderDependency: 10 AnySetup *MediaWeight
*DefaultMediaWeight: None
*MediaWeight None/Printer Setting: ""
*MediaWeight Off/Off: "statusdict begin 0 setcolorbalance end"
*MediaWeight CoatedPaper/Coated Paper: "statusdict begin 1 setcolorbalance end"
*MediaWeight PlainPaper/Plain Paper: "statusdict begin 2 setcolorbalance end"
*MediaWeight Transparency/Transparency: "statusdict begin 3 setcolorbalance end"
*?MediaWeight: "
 save statusdict begin
 [(None) (CoatedPaper) (PlainPaper) (Transparency)]
 colorbalance get = flush
 end
 restore"
*End
*CloseUI: *MediaWeight

*OpenUI *OutputMode/Blue Adjust: PickOne
*OrderDependency: 10 AnySetup *OutputMode
*DefaultOutputMode: PrinterSetting
*OutputMode None/Off: ""
*OutputMode PrinterSetting/Printer Setting: ""
*OutputMode Off/Off: "
 statusdict begin /setblueadjust where {pop 0 setblueadjust}if end"
*End
*OutputMode Painted/Line Art & Text: "
 statusdict begin /setblueadjust where {pop 1 setblueadjust}if end"
*End
*OutputMode Images/Images: "
 statusdict begin /setblueadjust where {pop 2 setblueadjust}if end"
*End
*OutputMode All/All: "
 statusdict begin /setblueadjust where {pop 3 setblueadjust}if end"
*End
*CloseUI: *OutputMode

*OpenUI *ColorModel/Color Model: PickOne
*OrderDependency: 10 AnySetup *ColorModel
*DefaultColorModel: None
*ColorModel None/CMYK: ""
*ColorModel CMY/Printer Setting: ""
*ColorModel RGB: "
 statusdict begin /setcolormodel where {pop 1 setcolormodel}if end"
*End
*ColorModel CMYK: "
 statusdict begin /setcolormodel where {pop 0 setcolormodel}if end"
*End
*CloseUI: *ColorModel

*OpenUI *PBrightness/Image Brightness: PickOne
*OrderDependency: 10 AnySetup *PBrightness
*DefaultPBrightness: PrinterSetting
*PBrightness PrinterSetting/Printer Setting: ""
*PBrightness None/0: ""
*PBrightness 0: "
 statusdict begin /setimagebrightness where {0 setimagebrightness}if end"
*End
*PBrightness +5: "
 statusdict begin /setimagebrightness where {5 setimagebrightness}if end"
*End
*PBrightness +10: "
 statusdict begin /setimagebrightness where {10 setimagebrightness}if end"
*End
*PBrightness +15: "
 statusdict begin /setimagebrightness where {15 setimagebrightness}if end"
*End
*PBrightness +20: "
 statusdict begin /setimagebrightness where {20 setimagebrightness}if end"
*End
*PBrightness +25: "
 statusdict begin /setimagebrightness where {25 setimagebrightness}if end"
*End
*PBrightness +30: "
 statusdict begin /setimagebrightness where {30 setimagebrightness}if end"
*End
*PBrightness +35: "
 statusdict begin /setimagebrightness where {35 setimagebrightness}if end"
*End
*PBrightness +40: "
 statusdict begin /setimagebrightness where {40 setimagebrightness}if end"
*End
*PBrightness +45: "
 statusdict begin /setimagebrightness where {45 setimagebrightness}if end"
*End
*PBrightness +50: "
 statusdict begin /setimagebrightness where {50 setimagebrightness}if end"
*End
*CloseUI: *PBrightness

*OpenUI *PContrast/Image Contrast: PickOne
*OrderDependency: 10 AnySetup *PContrast
*DefaultPContrast: PrinterSetting
*PContrast PrinterSetting/Printer Setting: ""
*PContrast None/0: ""
*PContrast 0: "
 statusdict begin /setimagecontrast where {0 setimagecontrast}if end"
*End
*PContrast +5: "
 statusdict begin /setimagecontrast where {5 setimagecontrast}if end"
*End
*PContrast +10: "
 statusdict begin /setimagecontrast where {10 setimagecontrast}if end"
*End
*PContrast +15: "
 statusdict begin /setimagecontrast where {15 setimagecontrast}if end"
*End
*PContrast +20: "
 statusdict begin /setimagecontrast where {20 setimagecontrast}if end"
*End
*PContrast +25: "
 statusdict begin /setimagecontrast where {25 setimagecontrast}if end"
*End
*PContrast +30: "
 statusdict begin /setimagecontrast where {30 setimagecontrast}if end"
*End
*PContrast +35: "
 statusdict begin /setimagecontrast where {35 setimagecontrast}if end"
*End
*PContrast +40: "
 statusdict begin /setimagecontrast where {40 setimagecontrast}if end"
*End
*PContrast +45: "
 statusdict begin /setimagecontrast where {45 setimagecontrast}if end"
*End
*PContrast +50: "
 statusdict begin /setimagecontrast where {50 setimagecontrast}if end"
*End
*CloseUI: *PContrast


*% === Paper Handling ===================

*% Use these entries to set paper size, unless there is
*% specific reason to use PageRegion or PaperTray.
*OpenUI *PageSize:  PickOne
*OrderDependency: 30 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter/Letter: "statusdict begin /letter true setpapersize end"
*PageSize Legal/Legal: "statusdict begin /legal true setpapersize end"
*PageSize B5/B5: "statusdict begin /b5 true setpapersize end"
*PageSize A4/A4: "statusdict begin /a4 true setpapersize end"
*PageSize Executive/Executive: "statusdict begin /executivepage true setpapersize end"
*PageSize A3/A3: "statusdict begin /a3 true setpapersize end"
*PageSize Tabloid/Tabloid: "statusdict begin /11x17 true setpapersize end"
*PageSize Comm10/Envelope #10: "statusdict begin /4.125x9.5envelope false setpapersize end 0 297 translate 270 rotate"
*PageSize DL/Envelope DL: "statusdict begin /110x220envelope false setpapersize end 0 311 translate 270 rotate"
*?PageSize: "
 save statusdict begin
   9 dict begin
   /letter (Letter) def
   /legal (Legal) def
   /b5 (B5) def
   /a4 (A4) def
   /executivepage (Executive) def
   /a3 (A3) def
   /11x17 (Tabloid) def
   /4.125x9.5envelope (Envelope.297.684/C10 Envelope) def
   /110x220envelope (Envelope.312.624/DL Envelope) def
   defaultpagesize pop
   { load exec } stopped not
           {= flush}
           {(Unknown) = flush}
   ifelse
   end             %temp
 end             %statusdict
 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: "letter"
*PageRegion Legal/Legal: "legal"
*PageRegion B5/B5: "b5"
*PageRegion A4/A4: "a4"
*PageRegion Executive/Executive: "executivepage"
*PageRegion A3/A3: "a3"
*PageRegion Tabloid/Tabloid: "11x17"
*PageRegion Comm10/Envelope #10: "4.125x9.5envelope 0 297 translate 270 rotate"
*PageRegion DL/Envelope DL: "110x220envelope 0 311 translate 270 rotate"
*CloseUI: *PageRegion

*DefaultImageableArea: Letter
*ImageableArea Letter/Letter:       "12 27 603 781"
*ImageableArea Legal/Legal:         "12 26 603 997"
*ImageableArea B5/B5:               "12 28 507 716"
*ImageableArea A4/A4:               "11 26 587 831"
*ImageableArea Executive/Executive: "12 30 512 745"
*ImageableArea A3/A3:               "12 29 832 1177"
*ImageableArea Tabloid/Tabloid:     "12 24 782 1213"
*% TM, LM, Physical Page Height-BM, Physical Page Width-RM
*ImageableArea Comm10/Envelope #10: "11 12 265 675"
*ImageableArea DL/Envelope DL:      "10 12 291 613"
*?ImageableArea: "
 save
   /cvp { cvi (            ) cvs print ( ) print } bind def
   newpath clippath pathbbox
   4 -2 roll exch 2 {ceiling cvp} repeat
    exch 2 {floor cvp} repeat flush
 restore
 "
*End

*% These provide the physical dimensions of the paper (by keyword)
*DefaultPaperDimension: Letter
*PaperDimension Letter/Letter:       "612 792"
*PaperDimension Legal/Legal:         "612 1008"
*PaperDimension B5/B5:               "518 727"
*PaperDimension A4/A4:               "597 842"
*PaperDimension Executive/Executive: "522 756"
*PaperDimension A3/A3:               "842 1188"
*PaperDimension Tabloid/Tabloid:     "792 1224"
*PaperDimension Comm10/Envelope #10: "297 684"
*PaperDimension DL/Envelope DL:      "311 623"

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

*DefaultOutputBin: OnlyOne
*OutputBin OnlyOne: ""
*DefaultOutputOrder: Reverse
*OutputOrder Reverse: ""

*% === Font Information =======================

*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.000)" Standard ROM
*Font AvantGarde-BookOblique: Standard "(001.000)" Standard ROM
*Font AvantGarde-Demi: Standard "(001.000)" Standard ROM
*Font AvantGarde-DemiOblique: Standard "(001.000)" Standard ROM
*Font Bookman-Demi: Standard "(001.000)" Standard ROM
*Font Bookman-DemiItalic: Standard "(001.000)" Standard ROM
*Font Bookman-Light: Standard "(001.000)" Standard ROM
*Font Bookman-LightItalic: Standard "(001.000)" Standard ROM
*Font Courier: Standard "(001.000)" Standard ROM
*Font Courier-Bold: Standard "(001.000)" Standard ROM
*Font Courier-Oblique: Standard "(001.000)" Standard ROM
*Font Courier-BoldOblique: Standard "(001.000)" Standard ROM
*Font Helvetica: Standard "(001.000)" Standard ROM
*Font Helvetica-Bold: Standard "(001.000)" Standard ROM
*Font Helvetica-Oblique: Standard "(001.000)" Standard ROM
*Font Helvetica-BoldOblique: Standard "(001.000)" Standard ROM
*Font Helvetica-Narrow: Standard "(001.000)" Standard ROM
*Font Helvetica-Narrow-Bold: Standard "(001.000)" Standard ROM
*Font Helvetica-Narrow-BoldOblique: Standard "(001.000)" Standard ROM
*Font Helvetica-Narrow-Oblique: Standard "(001.000)" Standard ROM
*Font NewCenturySchlbk-Roman: Standard "(001.000)" Standard ROM
*Font NewCenturySchlbk-Bold: Standard "(001.000)" Standard ROM
*Font NewCenturySchlbk-Italic: Standard "(001.000)" Standard ROM
*Font NewCenturySchlbk-BoldItalic: Standard "(001.000)" Standard ROM
*Font Palatino-Roman: Standard "(001.000)" Standard ROM
*Font Palatino-Bold: Standard "(001.000)" Standard ROM
*Font Palatino-Italic: Standard "(001.000)" Standard ROM
*Font Palatino-BoldItalic: Standard "(001.000)" Standard ROM
*Font Symbol: Special "(001.000)" Special ROM
*Font Times-Roman: Standard "(001.000)" Standard ROM
*Font Times-Bold: Standard "(001.000)" Standard ROM
*Font Times-Italic: Standard "(001.000)" Standard ROM
*Font Times-BoldItalic: Standard "(001.000)" Standard ROM
*Font ZapfChancery-MediumItalic: Standard "(001.000)" Standard ROM
*Font ZapfDingbats: Special "(001.000)" Special ROM
*?FontQuery: "
 save
 4 dict begin
 /sv exch def /str (fonts/                              ) def /st2 30 string def
   { count 0 gt
     { dup FontDirectory exch known {pop 1}
       { str exch st2 cvs dup length /len exch def
         6 exch putinterval str 0 len 6 add getinterval mark exch
         { } st2 filenameforall counttomark 0 gt
         { cleartomark 1}{cleartomark 0}ifelse
       }ifelse
       print flush
     }
     { exit } ifelse
   } bind loop
 sv end restore
 "
*End

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

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

*% Status (format: %%[ status: <one of these> ]%% )
*Status: "Idle"
*Status: "Busy"
*Status: "Waiting"
*Status: "Printing"
*Status: "Initializing"
*Status: "Printing start page"
*Status: "PrinterError: Printer Busy"
*Status: "PrinterError: Paper Jam"
*Status: "PrinterError: Wrong Paper Length"
*Status: "PrinterError: Cover Open"
*Status: "PrinterError: Wrong Paper Size"
*Status: "PrinterError: Paper Out or Feed Failure"
*Status: "PrinterError: Memory Full Error"
*Status: "PrinterError: Default Storage Error"
*Status: "PrinterError: Ioerror"
*Status: "PrinterError: Black Ink Cartridge Empty"
*Status: "PrinterError: Yellow Ink Cartridge Empty"
*Status: "PrinterError: Magenta Ink Cartridge Empty"
*Status: "PrinterError: Cyan Ink Cartridge Empty"
*Status: "PrinterError: Black Ink Cart. Missing"
*Status: "PrinterError: Yellow Ink Cart. Missing"
*Status: "PrinterError: Magenta Ink Cart. Missing"
*Status: "PrinterError: Cyan Ink Cart. Missing"
*Status: "PrinterError: Service Error"

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

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrinterError: "Paper Jam"
*PrinterError: "Wrong Paper Length"
*PrinterError: "Cover Open"
*PrinterError: "Wrong Paper Size"
*PrinterError: "Paper Out or Feed Failure"
*PrinterError: "Memory Full Error"
*PrinterError: "Default Storage Error"
*PrinterError: "Ioerror"
*PrinterError: "Black Ink Cartridge Empty"
*PrinterError: "Yellow Ink Cartridge Empty"
*PrinterError: "Magenta Ink Cartridge Empty"
*PrinterError: "Cyan Ink Cartridge Empty"
*PrinterError: "Black Ink Cart. Missing"
*PrinterError: "Yellow Ink Cart. Missing"
*PrinterError: "Magenta Ink Cart. Missing"
*PrinterError: "Cyan Ink Cart. Missing"
*PrinterError: "Service Error"

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

*DefaultColorSep: ProcessBlack.60lpi/60 lpi

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

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

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

*ColorSepScreenProc ProcessCyan.60lpi/60 lpi: "
 {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
*ColorSepScreenProc ProcessMagenta.60lpi/60 lpi: "
 {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
*ColorSepScreenProc ProcessYellow.60lpi/60 lpi: "
 {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
*ColorSepScreenProc ProcessBlack.60lpi/60 lpi: "
 {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

*ColorSepTransfer ProcessCyan.60lpi/60 lpi: "{ }"
*ColorSepTransfer ProcessMagenta.60lpi/60 lpi: "{ }"
*ColorSepTransfer ProcessYellow.60lpi/60 lpi: "{ }"
*ColorSepTransfer ProcessBlack.60lpi/60 lpi: "{ }"

*% End of PPD file for IBM Color Jetprinter PS 4079
