*PPD-Adobe: "4.1"
*% For "QMS 4525 Print System Level 2" version 2011.22
*% Produced by QMS, Inc.
*% Modified: 10/27/93

*FormatVersion: "4.1"
*FileVersion: "1.0"
*LanguageEncoding: ISOLatin1
*LanguageVersion: English
*PCFileName: "QMS4525.PPD"

*% QMS Defaults==========
*EndOfDocument: True
*DOCPageLayout: True
*StackBin: True

*Product: "(QMS 4525 Print System)"
*PSVersion: "(2011.22) 15"
*ModelName: "QMS 4525 Level 2"
*NickName: "QMS 4525 Level 2"

*% Options and Constraints =============================
*OpenGroup: InstallableOptions/Options Installed
*OpenUI *Option7/Optional 20BinSorter/40BinSorter: Boolean
*DefaultOption7: False
*Option7 True/Installed: ""
*Option7 False/Not Installed: ""
*CloseUI: *Option7
*OpenUI *Option9/Optional StackerStapler: Boolean
*DefaultOption9: False
*Option9 True/Installed: ""
*Option9 False/Not Installed: ""
*CloseUI: *Option9
*CloseGroup: InstallableOptions

*% This device cannot use the multiple output trays unless the 20 or 40 bin sorters are installed.
*% It cannot staple unless the stacker stapler is installed.  It can only have one installable
*% option installed.  
*UIConstraints: *Option7 False *OutputBin
*UIConstraints: *Option9 False *Staple 
*UIConstraints: *OutputBin *Staple True
*UIConstraints: *Staple True *OutputBin

*% Basic Capabilities =============================
*LanguageLevel: "2"
*FreeVM: "3550821"
*ColorDevice: True
*DefaultColorSpace: Gray
*VariablePaperSize: False
*FileSystem: True
*?FileSystem: "
save
  statusdict /diskonline get exec {(True)}{(False)} ifelse = flush
