*% Adobe Systems PostScript(R) Printer Description File
*% For "HP LaserJet ELI" version 52.3

*%
*% Date: 5 October 1990 
*FormatVersion: "3.0"
*FileVersion: "1.0"
*LanguageVersion: English

*Product: "(HP LaserJet ELI)"
*PSVersion: "(52.3) 0"
*NickName: "HP LaserJet ELI PostScript v52.3"

*% General Information and Defaults ===============
*FreeVM: "358540"
*ColorDevice: False
*VariablePaperSize: False
*FileSystem: False
*?FileSystem: "/initializedisk where{pop(True)}{(False)} ifelse = flush"
*Throughput: "16"
*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

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


*% Halftone Information ===============
*ScreenFreq: "60.0"
*ScreenAngle: "45.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 }"

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

*% Use these entries to set paper size most of the time, unless there is
*% specific reason to use PageRegion or PaperTray.
*% 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
*DefaultPageSize: Letter
*PageSize Letter: "statusdict begin lettertray end"
*PageSize Legal: "statusdict begin legaltray end"
*PageSize Executive: "statusdict begin executivetray end"
*PageSize A4: "statusdict begin a4tray end"
*PageSize Envelope.297.684/C10 Envelope: "statusdict begin com10envelopetray end"
*PageSize Envelope.279.540/Monarch Envelope: "statusdict begin monarcenvelopetray end"
*PageSize Envelope.312.624/DL Envelope: "statusdict begin dlenvelopetray end"

*?PageSize: "
 save statusdict begin
  7 dict begin
   /lettertray (Letter) def /legaltray (Legal) def
   /executivetray (Executive) def /a4tray (A4) def
   /com10envelopetray (Envelope.297.684/C10 Envelope) def
   /monarcenvelopetray (Envelope.279.540/Monarch Envelope) def 
   /dlenvelopetray (Envelope.312.624/DL Envelope) def
   papersize {
     {load exec} stopped not{= flush}if
   }{
     {load exec} stopped not{print (.Transverse) = flush}
     {(Unknown) = flush}ifelse
   }ifelse
  end
 end restore
"
*End

*% These entries will set up the frame buffer. Usually used with manual feed.
*DefaultPageRegion: Letter
*PageRegion Letter: "letter"
*PageRegion Legal: "legal"
*PageRegion Executive: "executivepage"
*PageRegion A4: "a4"
*PageRegion Envelope.297.684/C10 Envelope: "com10envelope"
*PageRegion Envelope.279.540/Monarch Envelope: "monarcenvelope"
*PageRegion Envelope.312.624/DL Envelope: "dlenvelope"

*% 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
*DefaultPaperTray: None
*PaperTray Letter: "statusdict begin lettertray end"
*PaperTray Legal: "statusdict begin legaltray end"
*PaperTray Executive: "statusdict begin executivetray end"
*PaperTray A4: "statusdict begin a4tray end"
*PaperTray Envelope.297.684/C10 Envelope: "statusdict begin com10envelopetray end"
*PaperTray Envelope.279.540/Monarch Envelope: "statusdict begin monarcenvelopetray end"
*PaperTray Envelope.312.624/DL Envelope: "statusdict begin dlenvelopetray end"
*?PaperTray: "
 save statusdict begin
  7 dict begin
   /lettertray (Letter) def /legaltray (Legal) def
   /executivetray (Executive) def /a4tray (A4) def
   /com10envelopetray (Envelope.297.684/C10 Envelope) def
   /monarcenvelopetray (Envelope.279.540/Monarch Envelope) def
   /dlenvelopetray (Envelope.312.624/DL Envelope) def
   papersize {
     {load exec} stopped not{= flush}if
   }{
     {load exec} stopped not{print (.Transverse) = flush}if
   }ifelse
  end
 end restore
"
*End

