*% Adobe Systems Printer Description File
*% For "QMS 2025 Print System" version 2011.22
*% Date: 02/10/93
*FormatVersion: "4.0"
*FileVersion: "1.0"
*PCFileName: "QMS2025.PPD"
*LanguageVersion: English

*Product: "(QMS 2025 Print System)"
*PSVersion: "(2011.22) 17"
*ModelName: "QMS 2025 Print System"
*NickName: "QMS 2025 Print System"

*% ADORequiresEExec added by Microsoft
*ADORequiresEExec: True

*% General Information and Defaults ===============
*FreeVM: "486838"
*LanguageLevel: "2"
*ColorDevice: False
*DefaultColorSpace: Gray
*VariablePaperSize: False
*FileSystem: True
*?FileSystem: "/initializedisk where{pop(True)}{(False)} ifelse = flush"
*Throughput: "20"
*Password: "0"
*ExitServer: "
  count 0 eq {  % is the password on the stack?
    true
  }{
    dup % potential password
    statusdict begin checkpassword end 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 begin exitserver
"
*End

*Reset: "
  count 0 eq {  % is the password on the stack?
    true
  }{
    dup % potential password
    statusdict begin checkpassword end 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 begin exitserver
  systemdict /quit get exec
  (WARNING : Printer Reset Failed.) = flush
"
*End

*OpenUI *Resolution: PickOne
*OrderDependency: 2 AnySetup *Resolution
*DefaultResolution: 300dpi
*Resolution 400dpi: "statusdict begin 400 setresolution end "
*Resolution 300dpi: "statusdict begin 300 setresolution end "
*?Resolution: "
save
  statusdict begin resolution end
  128 string cvs dup print (x) print print (dpi) = flush
restore
"
*End
*CloseUI: *Resolution

*% Halftone Information ===============
*ScreenFreq: "60.0"
*ScreenAngle: "45.0"
*DefaultScreenProc: Dot
*ScreenProc Dot: "
{ dup mul exch dup mul add 1 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 }"
*Transfer Normalized: "{ }"
*Transfer Normalized.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 or PaperTray.
*OpenUI *PageSize: PickOne
*OrderDependency: 20 AnySetup *PageSize
*DefaultPageSize: Letter
*PageSize Letter: "statusdict begin lettertray end"
*PageSize Legal: "statusdict begin legaltray end"
*PageSize Tabloid: "statusdict begin 11x17tray end"
*PageSize Executive: "statusdict begin executivetray end"
*PageSize A3: "statusdict begin a3tray end"
*PageSize A4: "statusdict begin a4tray end"
*PageSize A5: "statusdict begin a5tray end"
*PageSize B4: "statusdict begin b4tray end"
*PageSize B5: "statusdict begin b5tray end"
*?PageSize: "
 save statusdict begin
  20 dict begin
   /letter (Letter) def 
   /legal (Legal) def
   /11x17 (Tabloid) def 
   /a3 (A3) def 
   /a4 (A4) def
   /a5 (A5) def 
   /b4 (B4) def
   /b5 (B5) def 
   /executivepage (Executive) def
   papersize 
   {load exec} stopped not{= flush}if
  end
 end restore
"
*End
*CloseUI: *PageSize

*% These entries will set up the frame buffer. Usually used with manual feed.
*% PageMaker 4.2 and Freehand 3.1 use this PageRegion command.
*OpenUI *PageRegion: PickOne
*OrderDependency: 20 AnySetup *PageRegion
*DefaultPageRegion: Letter
*PageRegion Letter: "statusdict begin letter /QMSpaper {letter} def end"
*PageRegion Legal: "statusdict begin legal /QMSpaper {legal} def end"
*PageRegion Tabloid: "statusdict begin 11x17 /QMSpaper {11x17} def end"
*PageRegion Executive: "statusdict begin executivepage /QMSpaper {executivepage} def end"
*PageRegion A3: "statusdict begin a3 /QMSpaper {a3} def end"
*PageRegion A4: "statusdict begin a4 /QMSpaper {a4} def end"
*PageRegion A5: "statusdict begin a5 /QMSpaper {a5} def end"
*PageRegion B4: "statusdict begin b4 /QMSpaper {b4} def end"
*PageRegion B5: "statusdict begin b5 /QMSpaper {b5} def end"
*CloseUI: *PageRegion

*% These entries will invoke a particular tray--error may occur if tray is not inserted.
*% These errors should be trapped by software and a message displayed
*% These are commented out for compatibility with V4 ppd spec
*% Freehand 3.1  uses this PaperTray command.
*OpenUI *PaperTray: PickOne
*OrderDependency: 20 AnySetup *PaperTray
*DefaultPaperTray: Letter
*PaperTray Letter: "statusdict begin letter end"
*PaperTray Legal: "statusdict begin legal end"
*PaperTray Tabloid: "statusdict begin 11x17 end"
*PaperTray Executive: "statusdict begin executivepage end"
*PaperTray A3: "statusdict begin a3 end"
*PaperTray A4: "statusdict begin a4 end"
*PaperTray A5: "statusdict begin a5 end"
*PaperTray B4: "statusdict begin b4 end"
*PaperTray B5: "statusdict begin b5 end"
*?PaperTray: "
 save statusdict begin
  20 dict begin
   /letter (Letter) def 
   /legal (Legal) def
   /11x17 (Tabloid) def 
   /a3 (A3) def 
   /a4 (A4) def
   /a5 (A5) def 
   /b4 (B4) def
   /b5 (B5) def 
   /executivepage (Executive) def
   papersize pop
   {load exec} stopped not{= flush}if
  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 601 996 "
*ImageableArea Tabloid: "12 12 780 1212 "
*ImageableArea Executive: "12 12 528 745 "
*ImageableArea A3: "12 12 829 1178 "
*ImageableArea A4: "12 12 583 829 "
*ImageableArea A5: "12 13 407 583 "
*ImageableArea B4: "12 12 716 1019 "
*ImageableArea B5: "12 12 503 716 "
*?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 Tabloid: "792 1224"
*PaperDimension Executive: "540 756"
*PaperDimension A3: "842 1191"
*PaperDimension A4: "596 842"
*PaperDimension A5: "420 596"
*PaperDimension B4: "729 1032"
*PaperDimension B5: "516 729"

*OpenGroup: PaperHandling
*OpenUI *OutputBin: PickOne
*OrderDependency: 20 AnySetup *OutputBin
*DefaultOutputBin: Upper
*OutputBin Upper: "statusdict begin 1 setoutputtray end"
*OutputBin Lower: "statusdict begin 2 setoutputtray end"
*OutputBin Side: "statusdict begin 3 setoutputtray end"
*OutputBin Any: "statusdict begin -1 setoutputtray end"
*CloseUI: *OutputBin

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

*DefaultManualFeed: False
*?ManualFeed: "
  statusdict /manualfeed get
  {(True)}{(False)}ifelse = flush"
*End
*ManualFeed True: "statusdict begin /manualfeed true store end"
*ManualFeed False: "statusdict begin /manualfeed false store end"

*DefaultOutputOrder: Normal
*OutputOrder Normal: "statusdict begin 1 setoutputtray end"
*OutputOrder Reverse: "statusdict begin 2 setoutputtray end"

*DefaultCollator: None
*DefaultSorter: None

*OpenUI *Duplex: PickOne
*OrderDependency: 10 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
*CloseGroup: PaperHandling

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

*DefaultFont: Courier
*Font AGaramond-Bold: Standard "(001.000)"
*Font AGaramond-BoldItalic: Standard "(001.000)"
*Font AGaramond-Italic: Standard "(001.000)"
*Font AGaramond-Regular: Standard "(001.000)"
*Font AGaramond-Semibold: Standard "(001.000)"
*Font AGaramond-SemiboldItalic: Standard "(001.000)"
*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 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  4 dict begin /sv exch def
/str (fonts/                              ) def
/st2 128 string def
{
  count 0 gt {
    dup st2 cvs (/) print print (:) print
    dup FontDirectory exch known {pop (Yes)}{
     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 (Yes)}{cleartomark (No)}ifelse
    }ifelse = flush
  }{ exit } ifelse
} bind loop
(*) = flush
sv end restore
"
*End

*?FontList: "
save  2 dict begin /sv exch def
/str 128 string def
FontDirectory { pop == } bind forall flush
/filenameforall where { 
 pop save (fonts/*) { 
  dup length 6 sub 6 exch getinterval cvn == 
 } bind str filenameforall flush restore
} if 
(*) = flush
sv end 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"

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

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrinterError: "Paper Out"
*PrinterError: "Paper Jam"
*PrinterError: "Off line"

*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"

*% end of PPD file for QMS 2025 Print System