restore
"
*End
*Throughput: "45"
*Password: "0"
*ExitServer: "
 count 0 eq
 { false } { true exch startjob } ifelse
 not { 
     (WARNING : Cannot perform the exitserver command.) = 
     (Password supplied is not valid.) = 
     (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

*DefaultResolution: 300dpi
*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
*?Resolution: "
  save
    currentpagedevice /HWResolution get
    0 get
    (          ) cvs print
    (dpi)
    = flush
  restore
"
*End

*% Halftone Information =====================
*ScreenFreq: "60.0"
*ScreenAngle: "45.0"
*DefaultScreenProc: Dot
*ScreenProc Dot: "
{ 1.4 0.24 
  { 2 
   { 3 1 roll add dup 1.0 gt { 2.0 sub } if 
   } repeat
   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 
  } exec 
}
"
*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 }"

*% Paper Handling ==========================
*OpenUI *PageSize: PickOne
*OrderDependency: 30 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "
    2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize Legal: "
    2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize A4: "
    2 dict dup /PageSize [596 842] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize Folio: "
    2 dict dup /PageSize [596 936] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize Quarto: "
    2 dict dup /PageSize [576 720] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize Commercial: "
    2 dict dup /PageSize [576 765] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize Foolscap: "
    2 dict dup /PageSize [576 936] put dup /ImagingBBox null put setpagedevice"
*End
*PageSize SmallLegal: "
    2 dict dup /PageSize [612 936] put dup /ImagingBBox null put setpagedevice"
*End
*?PageSize: "
 save
   currentpagedevice /PageSize get aload pop
   2 copy gt {exch} if 
   (Unknown) 
   10 dict
   dup [612 792] (Letter) put
   dup [612 1008] (Legal) put
   dup [596 842] (A4) put
   dup [596 936] (Folio) put
   dup [576 720] (Quarto) put
   dup [576 765] (Commercial) put
   dup [576 936] (Foolscap) put
   dup [612 936] (SmallLegal) 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: "
    2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion Legal: "
    2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion A4: "
    2 dict dup /PageSize [596 842] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion Folio: "
    2 dict dup /PageSize [596 936] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion Quarto: "
    2 dict dup /PageSize [576 720] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion Commercial: "
    2 dict dup /PageSize [596 765] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion Foolscap: "
    2 dict dup /PageSize [576 936] put dup /ImagingBBox null put setpagedevice"
*End
*PageRegion SmallLegal: "
    2 dict dup /PageSize [612 936] put dup /ImagingBBox null put setpagedevice"
*End
*CloseUI: *PageRegion

*OpenUI *PaperTray: PickOne
*OrderDependency: 35 AnySetup *PaperTray
*DefaultPaperTray: Letter
*PaperTray Letter: "statusdict begin letter end"
*PaperTray Legal: "statusdict begin legal end"
*PaperTray A4: "statusdict begin a4 end"
*PaperTray Folio: "statusdict begin folio end"
*PaperTray Quarto: "statusdict begin quarto end"
*PaperTray Commercial: "statusdict begin commercial end"
*PaperTray Foolscap: "statusdict begin foolscap end"
*PaperTray SmallLegal: "statusdict begin smlegal end"
*?PaperTray: "
 save statusdict begin
  10 dict begin
   /letter (Letter) def
   /legal (Legal) def
   /a4 (A4) def
   /folio (Folio) def
   /quarto (Quarto) def
   /commercial (Commercial) def
   /foolscap (Foolscap) def
   /smlegal (SmallLegal) def
   papersize {
     {load exec} stopped not{= flush}if
   }{
     {load exec} stopped not{print (.Transverse) = flush}if
   }ifelse
  end
 end restore"
*End
*CloseUI: *PaperTray

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "12 12 600 780 "
*ImageableArea Legal: "12 12 600 996 "
*ImageableArea A4: "12 12 584 830 "
*ImageableArea Folio: "12 12 584 924 "
*ImageableArea Quarto: "12 12 564 708 "
*ImageableArea Commercial: "12 12 584 753 "
*ImageableArea Foolscap: "12 12 564 924 "
*ImageableArea SmallLegal: "12 12 600 924 "
*?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: "612 792"
*PaperDimension Legal: "612 1008"
*PaperDimension A4: "596 842"
*PaperDimension Folio: "596 936"
*PaperDimension Quarto: "576 720"
*PaperDimension Commercial: "596 765"
*PaperDimension Foolscap: "576 936"
*PaperDimension SmallLegal: "612 936"

*% Input Sources
*%
*OpenUI *InputSlot: PickOne
*OrderDependency: 20 AnySetup *InputSlot
*DefaultInputSlot: Upper
*InputSlot Upper: "statusdict begin 2 setpapertray end"
*InputSlot Lower: "statusdict begin 1 setpapertray end"
*?InputSlot: "
 save statusdict begin
  2 dict begin
   /2 (Upper) def
   /1 (Lower) def
   papertray
     {( ) cvs cvn load exec} stopped not{= flush}if
  end
 end restore
"
*End
*CloseUI: *InputSlot

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

*OpenUI *OutputBin: PickOne
*OrderDependency: 25 AnySetup *OutputBin
*DefaultOutputBin: Default  
*OutputBin Default: "statusdict begin 1 setoutputtray end"
*?OutputBin: "
 save statusdict begin
  5 dict begin
   /1 (Upper) def
   /2 (Lower) def
   /3 (Side) def
   outputtray
   {( ) cvs cvn load exec} stopped not{= flush}if
  end
 end restore
"
*End
*CloseUI: *OutputBin



*DefaultOutputOrder: Normal

*OpenUI *Collate:  Boolean
*OrderDependency:  40 AnySetup *Collate
*DefaultCollate: True
*Collate True:  "1 dict dup /Collate true put setpagedevice"
*Collate False:  "1 dict dup /Collate false put setpagedevice"
*?Collate:"
save
  currentpagedevice /Collate get
  {(True)}{(False)}ifelse = flush restore"
*End
*CloseUI: *Collate

*OpenUI *Duplex: PickOne
*OrderDependency: 40 AnySetup *Duplex
*DefaultDuplex: None
*Duplex None: "statusdict begin false setduplexmode false settumble end"
*Duplex DuplexNoTumble: "statusdict begin true setduplexmode false settumble end"
*Duplex DuplexTumble: "statusdict begin true setduplexmode true settumble end"
*?Duplex: "
statusdict begin
duplexmode
{ tumble
  { (DuplexTumble) }
  { (DuplexNoTumble) }
  ifelse
}
{ (None)}
ifelse
= flush
end
"
*End
*CloseUI: *Duplex

*OpenUI *Staple: PickOne
*OrderDependency: 50 AnySetup *Staple
*DefaultStaple: None
*Staple True: "1 dict dup /Staple 3 put setpagedevice"
*Staple False: "1 dict dup /Staple 0 put setpagedevice"
*?Staple: "
save
  currentpagedevice /Staple get
  {(EndOfSet)}{(None)}ifelse = flush
restore
"
*End
*CloseUI: *Staple

*OpenUI *Jog: PickOne
*OrderDependency: 50 AnySetup *Jog
*DefaultJog: None
*Jog None: "1 dict dup /Jog 0 put setpagedevice"
*Jog EndOfSet: "1 dict dup /Jog 3 put setpagedevice"
*?Jog: "
save
  currentpagedevice /Jog get
  {(EndOfSet)}{(None)}ifelse = flush
restore
"
*End
*CloseUI: *Jog

*% Font Information
*%
*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.002)"
*Font AvantGarde-BookOblique: Standard "(001.002)"
*Font AvantGarde-Demi: Standard "(001.003)"
*Font AvantGarde-DemiOblique: Standard "(001.003)"
*Font Bookman-Demi: Standard "(001.001)"
*Font Bookman-DemiItalic: Standard "(001.001)"
*Font Bookman-Light: Standard "(001.001)"
*Font Bookman-LightItalic: Standard "(001.001)"
*Font Courier: Standard "(002.003)"
*Font Courier-Bold: Standard "(002.003)"
*Font Courier-BoldOblique: Standard "(002.003)"
*Font Courier-Oblique: Standard "(002.003)"
*Font Garamond-Bold: Standard "(001.000)"
*Font Garamond-BoldItalic: Standard "(001.000)"
*Font Garamond-Italic: Standard "(001.000)"
*Font Garamond-Light: Standard "(001.000)"
*Font Garamond-LightItalic: Standard "(001.000)"
*Font Helvetica: Standard "(001.006)"
*Font Helvetica-Bold: Standard "(001.007)"
*Font Helvetica-BoldOblique: Standard "(001.007)"
*Font Helvetica-Condensed: Standard "(001.001)"
*Font Helvetica-Condensed-Bold: Standard "(001.002)"
*Font Helvetica-Condensed-BoldObl: Standard "(001.002)"
*Font Helvetica-Condensed-Oblique: Standard "(001.001)"
*Font Helvetica-Narrow: Standard "(001.006)"
*Font Helvetica-Narrow-Bold: Standard "(001.007)"
*Font Helvetica-Narrow-BoldOblique: Standard "(001.007)"
*Font Helvetica-Narrow-Oblique: Standard "(001.006)"
*Font Helvetica-Oblique: Standard "(001.006)"
*Font NewCenturySchlbk-Bold: Standard "(001.006)"
*Font NewCenturySchlbk-BoldItalic: Standard "(001.004)"
*Font NewCenturySchlbk-Italic: Standard "(001.003)"
*Font NewCenturySchlbk-Roman: Standard "(001.004)"
*Font Palatino-Bold: Standard "(001.002)"
*Font Palatino-BoldItalic: Standard "(001.002)"
*Font Palatino-Italic: Standard "(001.002)"
*Font Palatino-Roman: Standard "(001.001)"
*Font Symbol: Special "(001.007)"
*Font Times-Bold: Standard "(001.007)"
*Font Times-BoldItalic: Standard "(001.009)"
*Font Times-Italic: Standard "(001.007)"
*Font Times-Roman: Standard "(001.007)"
*Font ZapfChancery-MediumItalic: Standard "(001.003)"
*Font ZapfDingbats: Special "(001.002)"
*?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: "idle"
*Status: "busy"
*Status: "waiting"
*Status: "printing"
*Status: "warming up"

*Source: "serial9"
*Source: "serial25"
*Source: "AppleTalk"
*Source: "Centronics"
*Source: "Ethernet"
*Source: "other"

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*%
*PrinterError:  "timeout, clearing printer"
*PrinterError:  "warming up"
*PrinterError:  "service call"
*PrinterError:  "paper entry misfeed"
*PrinterError:  "no toner cartridge"
*PrinterError:  "low toner"
*PrinterError:  "no paper tray"
*PrinterError:  "resetting printer"
*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 QMS 4525 Print System PPD