*% The following entries provide information about specific paper keywords.
*DefaultImageableArea: Letter
*ImageableArea Letter: "18 19 593 774 "
*ImageableArea Legal: "18 19 593 990 "
*ImageableArea Executive: "18 19 501 738 "
*ImageableArea A4: "18 19 570 824 "
*ImageableArea Envelope.297.684/C10 Envelope: "18 19 278 666 "
*ImageableArea Envelope.279.540/Monarch Envelope: "18 19 263 522 "
*ImageableArea Envelope.312.624/DL Envelope: "18 19 294 605 "
*?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 Executive: "522 756"
*PaperDimension A4: "595 842"
*PaperDimension Envelope.297.684/C10 Envelope: "297 684"
*PaperDimension Envelope.279.540/Monarch Envelope: "279 540"
*PaperDimension Envelope.312.624/DL Envelope: "312 624"



*% 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
*DefaultInputSlot: None
*InputSlot Upper: "statusdict begin 0 setpapertray end"
*InputSlot Lower: "statusdict begin 1 setpapertray end"
*InputSlot Envelope: "statusdict begin 2 setpapertray end"
*?InputSlot: "
 save statusdict begin
  3 dict begin
   /0 (Upper) def
   /1 (Lower) def
   /2 (Envelope) def
   papertray 
     {( ) cvs cvn load exec} stopped not{= flush}if
  end
 end restore
"
*End


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

*% 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
*DefaultOutputOrder: Normal
*OutputOrder Normal: "statusdict begin 0 setoutputtray end"
*OutputOrder Reverse: "statusdict begin 1 setoutputtray end"
*?OutputOrder: "
 save statusdict begin
  2 dict begin
  /0 (Normal) def
  /1 (Reverse) def
  outputtray
    {( ) cvs cvn load exec} stopped not{= flush}if
  end
 end restore
 "

*% 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
*DefaultOutputBin: Upper
*OutputBin Upper: "statusdict begin 0 setoutputtray end"
*OutputBin Lower: "statusdict begin 1 setoutputtray end"
*?OutputBin: "
 save statusdict begin
  2 dict begin
  /0 (Upper) def
  /1 (Lower) def
  outputtray
    {( ) cvs cvn load exec} stopped not{= flush}if
  end
 end restore
 "

*DefaultCollator: None
*DefaultSorter: None
*DefaultDuplex: False
*?Duplex: "duplexmode {(True)}{(False)}ifelse == flush"
*Duplex True: "statusdict begin true setduplexmode end"
*Duplex False: "statusdict begin false setduplexmode end"

*% 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.002)"
*Font Courier-Bold: Standard "(002.002)"
*Font Courier-BoldOblique: Standard "(002.002)"
*Font Courier-Oblique: Standard "(002.002)"
*Font Helvetica: Standard "(001.006)"
*Font Helvetica-Bold: Standard "(001.007)"
*Font Helvetica-BoldOblique: Standard "(001.007)"
*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.008)"
*Font NewCenturySchlbk-BoldItalic: Standard "(001.006)"
*Font NewCenturySchlbk-Italic: Standard "(001.005)"
*Font NewCenturySchlbk-Roman: Standard "(001.006)"
*Font Palatino-Bold: Standard "(001.005)"
*Font Palatino-BoldItalic: Standard "(001.005)"
*Font Palatino-Italic: Standard "(001.005)"
*Font Palatino-Roman: Standard "(001.005)"
*Font Symbol: Special "(001.003)"
*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  2 dict begin /sv exch def
/str 128 string def
{
  count 0 gt {
    dup str cvs (/) print print (:) print
    FontDirectory exch known {(Yes)}{(No)}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
(*) = 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"


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

*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
*PrintError: "%%[PrinterError: Paper Jam ]%%"
*PrintError: "%%[PrinterError: Cover Open ]%%"
*PrintError: "%%[PrinterError: Feed Manual ]%%"
*PrintError: "%%[PrinterError: Out of Paper ]%%"
*PrintError: "%%[PrinterError: Miscellaneous Error ]%%"


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

*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 HP LaserJet ELI
