summaryrefslogtreecommitdiff
path: root/psprint_config
diff options
context:
space:
mode:
authorPhilipp Lohmann <pl@openoffice.org>2002-02-28 15:05:18 +0000
committerPhilipp Lohmann <pl@openoffice.org>2002-02-28 15:05:18 +0000
commit15b08791effa909305d9fbc8ff1a311867fcbe4a (patch)
tree090d6424eacaaa54712132d8a6e1e0bbe77be22e /psprint_config
parentf451d6967655c9814f28c2f19e57ebc753ed983e (diff)
#97829# updated psprint configuration
Diffstat (limited to 'psprint_config')
-rw-r--r--psprint_config/configuration/delzip0
-rw-r--r--psprint_config/configuration/makefile.mk13
-rw-r--r--psprint_config/configuration/ppds/ADISTILL.PS416
-rw-r--r--psprint_config/configuration/ppds/APLW3101.PS385
-rw-r--r--psprint_config/configuration/ppds/APLW3201.PS496
-rw-r--r--psprint_config/configuration/ppds/APLW3601.PS666
-rw-r--r--psprint_config/configuration/ppds/APLW6101.PS597
-rw-r--r--psprint_config/configuration/ppds/APLW8101.PS885
-rw-r--r--psprint_config/configuration/ppds/APLW81F1.PS885
-rw-r--r--psprint_config/configuration/ppds/APLWBGR1.PS1081
-rw-r--r--psprint_config/configuration/ppds/APLWCOB1.PS565
-rw-r--r--psprint_config/configuration/ppds/APLWCSB1.PS580
-rw-r--r--psprint_config/configuration/ppds/APLWGRF1.PS747
-rw-r--r--psprint_config/configuration/ppds/APLWGRI1.PS746
-rw-r--r--psprint_config/configuration/ppds/APLWGRJ1.PS709
-rw-r--r--psprint_config/configuration/ppds/APLWIIF2.PS428
-rw-r--r--psprint_config/configuration/ppds/APLWIIG2.PS440
-rw-r--r--psprint_config/configuration/ppds/APLWLOT1.PS563
-rw-r--r--psprint_config/configuration/ppds/APL_IIF1.PS520
-rw-r--r--psprint_config/configuration/ppds/APL_IIG1.PS483
-rw-r--r--psprint_config/configuration/ppds/APL_NTR1.PS416
-rw-r--r--psprint_config/configuration/ppds/APNT518_.PS351
-rw-r--r--psprint_config/configuration/ppds/APNTX501.PS351
-rw-r--r--psprint_config/configuration/ppds/APNTXJ1_.PS412
-rw-r--r--psprint_config/configuration/ppds/APPL_230.PS350
-rw-r--r--psprint_config/configuration/ppds/APPL_380.PS329
-rw-r--r--psprint_config/configuration/ppds/APPL_422.PS330
-rw-r--r--psprint_config/configuration/ppds/APTOLLD1.PS660
-rw-r--r--psprint_config/configuration/ppds/APTOLLW1.PS656
-rw-r--r--psprint_config/configuration/ppds/CAECOGR1.PS591
-rw-r--r--psprint_config/configuration/ppds/DC1152_1.PS476
-rw-r--r--psprint_config/configuration/ppds/EFAX3010.PS1698
-rw-r--r--psprint_config/configuration/ppds/EFAX4010.PS1976
-rw-r--r--psprint_config/configuration/ppds/EFAX5010.PS2190
-rw-r--r--psprint_config/configuration/ppds/EFAX7010.PS1698
-rw-r--r--psprint_config/configuration/ppds/EFMX3010.PS1669
-rw-r--r--psprint_config/configuration/ppds/EFMX5010.PS2183
-rw-r--r--psprint_config/configuration/ppds/EFMX7010.PS1669
-rw-r--r--psprint_config/configuration/ppds/EFXJK1F3.PS1945
-rw-r--r--psprint_config/configuration/ppds/EFXJK2F3.PS2479
-rw-r--r--psprint_config/configuration/ppds/EFXJK303.PS1075
-rw-r--r--psprint_config/configuration/ppds/EFXJK3F3.PS1135
-rw-r--r--psprint_config/configuration/ppds/EP_08001.PS671
-rw-r--r--psprint_config/configuration/ppds/EP_15201.PS917
-rw-r--r--psprint_config/configuration/ppds/EP_30001.PS916
-rw-r--r--psprint_config/configuration/ppds/EP_50001.PS876
-rw-r--r--psprint_config/configuration/ppds/EP_82F21.PS952
-rw-r--r--psprint_config/configuration/ppds/EP_82F51.PS1051
-rw-r--r--psprint_config/configuration/ppds/EP_P0701.PS1356
-rw-r--r--psprint_config/configuration/ppds/EP_P1201.PS713
-rw-r--r--psprint_config/configuration/ppds/EP_STPH1.PS640
-rw-r--r--psprint_config/configuration/ppds/GENERIC.PS2
-rw-r--r--psprint_config/configuration/ppds/HP1200C1.PS585
-rw-r--r--psprint_config/configuration/ppds/HP2500C1.PS1099
-rw-r--r--psprint_config/configuration/ppds/HP3SI52_.PS435
-rw-r--r--psprint_config/configuration/ppds/HP3SIL21.PS588
-rw-r--r--psprint_config/configuration/ppds/HP4M3_V1.PS540
-rw-r--r--psprint_config/configuration/ppds/HP4M6_V1.PS540
-rw-r--r--psprint_config/configuration/ppds/HP4ML_V1.PS486
-rw-r--r--psprint_config/configuration/ppds/HP4MP3_1.PS428
-rw-r--r--psprint_config/configuration/ppds/HP4MP6_1.PS432
-rw-r--r--psprint_config/configuration/ppds/HP4PLUS3.PS306
-rw-r--r--psprint_config/configuration/ppds/HP4PLUS6.PS313
-rw-r--r--psprint_config/configuration/ppds/HP4SI3_1.PS751
-rw-r--r--psprint_config/configuration/ppds/HP4SI6_1.PS753
-rw-r--r--psprint_config/configuration/ppds/HPIID52_.PS406
-rw-r--r--psprint_config/configuration/ppds/HPIII52_.PS381
-rw-r--r--psprint_config/configuration/ppds/HPIIP52_.PS374
-rw-r--r--psprint_config/configuration/ppds/HPLJ3D1_.PS563
-rw-r--r--psprint_config/configuration/ppds/HPLJ3P1_.PS462
-rw-r--r--psprint_config/configuration/ppds/HPLJ4MV1.PS793
-rw-r--r--psprint_config/configuration/ppds/HPLJ5M_4.PS695
-rw-r--r--psprint_config/configuration/ppds/HPLJ5P_1.PS541
-rw-r--r--psprint_config/configuration/ppds/HPLJ5SI1.PS953
-rw-r--r--psprint_config/configuration/ppds/HPLJ5SIM.PS1006
-rw-r--r--psprint_config/configuration/ppds/HPLJ__31.PS407
-rw-r--r--psprint_config/configuration/ppds/HP_3D52_.PS430
-rw-r--r--psprint_config/configuration/ppds/HP_3P52_.PS382
-rw-r--r--psprint_config/configuration/ppds/HP__CLJ1.PS689
-rw-r--r--psprint_config/configuration/ppds/KD8650P1.PS946
-rw-r--r--psprint_config/configuration/ppds/KD92P001.PS1127
-rw-r--r--psprint_config/configuration/ppds/KDH00001.PS1533
-rw-r--r--psprint_config/configuration/ppds/KDH00002.PS1554
-rw-r--r--psprint_config/configuration/ppds/L10__425.PS424
-rw-r--r--psprint_config/configuration/ppds/L20__471.PS566
-rw-r--r--psprint_config/configuration/ppds/L20__493.PS564
-rw-r--r--psprint_config/configuration/ppds/L30__471.PS593
-rw-r--r--psprint_config/configuration/ppds/L30__493.PS592
-rw-r--r--psprint_config/configuration/ppds/L333_523.PS723
-rw-r--r--psprint_config/configuration/ppds/L33__523.PS487
-rw-r--r--psprint_config/configuration/ppds/L50__493.PS564
-rw-r--r--psprint_config/configuration/ppds/L533_523.PS632
-rw-r--r--psprint_config/configuration/ppds/L53__523.PS448
-rw-r--r--psprint_config/configuration/ppds/LEX4039P.PS673
-rw-r--r--psprint_config/configuration/ppds/LEX4079P.PS641
-rw-r--r--psprint_config/configuration/ppds/LEXOPTR_.PS741
-rw-r--r--psprint_config/configuration/ppds/LHCFLRJ5.PS2034
-rw-r--r--psprint_config/configuration/ppds/LHCOFLC5.PS1866
-rw-r--r--psprint_config/configuration/ppds/LHCOFLR5.PS1814
-rw-r--r--psprint_config/configuration/ppds/LHGUBEH3.PS1568
-rw-r--r--psprint_config/configuration/ppds/LHGUBHJ4.PS3358
-rw-r--r--psprint_config/configuration/ppds/LHHERHJ4.PS3680
-rw-r--r--psprint_config/configuration/ppds/LHHERIJ4.PS3672
-rw-r--r--psprint_config/configuration/ppds/LHHERKH3.PS1729
-rw-r--r--psprint_config/configuration/ppds/LHHERKI4.PS3468
-rw-r--r--psprint_config/configuration/ppds/LHHKPHJ7.PS3328
-rw-r--r--psprint_config/configuration/ppds/LHHKPIJ7.PS3136
-rw-r--r--psprint_config/configuration/ppds/LHHRKPH7.PS3108
-rw-r--r--psprint_config/configuration/ppds/LHHRKPI7.PS2916
-rw-r--r--psprint_config/configuration/ppds/LHQUSHJ4.PS3074
-rw-r--r--psprint_config/configuration/ppds/LHQUSIJ4.PS3204
-rw-r--r--psprint_config/configuration/ppds/LHQUSRH3.PS1426
-rw-r--r--psprint_config/configuration/ppds/LHQUSRI3.PS1491
-rw-r--r--psprint_config/configuration/ppds/LHSIGHJ4.PS3750
-rw-r--r--psprint_config/configuration/ppds/LHSIGIJ4.PS4192
-rw-r--r--psprint_config/configuration/ppds/LHSIGNH3.PS1764
-rw-r--r--psprint_config/configuration/ppds/LHSIGNI3.PS1985
-rw-r--r--psprint_config/configuration/ppds/LOPC1200.PS810
-rw-r--r--psprint_config/configuration/ppds/LOPC40.PS713
-rw-r--r--psprint_config/configuration/ppds/LOPC45.PS774
-rw-r--r--psprint_config/configuration/ppds/LOPE310.PS659
-rw-r--r--psprint_config/configuration/ppds/LOPM410.PS726
-rw-r--r--psprint_config/configuration/ppds/LOPS1255.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPS1625.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPS1855.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPS2455.PS1121
-rw-r--r--psprint_config/configuration/ppds/LOPS3455.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPT610.PS1113
-rw-r--r--psprint_config/configuration/ppds/LOPT612.PS1114
-rw-r--r--psprint_config/configuration/ppds/LOPT616.PS1113
-rw-r--r--psprint_config/configuration/ppds/LOPTRAC.PS546
-rw-r--r--psprint_config/configuration/ppds/LOPTRAEP.PS693
-rw-r--r--psprint_config/configuration/ppds/LOPTRAK.PS752
-rw-r--r--psprint_config/configuration/ppds/LOPTRAN.PS1001
-rw-r--r--psprint_config/configuration/ppds/LOPTRAP.PS759
-rw-r--r--psprint_config/configuration/ppds/LOPTRAS.PS1141
-rw-r--r--psprint_config/configuration/ppds/LOPTRASC.PS714
-rw-r--r--psprint_config/configuration/ppds/LOPW810.PS1018
-rw-r--r--psprint_config/configuration/ppds/LOS1255P.PS1205
-rw-r--r--psprint_config/configuration/ppds/LOS1625P.PS1198
-rw-r--r--psprint_config/configuration/ppds/LOS1855P.PS1198
-rw-r--r--psprint_config/configuration/ppds/LOS2455P.PS1196
-rw-r--r--psprint_config/configuration/ppds/LOS3455P.PS1197
-rw-r--r--psprint_config/configuration/ppds/LWNT_518.PS345
-rw-r--r--psprint_config/configuration/ppds/SGENPRT.PS595
-rw-r--r--psprint_config/configuration/ppds/SNSPREC1.PS760
-rw-r--r--psprint_config/configuration/ppds/TK300PJ1.PS1284
-rw-r--r--psprint_config/configuration/ppds/TK300XJ1.PS1309
-rw-r--r--psprint_config/configuration/ppds/TK350171.PS551
-rw-r--r--psprint_config/configuration/ppds/TK350172.PS563
-rw-r--r--psprint_config/configuration/ppds/TK350691.PS1
-rw-r--r--psprint_config/configuration/ppds/TK350692.PS597
-rw-r--r--psprint_config/configuration/ppds/TK350PJ2.PS590
-rw-r--r--psprint_config/configuration/ppds/TK360J21.PS923
-rw-r--r--psprint_config/configuration/ppds/TK360J51.PS986
-rw-r--r--psprint_config/configuration/ppds/TK360J71.PS1030
-rw-r--r--psprint_config/configuration/ppds/TK450PJ1.PS1134
-rw-r--r--psprint_config/configuration/ppds/TK550171.PS692
-rw-r--r--psprint_config/configuration/ppds/TK550391.PS780
-rw-r--r--psprint_config/configuration/ppds/TK550PJ1.PS828
-rw-r--r--psprint_config/configuration/ppds/TKP350J2.PS599
-rw-r--r--psprint_config/configuration/ppds/TKP360P1.PS863
-rw-r--r--psprint_config/configuration/ppds/TKP380J1.PS1350
-rw-r--r--psprint_config/configuration/ppds/TKP380P1.PS1351
-rw-r--r--psprint_config/configuration/ppds/TKP450J1.PS1103
-rw-r--r--psprint_config/configuration/ppds/TKP450P1.PS1089
-rw-r--r--psprint_config/configuration/ppds/TKP550J1.PS760
-rw-r--r--psprint_config/configuration/ppds/TKP600J1.PS1459
-rw-r--r--psprint_config/configuration/ppds/TKPH3801.PS1271
-rw-r--r--psprint_config/configuration/ppds/TKPH4501.PS1060
-rw-r--r--psprint_config/configuration/ppds/TKPH6001.PS1401
-rw-r--r--psprint_config/configuration/ppds/XRD61354.PS789
-rw-r--r--psprint_config/configuration/ppds/XRD61801.PS789
-rw-r--r--psprint_config/configuration/ppds/XRN17000.PS1267
-rw-r--r--psprint_config/configuration/ppds/XRN24320.PS1696
-rw-r--r--psprint_config/configuration/ppds/XR_DC230.PS1178
-rw-r--r--psprint_config/configuration/ppds/delzip0
-rw-r--r--psprint_config/configuration/ppds/makefile.mk11
-rw-r--r--psprint_config/configuration/psprint.conf98
-rw-r--r--psprint_config/prj/build.lst5
-rw-r--r--psprint_config/prj/d.lst4
181 files changed, 185007 insertions, 0 deletions
diff --git a/psprint_config/configuration/delzip b/psprint_config/configuration/delzip
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/psprint_config/configuration/delzip
diff --git a/psprint_config/configuration/makefile.mk b/psprint_config/configuration/makefile.mk
new file mode 100644
index 000000000000..460c7e3639ab
--- /dev/null
+++ b/psprint_config/configuration/makefile.mk
@@ -0,0 +1,13 @@
+PRJ=..
+PRJNAME=psprint_config
+TARGET=unxfontspsprintgeneral
+
+.INCLUDE : settings.mk
+
+ZIP1TARGET = fontunxpsprint
+ZIP1LIST = * -x makefile.* -x delzip
+
+
+
+.INCLUDE : target.mk
+
diff --git a/psprint_config/configuration/ppds/ADISTILL.PS b/psprint_config/configuration/ppds/ADISTILL.PS
new file mode 100644
index 000000000000..8d3951a82fc7
--- /dev/null
+++ b/psprint_config/configuration/ppds/ADISTILL.PS
@@ -0,0 +1,416 @@
+*PPD-Adobe: "4.3"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+
+*FormatVersion: "4.3"
+*FileVersion: "1.1"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "ADISTILL.PPD"
+*Manufacturer: "Adobe"
+*Product: "(Acrobat Distiller)"
+*PSVersion: "(2017.0801) 1"
+*ModelName: "Acrobat Distiller 3.0"
+*ShortNickName: "Acrobat Distiller 3.0"
+*NickName: "Acrobat Distiller 2017.801"
+
+*% === Options and Constraints =========
+
+*% ==== Device Capabilities ===============
+*ColorDevice: True
+*DefaultColorSpace: RGB
+*FileSystem: True
+*?FileSystem: "(True) == flush"
+*LanguageLevel: "2"
+*FreeVM: "4194304"
+*VMOption None/Standard: "4194304"
+*FCacheSize None/Standard: 204800
+*Throughput: "400"
+*VariablePaperSize: True
+
+*TTRasterizer: Type42
+
+*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
+
+*% Multiple Resolution support for Distiller 3.0 ==============
+*OpenUI *Resolution: PickOne
+*OrderDependency: 50 AnySetup *Resolution
+*DefaultResolution: 600dpi
+*Resolution 72dpi: "1 dict dup /HWResolution [72 72] put setpagedevice"
+*Resolution 144dpi: "1 dict dup /HWResolution [144 144] put setpagedevice"
+*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
+*Resolution 600dpi: "1 dict dup /HWResolution [600 600] put setpagedevice"
+*Resolution 1200dpi: "1 dict dup /HWResolution [1200 1200] put setpagedevice"
+*Resolution 2400dpi: "1 dict dup /HWResolution [2400 2400] put setpagedevice"
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print (dpi) = flush
+ restore"
+*End
+*CloseUI: *Resolution
+
+*ResScreenFreq 72dpi: "60.0"
+*ResScreenFreq 144dpi: "60.0"
+*ResScreenFreq 300dpi: "60.0"
+*ResScreenFreq 600dpi: "60.0"
+*ResScreenFreq 1200dpi: "60.0"
+*ResScreenFreq 2400dpi: "60.0"
+
+*ResScreenAngle 72dpi: "45.0"
+*ResScreenAngle 144dpi: "45.0"
+*ResScreenAngle 300dpi: "45.0"
+*ResScreenAngle 600dpi: "45.0"
+*ResScreenAngle 1200dpi: "45.0"
+*ResScreenAngle 2400dpi: "45.0"
+
+*% Halftone Information ===============
+*ContoneOnly: False
+*DefaultHalftoneType: 1
+*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 } bind"
+*End
+*ScreenProc Line: "{ exch pop abs neg } bind"
+*ScreenProc Ellipse: "{abs exch abs 2 copy mul exch 4 mul add 3 sub dup 0
+lt { pop dup mul exch .75 div dup mul add 4 div 1 exch sub } { dup 1 gt {
+pop 1 exch sub dup mul exch 1 exch sub .75 div dup mul add 4 div 1 sub }
+{ .5 exch sub exch pop exch pop } ifelse } ifelse } bind"
+*End
+*ScreenProc Cross: "{ abs exch abs 2 copy gt { exch } if pop neg } bind"
+
+
+*DefaultTransfer: Null
+*Transfer Null: "{ } bind"
+*Transfer Null.Inverse: "{ 1 exch sub } bind"
+
+*% Paper Handling ===================
+
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 50 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 Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageSize Ledger: "
+ 2 dict dup /PageSize [1224 792] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageSize Tabloid/11 x 17: "
+ 2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageSize Screen: "
+ 2 dict dup /PageSize [468 373] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageSize A3: "
+ 2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 8 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [522 756] (Executive) put
+ dup [1224 792] (Ledger) put
+ dup [792 1224] (Tabloid) put
+ dup [468 373] (Screen) put
+ dup [842 1191] (A3) put
+ dup [595 842] (A4) 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: 50 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 Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageRegion Ledger: "
+ 2 dict dup /PageSize [1224 792] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageRegion Tabloid/11 x 17: "
+ 2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageRegion Screen: "
+ 2 dict dup /PageSize [468 373] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageRegion A3: "
+ 2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*PageRegion A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+setpagedevice"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+
+*ImageableArea Letter: "0.0 0.0 612.0 792.0"
+*ImageableArea Legal: "0.0 0.0 612.0 1008.0"
+*ImageableArea Executive: "0.0 0.0 522.0 756.0"
+*ImageableArea Ledger: "0.0 0.0 1224.0 792.0"
+*ImageableArea Tabloid/11 x 17: "0.0 0.0 792.0 1224.0"
+*ImageableArea Screen: "0.0 0.0 468.0 373.0"
+*ImageableArea A3: "0.0 0.0 842.0 1191.0"
+*ImageableArea A4: "0.0 0.0 595.0 842.0"
+*?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
+
+*% 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 Ledger: "1224 792"
+*PaperDimension Tabloid/11 x 17: "792 1224"
+*PaperDimension Screen: "468 373"
+*PaperDimension A3: "842 1191"
+*PaperDimension A4: "595 842"
+
+*% Custom Page Sizes
+*CustomPageSize True: "
+ 4 dict begin
+ pop % pop /Orientation value off the stack to fix bug in PageMaker 5.0
+ 2 array astore /PageOffset exch def
+ 2 array astore /PageSize exch def
+ /ImagingBBox null def
+ currentdict end setpagedevice"
+*End
+*ParamCustomPageSize Width: 1 points 72 3240
+*ParamCustomPageSize Height: 2 points 72 3240
+*ParamCustomPageSize WidthOffset: 3 points 0 3240
+*ParamCustomPageSize HeightOffset: 4 points 0 3240
+*ParamCustomPageSize Orientation: 5 int 0 3
+*MaxMediaWidth: "3240"
+*MaxMediaHeight: "3240"
+*CenterRegistered: False
+*LeadingEdge Forced: ""
+*DefaultLeadingEdge: Forced
+
+*% Support for Custom Page Sizes on cut sheet devices
+*% Note: These are comment out because
+*% QuarkXPress 3.3x and earlier versions don't recognize
+*% custom page sizes when HWMargins are present.
+*%*UseHWMargins True:""
+*%*UseHWMargins False:""
+*%*DefaultUseHWMargins: False
+*%*HWMargins: 0 0 0 0
+
+*RequiresPageRegion All: True
+
+*OpenUI *InputSlot: PickOne
+*DefaultInputSlot: OnlyOne
+*InputSlot OnlyOne: ""
+*CloseUI: *InputSlot
+
+*AccurateScreensSupport: True
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font Courier: Standard "(002.004)" Standard ROM
+*Font Courier-Bold: Standard "(002.004)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004)" Standard ROM
+*Font Helvetica: Standard "(001.006)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006)" Standard ROM
+*Font Times-Bold: Standard "(001.007)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009)" Standard ROM
+*Font Times-Italic: Standard "(001.007)" Standard ROM
+*Font Times-Roman: Standard "(001.007)" Standard ROM
+*Font Symbol: Special "(001.007)" Special ROM
+*Font ZapfDingbats: Special "(001.004)" 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> ] %%)
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi
+
+*% For 60 lpi / 72 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.60lpi.72dpi/60 lpi / 72 dpi: "45"
+*ColorSepScreenAngle CustomColor.60lpi.72dpi/60 lpi / 72 dpi: "45"
+*ColorSepScreenAngle ProcessCyan.60lpi.72dpi/60 lpi / 72 dpi: "15"
+*ColorSepScreenAngle ProcessMagenta.60lpi.72dpi/60 lpi / 72 dpi: "75"
+*ColorSepScreenAngle ProcessYellow.60lpi.72dpi/60 lpi / 72 dpi: "0"
+
+*ColorSepScreenFreq ProcessBlack.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq CustomColor.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq ProcessCyan.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq ProcessMagenta.60lpi.72dpi/60 lpi / 72 dpi: "60"
+*ColorSepScreenFreq ProcessYellow.60lpi.72dpi/60 lpi / 72 dpi: "60"
+
+*% For 60 lpi / 144 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.60lpi.144dpi/60 lpi / 144 dpi: "45"
+*ColorSepScreenAngle CustomColor.60lpi.144dpi/60 lpi / 144 dpi: "45"
+*ColorSepScreenAngle ProcessCyan.60lpi.144dpi/60 lpi / 144 dpi: "15"
+*ColorSepScreenAngle ProcessMagenta.60lpi.144dpi/60 lpi / 144 dpi: "75"
+*ColorSepScreenAngle ProcessYellow.60lpi.144dpi/60 lpi / 144 dpi: "0"
+
+*ColorSepScreenFreq ProcessBlack.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq CustomColor.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq ProcessCyan.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq ProcessMagenta.60lpi.144dpi/60 lpi / 144 dpi: "60"
+*ColorSepScreenFreq ProcessYellow.60lpi.144dpi/60 lpi / 144 dpi: "60"
+
+*% 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 71 lpi / 600 dpi ===============================
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+
+*% For 100 lpi / 1200 dpi ==============================================
+
+*ColorSepScreenAngle ProcessBlack.100lpi.1200dpi/100 lpi / 1200 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.100lpi.1200dpi/100 lpi / 1200 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.100lpi.1200dpi/100 lpi / 1200 dpi: "15.0"
+*ColorSepScreenAngle ProcessMagenta.100lpi.1200dpi/100 lpi / 1200 dpi: "75.0"
+*ColorSepScreenAngle ProcessYellow.100lpi.1200dpi/100 lpi / 1200 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq CustomColor.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq ProcessCyan.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq ProcessMagenta.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+*ColorSepScreenFreq ProcessYellow.100lpi.1200dpi/100 lpi / 1200 dpi: "100.0"
+
+*% For 175 lpi / 2400 dpi ==============================================
+
+*ColorSepScreenAngle ProcessBlack.175lpi.2400dpi/175 lpi / 2400 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.175lpi.2400dpi/175 lpi / 2400 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.175lpi.2400dpi/175 lpi / 2400 dpi: "15.0"
+*ColorSepScreenAngle ProcessMagenta.175lpi.2400dpi/175 lpi / 2400 dpi: "75.0"
+*ColorSepScreenAngle ProcessYellow.175lpi.2400dpi/175 lpi / 2400 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq CustomColor.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq ProcessCyan.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq ProcessMagenta.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+*ColorSepScreenFreq ProcessYellow.175lpi.2400dpi/175 lpi / 2400 dpi: "175.0"
+
+*% Last Edit Date: Jan 30 1997
+*% End of PPD file for Acrobat Distiller
+*% The byte count of this file should be exactly 014706 or 015122
+*% depending on the filesystem it resides in.
+*% end of PPD file for Acrobat Distiller
diff --git a/psprint_config/configuration/ppds/APLW3101.PS b/psprint_config/configuration/ppds/APLW3101.PS
new file mode 100644
index 000000000000..661fb36235c5
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLW3101.PS
@@ -0,0 +1,385 @@
+*PPD-Adobe: "4.0"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.0"
+*FileVersion: "1.2"
+*LanguageVersion: English
+*PCFileName: "APLW3101.PPD"
+*Product: "(LaserWriter-Select 310)"
+*PSVersion: "(52.5) 0"
+*ModelName: "Apple LaserWriter-Select 310"
+*NickName: "LaserWriter-Select 310 v52.5"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: None
+*Option1 None/Standard 1.5 MB RAM: ""
+*Option1 2.5Meg/2.5 MB Upgrade: ""
+*Option1 5.5Meg/5.5 MB Upgrade: ""
+*CloseUI: *Option1
+
+*OpenUI *Option2/Optional Cassette: Boolean
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*CloseUI: *Option2
+
+*OpenUI *Option3/Optional Multipurpose Tray: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*CloseUI: *Option3
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Multipurpose
+
+*UIConstraints: *InputSlot Upper *PageSize Com10
+*UIConstraints: *InputSlot Upper *PageSize Monarch
+*UIConstraints: *InputSlot Upper *PageSize DL
+*UIConstraints: *InputSlot Upper *PageSize C5
+*UIConstraints: *PageSize Com10 *InputSlot Upper
+*UIConstraints: *PageSize Monarch *InputSlot Upper
+*UIConstraints: *PageSize DL *InputSlot Upper
+*UIConstraints: *PageSize C5 *InputSlot Upper
+*UIConstraints: *InputSlot Lower *PageSize Com10
+*UIConstraints: *InputSlot Lower *PageSize Monarch
+*UIConstraints: *InputSlot Lower *PageSize DL
+*UIConstraints: *InputSlot Lower *PageSize C5
+*UIConstraints: *PageSize Com10 *InputSlot Lower
+*UIConstraints: *PageSize Monarch *InputSlot Lower
+*UIConstraints: *PageSize DL *InputSlot Lower
+*UIConstraints: *PageSize C5 *InputSlot Lower
+
+*UIConstraints: *InputSlot Upper *PageRegion Com10
+*UIConstraints: *InputSlot Upper *PageRegion Monarch
+*UIConstraints: *InputSlot Upper *PageRegion DL
+*UIConstraints: *InputSlot Upper *PageRegion C5
+*UIConstraints: *PageRegion Com10 *InputSlot Upper
+*UIConstraints: *PageRegion Monarch *InputSlot Upper
+*UIConstraints: *PageRegion DL *InputSlot Upper
+*UIConstraints: *PageRegion C5 *InputSlot Upper
+*UIConstraints: *InputSlot Lower *PageRegion Com10
+*UIConstraints: *InputSlot Lower *PageRegion Monarch
+*UIConstraints: *InputSlot Lower *PageRegion DL
+*UIConstraints: *InputSlot Lower *PageRegion C5
+*UIConstraints: *PageRegion Com10 *InputSlot Lower
+*UIConstraints: *PageRegion Monarch *InputSlot Lower
+*UIConstraints: *PageRegion DL *InputSlot Lower
+*UIConstraints: *PageRegion C5 *InputSlot Lower
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "1"
+*Protocols: BCP
+*FreeVM: "203912"
+*VMOption None/Standard 1.5 MB RAM: "203912"
+*VMOption 2.5Meg/2.5 MB Upgrade: "965220"
+*VMOption 5.5Meg/5.5 MB Upgrade: "3992948"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "5"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true }
+ { dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true }
+ { dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ systemdict /quit get exec
+ (WARNING : Printer Reset Failed.) = flush
+"
+*End
+*DefaultResolution: 300dpi
+*?Resolution: "
+ save
+ initgraphics
+ matrix defaultmatrix dup
+ 0 get dup mul exch 1 get dup mul add sqrt
+ 72 mul 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 ===================
+*% Code in this section selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "statusdict begin lettertray end"
+*PageSize Legal/US Legal: "statusdict begin legaltray end"
+*PageSize A4: "statusdict begin a4tray end"
+*PageSize A5: "statusdict begin a5tray end"
+*PageSize B5: "statusdict begin b5tray end"
+*PageSize LetterSmall/US Letter Small: "statusdict begin lettertray end"
+*PageSize LegalSmall/US Legal Small: "statusdict begin legaltray end"
+*PageSize A4Small/A4 Small: "statusdict begin a4tray end"
+*PageSize Executive: "statusdict begin executivetray end"
+*PageSize Com10/Com10 Envelope: "statusdict begin com10tray end"
+*PageSize Monarch/Monarch Envelope: "statusdict begin monarchtray end"
+*PageSize C5/C5 Envelope: "statusdict begin c5tray end"
+*PageSize DL/DL Envelope: "statusdict begin dltray end"
+*?PageSize: "
+save
+10 dict
+ dup /lettertray (Letter) put
+ dup /legaltray (Legal) put
+ dup /a4tray (A4) put
+ dup /a5tray (A5) put
+ dup /b5tray (B5) put
+ dup /executivetray (Executive) put
+ dup /com10tray (Com10) put
+ dup /monarchtray (Monarch) put
+ dup /c5tray (C5) put
+ dup /dltray (DL) put
+ statusdict begin papersize end
+ 3 1 roll {get} stopped {(Unknown)}if
+ exch not { print (.Transverse) }if
+ = flush
+restore
+"
+*End
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 40 AnySetup *PageRegion
+*DefaultPageRegion: Letter
+*PageRegion Letter/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion A4: "a4"
+*PageRegion A5: "a5"
+*PageRegion B5: "b5"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion A4Small/A4 Small: "a4small"
+*PageRegion Executive: "executivepage"
+*PageRegion Com10/Com10 Envelope: "com10"
+*PageRegion Monarch/Monarch Envelope: "monarch"
+*PageRegion C5/C5 Envelope: "c5"
+*PageRegion DL/DL Envelope: "dl"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "9.84 9.12 593.28 775.68 "
+*ImageableArea Legal/US Legal: "25.9201 251.04 578.64 982.32 "
+*ImageableArea A4: "6.0 7.9201 581.76 826.56 "
+*ImageableArea A5: "8.88 10.8 408.0 581.28 "
+*ImageableArea B5: "9.1201 9.6 500.4 713.52 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Executive: "7.2 12.0 506.16 742.08 "
+*ImageableArea Com10/Com10 Envelope: "8.64 11.52 284.88 673.68 "
+*ImageableArea Monarch/Monarch Envelope: "11.52 11.04 264.72 526.8 "
+*ImageableArea C5/C5 Envelope: "10.8 12.0 448.32 639.6 "
+*ImageableArea DL/DL Envelope: "9.6 14.4 301.2 614.16 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension A5: "420 595"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension Executive: "540 720"
+*PaperDimension Com10/Com10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension C5/C5 Envelope: "459 649"
+*PaperDimension DL/DL Envelope: "312 624"
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+ save
+ statusdict /manualfeed get
+ {(True)}{(False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Main Cassette: "0 statusdict /setpapertray get exec"
+*InputSlot Multipurpose/Multipurpose Tray: "
+ 1 statusdict /setpapertray get exec"
+*End
+*InputSlot Lower/Optional Cassette: "2 statusdict /setpapertray get exec"
+*?InputSlot: "
+save
+ [ (Upper) (Multipurpose) (Lower) ] statusdict /papertray get exec
+ {get exec} stopped { pop pop (Unknown) } if = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font Courier: Standard "(002.004)" Standard ROM
+*Font Courier-Bold: Standard "(002.004)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004)" 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-Oblique: Standard "(001.006S)" 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
+*?FontQuery: "
+ save
+ /str 100 string dup 0 (fonts/) putinterval def
+ { count 1 gt
+ { exch dup str 6 94 getinterval cvs
+ (/) print dup print (:) print exch
+ FontDirectory exch known
+ { pop (Yes) }
+ { length 6 add str 0 3 -1 roll getinterval
+ mark exch status
+ {cleartomark (Yes)}{cleartomark (No)} ifelse
+ } ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+ restore
+"
+*End
+*?FontList: "
+ save
+ FontDirectory { pop == } bind forall flush
+ (*) = 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"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: service call"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "serial9"
+*Source: "Centronics"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "warming up"
+*PrinterError: "cover open"
+*PrinterError: "service call"
+*PrinterError: "paper jam"
+
+*%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: "45"
+*ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "45"
+*ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "45"
+
+*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"
+
+*% Produced by "bldppd41.ps" version 4.0 edit 9
+*% Last Edit Date: May 21 1993
+*% The byte count of this file should be exactly 013104 or 013489
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter-Select 310
+
diff --git a/psprint_config/configuration/ppds/APLW3201.PS b/psprint_config/configuration/ppds/APLW3201.PS
new file mode 100644
index 000000000000..1e91c659eaae
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLW3201.PS
@@ -0,0 +1,496 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.11"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLW3201.PPD"
+*Product: "(LaserWriter Personal 320)"
+*PSVersion: "(2013.112) 1"
+*ModelName: "Personal LaserWriter 320"
+*ShortNickName: "Personal LaserWriter 320"
+*NickName: "Apple Personal LaserWriter 320 v2013.112"
+
+
+*% === Options and Constraints =========
+
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: 2Meg
+*Option1 2Meg/Standard 2 MB: ""
+*Option1 4Meg/Upgrade to 4 MB: ""
+*Option1 8Meg/Upgrade to 8 MB: ""
+*?Option1: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *Option1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 2Meg *BitsPerPixel 4
+*UIConstraints: *Option1 4Meg *BitsPerPixel 4
+
+*UIConstraints: *Option1 2Meg *VMOption
+*UIConstraints: *Option1 4Meg *VMOption 2Meg
+*UIConstraints: *Option1 4Meg *VMOption 8Meg
+*UIConstraints: *Option1 8Meg *VMOption 2Meg
+*UIConstraints: *Option1 8Meg *VMOption 4Meg
+
+*UIConstraints: *PageSize Monarch *InputSlot Cassette
+*UIConstraints: *PageSize Com10 *InputSlot Cassette
+*UIConstraints: *PageSize C5 *InputSlot Cassette
+*UIConstraints: *PageSize DL *InputSlot Cassette
+
+
+*% ==== The following are constraints for new imageable ==========
+*% ==== area features added to LaserWriter 8, v8.1
+
+*UIConstraints: *Option1 2Meg *PageSize LegalSmall
+*UIConstraints: *Option1 2Meg *PageSize Legal.4Meg
+*UIConstraints: *Option1 2Meg *PageSize Legal.8Meg
+*UIConstraints: *Option1 4Meg *PageSize Legal.2Meg
+*UIConstraints: *Option1 4Meg *PageSize Legal.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.2Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.4Meg
+
+
+*% ==== Device Capabilities ===============
+
+*LanguageLevel: "2"
+*FreeVM: "425600"
+*VMOption 2Meg/Standard 2 MB: "425600"
+*VMOption 4Meg/4 MB Upgrade: "2191632"
+*VMOption 8Meg/8 MB Upgrade: "2371856"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "4"
+*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
+
+*% Halftone Information ===============
+*ScreenFreq: "53.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 }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict
+ dup /PostRenderingEnhance true put
+ setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict
+ dup /PostRenderingEnhance false put
+ setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict
+ dup /PreRenderingEnhance true put
+ setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict
+ dup /PreRenderingEnhance false put
+ setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ <</PageSize [612 792] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize Legal.2Meg/US Legal: "
+ <</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize Legal.4Meg/US Legal: "
+ <</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize Legal.8Meg/US Legal: "
+ <</PageSize [612 1008] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize A4: "
+ <</PageSize [595 842] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize B5: "
+ <</PageSize [516 729] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize Executive: "
+ <</PageSize [522 756] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ <</PageSize [612 792] /ImagingBBox [25 25 587 767] >> setpagedevice"
+*End
+*PageSize A4Small/A4: "
+ <</PageSize [595 842] /ImagingBBox [25 25 570 817] >> setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ <</PageSize [612 1008] /ImagingBBox [25 25 587 983]>> setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ <</PageSize [279 540] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize Com10/Com10 Envelope: "
+ <</PageSize [297 684] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize C5: "
+ <</PageSize [459 649] /ImagingBBox null>> setpagedevice"
+*End
+*PageSize DL: "
+ <</PageSize [312 624] /ImagingBBox null>> setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 9 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [522 756] (Executive) put
+ dup [279 540] (Monarch) put
+ dup [297 684] (Com10) put
+ dup [459 649] (C5) put
+ dup [312 624] (DL) 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/US Letter: "
+ <</PageSize [612 792] /InputAttributes <<0 <</PageSize [612 792]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion Legal.2Meg/US Legal: "
+ <</PageSize [612 1008] /InputAttributes <<0 <</PageSize [612 1008]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion Legal.4Meg/US Legal: "
+ <</PageSize [612 1008] /InputAttributes <<0 <</PageSize [612 1008]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion Legal.8Meg/US Legal: "
+ <</PageSize [612 1008] /InputAttributes <<0 <</PageSize [612 1008]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion A4: "
+ <</PageSize [595 842] /InputAttributes <<0 <</PageSize [595 842]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion B5: "
+ <</PageSize [516 729] /InputAttributes <<0 <</PageSize [516 729]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion Executive: "
+ <</PageSize [522 756] /InputAttributes <<0 <</PageSize [522 756]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ <</PageSize [612 792] /InputAttributes <<0 <</PageSize [612 792]>> >>
+ /ImagingBBox [25 25 587 767] >> setpagedevice"
+*End
+*PageRegion A4Small/A4: "
+ <</PageSize [595 842] /InputAttributes <<0 <</PageSize [595 842]>> >>
+ /ImagingBBox [25 25 570 817] >> setpagedevice"
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ <</PageSize [612 1008] /InputAttributes <<0 <</PageSize [612 1008]>> >>
+ /ImagingBBox [25 25 587 983]>> setpagedevice"
+*End
+*PageRegion Monarch/Monarch Envelope: "
+ <</PageSize [279 540] /InputAttributes <<0 <</PageSize [279 540]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion Com10/Com10 Envelope: "
+ <</PageSize [297 684] /InputAttributes <<0 <</PageSize [297 684]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion C5: "
+ <</PageSize [459 649] /InputAttributes <<0 <</PageSize [461 648]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*PageRegion DL: "
+ <</PageSize [312 624] /InputAttributes <<0 <</PageSize [312 624]>> >>
+ /ImagingBBox null >> setpagedevice"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "9.36 14.2801 600.72 783.72 "
+*ImageableArea Legal.2Meg/US Legal: "64 54 548 954 "
+*ImageableArea Legal.4Meg/US Legal: "9.36 9.6001 600.72 996.72 "
+*ImageableArea Legal.8Meg/US Legal: "9.36 9.6001 600.72 996.72 "
+*ImageableArea A4: "10.56 7.68 586.56 829.68 "
+*ImageableArea B5: "12.0 7.08 503.52 718.92 "
+*ImageableArea Executive: "9.6001 6.9601 508.8 745.92 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Com10/Comm #10 Envelope: "6.7201 5.4 290.88 676.92 "
+*ImageableArea Monarch/Monarch Envelope: "6.48 5.64 275.28 534.12 "
+*ImageableArea C5/C5 Envelope: "8.4001 2.7601 453.84 640.2 "
+*ImageableArea DL/DL Envelope: "8.1601 6.12 307.68 618.6 "
+
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal.2Meg/US Legal: "612 1008"
+*PaperDimension Legal.4Meg/US Legal: "612 1008"
+*PaperDimension Legal.8Meg/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension Executive: "522 756"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension Com10/Com10 Envelope: "297 684"
+*PaperDimension C5: "459 649"
+*PaperDimension DL: "312 624"
+
+*OpenUI *ManualFeed/Manual Feed: 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 *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*RequiresPageRegion All: True
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: service call"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "LocalTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "out of paper"
+*PrinterError: "paper jam"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "service call"
+
+*%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"
+
+
+*% Last Edit Date: Jul 12 1995
+*% Written by sns@sqa for Apple Personal LaserWriter 320 Oct 20,1993
+*% The byte count of this file should be exactly 017052 or 017548
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple Personal LaserWriter 320
diff --git a/psprint_config/configuration/ppds/APLW3601.PS b/psprint_config/configuration/ppds/APLW3601.PS
new file mode 100644
index 000000000000..b5fe07afda79
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLW3601.PS
@@ -0,0 +1,666 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLW3601.PPD"
+*Product: "(LaserWriter Select 360f)"
+*PSVersion: "(2013.112) 1"
+*ModelName: "Apple LaserWriter Select 360f"
+*ShortNickName: "Apple LaserWriter Select 360f"
+*NickName: "Apple LaserWriter Select 360f v2013.112"
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: 7Meg
+*Option1 7Meg/Standard 7 MB RAM: ""
+*Option1 16Meg/16 MB RAM Upgrade: ""
+*CloseUI: *Option1
+
+*OpenUI *Option2/Optional Lower Tray: Boolean
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*CloseUI: *Option2
+
+*OpenUI *Option3/Optional Envelope Feeder: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*CloseUI: *Option3
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Envelope
+
+*UIConstraints: *PageSize Letter *InputSlot Envelope
+*UIConstraints: *PageSize Legal *InputSlot Envelope
+*UIConstraints: *PageSize A4 *InputSlot Envelope
+*UIConstraints: *PageSize Executive *InputSlot Envelope
+*UIConstraints: *PageRegion Letter *InputSlot Envelope
+*UIConstraints: *PageRegion Legal *InputSlot Envelope
+*UIConstraints: *PageRegion A4 *InputSlot Envelope
+*UIConstraints: *PageRegion Executive *InputSlot Envelope
+
+*UIConstraints: *PageSize A5 *InputSlot Lower
+*UIConstraints: *PageSize A5 *InputSlot MainTray
+*UIConstraints: *PageSize Comm10 *InputSlot Lower
+*UIConstraints: *PageSize Comm10 *InputSlot MainTray
+*UIConstraints: *PageSize Monarch *InputSlot Lower
+*UIConstraints: *PageSize Monarch *InputSlot MainTray
+*UIConstraints: *PageSize DL *InputSlot Lower
+*UIConstraints: *PageSize DL *InputSlot MainTray
+*UIConstraints: *PageSize C5 *InputSlot Lower
+*UIConstraints: *PageSize C5 *InputSlot MainTray
+*UIConstraints: *PageSize B5 *InputSlot Lower
+*UIConstraints: *PageSize B5 *InputSlot MainTray
+*UIConstraints: *PageRegion A5 *InputSlot Lower
+*UIConstraints: *PageRegion A5 *InputSlot MainTray
+*UIConstraints: *PageRegion Comm10 *InputSlot Lower
+*UIConstraints: *PageRegion Comm10 *InputSlot MainTray
+*UIConstraints: *PageRegion Monarch *InputSlot Lower
+*UIConstraints: *PageRegion Monarch *InputSlot MainTray
+*UIConstraints: *PageRegion DL *InputSlot Lower
+*UIConstraints: *PageRegion DL *InputSlot MainTray
+*UIConstraints: *PageRegion C5 *InputSlot Lower
+*UIConstraints: *PageRegion C5 *InputSlot MainTray
+*UIConstraints: *PageRegion B5 *InputSlot Lower
+*UIConstraints: *PageRegion B5 *InputSlot MainTray
+
+*UIConstraints: *InputSlot Envelope *PageSize Letter
+*UIConstraints: *InputSlot Envelope *PageSize Legal
+*UIConstraints: *InputSlot Envelope *PageSize A4
+*UIConstraints: *InputSlot Envelope *PageSize Executive
+*UIConstraints: *InputSlot Envelope *PageRegion Letter
+*UIConstraints: *InputSlot Envelope *PageRegion Legal
+*UIConstraints: *InputSlot Envelope *PageRegion A4
+*UIConstraints: *InputSlot Envelope *PageRegion Executive
+
+*UIConstraints: *InputSlot Lower *PageSize A5
+*UIConstraints: *InputSlot MainTray *PageSize A5
+*UIConstraints: *InputSlot Lower *PageSize Comm10
+*UIConstraints: *InputSlot MainTray *PageSize Comm10
+*UIConstraints: *InputSlot Lower *PageSize Monarch
+*UIConstraints: *InputSlot MainTray *PageSize Monarch
+*UIConstraints: *InputSlot Lower *PageSize DL
+*UIConstraints: *InputSlot MainTray *PageSize DL
+*UIConstraints: *InputSlot Lower *PageSize C5
+*UIConstraints: *InputSlot MainTray *PageSize C5
+*UIConstraints: *InputSlot Lower *PageSize B5
+*UIConstraints: *InputSlot MainTray *PageSize B5
+*UIConstraints: *InputSlot Lower *PageRegion A5
+*UIConstraints: *InputSlot MainTray *PageRegion A5
+*UIConstraints: *InputSlot Lower *PageRegion Comm10
+*UIConstraints: *InputSlot MainTray *PageRegion Comm10
+*UIConstraints: *InputSlot Lower *PageRegion Monarch
+*UIConstraints: *InputSlot MainTray *PageRegion Monarch
+*UIConstraints: *InputSlot Lower *PageRegion DL
+*UIConstraints: *InputSlot MainTray *PageRegion DL
+*UIConstraints: *InputSlot Lower *PageRegion C5
+*UIConstraints: *InputSlot MainTray *PageRegion C5
+*UIConstraints: *InputSlot Lower *PageRegion B5
+*UIConstraints: *InputSlot MainTray *PageRegion B5
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+
+*FreeVM: "1340220"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FaxSupport: Base
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "10"
+*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
+*OpenUI *Resolution: PickOne
+*OrderDependency: 20 AnySetup *Resolution
+*DefaultResolution: 600dpi
+*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
+*Resolution 600dpi: "1 dict dup /HWResolution [600 600] put setpagedevice"
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+*CloseUI: *Resolution
+
+*% Halftone Information ===============
+*ScreenFreq: "85.0"
+*ScreenAngle: "40.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 }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict
+ dup /PostRenderingEnhance true put
+ dup /PostRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPostRenderingEnhance true put
+ put
+ setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict
+ dup /PostRenderingEnhance false put
+ dup /PostRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPostRenderingEnhance false put
+ put
+ setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhanceDetails get
+ /ActualPostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict
+ dup /PreRenderingEnhance true put
+ dup /PreRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPreRenderingEnhance true put
+ put
+ setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict
+ dup /PreRenderingEnhance false put
+ dup /PreRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPreRenderingEnhance false put
+ put
+ setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 2 dict dup /PageSize [420 595] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Com10/Com10 Envelope: "
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize C5: "
+ 2 dict dup /PageSize [461 648] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize DL: "
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 10 dict
+ dup [461 648] (C5) put
+ dup [312 624] (DL) put
+ dup [279 540] (Monarch) put
+ dup [297 684] (Com10) put
+ dup [522 756] (Executive) put
+ dup [516 729] (B5) put
+ dup [420 595] (A5) put
+ dup [595 842] (A4) put
+ dup [612 1008] (Legal) put
+ dup [612 792] (Letter) 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/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A5: "
+ 2 dict dup /PageSize [420 595] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Monarch/Monarch Envelope: "
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Com10/Com10 Envelope: "
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion C5: "
+ 2 dict dup /PageSize [461 648] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion DL: "
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "14.16 11.28 597.84 777.6"
+*ImageableArea Legal/US Legal: "14.16 11.28 597.84 993.6"
+*ImageableArea A4: "13.2001 11.4 581.52 827.88"
+*ImageableArea A5: "15.12 11.4 406.8 580.68"
+*ImageableArea B5: "12.0 11.28 503.52 714.72"
+*ImageableArea Executive: "11.28 11.28 510.48 741.6"
+*ImageableArea Monarch/Monarch Envelope: "12.7201 11.28 266.16 525.6"
+*ImageableArea Com10/Com10 Envelope: "13.92 11.2801 282.72 669.6 "
+*ImageableArea C5: "16.56 11.28 446.64 634.56 "
+*ImageableArea DL: "13.92 14.16 298.08 609.6 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812"
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension A5: "420 595"
+*PaperDimension B5: "516 729"
+*PaperDimension Executive: "522 756"
+*PaperDimension Com10/Com10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension C5: "461 648"
+*PaperDimension DL: "312 624"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+
+*RequiresPageRegion Upper: True
+*RequiresPageRegion Envelope: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: MainTray
+*InputSlot MainTray/Cassette (250 sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Lower/Cassette (250/500 sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Envelope/Envelope Feeder: "
+ currentpagedevice /InputAttributes get 3 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Upper/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+ save
+ 2 dict
+ dup /0 (MainTray) put
+ dup /1 (Lower) put
+ dup /2 (Envelope) put
+ dup /3 (Upper) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+*PageStackOrder Upper: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% 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.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" 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: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "printing"
+*Status: "warming up"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "LocalTalk"
+*Source: "Parallel"
+*Source: "Serial"
+*Source: "SerialB"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*%%KEYWORD: PrinterError
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 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 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"
+
+*% 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"
+
+
+*% For 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+
+*% Produced by "bldppd42.ps" version 4.0 edit 12
+*% Last Edit Date: Jul 28 1993
+*% The byte count of this file should be exactly 022902 or 023568
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple LaserWriter Select 360f
diff --git a/psprint_config/configuration/ppds/APLW6101.PS b/psprint_config/configuration/ppds/APLW6101.PS
new file mode 100644
index 000000000000..3d651888102f
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLW6101.PS
@@ -0,0 +1,597 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.1"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLW6101.PPD"
+*Product: "(LaserWriter Select 610)"
+*PSVersion: "(2013.112) 1"
+*ModelName: "Apple LaserWriter Select 610"
+*ShortNickName: "Apple LaserWriter Select 610"
+*NickName: "Apple LaserWriter Select 610 v2013.112"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: 12Meg
+*Option1 12Meg/Standard 12 MB RAM: ""
+*Option1 16Meg/16 MB Upgrade: ""
+*?Option1: "
+ (12Meg) currentsystemparams /RamSize get
+ 16777216 eq {pop (16Meg)} if
+ = "
+*End
+*CloseUI: *Option1
+
+*OpenUI *Option2/Cassette (250/500 Sheets): PickOne
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*Option2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1] put put setpagedevice "
+*End
+*?Option2: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 2 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option2
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option2 False *InputSlot Lower
+
+*UIConstraints: *PageSize Postcard *InputSlot Upper
+*UIConstraints: *PageSize Postcard *InputSlot Lower
+*UIConstraints: *InputSlot Upper *PageSize Postcard
+*UIConstraints: *InputSlot Lower *PageSize Postcard
+
+*UIConstraints: *PageRegion Postcard *InputSlot Upper
+*UIConstraints: *PageRegion Postcard *InputSlot Lower
+*UIConstraints: *InputSlot Upper *PageRegion Postcard
+*UIConstraints: *InputSlot Lower *PageRegion Postcard
+
+*UIConstraints: *Option1 12Meg *VMOption 16Meg
+*UIConstraints: *Option1 16Meg *VMOption 12Meg
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: LaserJetIII
+*StartEmulator_LaserJetIII: "currentfile /LaserJetIII statusdict /emulate get exec "
+*StopEmulator_LaserJetIII: "<1B>E"
+
+*FreeVM: "6810752"
+*VMOption 12Meg/Standard 12 MB RAM: "6810752"
+*VMOption 16Meg/16 MB Upgrade: "10810752"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Throughput: "10"
+*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
+
+*% Halftone Information ===============
+*ScreenFreq: "85.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 ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: A4
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 2 dict dup /PageSize [420 595] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Com10/Com10 Envelope: "
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize C5: "
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize DL: "
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Postcard: "
+ 2 dict dup /PageSize [284 419] put dup /ImagingBBox null put setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 11 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [522 756] (Executive) put
+ dup [420 595] (A5) put
+ dup [279 540] (Monarch) put
+ dup [297 684] (Com10) put
+ dup [459 649] (C5) put
+ dup [312 624] (DL) put
+ dup [284 419] (Postcard) 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: A4
+*PageRegion A4: "
+ <</PageSize [595 842]
+ /InputAttributes <<1 <</PageSize [595 842]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion Letter/US Letter: "
+ <</PageSize [612 792]
+ /InputAttributes <<1 <</PageSize [612 792]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion Legal/US Legal: "
+ <</PageSize [612 1008]
+ /InputAttributes <<1 <</PageSize [612 1008]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion B5: "
+ <</PageSize [516 729]
+ /InputAttributes <<1 <</PageSize [516 729]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion Executive: "
+ <</PageSize [522 756]
+ /InputAttributes <<1 <</PageSize [522 756]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion A5: "
+ <</PageSize [420 595]
+ /InputAttributes <<1 <</PageSize [420 595]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ <</PageSize [612 792]
+ /InputAttributes <<1 <</PageSize [612 792]>> >>
+ /ImagingBBox [25 25 587 767] >> setpagedevice "
+*End
+*PageRegion A4Small/A4 Small: "
+ <</PageSize [595 842]
+ /InputAttributes <<1 <</PageSize [595 842]>> >>
+ /ImagingBBox [25 25 570 817] >> setpagedevice "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ <</PageSize [612 1008]
+ /InputAttributes <<1 <</PageSize [612 1008]>> >>
+ /ImagingBBox [25 25 587 983] >> setpagedevice "
+*End
+*PageRegion Monarch/Monarch Envelope: "
+ <</PageSize [279 540]
+ /InputAttributes <<1 <</PageSize [279 540]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion Com10/Com10 Envelope: "
+ <</PageSize [297 684]
+ /InputAttributes <<1 <</PageSize [297 684]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion C5: "
+ <</PageSize [459 649]
+ /InputAttributes <<1 <</PageSize [459 649]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion DL: "
+ <</PageSize [312 624]
+ /InputAttributes <<1 <</PageSize [312 624]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*PageRegion Postcard: "
+ <</PageSize [284 419]
+ /InputAttributes <<1 <</PageSize [284 419]>> >>
+ /ImagingBBox null >> setpagedevice "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: A4
+*ImageableArea A4: "13.2001 11.34 581.52 827.82 "
+*ImageableArea Letter/US Letter: "14.16 11.3401 597.84 777.66 "
+*ImageableArea Legal/US Legal: "14.16 11.34 597.84 993.66 "
+*ImageableArea B5: "12.0 11.3401 503.52 714.78 "
+*ImageableArea Executive: "11.28 11.34 510.48 741.66 "
+*ImageableArea A5: "15.12 11.34 406.8 580.62 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope: "12.7201 11.34 266.16 525.66 "
+*ImageableArea Com10/Com10 Envelope: "13.92 11.34 282.72 669.66 "
+*ImageableArea C5/C5 Envelope: "16.56 11.34 446.64 634.62 "
+*ImageableArea DL/DL Envelope: "13.92 14.2201 298.08 609.66 "
+*ImageableArea Postcard: "12.7201 11.34 281.52 417.9 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: A4
+*PaperDimension A4: "595 842"
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension B5: "516 729"
+*PaperDimension Executive: "522 756"
+*PaperDimension A5: "420 595"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension Com10/Com10 Envelope: "297 684"
+*PaperDimension C5: "459 649"
+*PaperDimension DL: "312 624"
+*PaperDimension Postcard: "284 419"
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Cassette (250 Sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Lower/Cassette (250/500 Sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (Upper) put
+ dup /1 (Multipurpose) put
+ dup /2 (Lower) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*RequiresPageRegion Multipurpose: True
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (250 Sheet) : no paper tray"
+*Status: "PrinterError: Cassette (250 Sheet) : out of paper"
+*Status: "PrinterError: Cassette (250/500 Sheet) : no paper tray"
+*Status: "PrinterError: Cassette (250/500 Sheet) : out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Manual Feed: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "LocalTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "out of paper"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (250 Sheet) : no paper tray"
+*PrinterError: "Cassette (250 Sheet) : out of paper"
+*PrinterError: "Cassette (250/500 Sheet) : no paper tray"
+*PrinterError: "Cassette (250/500 Sheet) : out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "Manual Feed: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 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 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"
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% Last Edit Date: Jan 3 1995
+*% Written by sns@sqa for LaserWriter Select 610 Oct 18,1993
+*% The byte count of this file should be exactly 021037 or 021634
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter Select 610
diff --git a/psprint_config/configuration/ppds/APLW8101.PS b/psprint_config/configuration/ppds/APLW8101.PS
new file mode 100644
index 000000000000..20a68fa66726
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLW8101.PS
@@ -0,0 +1,885 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.1"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLW8101.PPD"
+*Product: "(LaserWriter Pro 810)"
+*PSVersion: "(2011.113) 12"
+*ModelName: "Apple LaserWriter Pro 810"
+*ShortNickName: "Apple LaserWriter Pro 810"
+*NickName: "Apple LaserWriter Pro 810 v2011.113"
+
+*% ==== Options and Constraints =====
+*OpenGroup: InstallableOptions/Options Installed
+
+*OpenUI *Option1/Multimedia Power Feeder: Boolean
+*DefaultOption1: False
+*Option1 True/Installed: ""
+*Option1 False/Not Installed: ""
+*CloseUI: *Option1
+
+*OpenUI *Option2/Memory Configuration: PickOne
+*DefaultOption2: None
+*Option2 8Meg/8 MB RAM: ""
+*Option2 12Meg/12 MB RAM: ""
+*Option2 16Meg/16 MB RAM: ""
+*Option2 20Meg/20 MB RAM: ""
+*Option2 24Meg/24 MB RAM: ""
+*Option2 28Meg/30 MB RAM: ""
+*Option2 32Meg/32 MB RAM: ""
+*?Option2: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *Option2
+
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 True *ManualFeed True
+*UIConstraints: *Option1 False *InputSlot MultiMediaFeeder
+
+*UIConstraints: *Option2 8Meg *VMOption 12Meg
+*UIConstraints: *Option2 8Meg *VMOption 16Meg
+*UIConstraints: *Option2 8Meg *VMOption 20Meg
+*UIConstraints: *Option2 8Meg *VMOption 24Meg
+*UIConstraints: *Option2 8Meg *VMOption 28Meg
+*UIConstraints: *Option2 8Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 12Meg *VMOption 8Meg
+*UIConstraints: *Option2 12Meg *VMOption 16Meg
+*UIConstraints: *Option2 12Meg *VMOption 20Meg
+*UIConstraints: *Option2 12Meg *VMOption 24Meg
+*UIConstraints: *Option2 12Meg *VMOption 28Meg
+*UIConstraints: *Option2 12Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 16Meg *VMOption 8Meg
+*UIConstraints: *Option2 16Meg *VMOption 12Meg
+*UIConstraints: *Option2 16Meg *VMOption 20Meg
+*UIConstraints: *Option2 16Meg *VMOption 24Meg
+*UIConstraints: *Option2 16Meg *VMOption 28Meg
+*UIConstraints: *Option2 16Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 20Meg *VMOption 8Meg
+*UIConstraints: *Option2 20Meg *VMOption 12Meg
+*UIConstraints: *Option2 20Meg *VMOption 16Meg
+*UIConstraints: *Option2 20Meg *VMOption 24Meg
+*UIConstraints: *Option2 20Meg *VMOption 28Meg
+*UIConstraints: *Option2 20Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 24Meg *VMOption 8Meg
+*UIConstraints: *Option2 24Meg *VMOption 12Meg
+*UIConstraints: *Option2 24Meg *VMOption 16Meg
+*UIConstraints: *Option2 24Meg *VMOption 20Meg
+*UIConstraints: *Option2 24Meg *VMOption 28Meg
+*UIConstraints: *Option2 24Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 28Meg *VMOption 8Meg
+*UIConstraints: *Option2 28Meg *VMOption 12Meg
+*UIConstraints: *Option2 28Meg *VMOption 16Meg
+*UIConstraints: *Option2 28Meg *VMOption 20Meg
+*UIConstraints: *Option2 28Meg *VMOption 24Meg
+*UIConstraints: *Option2 28Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 32Meg *VMOption 8Meg
+*UIConstraints: *Option2 32Meg *VMOption 12Meg
+*UIConstraints: *Option2 32Meg *VMOption 16Meg
+*UIConstraints: *Option2 32Meg *VMOption 20Meg
+*UIConstraints: *Option2 32Meg *VMOption 24Meg
+*UIConstraints: *Option2 32Meg *VMOption 28Meg
+
+
+*% This device does not support the following paper sizes through input trays:
+*% Statement, Postcard, Comm #10 Envelope, DL, C5, Monarch envelopes.
+
+*UIConstraints: *PageSize Statement *InputSlot Tray1
+*UIConstraints: *PageSize Statement *InputSlot Tray2
+*UIConstraints: *PageSize Statement *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Statement
+*UIConstraints: *InputSlot Tray2 *PageSize Statement
+*UIConstraints: *InputSlot Tray3 *PageSize Statement
+
+*UIConstraints: *PageSize Postcard *InputSlot Tray1
+*UIConstraints: *PageSize Postcard *InputSlot Tray2
+*UIConstraints: *PageSize Postcard *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Postcard
+*UIConstraints: *InputSlot Tray2 *PageSize Postcard
+*UIConstraints: *InputSlot Tray3 *PageSize Postcard
+
+*UIConstraints: *PageSize Com10 *InputSlot Tray1
+*UIConstraints: *PageSize Com10 *InputSlot Tray2
+*UIConstraints: *PageSize Com10 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Com10
+*UIConstraints: *InputSlot Tray2 *PageSize Com10
+*UIConstraints: *InputSlot Tray3 *PageSize Com10
+
+*UIConstraints: *PageSize DL *InputSlot Tray1
+*UIConstraints: *PageSize DL *InputSlot Tray2
+*UIConstraints: *PageSize DL *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize DL
+*UIConstraints: *InputSlot Tray2 *PageSize DL
+*UIConstraints: *InputSlot Tray3 *PageSize DL
+
+*UIConstraints: *PageSize C5 *InputSlot Tray1
+*UIConstraints: *PageSize C5 *InputSlot Tray2
+*UIConstraints: *PageSize C5 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize C5
+*UIConstraints: *InputSlot Tray2 *PageSize C5
+*UIConstraints: *InputSlot Tray3 *PageSize C5
+
+*UIConstraints: *PageSize Monarch *InputSlot Tray1
+*UIConstraints: *PageSize Monarch *InputSlot Tray2
+*UIConstraints: *PageSize Monarch *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Monarch
+*UIConstraints: *InputSlot Tray2 *PageSize Monarch
+*UIConstraints: *InputSlot Tray3 *PageSize Monarch
+
+*UIConstraints: *PageRegion Statement *InputSlot Tray1
+*UIConstraints: *PageRegion Statement *InputSlot Tray2
+*UIConstraints: *PageRegion Statement *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Statement
+*UIConstraints: *InputSlot Tray2 *PageRegion Statement
+*UIConstraints: *InputSlot Tray3 *PageRegion Statement
+
+*UIConstraints: *PageRegion Postcard *InputSlot Tray1
+*UIConstraints: *PageRegion Postcard *InputSlot Tray2
+*UIConstraints: *PageRegion Postcard *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Postcard
+*UIConstraints: *InputSlot Tray2 *PageRegion Postcard
+*UIConstraints: *InputSlot Tray3 *PageRegion Postcard
+
+*UIConstraints: *PageRegion Com10 *InputSlot Tray1
+*UIConstraints: *PageRegion Com10 *InputSlot Tray2
+*UIConstraints: *PageRegion Com10 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Com10
+*UIConstraints: *InputSlot Tray2 *PageRegion Com10
+*UIConstraints: *InputSlot Tray3 *PageRegion Com10
+
+*UIConstraints: *PageRegion DL *InputSlot Tray1
+*UIConstraints: *PageRegion DL *InputSlot Tray2
+*UIConstraints: *PageRegion DL *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion DL
+*UIConstraints: *InputSlot Tray2 *PageRegion DL
+*UIConstraints: *InputSlot Tray3 *PageRegion DL
+
+*UIConstraints: *PageRegion C5 *InputSlot Tray1
+*UIConstraints: *PageRegion C5 *InputSlot Tray2
+*UIConstraints: *PageRegion C5 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion C5
+*UIConstraints: *InputSlot Tray2 *PageRegion C5
+*UIConstraints: *InputSlot Tray3 *PageRegion C5
+
+*UIConstraints: *PageRegion Monarch *InputSlot Tray1
+*UIConstraints: *PageRegion Monarch *InputSlot Tray2
+*UIConstraints: *PageRegion Monarch *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Monarch
+*UIConstraints: *InputSlot Tray2 *PageRegion Monarch
+*UIConstraints: *InputSlot Tray3 *PageRegion Monarch
+
+*% General Information and Defaults ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: hplj
+*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hplj: "<1B 7F>0"
+*FreeVM: "430000"
+*VMOption 8Meg/8 Meg RAM: "430000"
+*VMOption 12Meg/12 Meg RAM: "1020000"
+*VMOption 16Meg/16 Meg RAM: "1457792"
+*VMOption 20Meg/20 Meg RAM: "5457792"
+*VMOption 24Meg/24 Meg RAM: "9457792"
+*VMOption 28Meg/28 Meg RAM: "13457792"
+*VMOption 32Meg/32 Meg RAM: "17457792"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Throughput: "20"
+*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
+
+*OpenUI *Resolution: PickOne
+*OrderDependency: 10 AnySetup *Resolution
+*DefaultResolution: 400dpi
+*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
+*Resolution 400dpi: "1 dict dup /HWResolution [400 400] put setpagedevice"
+*Resolution 600dpi: "1 dict dup /HWResolution [600 600] put setpagedevice"
+*Resolution 800dpi: "1 dict dup /HWResolution [800 800] put setpagedevice"
+
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ aload pop exch
+ ( ) cvs print
+ pop
+ (dpi) = flush
+ restore
+"
+*End
+*CloseUI: *Resolution
+
+*% 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 ===================
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Unknown
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Letter.Transverse/US Letter Transverse: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Tabloid/Ledger: "
+ 2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A3: "
+ 2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4.Transverse/A4 Transverse: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 2 dict dup /PageSize [420 595] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B4: "
+ 2 dict dup /PageSize [729 1032] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Postcard: "
+ 2 dict dup /PageSize [284 419] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Invoice/Statement: "
+ 2 dict dup /PageSize [396 612] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Folio: "
+ 2 dict dup /PageSize [595 936] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Comm10/Comm #10 Envelope: "
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize DL/DL Envelope: "
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize C5/C5 Envelope: "
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice "
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 16 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [792 1224] (Tabloid) put
+ dup [842 1191] (A3) put
+ dup [595 842] (A4) put
+ dup [420 595] (A5) put
+ dup [729 1032] (B4) put
+ dup [516 729] (B5) put
+ dup [284 419] (Postcard) put
+ dup [396 612] (Invoice) put
+ dup [595 936] (Folio) put
+ dup [522 756] (Executive) put
+ dup [297 684] (Comm10) put
+ dup [279 540] (Monarch) put
+ dup [312 624] (DL) put
+ dup [459 649] (C5) 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: Unknown
+*PageRegion Letter/US Letter: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 792] put setpagedevice} {pop} ifelse
+ <</PageSize [612 792]>> setpagedevice "
+*End
+*PageRegion Letter.Transverse/US Letter Transverse: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 792] put setpagedevice} {pop} ifelse
+ <</PageSize [612 792]>> setpagedevice "
+*End
+*PageRegion Legal/US Legal: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 1008] put setpagedevice} {pop} ifelse
+ <</PageSize [612 1008]>> setpagedevice "
+*End
+*PageRegion Tabloid/Ledger: "
+2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A3: "
+2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 842] put setpagedevice} {pop} ifelse
+ <</PageSize [595 842]>> setpagedevice "
+*End
+*PageRegion A4.Transverse/A4 Transverse: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 842] put setpagedevice} {pop} ifelse
+ <</PageSize [595 842]>> setpagedevice "
+*End
+*PageRegion A5: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [420 595] put setpagedevice} {pop} ifelse
+ <</PageSize [420 595]>> setpagedevice "
+*End
+*PageRegion B4: "
+2 dict dup /PageSize [729 1032] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion B5: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [516 729] put setpagedevice} {pop} ifelse
+ <</PageSize [516 729]>> setpagedevice "
+*End
+*PageRegion Postcard: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [284 419] put setpagedevice} {pop} ifelse
+ <</PageSize [284 419]>> setpagedevice "
+*End
+*PageRegion Invoice/Statement: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [396 612] put setpagedevice} {pop} ifelse
+ <</PageSize [396 612]>> setpagedevice "
+*End
+*PageRegion Folio: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 936] put setpagedevice} {pop} ifelse
+ <</PageSize [595 936]>> setpagedevice "
+*End
+*PageRegion Executive: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [522 756] put setpagedevice} {pop} ifelse
+ <</PageSize [522 756]>> setpagedevice "
+*End
+*PageRegion Comm10/Comm #10 Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [297 684] put setpagedevice} {pop} ifelse
+ <</PageSize [297 684]>> setpagedevice "
+*End
+*PageRegion Monarch/Monarch Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [279 540] put setpagedevice} {pop} ifelse
+ <</PageSize [279 540]>> setpagedevice "
+*End
+*PageRegion DL/DL Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [312 624] put setpagedevice} {pop} ifelse
+ <</PageSize [312 624]>> setpagedevice "
+*End
+*PageRegion C5/C5 Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [459 649] put setpagedevice} {pop} ifelse
+ <</PageSize [459 649]>> setpagedevice "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 792] put setpagedevice} {pop} ifelse
+ <</PageSize [612 792]>> setpagedevice "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 1008] put setpagedevice} {pop} ifelse
+ <</PageSize [612 1008]>> setpagedevice "
+*End
+*PageRegion A4Small/A4 Small: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 842] put setpagedevice} {pop} ifelse
+ <</PageSize [595 842]>> setpagedevice "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Unknown
+*ImageableArea Letter/US Letter: "16 14.4 595.4 778 "
+*ImageableArea Letter.Transverse/US Letter Transverse: "16 14.4 595.4 778 "
+*ImageableArea Legal/US Legal: "16 9.81 596.16 995 "
+*ImageableArea Tabloid/Ledger: "16 12 780 1208 "
+*ImageableArea A3: "16 12 825.84 1178 "
+*ImageableArea A4: "16 16 578.88 825.17 "
+*ImageableArea A4.Transverse/A4 Transverse: "16 14.4 578.88 825.17 "
+*ImageableArea A5: "14 14.4 407.25 577 "
+*ImageableArea B4: "16 10.2 717.12 1019.25 "
+*ImageableArea B5: "11 15 503.1 716 "
+*ImageableArea Postcard: "14.4 9.81 273.6 407.25 "
+*ImageableArea Invoice/Statement: "21 16 373 595 "
+*ImageableArea Folio: "21 10.2 578.88 922 "
+*ImageableArea Executive: "14.4 9.7201 509.76 743.13 "
+*ImageableArea Comm10/Comm #10 Envelope: "16 12 279 671 "
+*ImageableArea Monarch/Monarch Envelope: "16 12 265.2 525 "
+*ImageableArea DL/DL Envelope: "16 14 295.64 605 "
+*ImageableArea C5/C5 Envelope: "19 14 448 631 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Unknown
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Letter.Transverse/US Letter Transverse: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension Tabloid/Ledger: "792 1224"
+*PaperDimension A3: "842 1191"
+*PaperDimension A4: "595 842"
+*PaperDimension A4.Transverse/A4 Transverse: "595 842"
+*PaperDimension A5: "420 595"
+*PaperDimension B4: "729 1032"
+*PaperDimension B5: "516 729 "
+*PaperDimension Postcard: "284 419"
+*PaperDimension Invoice/Statement: "396 612"
+*PaperDimension Folio: "595 936"
+*PaperDimension Executive: "522 756"
+*PaperDimension Comm10/Comm #10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension DL/DL Envelope: "312 624"
+*PaperDimension C5/C5 Envelope: "459 649"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+
+*RequiresPageRegion MultiMediaFeeder: True
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "<</ManualFeed true>> setpagedevice "
+*ManualFeed False: "<</ManualFeed false>> setpagedevice "
+*?ManualFeed: "
+ save
+ currentpagedevice /ManualFeed get
+ {(True)}{(False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Tray1
+*InputSlot Tray1/Upper tray: "
+ currentpagedevice /InputAttributes get
+ 0 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [0 1 2 3] put
+ put setpagedevice
+ } ifelse "
+*End
+*InputSlot Tray2/Middle tray: "
+ currentpagedevice /InputAttributes get
+ 1 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [1 0 2 3] put
+ put setpagedevice
+ } ifelse "
+*End
+*InputSlot Tray3/Lower tray: "
+ currentpagedevice /InputAttributes get
+ 2 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [2 0 1 3] put
+ put setpagedevice
+ } ifelse "
+*End
+*InputSlot MultiMediaFeeder/Multimedia Power Feeder: "
+ currentpagedevice /InputAttributes get
+ 3 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [3 0 1 2] put
+ put setpagedevice
+ } ifelse "
+*End
+*?InputSlot: "
+save
+ 4 dict
+ dup /0 (Tray1) put
+ dup /1 (Tray2) put
+ dup /2 (Tray3) put
+ dup /3 (MultiMediaFeeder) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: Upper
+*DefaultOutputOrder: Normal
+
+*PageStackOrder Front: Reverse
+*PageStackOrder Upper: Normal
+
+*OpenUI *TraySwitch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003)" Standard ROM
+*Font Bookman-Light: Standard "(001.003)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003)" Standard ROM
+*Font Courier: Standard "(002.004)" Standard ROM
+*Font Courier-Bold: Standard "(002.004)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004)" Standard ROM
+*Font Helvetica: Standard "(001.006)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.008)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006)" Standard ROM
+*Font Palatino-Bold: Standard "(001.005)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005)" Standard ROM
+*Font Palatino-Italic: Standard "(001.005)" Standard ROM
+*Font Palatino-Roman: Standard "(001.005)" Standard ROM
+*Font Symbol: Special "(001.007)" Special ROM
+*Font Times-Bold: Standard "(001.007)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009)" Standard ROM
+*Font Times-Italic: Standard "(001.007)" Standard ROM
+*Font Times-Roman: Standard "(001.007)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.006)" Standard ROM
+*Font ZapfDingbats: Special "(001.004)" 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: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "printing"
+*Status: "warming up"
+*Status: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner is low"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: Engine is off line"
+*Status: "PrinterError: Engine is not responding"
+*Status: "PrinterError: Unknown problem occurred"
+*Status: "PrinterError: Manual feed page not requested"
+*Status: "PrinterError: waiting for manual feed"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+*Source: "EtherTalk"
+*Source: "Parallel"
+*Source: "other"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner is low"
+*PrinterError: "paper jam"
+*PrinterError: "out of paper"
+*PrinterError: "service call"
+*PrinterError: "Engine is off line"
+*PrinterError: "Engine is not responding"
+*PrinterError: "Unknown problem occurred"
+*PrinterError: "Manual feed page not requested"
+*PrinterError: "waiting for manual feed"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.60lpi.400dpi/60 lpi / 400 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"
+
+*% For 71 lpi / 400 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.400dpi/71 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.400dpi/71 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.400dpi/71 lpi / 400 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.400dpi/71 lpi / 400 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.400dpi/71 lpi / 400 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.400dpi/71 lpi / 400 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.400dpi/71 lpi / 400 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.400dpi/71 lpi / 400 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.400dpi/71 lpi / 400 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.400dpi/71 lpi / 400 dpi: "66.6667"
+
+*% For 47 lpi / 400 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.47lpi.400dpi/47 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.47lpi.400dpi/47 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.47lpi.400dpi/47 lpi / 400 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.47lpi.400dpi/47 lpi / 400 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.47lpi.400dpi/47 lpi / 400 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.47lpi.400dpi/47 lpi / 400 dpi: "47.1405"
+*ColorSepScreenFreq CustomColor.47lpi.400dpi/47 lpi / 400 dpi: "47.1405"
+*ColorSepScreenFreq ProcessCyan.47lpi.400dpi/47 lpi / 400 dpi: "42.1637"
+*ColorSepScreenFreq ProcessMagenta.47lpi.400dpi/47 lpi / 400 dpi: "42.1637"
+*ColorSepScreenFreq ProcessYellow.47lpi.400dpi/47 lpi / 400 dpi: "44.4444"
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% For 85 lpi / 800 dpi =====================
+
+*ColorSepScreenAngle ProcessBlack.85lpi.800dpi/85 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.85lpi.800dpi/85 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.85lpi.800dpi/85 lpi / 800 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.85lpi.800dpi/85 lpi / 800 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.85lpi.800dpi/85 lpi / 800 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.85lpi.800dpi/85 lpi / 800 dpi: "84.8528"
+*ColorSepScreenFreq CustomColor.85lpi.800dpi/85 lpi / 800 dpi: "84.8528"
+*ColorSepScreenFreq ProcessCyan.85lpi.800dpi/85 lpi / 800 dpi: "94.8683"
+*ColorSepScreenFreq ProcessMagenta.85lpi.800dpi/85 lpi / 800 dpi: "94.8683"
+*ColorSepScreenFreq ProcessYellow.85lpi.800dpi/85 lpi / 800 dpi: "30.0"
+
+*ColorSepScreenProc ProcessYellow.85lpi.800dpi/85 lpi / 800 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 71 lpi / 800 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.800dpi/71 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.800dpi/71 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.800dpi/71 lpi / 800 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.800dpi/71 lpi / 800 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.800dpi/71 lpi / 800 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.800dpi/71 lpi / 800 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.800dpi/71 lpi / 800 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.800dpi/71 lpi / 800 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.800dpi/71 lpi / 800 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.800dpi/71 lpi / 800 dpi: "66.6667"
+
+
+
+*% Produced by "BuildPPD4.0L2.ps" version 4.0 edit 3
+*% Last Edit Date: Jan 3 1995
+*% The byte count of this file should be exactly 033330 or 034215
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter Pro 810
diff --git a/psprint_config/configuration/ppds/APLW81F1.PS b/psprint_config/configuration/ppds/APLW81F1.PS
new file mode 100644
index 000000000000..6b118be021e1
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLW81F1.PS
@@ -0,0 +1,885 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.1"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLW81F1.PPD"
+*Product: "(LaserWriter Pro 810f)"
+*PSVersion: "(2011.113) 12"
+*ModelName: "Apple LaserWriter Pro 810 with Fax Card"
+*ShortNickName: "Apple LaserWriter Pro 810 Fax"
+*NickName: "Apple LaserWriter Pro 810 with Fax Card v2011.113"
+
+*% ==== Options and Constraints =====
+*OpenGroup: InstallableOptions/Options Installed
+
+*OpenUI *Option1/Multimedia Power Feeder: Boolean
+*DefaultOption1: False
+*Option1 True/Installed: ""
+*Option1 False/Not Installed: ""
+*CloseUI: *Option1
+
+*OpenUI *Option2/Memory Configuration: PickOne
+*DefaultOption2: 8Meg
+*Option2 8Meg/8 MB RAM: ""
+*Option2 12Meg/12 MB RAM: ""
+*Option2 16Meg/16 MB RAM: ""
+*Option2 20Meg/20 MB RAM: ""
+*Option2 24Meg/24 MB RAM: ""
+*Option2 28Meg/30 MB RAM: ""
+*Option2 32Meg/32 MB RAM: ""
+*?Option2: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *Option2
+
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 True *ManualFeed True
+*UIConstraints: *Option1 False *InputSlot MultiMediaFeeder
+
+*UIConstraints: *Option2 8Meg *VMOption 12Meg
+*UIConstraints: *Option2 8Meg *VMOption 16Meg
+*UIConstraints: *Option2 8Meg *VMOption 20Meg
+*UIConstraints: *Option2 8Meg *VMOption 24Meg
+*UIConstraints: *Option2 8Meg *VMOption 28Meg
+*UIConstraints: *Option2 8Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 12Meg *VMOption 8Meg
+*UIConstraints: *Option2 12Meg *VMOption 16Meg
+*UIConstraints: *Option2 12Meg *VMOption 20Meg
+*UIConstraints: *Option2 12Meg *VMOption 24Meg
+*UIConstraints: *Option2 12Meg *VMOption 28Meg
+*UIConstraints: *Option2 12Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 16Meg *VMOption 8Meg
+*UIConstraints: *Option2 16Meg *VMOption 12Meg
+*UIConstraints: *Option2 16Meg *VMOption 20Meg
+*UIConstraints: *Option2 16Meg *VMOption 24Meg
+*UIConstraints: *Option2 16Meg *VMOption 28Meg
+*UIConstraints: *Option2 16Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 20Meg *VMOption 8Meg
+*UIConstraints: *Option2 20Meg *VMOption 12Meg
+*UIConstraints: *Option2 20Meg *VMOption 16Meg
+*UIConstraints: *Option2 20Meg *VMOption 24Meg
+*UIConstraints: *Option2 20Meg *VMOption 28Meg
+*UIConstraints: *Option2 20Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 24Meg *VMOption 8Meg
+*UIConstraints: *Option2 24Meg *VMOption 12Meg
+*UIConstraints: *Option2 24Meg *VMOption 16Meg
+*UIConstraints: *Option2 24Meg *VMOption 20Meg
+*UIConstraints: *Option2 24Meg *VMOption 28Meg
+*UIConstraints: *Option2 24Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 28Meg *VMOption 8Meg
+*UIConstraints: *Option2 28Meg *VMOption 12Meg
+*UIConstraints: *Option2 28Meg *VMOption 16Meg
+*UIConstraints: *Option2 28Meg *VMOption 20Meg
+*UIConstraints: *Option2 28Meg *VMOption 24Meg
+*UIConstraints: *Option2 28Meg *VMOption 32Meg
+
+*UIConstraints: *Option2 32Meg *VMOption 8Meg
+*UIConstraints: *Option2 32Meg *VMOption 12Meg
+*UIConstraints: *Option2 32Meg *VMOption 16Meg
+*UIConstraints: *Option2 32Meg *VMOption 20Meg
+*UIConstraints: *Option2 32Meg *VMOption 24Meg
+*UIConstraints: *Option2 32Meg *VMOption 28Meg
+
+*% This device does not support the following paper sizes through input trays:
+*% Statement, Postcard, Comm #10 Envelope, DL, C5, Monarch envelopes.
+
+*UIConstraints: *PageSize Statement *InputSlot Tray1
+*UIConstraints: *PageSize Statement *InputSlot Tray2
+*UIConstraints: *PageSize Statement *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Statement
+*UIConstraints: *InputSlot Tray2 *PageSize Statement
+*UIConstraints: *InputSlot Tray3 *PageSize Statement
+
+*UIConstraints: *PageSize Postcard *InputSlot Tray1
+*UIConstraints: *PageSize Postcard *InputSlot Tray2
+*UIConstraints: *PageSize Postcard *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Postcard
+*UIConstraints: *InputSlot Tray2 *PageSize Postcard
+*UIConstraints: *InputSlot Tray3 *PageSize Postcard
+
+*UIConstraints: *PageSize Com10 *InputSlot Tray1
+*UIConstraints: *PageSize Com10 *InputSlot Tray2
+*UIConstraints: *PageSize Com10 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Com10
+*UIConstraints: *InputSlot Tray2 *PageSize Com10
+*UIConstraints: *InputSlot Tray3 *PageSize Com10
+
+*UIConstraints: *PageSize DL *InputSlot Tray1
+*UIConstraints: *PageSize DL *InputSlot Tray2
+*UIConstraints: *PageSize DL *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize DL
+*UIConstraints: *InputSlot Tray2 *PageSize DL
+*UIConstraints: *InputSlot Tray3 *PageSize DL
+
+*UIConstraints: *PageSize C5 *InputSlot Tray1
+*UIConstraints: *PageSize C5 *InputSlot Tray2
+*UIConstraints: *PageSize C5 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize C5
+*UIConstraints: *InputSlot Tray2 *PageSize C5
+*UIConstraints: *InputSlot Tray3 *PageSize C5
+
+*UIConstraints: *PageSize Monarch *InputSlot Tray1
+*UIConstraints: *PageSize Monarch *InputSlot Tray2
+*UIConstraints: *PageSize Monarch *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageSize Monarch
+*UIConstraints: *InputSlot Tray2 *PageSize Monarch
+*UIConstraints: *InputSlot Tray3 *PageSize Monarch
+
+*UIConstraints: *PageRegion Statement *InputSlot Tray1
+*UIConstraints: *PageRegion Statement *InputSlot Tray2
+*UIConstraints: *PageRegion Statement *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Statement
+*UIConstraints: *InputSlot Tray2 *PageRegion Statement
+*UIConstraints: *InputSlot Tray3 *PageRegion Statement
+
+*UIConstraints: *PageRegion Postcard *InputSlot Tray1
+*UIConstraints: *PageRegion Postcard *InputSlot Tray2
+*UIConstraints: *PageRegion Postcard *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Postcard
+*UIConstraints: *InputSlot Tray2 *PageRegion Postcard
+*UIConstraints: *InputSlot Tray3 *PageRegion Postcard
+
+*UIConstraints: *PageRegion Com10 *InputSlot Tray1
+*UIConstraints: *PageRegion Com10 *InputSlot Tray2
+*UIConstraints: *PageRegion Com10 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Com10
+*UIConstraints: *InputSlot Tray2 *PageRegion Com10
+*UIConstraints: *InputSlot Tray3 *PageRegion Com10
+
+*UIConstraints: *PageRegion DL *InputSlot Tray1
+*UIConstraints: *PageRegion DL *InputSlot Tray2
+*UIConstraints: *PageRegion DL *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion DL
+*UIConstraints: *InputSlot Tray2 *PageRegion DL
+*UIConstraints: *InputSlot Tray3 *PageRegion DL
+
+*UIConstraints: *PageRegion C5 *InputSlot Tray1
+*UIConstraints: *PageRegion C5 *InputSlot Tray2
+*UIConstraints: *PageRegion C5 *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion C5
+*UIConstraints: *InputSlot Tray2 *PageRegion C5
+*UIConstraints: *InputSlot Tray3 *PageRegion C5
+
+*UIConstraints: *PageRegion Monarch *InputSlot Tray1
+*UIConstraints: *PageRegion Monarch *InputSlot Tray2
+*UIConstraints: *PageRegion Monarch *InputSlot Tray3
+
+*UIConstraints: *InputSlot Tray1 *PageRegion Monarch
+*UIConstraints: *InputSlot Tray2 *PageRegion Monarch
+*UIConstraints: *InputSlot Tray3 *PageRegion Monarch
+
+*% General Information and Defaults ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: hplj
+*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hplj: "<1B 7F>0"
+*FreeVM: "430000"
+*VMOption 8Meg/8 MB RAM: "430000"
+*VMOption 12Meg/12 MB RAM: "1020000"
+*VMOption 16Meg/16 MB RAM: "1457792"
+*VMOption 20Meg/20 MB RAM: "5457792"
+*VMOption 24Meg/24 MB RAM: "9457792"
+*VMOption 28Meg/28 MB RAM: "13457792"
+*VMOption 32Meg/32 MB RAM: "17457792"
+*ColorDevice: False
+*FaxSupport: Base
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Throughput: "20"
+*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
+
+*OpenUI *Resolution: PickOne
+*OrderDependency: 10 AnySetup *Resolution
+*DefaultResolution: 400dpi
+*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
+*Resolution 400dpi: "1 dict dup /HWResolution [400 400] put setpagedevice"
+*Resolution 600dpi: "1 dict dup /HWResolution [600 600] put setpagedevice"
+*Resolution 800dpi: "1 dict dup /HWResolution [800 800] put setpagedevice"
+
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ aload pop exch
+ ( ) cvs print
+ pop
+ (dpi) = flush
+ restore
+"
+*End
+*CloseUI: *Resolution
+
+*% 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 ===================
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Unknown
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Letter.Transverse/US Letter Transverse: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Tabloid/Ledger: "
+ 2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A3: "
+ 2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4.Transverse/A4 Transverse: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 2 dict dup /PageSize [420 595] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B4: "
+ 2 dict dup /PageSize [729 1032] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Postcard: "
+ 2 dict dup /PageSize [284 419] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Invoice/Statement: "
+ 2 dict dup /PageSize [396 612] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Folio: "
+ 2 dict dup /PageSize [595 936] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Comm10/Comm #10 Envelope: "
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize DL/DL Envelope: "
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize C5/C5 Envelope: "
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice "
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 16 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [792 1224] (Tabloid) put
+ dup [842 1191] (A3) put
+ dup [595 842] (A4) put
+ dup [420 595] (A5) put
+ dup [729 1032] (B4) put
+ dup [516 729] (B5) put
+ dup [284 419] (Postcard) put
+ dup [396 612] (Invoice) put
+ dup [595 936] (Folio) put
+ dup [522 756] (Executive) put
+ dup [297 684] (Comm10) put
+ dup [279 540] (Monarch) put
+ dup [312 624] (DL) put
+ dup [459 649] (C5) 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: Unknown
+*PageRegion Letter/US Letter: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 792] put setpagedevice} {pop} ifelse
+ <</PageSize [612 792]>> setpagedevice "
+*End
+*PageRegion Letter.Transverse/US Letter Transverse: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 792] put setpagedevice} {pop} ifelse
+ <</PageSize [612 792]>> setpagedevice "
+*End
+*PageRegion Legal/US Legal: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 1008] put setpagedevice} {pop} ifelse
+ <</PageSize [612 1008]>> setpagedevice "
+*End
+*PageRegion Tabloid/Ledger: "
+2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A3: "
+2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 842] put setpagedevice} {pop} ifelse
+ <</PageSize [595 842]>> setpagedevice "
+*End
+*PageRegion A4.Transverse/A4 Transverse: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 842] put setpagedevice} {pop} ifelse
+ <</PageSize [595 842]>> setpagedevice "
+*End
+*PageRegion A5: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [420 595] put setpagedevice} {pop} ifelse
+ <</PageSize [420 595]>> setpagedevice "
+*End
+*PageRegion B4: "
+2 dict dup /PageSize [729 1032] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion B5: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [516 729] put setpagedevice} {pop} ifelse
+ <</PageSize [516 729]>> setpagedevice "
+*End
+*PageRegion Postcard: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [284 419] put setpagedevice} {pop} ifelse
+ <</PageSize [284 419]>> setpagedevice "
+*End
+*PageRegion Invoice/Statement: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [396 612] put setpagedevice} {pop} ifelse
+ <</PageSize [396 612]>> setpagedevice "
+*End
+*PageRegion Folio: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 936] put setpagedevice} {pop} ifelse
+ <</PageSize [595 936]>> setpagedevice "
+*End
+*PageRegion Executive: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [522 756] put setpagedevice} {pop} ifelse
+ <</PageSize [522 756]>> setpagedevice "
+*End
+*PageRegion Comm10/Comm #10 Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [297 684] put setpagedevice} {pop} ifelse
+ <</PageSize [297 684]>> setpagedevice "
+*End
+*PageRegion Monarch/Monarch Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [279 540] put setpagedevice} {pop} ifelse
+ <</PageSize [279 540]>> setpagedevice "
+*End
+*PageRegion DL/DL Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [312 624] put setpagedevice} {pop} ifelse
+ <</PageSize [312 624]>> setpagedevice "
+*End
+*PageRegion C5/C5 Envelope: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [459 649] put setpagedevice} {pop} ifelse
+ <</PageSize [459 649]>> setpagedevice "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 792] put setpagedevice} {pop} ifelse
+ <</PageSize [612 792]>> setpagedevice "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [612 1008] put setpagedevice} {pop} ifelse
+ <</PageSize [612 1008]>> setpagedevice "
+*End
+*PageRegion A4Small/A4 Small: "
+currentpagedevice /InputAttributes get 3 get dup null ne {dup /PageSize [595 842] put setpagedevice} {pop} ifelse
+ <</PageSize [595 842]>> setpagedevice "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Unknown
+*ImageableArea Letter/US Letter: "16 14.4 595.4 778 "
+*ImageableArea Letter.Transverse/US Letter Transverse: "16 14.4 595.4 778 "
+*ImageableArea Legal/US Legal: "16 9.81 596.16 995 "
+*ImageableArea Tabloid/Ledger: "16 12 780 1208 "
+*ImageableArea A3: "16 12 825.84 1178 "
+*ImageableArea A4: "16 16 578.88 825.17 "
+*ImageableArea A4.Transverse/A4 Transverse: "16 14.4 578.88 825.17 "
+*ImageableArea A5: "14 14.4 407.25 577 "
+*ImageableArea B4: "16 10.2 717.12 1019.25 "
+*ImageableArea B5: "11 15 503.1 716 "
+*ImageableArea Postcard: "14.4 9.81 273.6 407.25 "
+*ImageableArea Invoice/Statement: "21 16 373 595 "
+*ImageableArea Folio: "21 10.2 578.88 922 "
+*ImageableArea Executive: "16 10.2 509.76 743.13 "
+*ImageableArea Comm10/Comm #10 Envelope: "16 12 279 671 "
+*ImageableArea Monarch/Monarch Envelope: "16 12 265.2 525 "
+*ImageableArea DL/DL Envelope: "16 14 295.64 605 "
+*ImageableArea C5/C5 Envelope: "19 14 448 631 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Unknown
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Letter.Transverse/US Letter Transverse: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension Tabloid/Ledger: "792 1224"
+*PaperDimension A3: "842 1191"
+*PaperDimension A4: "595 842"
+*PaperDimension A4.Transverse/A4 Transverse: "595 842"
+*PaperDimension A5: "420 595"
+*PaperDimension B4: "729 1032"
+*PaperDimension B5: "516 729 "
+*PaperDimension Postcard: "284 419"
+*PaperDimension Invoice/Statement: "396 612"
+*PaperDimension Folio: "595 936"
+*PaperDimension Executive: "522 756"
+*PaperDimension Comm10/Comm #10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension DL/DL Envelope: "312 624"
+*PaperDimension C5/C5 Envelope: "459 649"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+
+*RequiresPageRegion MultiMediaFeeder: True
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "<</ManualFeed true>> setpagedevice "
+*ManualFeed False: "<</ManualFeed false>> setpagedevice "
+*?ManualFeed: "
+ save
+ currentpagedevice /ManualFeed get
+ {(True)}{(False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Tray1
+*InputSlot Tray1/Upper tray: "
+ currentpagedevice /InputAttributes get
+ 0 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [0 1 2 3] put
+ put setpagedevice
+ } ifelse "
+*End
+*InputSlot Tray2/Middle tray: "
+ currentpagedevice /InputAttributes get
+ 1 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [1 0 2 3] put
+ put setpagedevice
+ } ifelse "
+*End
+*InputSlot Tray3/Lower tray: "
+ currentpagedevice /InputAttributes get
+ 2 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [2 0 1 3] put
+ put setpagedevice
+ } ifelse "
+*End
+*InputSlot MultiMediaFeeder/Multimedia Power Feeder: "
+ currentpagedevice /InputAttributes get
+ 3 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [3 0 1 2] put
+ put setpagedevice
+ } ifelse "
+*End
+*?InputSlot: "
+save
+ 4 dict
+ dup /0 (Tray1) put
+ dup /1 (Tray2) put
+ dup /2 (Tray3) put
+ dup /3 (MultiMediaFeeder) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: Upper
+*DefaultOutputOrder: Normal
+
+*PageStackOrder Front: Reverse
+*PageStackOrder Upper: Normal
+
+*OpenUI *TraySwitch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003)" Standard ROM
+*Font Bookman-Light: Standard "(001.003)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003)" Standard ROM
+*Font Courier: Standard "(002.004)" Standard ROM
+*Font Courier-Bold: Standard "(002.004)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.004)" Standard ROM
+*Font Courier-Oblique: Standard "(002.004)" Standard ROM
+*Font Helvetica: Standard "(001.006)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.007)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.008)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006)" Standard ROM
+*Font Palatino-Bold: Standard "(001.005)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005)" Standard ROM
+*Font Palatino-Italic: Standard "(001.005)" Standard ROM
+*Font Palatino-Roman: Standard "(001.005)" Standard ROM
+*Font Symbol: Special "(001.007)" Special ROM
+*Font Times-Bold: Standard "(001.007)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.009)" Standard ROM
+*Font Times-Italic: Standard "(001.007)" Standard ROM
+*Font Times-Roman: Standard "(001.007)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.006)" Standard ROM
+*Font ZapfDingbats: Special "(001.004)" 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: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "printing"
+*Status: "warming up"
+*Status: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner is low"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: Engine is off line"
+*Status: "PrinterError: Engine is not responding"
+*Status: "PrinterError: Unknown problem occurred"
+*Status: "PrinterError: Manual feed page not requested"
+*Status: "PrinterError: waiting for manual feed"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "Fax"
+*Source: "LocalTalk"
+*Source: "EtherTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner is low"
+*PrinterError: "paper jam"
+*PrinterError: "out of paper"
+*PrinterError: "service call"
+*PrinterError: "Engine is off line"
+*PrinterError: "Engine is not responding"
+*PrinterError: "Unknown problem occurred"
+*PrinterError: "Manual feed page not requested"
+*PrinterError: "waiting for manual feed"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.60lpi.400dpi/60 lpi / 400 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"
+
+*% For 71 lpi / 400 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.400dpi/71 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.400dpi/71 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.400dpi/71 lpi / 400 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.400dpi/71 lpi / 400 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.400dpi/71 lpi / 400 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.400dpi/71 lpi / 400 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.400dpi/71 lpi / 400 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.400dpi/71 lpi / 400 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.400dpi/71 lpi / 400 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.400dpi/71 lpi / 400 dpi: "66.6667"
+
+*% For 47 lpi / 400 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.47lpi.400dpi/47 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.47lpi.400dpi/47 lpi / 400 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.47lpi.400dpi/47 lpi / 400 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.47lpi.400dpi/47 lpi / 400 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.47lpi.400dpi/47 lpi / 400 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.47lpi.400dpi/47 lpi / 400 dpi: "47.1405"
+*ColorSepScreenFreq CustomColor.47lpi.400dpi/47 lpi / 400 dpi: "47.1405"
+*ColorSepScreenFreq ProcessCyan.47lpi.400dpi/47 lpi / 400 dpi: "42.1637"
+*ColorSepScreenFreq ProcessMagenta.47lpi.400dpi/47 lpi / 400 dpi: "42.1637"
+*ColorSepScreenFreq ProcessYellow.47lpi.400dpi/47 lpi / 400 dpi: "44.4444"
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% For 85 lpi / 800 dpi =====================
+
+*ColorSepScreenAngle ProcessBlack.85lpi.800dpi/85 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.85lpi.800dpi/85 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.85lpi.800dpi/85 lpi / 800 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.85lpi.800dpi/85 lpi / 800 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.85lpi.800dpi/85 lpi / 800 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.85lpi.800dpi/85 lpi / 800 dpi: "84.8528"
+*ColorSepScreenFreq CustomColor.85lpi.800dpi/85 lpi / 800 dpi: "84.8528"
+*ColorSepScreenFreq ProcessCyan.85lpi.800dpi/85 lpi / 800 dpi: "94.8683"
+*ColorSepScreenFreq ProcessMagenta.85lpi.800dpi/85 lpi / 800 dpi: "94.8683"
+*ColorSepScreenFreq ProcessYellow.85lpi.800dpi/85 lpi / 800 dpi: "30.0"
+
+*ColorSepScreenProc ProcessYellow.85lpi.800dpi/85 lpi / 800 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 71 lpi / 800 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.800dpi/71 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.800dpi/71 lpi / 800 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.800dpi/71 lpi / 800 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.800dpi/71 lpi / 800 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.800dpi/71 lpi / 800 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.800dpi/71 lpi / 800 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.800dpi/71 lpi / 800 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.800dpi/71 lpi / 800 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.800dpi/71 lpi / 800 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.800dpi/71 lpi / 800 dpi: "66.6667"
+
+
+
+*% Produced by "BuildPPD4.0L2.ps" version 4.0 edit 3
+*% Last Edit Date: Jan 3 1995
+*% The byte count of this file should be exactly 033368 or 034253
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter Pro 810f
diff --git a/psprint_config/configuration/ppds/APLWBGR1.PS b/psprint_config/configuration/ppds/APLWBGR1.PS
new file mode 100644
index 000000000000..ce4a20d5517f
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWBGR1.PS
@@ -0,0 +1,1081 @@
+*PPD-Adobe: "4.3"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.3"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWBGR1.PPD"
+*Manufacturer: "Apple"
+*Product: "(LaserWriter 8500)"
+*PSVersion: "(3010.103) 1"
+*ModelName: "Apple LaserWriter 8500"
+*ShortNickName: "Apple LaserWriter 8500"
+*NickName: "Apple LaserWriter 8500 v3010.103"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 16Meg
+*InstalledMemory 16Meg/Standard 16MB: ""
+*InstalledMemory 20Meg/20MB: ""
+*InstalledMemory 24Meg/24MB: ""
+*InstalledMemory 32Meg/32MB: ""
+*InstalledMemory 48Meg/48MB: ""
+*?InstalledMemory: "
+ save
+ currentsystemparams /RamSize get
+ 1048576 div cvi 6 string cvs dup length dup 3 add string dup 0 4 index
+ putinterval dup 2 index (Meg) putinterval exch pop exch pop = flush
+ restore
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *APOptionalDuplexer/Duplex Printing Unit: Boolean
+*DefaultAPOptionalDuplexer: False
+*APOptionalDuplexer True/Installed: ""
+*APOptionalDuplexer False/Not Installed: ""
+*?APOptionalDuplexer: "
+ save
+ /DiagnosticProcs /ProcSet {findresource}stopped
+ {pop pop false}
+ {
+ begin
+ {duplex-unit-present}stopped {false}if
+ end
+ }ifelse
+ {(True)}{(False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *APOptionalDuplexer
+
+*OpenUI *APOptionalCassette1/Cassette (Optional 1): PickOne
+*OrderDependency: 10.0 AnySetup *APOptionalCassette1
+*DefaultAPOptionalCassette1: False
+*APOptionalCassette1 True/Installed: ""
+*APOptionalCassette1 False/Not Installed: ""
+*APOptionalCassette1 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1 3] put put setpagedevice"
+*End
+*?APOptionalCassette1: "
+ save
+ currentpagedevice /InputAttributes get
+ dup 2 known
+ {dup 2 get null ne {
+ /Priority 2 copy known {
+ get 0 get 2 eq {(Preferred)}{(True)}ifelse
+ } {
+ pop pop (True)
+ } ifelse
+ }{
+ pop (False)
+ }ifelse}
+ {pop (False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *APOptionalCassette1
+
+*OpenUI *APOptionalCassette2/Cassette (Optional 2): PickOne
+*OrderDependency: 10.0 AnySetup *APOptionalCassette2
+*DefaultAPOptionalCassette2: False
+*APOptionalCassette2 True/Installed: ""
+*APOptionalCassette2 False/Not Installed: ""
+*APOptionalCassette2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [3 0 1 2] put put setpagedevice"
+*End
+*?APOptionalCassette2: "
+ save
+ currentpagedevice /InputAttributes get
+ dup 3 known
+ {dup 3 get null ne {
+ /Priority 2 copy known {
+ get 0 get 3 eq {(Preferred)}{(True)}ifelse
+ } {
+ pop pop (True)
+ } ifelse
+ }{
+ pop (False)
+ }ifelse}
+ {pop (False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *APOptionalCassette2
+
+*CloseGroup: InstallableOptions
+
+*% ==== uninstalled options =======
+*UIConstraints: *APOptionalCassette1 False *InputSlot OptionalCassette1
+*UIConstraints: *APOptionalCassette2 False *InputSlot OptionalCassette2
+*UIConstraints: *InputSlot OptionalCassette1 *APOptionalCassette1 False
+*UIConstraints: *InputSlot OptionalCassette2 *APOptionalCassette2 False
+*UIConstraints: *APOptionalDuplexer False *Duplex DuplexTumble
+*UIConstraints: *APOptionalDuplexer False *Duplex DuplexNoTumble
+*UIConstraints: *Duplex DuplexTumble *APOptionalDuplexer False
+*UIConstraints: *Duplex DuplexNoTumble *APOptionalDuplexer False
+
+*% ==== paper size/tray combos =======
+*UIConstraints: *PageSize Enormous *InputSlot StandardCassette
+*UIConstraints: *PageSize Enormous *InputSlot OptionalCassette1
+*UIConstraints: *PageSize Enormous *InputSlot OptionalCassette2
+*UIConstraints: *PageRegion Enormous *InputSlot StandardCassette
+*UIConstraints: *PageRegion Enormous *InputSlot OptionalCassette1
+*UIConstraints: *PageRegion Enormous *InputSlot OptionalCassette2
+*UIConstraints: *InputSlot StandardCassette *PageSize Enormous
+*UIConstraints: *InputSlot StandardCassette *PageRegion Enormous
+*UIConstraints: *InputSlot OptionalCassette1 *PageSize Enormous
+*UIConstraints: *InputSlot OptionalCassette1 *PageRegion Enormous
+*UIConstraints: *InputSlot OptionalCassette2 *PageSize Enormous
+*UIConstraints: *InputSlot OptionalCassette2 *PageRegion Enormous
+
+*% ==== only one preferred tray =======
+*UIConstraints: *APOptionalCassette1 Preferred *APOptionalCassette2 Preferred
+*UIConstraints: *APOptionalCassette2 Preferred *APOptionalCassette1 Preferred
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "3"
+*Protocols: TBCP
+*Emulators: LaserJetIII
+*StartEmulator_LaserJetIII: "currentfile /LaserJetIII statusdict /emulate get exec "
+*StopEmulator_LaserJetIII: "<1B>E"
+*TTRasterizer: Type42
+*?TTRasterizer: "
+ save
+ 42/FontType resourcestatus
+ {pop pop (Type42)}{(None)}ifelse = flush
+ restore
+"
+*End
+
+*FreeVM: "2337744"
+*VMOption 16Meg: "2337744"
+*VMOption 20Meg: "2141136"
+*VMOption 24Meg: "2247632"
+*VMOption 32Meg: "5893072"
+*VMOption 48Meg: "13863888"
+
+*FCacheSize 16Meg: 1677721
+*FCacheSize 20Meg: 2097152
+*FCacheSize 24Meg: 2516582
+*FCacheSize 32Meg: 3355443
+*FCacheSize 48Meg: 5033164
+
+*LandscapeOrientation: Minus90
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+restore"
+*End
+*Throughput: "20"
+*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
+
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get cvi
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*PrintPSErrors: False
+
+*% Halftone Information ===============
+*DefaultHalftoneType: 1
+*ScreenFreq: "106.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 }"
+
+*OpenUI *Duplex/Duplex: PickOne
+*OrderDependency: 20.0 AnySetup *Duplex
+*DefaultDuplex: None
+*Duplex None/1-Sided: "1 dict dup /Duplex false put setpagedevice"
+*Duplex DuplexNoTumble/2-Sided, Long-Edge Binding (No Tumble): "
+ 2 dict dup /Duplex true put dup /Tumble false put setpagedevice
+"
+*End
+*Duplex DuplexTumble/2-Sided, Short-Edge Binding (Tumble): "
+ 2 dict dup /Duplex true put dup /Tumble true put setpagedevice
+"
+*End
+*?Duplex: "
+ save
+ currentpagedevice /Duplex get
+ {currentpagedevice /Tumble get {(DuplexTumble)}{(DuplexNoTumble)}ifelse}
+ {(None)}ifelse
+ = flush
+ restore
+"
+*End
+*CloseUI: *Duplex
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): PickOne
+*OrderDependency: 20.0 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "1 dict dup /PreRenderingEnhance true put setpagedevice"
+*BitsPerPixel None/Off: "1 dict dup /PreRenderingEnhance false put setpagedevice"
+*?BitsPerPixel: "
+ save
+ currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)}ifelse = flush
+ restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 20.0 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "1 dict dup /PostRenderingEnhance true put setpagedevice"
+*Smoothing False/Off: "1 dict dup /PostRenderingEnhance false put setpagedevice"
+*?Smoothing: "
+ save
+ currentpagedevice /PostRenderingEnhance get
+ {(True)}{(False)}ifelse = flush
+ restore"
+*End
+*CloseUI: *Smoothing
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 20.0 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Tabloid: "
+ 2 dict dup /PageSize [792 1224] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A3: "
+ 2 dict dup /PageSize [842 1191] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 2 dict dup /PageSize [420 595] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B4: "
+ 2 dict dup /PageSize [729 1032] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Executive: "
+ 2 dict dup /PageSize [522 756] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Statement: "
+ 2 dict dup /PageSize [396 612] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize ExtraBig/Large Format 13" x 18": "
+ 2 dict dup /PageSize [936 1296] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize MajorBig/Large Format 13" x 18.50": "
+ 2 dict dup /PageSize [936 1332] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Enormous/Large Format 13" x 20": "
+ 2 dict dup /PageSize [936 1440] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Env10/Comm10 Envelope: "
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize EnvMonarch/Monarch Envelope: "
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize EnvC5/C5 Envelope: "
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize EnvDL/DL Envelope: "
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Postcard: "
+ 2 dict dup /PageSize [284 419] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 18 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [792 1224] (Tabloid) put
+ dup [842 1191] (A3) put
+ dup [595 842] (A4) put
+ dup [420 595] (A5) put
+ dup [729 1032] (B4) put
+ dup [516 729] (B5) put
+ dup [522 756] (Executive) put
+ dup [396 612] (Statement) put
+ dup [936 1296] (ExtraBig) put
+ dup [936 1332] (MajorBig) put
+ dup [936 1440] (Enormous) put
+ dup [297 684] (Env10) put
+ dup [279 540] (EnvMonarch) put
+ dup [459 649] (EnvC5) put
+ dup [312 624] (EnvDL) put
+ dup [284 419] (Postcard) 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
+ currentpagedevice /ImagingBBox get null ne {
+ % Form LetterSmall, LegalSmall, or A4Small
+ dup length dup 5 add string dup dup 0 5 index putinterval
+ 3 -1 roll (Small) putinterval exch pop
+ }if
+ = flush pop pop
+ restore
+"
+*End
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 20.0 AnySetup *PageRegion
+*DefaultPageRegion: Letter
+*PageRegion Letter/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put
+ setpagedevice"
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put
+ setpagedevice"
+*End
+*PageRegion Tabloid: "
+ 3 dict dup /PageSize [792 1224] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [792 1224] put put put
+ setpagedevice"
+*End
+*PageRegion A3: "
+ 3 dict dup /PageSize [842 1191] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [842 1191] put put put
+ setpagedevice"
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put
+ setpagedevice"
+*End
+*PageRegion A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put put put
+ setpagedevice"
+*End
+*PageRegion B4: "
+ 3 dict dup /PageSize [729 1032] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [729 1032] put put put
+ setpagedevice"
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put put put
+ setpagedevice"
+*End
+*PageRegion Executive: "
+ 3 dict dup /PageSize [522 756] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [522 756] put put put
+ setpagedevice"
+*End
+*PageRegion Statement: "
+ 3 dict dup /PageSize [396 612] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [396 612] put put put
+ setpagedevice"
+*End
+*PageRegion ExtraBig/Large Format 13" x 18": "
+ 3 dict dup /PageSize [936 1296] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [936 1296] put put put
+ setpagedevice"
+*End
+*PageRegion MajorBig/Large Format 13" x 18.50": "
+ 3 dict dup /PageSize [936 1332] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [936 1332] put put put
+ setpagedevice"
+*End
+*PageRegion Enormous/Large Format 13" x 20": "
+ 3 dict dup /PageSize [936 1440] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [936 1440] put put put
+ setpagedevice"
+*End
+*PageRegion Env10/Comm10 Envelope: "
+ 3 dict dup /PageSize [297 684] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [297 684] put put put
+ setpagedevice"
+*End
+*PageRegion EnvMonarch/Monarch Envelope: "
+ 3 dict dup /PageSize [279 540] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [279 540] put put put
+ setpagedevice"
+*End
+*PageRegion EnvC5/C5 Envelope: "
+ 3 dict dup /PageSize [459 649] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [459 649] put put put
+ setpagedevice"
+*End
+*PageRegion EnvDL/DL Envelope: "
+ 3 dict dup /PageSize [312 624] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [312 624] put put put
+ setpagedevice"
+*End
+*PageRegion Postcard: "
+ 3 dict dup /PageSize [284 419] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [284 419] put put put
+ setpagedevice"
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put
+ setpagedevice"
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put
+ setpagedevice"
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put
+ setpagedevice"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "9.9001 11.2801 600.78 779.28 "
+*ImageableArea Legal/US Legal: "11.28 13.62 602.64 995.46 "
+*ImageableArea Tabloid: "13.4401 15.8401 777.6 1209.24 "
+*ImageableArea A3: "14.4 16.32 828.48 1174.68 "
+*ImageableArea A4: "10.62 12.24 583.5 830.16 "
+*ImageableArea A5: "11.7601 9.6001 407.4 585.6 "
+*ImageableArea B4: "13.56 15.9001 716.28 1016.94 "
+*ImageableArea B5: "11.28 11.28 503.88 717.84 "
+*ImageableArea Executive: "11.3401 11.28 509.82 744.72 "
+*ImageableArea Statement: "10.0801 10.68 383.88 602.04 "
+*ImageableArea ExtraBig/Large Format 13" x 18": "15.84 14.8801 918.24 1277.88 "
+*ImageableArea MajorBig/Large Format 13" x 18.50": "15.84 17.0401 918.24 1316.04 "
+*ImageableArea Enormous/Large Format 13" x 20": "15.84 17.0401 918.24 1424.04 "
+*ImageableArea Env10/Comm10 Envelope: "11.28 9.6001 287.76 667.56 "
+*ImageableArea EnvMonarch/Monarch Envelope: "10.5601 13.4401 267.84 526.44 "
+*ImageableArea EnvC5/C5 Envelope: "6.4801 9.36 451.92 638.52 "
+*ImageableArea EnvDL/DL Envelope: "11.7601 13.4401 299.76 612.84 "
+*ImageableArea Postcard: "11.2801 12.18 272.4 407.46 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*?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
+ (\n) print flush
+restore
+"
+*End
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension Tabloid: "792 1224"
+*PaperDimension A3: "842 1191"
+*PaperDimension A4: "595 842"
+*PaperDimension A5: "420 595"
+*PaperDimension B4: "729 1032"
+*PaperDimension B5: "516 729"
+*PaperDimension Executive: "522 756"
+*PaperDimension Statement: "396 612"
+*PaperDimension ExtraBig/Large Format 13" x 18": "936 1296"
+*PaperDimension MajorBig/Large Format 13" x 18.50": "936 1332"
+*PaperDimension Enormous/Large Format 13" x 20": "936 1440"
+*PaperDimension Env10/Comm10 Envelope: "297 684"
+*PaperDimension EnvMonarch/Monarch Envelope: "279 540"
+*PaperDimension EnvC5/C5 Envelope: "459 649"
+*PaperDimension EnvDL/DL Envelope: "312 624"
+*PaperDimension Postcard: "284 419"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension A4Small/A4 Small: "595 842"
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20.0 AnySetup *InputSlot
+*DefaultInputSlot: StandardCassette
+*InputSlot StandardCassette/Cassette (Standard): "
+currentpagedevice /InputAttributes get 0 get
+dup null eq
+{ pop }
+{ dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2 3] put
+ put setpagedevice
+} ifelse"
+*End
+*InputSlot Multipurpose: "
+currentpagedevice /InputAttributes get 1 get
+dup null eq
+{ pop }
+{ dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2 3] put
+ put setpagedevice
+} ifelse"
+*End
+*InputSlot OptionalCassette1/Cassette (Optional 1): "
+currentpagedevice /InputAttributes get 2 get
+dup null eq
+{ pop }
+{ dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1 3] put
+ put setpagedevice
+} ifelse"
+*End
+*InputSlot OptionalCassette2/Cassette (Optional 2): "
+currentpagedevice /InputAttributes get 3 get
+dup null eq
+{ pop }
+{ dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3 0 1 2] put
+ put setpagedevice
+} ifelse"
+*End
+*?InputSlot: "
+save
+ 2 dict
+ dup /0 (StandardCassette) put
+ dup /1 (Multipurpose) put
+ dup /2 (OptionalCassette1) put
+ dup /3 (OptionalCassette2) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 30.0 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 *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 30.0 AnySetup *TraySwitch
+*DefaultTraySwitch: True
+*TraySwitch True/On: "
+ statusdict begin product (LaserWriter 12/640 PS) eq end
+ currentpagedevice /Duplex 2 copy known {get}{pop pop false}ifelse and
+ { currentpagedevice /InputAttributes get
+ /Priority 2 copy known
+ { get [ exch {dup 1 eq {pop}if}bind forall ]
+ 1 dict dup /InputAttributes 1 dict dup /Priority
+ 7 -1 roll put put setpagedevice
+ }{pop pop}ifelse
+ }if
+ 1 dict dup /TraySwitch true put setpagedevice
+"
+*End
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+ save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AlbertusMT-Italic: Standard "(001.000)" Standard ROM
+*Font AlbertusMT-Light: Standard "(001.000)" Standard ROM
+*Font AlbertusMT: Standard "(001.000)" Standard ROM
+*Font AntiqueOlive-Bold: Standard "(501.009)" Standard ROM
+*Font AntiqueOlive-Compact: Standard "(501.008)" Standard ROM
+*Font AntiqueOlive-Italic: Standard "(501.010)" Standard ROM
+*Font AntiqueOlive-Roman: Standard "(501.008)" Standard ROM
+*Font AntiqueOliveCE-Bold: Win1250 "(501.009)" ExtendedRoman ROM
+*Font AntiqueOliveCE-Compact: Win1250 "(501.008)" ExtendedRoman ROM
+*Font AntiqueOliveCE-Italic: Win1250 "(501.010)" ExtendedRoman ROM
+*Font AntiqueOliveCE-Roman: Win1250 "(501.008)" ExtendedRoman ROM
+*Font Apple-Chancery: Standard "(001.001)" Standard ROM
+*Font Apple-ChanceryCE: Win1250 "(001.001)" ExtendedRoman ROM
+*Font Arial-BoldItalicMT: Standard "(501.009)" Standard ROM
+*Font Arial-BoldMT: Standard "(501.009)" Standard ROM
+*Font Arial-ItalicMT: Standard "(501.012)" Standard ROM
+*Font ArialCE-Bold: Win1250 "(501.009)" ExtendedRoman ROM
+*Font ArialCE-BoldItalic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font ArialCE-Italic: Win1250 "(501.012)" ExtendedRoman ROM
+*Font ArialCE: Win1250 "(501.009)" ExtendedRoman ROM
+*Font ArialMT: Standard "(501.009)" Standard ROM
+*Font AvantGarde-Book: Standard "(501.009)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(501.009)" Standard ROM
+*Font AvantGarde-Demi: Standard "(501.010)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(501.010)" Standard ROM
+*Font AvantGardeCE-Book: Win1250 "(501.009)" ExtendedRoman ROM
+*Font AvantGardeCE-BookOblique: Win1250 "(501.009)" ExtendedRoman ROM
+*Font AvantGardeCE-Demi: Win1250 "(501.010)" ExtendedRoman ROM
+*Font AvantGardeCE-DemiOblique: Win1250 "(501.010)" ExtendedRoman ROM
+*Font Bodoni-Bold: Standard "(501.006)" Standard ROM
+*Font Bodoni-BoldItalic: Standard "(501.007)" Standard ROM
+*Font Bodoni-Italic: Standard "(501.007)" Standard ROM
+*Font Bodoni-Poster: Standard "(501.009)" Standard ROM
+*Font Bodoni-PosterCompressed: Standard "(501.007)" Standard ROM
+*Font Bodoni: Standard "(501.008)" Standard ROM
+*Font BodoniCE-Bold: Win1250 "(501.006)" ExtendedRoman ROM
+*Font BodoniCE-BoldItalic: Win1250 "(501.007)" ExtendedRoman ROM
+*Font BodoniCE-Italic: Win1250 "(501.007)" ExtendedRoman ROM
+*Font BodoniCE-Poster: Win1250 "(501.009)" ExtendedRoman ROM
+*Font BodoniCE-PosterCompressed: Win1250 "(501.007)" ExtendedRoman ROM
+*Font BodoniCE: Win1250 "(501.008)" ExtendedRoman ROM
+*Font Bookman-Demi: Standard "(501.007)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(501.008)" Standard ROM
+*Font Bookman-Light: Standard "(501.006)" Standard ROM
+*Font Bookman-LightItalic: Standard "(501.007)" Standard ROM
+*Font BookmanCE-Demi: Win1250 "(501.007)" ExtendedRoman ROM
+*Font BookmanCE-DemiItalic: Win1250 "(501.008)" ExtendedRoman ROM
+*Font BookmanCE-Light: Win1250 "(501.006)" ExtendedRoman ROM
+*Font BookmanCE-LightItalic: Win1250 "(501.007)" ExtendedRoman ROM
+*Font Carta: Special "(001.001)" Standard ROM
+*Font Chicago: Standard "(501.011)" Standard ROM
+*Font ChicagoCE: Win1250 "(501.011)" ExtendedRoman ROM
+*Font Clarendon-Bold: Standard "(501.008)" Standard ROM
+*Font Clarendon-Light: Standard "(501.009)" Standard ROM
+*Font Clarendon: Standard "(501.009)" Standard ROM
+*Font ClarendonCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font ClarendonCE-Light: Win1250 "(501.009)" ExtendedRoman ROM
+*Font ClarendonCE: Win1250 "(501.009)" ExtendedRoman ROM
+*Font CooperBlack-Italic: Standard "(001.003)" Standard ROM
+*Font CooperBlack: Standard "(001.003)" Standard ROM
+*Font Copperplate-ThirtyThreeBC: Standard "(001.002)" Standard ROM
+*Font Copperplate-ThirtyTwoBC: Standard "(001.002)" Standard ROM
+*Font Coronet-Regular: Standard "(001.000)" Standard ROM
+*Font CoronetCE-Regular: Win1250 "(001.000)" ExtendedRoman ROM
+*Font Courier-Bold: Standard "(501.010)" Standard ROM
+*Font Courier-BoldOblique: Standard "(501.010)" Standard ROM
+*Font Courier-Oblique: Standard "(501.010)" Standard ROM
+*Font Courier: Standard "(501.010)" Standard ROM
+*Font CourierCE-Bold: Win1250 "(501.010)" ExtendedRoman ROM
+*Font CourierCE-BoldOblique: Win1250 "(501.010)" ExtendedRoman ROM
+*Font CourierCE-Oblique: Win1250 "(501.010)" ExtendedRoman ROM
+*Font CourierCE: Win1250 "(501.010)" ExtendedRoman ROM
+*Font Eurostile-Bold: Standard "(501.008)" Standard ROM
+*Font Eurostile-BoldExtendedTwo: Standard "(501.008)" Standard ROM
+*Font Eurostile-ExtendedTwo: Standard "(501.010)" Standard ROM
+*Font Eurostile: Standard "(501.008)" Standard ROM
+*Font EurostileCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font EurostileCE-BoldExtendedTwo: Win1250 "(501.008)" ExtendedRoman ROM
+*Font EurostileCE-ExtendedTwo: Win1250 "(501.010)" ExtendedRoman ROM
+*Font EurostileCE: Win1250 "(501.008)" ExtendedRoman ROM
+*Font Geneva: Standard "(501.007)" Standard ROM
+*Font GenevaCE: Win1250 "(501.007)" ExtendedRoman ROM
+*Font GillSans-Bold: Standard "(501.007)" Standard ROM
+*Font GillSans-BoldCondensed: Standard "(501.006)" Standard ROM
+*Font GillSans-BoldItalic: Standard "(501.008)" Standard ROM
+*Font GillSans-Condensed: Standard "(501.007)" Standard ROM
+*Font GillSans-ExtraBold: Standard "(501.008)" Standard ROM
+*Font GillSans-Italic: Standard "(501.008)" Standard ROM
+*Font GillSans-Light: Standard "(501.009)" Standard ROM
+*Font GillSans-LightItalic: Standard "(501.009)" Standard ROM
+*Font GillSans: Standard "(501.009)" Standard ROM
+*Font GillSansCE-Bold: Win1250 "(501.007)" ExtendedRoman ROM
+*Font GillSansCE-BoldCondensed: Win1250 "(501.006)" ExtendedRoman ROM
+*Font GillSansCE-BoldItalic: Win1250 "(501.008)" ExtendedRoman ROM
+*Font GillSansCE-Condensed: Win1250 "(501.007)" ExtendedRoman ROM
+*Font GillSansCE-ExtraBold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font GillSansCE-Italic: Win1250 "(501.008)" ExtendedRoman ROM
+*Font GillSansCE-Light: Win1250 "(501.009)" ExtendedRoman ROM
+*Font GillSansCE-LightItalic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font GillSansCE-Roman: Win1250 "(501.009)" ExtendedRoman ROM
+*Font Goudy-Bold: Standard "(001.002)" Standard ROM
+*Font Goudy-BoldItalic: Standard "(001.002)" Standard ROM
+*Font Goudy-ExtraBold: Standard "(001.001)" Standard ROM
+*Font Goudy-Italic: Standard "(001.002)" Standard ROM
+*Font Goudy: Standard "(001.003)" Standard ROM
+*Font Helvetica-Bold: Standard "(501.010)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(501.010)" Standard ROM
+*Font Helvetica-Condensed-Bold: Standard "(501.009)" Standard ROM
+*Font Helvetica-Condensed-BoldObl: Standard "(501.009)" Standard ROM
+*Font Helvetica-Condensed-Oblique: Standard "(501.010)" Standard ROM
+*Font Helvetica-Condensed: Standard "(501.010)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(501.010)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(501.010)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(501.008)" Standard ROM
+*Font Helvetica-Narrow: Standard "(501.008)" Standard ROM
+*Font Helvetica-Oblique: Standard "(501.008)" Standard ROM
+*Font Helvetica: Standard "(501.008)" Standard ROM
+*Font HelveticaCE-Bold: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HelveticaCE-BoldOblique: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HelveticaCE-Cond: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HelveticaCE-CondBold: Win1250 "(501.009)" ExtendedRoman ROM
+*Font HelveticaCE-CondBoldObl: Win1250 "(501.009)" ExtendedRoman ROM
+*Font HelveticaCE-CondObl: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HelveticaCE-Narrow: Win1250 "(501.008)" ExtendedRoman ROM
+*Font HelveticaCE-NarrowBold: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HelveticaCE-NarrowBoldOblique: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HelveticaCE-NarrowOblique: Win1250 "(501.008)" ExtendedRoman ROM
+*Font HelveticaCE-Oblique: Win1250 "(501.008)" ExtendedRoman ROM
+*Font HelveticaCE: Win1250 "(501.008)" ExtendedRoman ROM
+*Font HoeflerText-Black: Standard "(501.008)" Standard ROM
+*Font HoeflerText-BlackItalic: Standard "(501.009)" Standard ROM
+*Font HoeflerText-Italic: Standard "(501.010)" Standard ROM
+*Font HoeflerText-Ornaments: Special "(001.001)" Special ROM
+*Font HoeflerText-Regular: Standard "(501.009)" Standard ROM
+*Font HoeflerTextCE-Black: Win1250 "(501.008)" ExtendedRoman ROM
+*Font HoeflerTextCE-BlackItalic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font HoeflerTextCE-Italic: Win1250 "(501.010)" ExtendedRoman ROM
+*Font HoeflerTextCE-Regular: Win1250 "(501.009)" ExtendedRoman ROM
+*Font JoannaMT-Bold: Standard "(501.008)" Standard ROM
+*Font JoannaMT-BoldItalic: Standard "(501.008)" Standard ROM
+*Font JoannaMT-Italic: Standard "(501.008)" Standard ROM
+*Font JoannaMT: Standard "(501.009)" Standard ROM
+*Font JoannaMTCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font JoannaMTCE-BoldItalic: Win1250 "(501.008)" ExtendedRoman ROM
+*Font JoannaMTCE-Italic: Win1250 "(501.008)" ExtendedRoman ROM
+*Font JoannaMTCE: Win1250 "(501.009)" ExtendedRoman ROM
+*Font LetterGothic-Bold: Standard "(501.010)" Standard ROM
+*Font LetterGothic-BoldSlanted: Standard "(501.010)" Standard ROM
+*Font LetterGothic-Slanted: Standard "(501.010)" Standard ROM
+*Font LetterGothic: Standard "(501.009)" Standard ROM
+*Font LetterGothicCE-Bold: Win1250 "(501.010)" ExtendedRoman ROM
+*Font LetterGothicCE-BoldSlanted: Win1250 "(501.010)" ExtendedRoman ROM
+*Font LetterGothicCE-Slanted: Win1250 "(501.010)" ExtendedRoman ROM
+*Font LetterGothicCE: Win1250 "(501.009)" ExtendedRoman ROM
+*Font LubalinGraph-Book: Standard "(501.009)" Standard ROM
+*Font LubalinGraph-BookOblique: Standard "(501.009)" Standard ROM
+*Font LubalinGraph-Demi: Standard "(501.009)" Standard ROM
+*Font LubalinGraph-DemiOblique: Standard "(501.009)" Standard ROM
+*Font LubalinGraphCE-Book: Win1250 "(501.009)" ExtendedRoman ROM
+*Font LubalinGraphCE-BookOblique: Win1250 "(501.009)" ExtendedRoman ROM
+*Font LubalinGraphCE-Demi: Win1250 "(501.009)" ExtendedRoman ROM
+*Font LubalinGraphCE-DemiOblique: Win1250 "(501.009)" ExtendedRoman ROM
+*Font Marigold: Standard "(001.000)" Standard ROM
+*Font MonaLisa-Recut: Standard "(001.000)" Standard ROM
+*Font Monaco: Standard "(501.012)" Standard ROM
+*Font MonacoCE: Win1250 "(501.012)" ExtendedRoman ROM
+*Font NewCenturySchlbk-Bold: Standard "(501.008)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(501.009)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(501.011)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(501.008)" Standard ROM
+*Font NewCenturySchlbkCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font NewCenturySchlbkCE-BoldItalic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font NewCenturySchlbkCE-Italic: Win1250 "(501.011)" ExtendedRoman ROM
+*Font NewCenturySchlbkCE-Roman: Win1250 "(501.008)" ExtendedRoman ROM
+*Font NewYork: Standard "(501.013)" Standard ROM
+*Font NewYorkCE: Win1250 "(501.013)" ExtendedRoman ROM
+*Font Optima-Bold: Standard "(501.008)" Standard ROM
+*Font Optima-BoldItalic: Standard "(501.009)" Standard ROM
+*Font Optima-Italic: Standard "(501.010)" Standard ROM
+*Font Optima: Standard "(501.010)" Standard ROM
+*Font OptimaCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font OptimaCE-BoldItalic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font OptimaCE-Italic: Win1250 "(501.010)" ExtendedRoman ROM
+*Font OptimaCE-Roman: Win1250 "(501.010)" ExtendedRoman ROM
+*Font Oxford: Standard "(001.000)" Standard ROM
+*Font Palatino-Bold: Standard "(501.008)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(501.007)" Standard ROM
+*Font Palatino-Italic: Standard "(501.008)" Standard ROM
+*Font Palatino-Roman: Standard "(501.006)" Standard ROM
+*Font PalatinoCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font PalatinoCE-BoldItalic: Win1250 "(501.007)" ExtendedRoman ROM
+*Font PalatinoCE-Italic: Win1250 "(501.008)" ExtendedRoman ROM
+*Font PalatinoCE-Roman: Win1250 "(501.006)" ExtendedRoman ROM
+*Font StempelGaramond-Bold: Standard "(501.007)" Standard ROM
+*Font StempelGaramond-BoldItalic: Standard "(501.012)" Standard ROM
+*Font StempelGaramond-Italic: Standard "(501.009)" Standard ROM
+*Font StempelGaramond-Roman: Standard "(501.011)" Standard ROM
+*Font StempelGaramondCE-Bold: Win1250 "(501.007)" ExtendedRoman ROM
+*Font StempelGaramondCE-BoldItalic: Win1250 "(501.012)" ExtendedRoman ROM
+*Font StempelGaramondCE-Italic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font StempelGaramondCE-Roman: Win1250 "(501.011)" ExtendedRoman ROM
+*Font Symbol: Special "(001.008)" Standard ROM
+*Font Tekton: Standard "(001.001)" Standard ROM
+*Font Times-Bold: Standard "(501.009)" Standard ROM
+*Font Times-BoldItalic: Standard "(501.009)" Standard ROM
+*Font Times-Italic: Standard "(501.010)" Standard ROM
+*Font Times-Roman: Standard "(501.010)" Standard ROM
+*Font TimesCE-Bold: Win1250 "(501.009)" ExtendedRoman ROM
+*Font TimesCE-BoldItalic: Win1250 "(501.009)" ExtendedRoman ROM
+*Font TimesCE-Italic: Win1250 "(501.010)" ExtendedRoman ROM
+*Font TimesCE-Roman: Win1250 "(501.010)" ExtendedRoman ROM
+*Font TimesNewRomanCE-Bold: Win1250 "(501.009)" ExtendedRoman ROM
+*Font TimesNewRomanCE-BoldItalic: Win1250 "(501.011)" ExtendedRoman ROM
+*Font TimesNewRomanCE-Italic: Win1250 "(501.011)" ExtendedRoman ROM
+*Font TimesNewRomanCE: Win1250 "(501.010)" ExtendedRoman ROM
+*Font TimesNewRomanPS-BoldItalicMT: Standard "(501.011)" Standard ROM
+*Font TimesNewRomanPS-BoldMT: Standard "(501.009)" Standard ROM
+*Font TimesNewRomanPS-ItalicMT: Standard "(501.011)" Standard ROM
+*Font TimesNewRomanPSMT: Standard "(501.010)" Standard ROM
+*Font Univers-Bold: Standard "(501.008)" Standard ROM
+*Font Univers-BoldExt: Standard "(501.010)" Standard ROM
+*Font Univers-BoldExtObl: Standard "(501.010)" Standard ROM
+*Font Univers-BoldOblique: Standard "(501.008)" Standard ROM
+*Font Univers-Condensed: Standard "(501.011)" Standard ROM
+*Font Univers-CondensedBold: Standard "(501.009)" Standard ROM
+*Font Univers-CondensedBoldOblique: Standard "(501.009)" Standard ROM
+*Font Univers-CondensedOblique: Standard "(501.011)" Standard ROM
+*Font Univers-Extended: Standard "(501.009)" Standard ROM
+*Font Univers-ExtendedObl: Standard "(501.009)" Standard ROM
+*Font Univers-Light: Standard "(501.009)" Standard ROM
+*Font Univers-LightOblique: Standard "(501.009)" Standard ROM
+*Font Univers-Oblique: Standard "(501.009)" Standard ROM
+*Font Univers: Standard "(501.009)" Standard ROM
+*Font UniversCE-Bold: Win1250 "(501.008)" ExtendedRoman ROM
+*Font UniversCE-BoldExt: Win1250 "(501.010)" ExtendedRoman ROM
+*Font UniversCE-BoldExtObl: Win1250 "(501.010)" ExtendedRoman ROM
+*Font UniversCE-BoldOblique: Win1250 "(501.008)" ExtendedRoman ROM
+*Font UniversCE-Condensed: Win1250 "(501.011)" ExtendedRoman ROM
+*Font UniversCE-CondensedBold: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-CondensedBoldOblique: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-CondensedOblique: Win1250 "(501.011)" ExtendedRoman ROM
+*Font UniversCE-Extended: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-ExtendedObl: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-Light: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-LightOblique: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-Medium: Win1250 "(501.009)" ExtendedRoman ROM
+*Font UniversCE-Oblique: Win1250 "(501.009)" ExtendedRoman ROM
+*Font Wingdings-Regular: Special "(001.001)" Special ROM
+*Font ZapfChancery-MediumItalic: Standard "(002.000)" Standard ROM
+*Font ZapfChanceryCE-MediumItalic: Win1250 "(002.000)" ExtendedRoman ROM
+*Font ZapfDingbats: Special "(002.000)" Standard 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
+ (*) {(/)print print (\n)print}bind 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: check if engine is connected"
+*Status: "PrinterError: fuser temperature malfunction"
+*Status: "PrinterError: service call - ROS motor"
+*Status: "PrinterError: service call - fan alarm"
+*Status: "PrinterError: service call - main motor"
+*Status: "PrinterError: service call - NVM"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: top cover open"
+*Status: "PrinterError: fuser cover open"
+*Status: "PrinterError: duplex unit rear cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: cassette fail"
+*Status: "PrinterError: Cassette (Standard): no paper tray"
+*Status: "PrinterError: Cassette (Optional 1): no paper tray"
+*Status: "PrinterError: Cassette (Optional 2): no paper tray"
+*Status: "PrinterError: Multipurpose Tray: no cassette"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: Cassette (Standard): out of paper"
+*Status: "PrinterError: Cassette (Optional 1): out of paper"
+*Status: "PrinterError: Cassette (Optional 2): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Output Tray Full"
+*Status: "PrinterError: Illegal size at duplex mode"
+*Status: "PrinterError: Cassette (Standard): Illegal size at duplex mode"
+*Status: "PrinterError: Cassette (Optional 1): Illegal size at duplex mode"
+*Status: "PrinterError: Cassette (Optional 2): Illegal size at duplex mode"
+*Status: "PrinterError: Multipurpose Tray: Illegal size at duplex mode"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: paper registration misfeed"
+*Status: "PrinterError: paper duplex misfeed"
+*Status: "PrinterError: paper early feed jam"
+*Status: "PrinterError: test printing stage"
+*Status: "PrinterError: incorrect paper size setting"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "check if engine is connected"
+*PrinterError: "fuser temperature malfunction"
+*PrinterError: "service call - ROS motor"
+*PrinterError: "service call - fan alarm"
+*PrinterError: "service call - main motor"
+*PrinterError: "service call - NVM"
+*PrinterError: "service call"
+*PrinterError: "top cover open"
+*PrinterError: "fuser cover open"
+*PrinterError: "duplex unit rear cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "cassette fail"
+*PrinterError: "Cassette (Standard): no paper tray"
+*PrinterError: "Cassette (Optional 1): no paper tray"
+*PrinterError: "Cassette (Optional 2): no paper tray"
+*PrinterError: "Multipurpose Tray: no cassette"
+*PrinterError: "out of paper"
+*PrinterError: "Cassette (Standard): out of paper"
+*PrinterError: "Cassette (Optional 1): out of paper"
+*PrinterError: "Cassette (Optional 2): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "Output Tray Full"
+*PrinterError: "Illegal size at duplex mode"
+*PrinterError: "Cassette (Standard): Illegal size at duplex mode"
+*PrinterError: "Cassette (Optional 1): Illegal size at duplex mode"
+*PrinterError: "Cassette (Optional 2): Illegal size at duplex mode"
+*PrinterError: "Multipurpose Tray: Illegal size at duplex mode"
+*PrinterError: "paper jam"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "paper registration misfeed"
+*PrinterError: "paper duplex misfeed"
+*PrinterError: "paper early feed jam"
+*PrinterError: "test printing stage"
+*PrinterError: "incorrect paper size setting"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% Last Edit Date: Oct 17 1997
+*% The byte count of this file should be exactly 043414 or 044495
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter 8500
diff --git a/psprint_config/configuration/ppds/APLWCOB1.PS b/psprint_config/configuration/ppds/APLWCOB1.PS
new file mode 100644
index 000000000000..d6c6daee0c39
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWCOB1.PS
@@ -0,0 +1,565 @@
+*PPD-Adobe: "4.2"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.2"
+*FileVersion: "1.2"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWCOB1.PPD"
+*Product: "(Color LaserWriter 12/600 PS)"
+*PSVersion: "(2014.108) 1"
+*ModelName: "LaserWriter Color 12/600 PS"
+*ShortNickName: "Apple Color LaserWriter 12/600"
+*NickName: "Apple Color LaserWriter 12/600 PS v2014.108"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 12Meg
+*InstalledMemory 12Meg/Standard 12 MB: ""
+*InstalledMemory 13Meg/13 MB Upgrade: ""
+*InstalledMemory 16Meg/16 MB Upgrade: ""
+*InstalledMemory 24Meg/24 MB Upgrade: ""
+*InstalledMemory 25Meg/25 MB Upgrade: ""
+*InstalledMemory 28Meg/28 MB Upgrade: ""
+*InstalledMemory 40Meg/40 MB Upgrade: ""
+*?InstalledMemory: "
+ save
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ = flush
+ restore
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *Option1/Cassette (Optional): PickOne
+*DefaultOption1: False
+*Option1 True/Installed: ""
+*Option1 False/Not Installed: ""
+*Option1 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1] put put setpagedevice"
+*End
+*?Option1: "
+ save
+ (False)
+ currentpagedevice /InputAttributes get
+ dup 2 known { 2 get null ne {pop (True)}if }{pop}ifelse
+ = flush
+ restore
+"
+*End
+*CloseUI: *Option1
+
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 False *InputSlot OptionalCassette
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: TBCP
+*TTRasterizer: Type42
+
+*FreeVM: "1609392"
+*VMOption 12Meg: "1609392"
+*VMOption 13Meg: "2633392"
+*VMOption 16Meg: "3911344"
+*VMOption 24Meg: "5402684"
+*VMOption 25Meg: "7401136"
+*VMOption 28Meg: "5795504"
+*VMOption 40Meg: "13717168"
+*ColorDevice: True
+*DefaultColorSpace: CMYK
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "12"
+*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
+
+*Resolution 600dpi: ""
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+
+*OpenUI *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*OpenUI *MediaType/Paper Type: PickOne
+*OrderDependency: 50 AnySetup *MediaType
+*DefaultMediaType: Plain
+*MediaType Plain/Plain: "
+ 2 dict
+ dup /MediaType (Plain) put
+ dup /InputAttributes mark
+ currentpagedevice /InputAttributes get
+ {
+ dup type /dicttype eq {
+ dup length 1 add dict begin {def} forall
+ /MediaType (Plain) def
+ currentdict end
+ } if
+ } forall
+ counttomark 2 idiv dup dict begin {def} repeat
+ pop currentdict end
+ put
+ setpagedevice
+"
+*End
+*MediaType Transparency/Transparency: "
+ 2 dict
+ dup /MediaType (Transparency) put
+ dup /InputAttributes mark
+ currentpagedevice /InputAttributes get
+ {
+ dup type /dicttype eq {
+ dup length 1 add dict begin {def} forall
+ /MediaType (Transparency) def
+ currentdict end
+ } if
+ } forall
+ counttomark 2 idiv dup dict begin {def} repeat
+ pop currentdict end
+ put
+ setpagedevice
+"
+*End
+*?MediaType: "
+ save
+ currentpagedevice /MediaType get dup null eq
+ { pop (Plain) }
+ {
+ (Transparency) ne {
+ (Plain)
+ }{
+ (Transparency)
+ } ifelse
+ }ifelse
+ = flush
+ restore
+"
+*End
+*CloseUI: *MediaType
+
+*OpenUI *OutputMode/Print Quality Mode: PickOne
+*OrderDependency: 50 AnySetup *OutputMode
+*DefaultOutputMode: Normal
+*OutputMode Normal/Normal (Fastest Print Speed): "
+ 1 dict dup /PostRenderingEnhanceDetails
+ 2 dict dup /Type 19 put dup /OutputMode /Normal put put
+ setpagedevice "
+*End
+*OutputMode Best/Best (Slower Print Speed): "
+ 1 dict dup /PostRenderingEnhanceDetails
+ 2 dict dup /Type 19 put dup /OutputMode /Best put put
+ setpagedevice "
+*End
+*?OutputMode: "
+ save
+ currentpagedevice /PostRenderingEnhanceDetails get
+ /OutputMode get = flush
+ restore "
+*End
+*CloseUI: *OutputMode
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*PrintPSErrors: False
+
+*% Halftone Information ===============
+*ScreenFreq: "200.0"
+*ScreenAngle: "0.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 ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put setpagedevice"
+*End
+
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice "
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put setpagedevice "
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice "
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put put put setpagedevice "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice "
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put setpagedevice "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "14.16 14.1601 597.84 769.32 "
+*ImageableArea Legal/US Legal: "14.16 14.1601 597.84 985.32 "
+*ImageableArea A4: "14.1601 14.2401 582.48 819.32 "
+*ImageableArea B5: "14.16 14.7 501.84 706.38 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: StandardCassette
+*InputSlot StandardCassette/Cassette (Standard): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot OptionalCassette/Cassette (Optional): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (StandardCassette) put
+ dup /1 (Multipurpose) put
+ dup /2 (OptionalCassette) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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
+
+*% 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-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Condensed: Standard "(001.001)" Standard ROM
+*Font Helvetica-Condensed-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-Condensed-Oblique: Standard "(001.001)" Standard ROM
+*Font Helvetica-Condensed-BoldObl: Standard "(001.002)" 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 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: Standard "(001.007S)" Standard 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: Standard "(001.004S)" Standard 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
+ (*) {(/)print print (\n)print}bind 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: door open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (Standard): no paper tray"
+*Status: "PrinterError: Cassette (Standard): out of paper"
+*Status: "PrinterError: Cassette (Optional): no paper tray"
+*Status: "PrinterError: Cassette (Optional): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: incorrect paper size setting"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "PrintServer"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "door open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (Standard): no paper tray"
+*PrinterError: "Cassette (Standard): out of paper"
+*PrinterError: "Cassette (Optional): no paper tray"
+*PrinterError: "Cassette (Optional): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "incorrect paper size setting"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+*% For 200 lpi / 600 dpi =====================
+
+*ColorSepScreenAngle ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle CustomColor.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessCyan.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessMagenta.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessYellow.200lpi.600dpi/200 lpi / 600 dpi: "0"
+
+*ColorSepScreenFreq ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq CustomColor.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessCyan.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessMagenta.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessYellow.200lpi.600dpi/200 lpi / 600 dpi: "200"
+
+*% Produced by "bldppd42.ps" version 4.0 edit 11
+*% Last Edit Date: Nov 16 1995
+*% The byte count of this file should be exactly 018026 or 018591
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple Color LaserWriter 12/600 PS
diff --git a/psprint_config/configuration/ppds/APLWCSB1.PS b/psprint_config/configuration/ppds/APLWCSB1.PS
new file mode 100644
index 000000000000..de62117134e0
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWCSB1.PS
@@ -0,0 +1,580 @@
+*PPD-Adobe: "4.3"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.3"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWCSB1.PPD"
+*Manufacturer: "Apple"
+*Product: "(Color LaserWriter 12/660 PS)"
+*PSVersion: "(2014.108) 2"
+*ModelName: "LaserWriter Color 12/660 PS"
+*ShortNickName: "Apple Color LaserWriter 12/660"
+*NickName: "Apple Color LaserWriter 12/660 PS v2014.108"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 16Meg
+*InstalledMemory 16Meg/Standard 16 MB: ""
+*InstalledMemory 24Meg/24 MB Upgrade: ""
+*InstalledMemory 25Meg/25 MB Upgrade: ""
+*InstalledMemory 28Meg/28 MB Upgrade: ""
+*InstalledMemory 40Meg/40 MB Upgrade: ""
+*?InstalledMemory: "
+ save
+ currentsystemparams /RamSize get
+ 1048576 div cvi 6 string cvs dup length dup 3 add string dup 0 4 index
+ putinterval dup 2 index (Meg) putinterval exch pop exch pop = flush
+ restore
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *APOptionalCassette1/Cassette (Optional): PickOne
+*OrderDependency: 10 AnySetup *APOptionalCassette1
+*DefaultAPOptionalCassette1: False
+*APOptionalCassette1 True/Installed: ""
+*APOptionalCassette1 False/Not Installed: ""
+*APOptionalCassette1 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1] put put setpagedevice"
+*End
+*?APOptionalCassette1: "
+ save
+ currentpagedevice /InputAttributes get
+ dup 2 known
+ {dup 2 get null ne {
+ /Priority 2 copy known {
+ get 0 get 2 eq {(Preferred)}{(True)}ifelse
+ } {
+ pop pop (True)
+ } ifelse
+ }{
+ pop (False)
+ }ifelse}
+ {pop (False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *APOptionalCassette1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *APOptionalCassette1 False *InputSlot OptionalCassette
+*UIConstraints: *InputSlot OptionalCassette *APOptionalCassette1 False
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: TBCP
+*TTRasterizer: Type42
+*?TTRasterizer: "
+ save
+ 42 /FontType resourcestatus
+ {pop pop (Type42)}{(None)}ifelse = flush
+ restore
+"
+*End
+
+*FreeVM: "3911344"
+*VMOption 16Meg: "3911344"
+*VMOption 24Meg: "5402684"
+*VMOption 25Meg: "7401136"
+*VMOption 28Meg: "5795504"
+*VMOption 40Meg: "13717168"
+*ColorDevice: True
+*DefaultColorSpace: CMYK
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "12"
+*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
+
+*Resolution 600dpi: ""
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+
+*OpenUI *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 20 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+ save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+ restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*OpenUI *MediaType/Paper Type: PickOne
+*OrderDependency: 50 AnySetup *MediaType
+*DefaultMediaType: Plain
+*MediaType Plain/Plain: "
+ 2 dict
+ dup /MediaType (Plain) put
+ dup /InputAttributes mark
+ currentpagedevice /InputAttributes get
+ {
+ dup type /dicttype eq {
+ dup length 1 add dict begin {def} forall
+ /MediaType (Plain) def
+ currentdict end
+ } if
+ } forall
+ counttomark 2 idiv dup dict begin {def} repeat
+ pop currentdict end
+ put
+ setpagedevice
+"
+*End
+*MediaType Transparency/Transparency: "
+ 2 dict
+ dup /MediaType (Transparency) put
+ dup /InputAttributes mark
+ currentpagedevice /InputAttributes get
+ {
+ dup type /dicttype eq {
+ dup length 1 add dict begin {def} forall
+ /MediaType (Transparency) def
+ currentdict end
+ } if
+ } forall
+ counttomark 2 idiv dup dict begin {def} repeat
+ pop currentdict end
+ put
+ setpagedevice
+"
+*End
+*?MediaType: "
+ save
+ currentpagedevice /MediaType get dup null eq
+ { pop (Plain) }
+ {
+ (Transparency) ne {
+ (Plain)
+ }{
+ (Transparency)
+ } ifelse
+ }ifelse
+ = flush
+ restore
+"
+*End
+*CloseUI: *MediaType
+
+*OpenUI *OutputMode/Print Quality Mode: PickOne
+*OrderDependency: 20 AnySetup *OutputMode
+*DefaultOutputMode: Normal
+*OutputMode Normal/Normal (Fastest Print Speed): "
+ 1 dict dup /PostRenderingEnhanceDetails
+ 2 dict dup /Type 19 put dup /OutputMode /Normal put put
+ setpagedevice "
+*End
+*OutputMode Best/Best (Slower Print Speed): "
+ 1 dict dup /PostRenderingEnhanceDetails
+ 2 dict dup /Type 19 put dup /OutputMode /Best put put
+ setpagedevice "
+*End
+*?OutputMode: "
+ save
+ currentpagedevice /PostRenderingEnhanceDetails get
+ /OutputMode get = flush
+ restore "
+*End
+*CloseUI: *OutputMode
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*SuggestedManualFeedTimeout: "300"
+*PrintPSErrors: False
+
+*% Halftone Information ===============
+*ContoneOnly: True
+*ScreenFreq: "200.0"
+*ScreenAngle: "0.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 ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 20 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put setpagedevice"
+*End
+
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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
+ currentpagedevice /ImagingBBox get null ne {
+ % Form LetterSmall, LegalSmall, or A4Small
+ dup length dup 5 add string dup dup 0 5 index putinterval
+ 3 -1 roll (Small) putinterval exch pop
+ } if
+ = flush pop pop
+ restore
+"
+*End
+*CloseUI: *PageSize
+
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 20 AnySetup *PageRegion
+*DefaultPageRegion: Letter
+*PageRegion Letter/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice "
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put setpagedevice "
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice "
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put put put setpagedevice "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice "
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put setpagedevice "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "14.16 14.1601 597.84 769.32 "
+*ImageableArea Legal/US Legal: "14.16 14.1601 597.84 985.32 "
+*ImageableArea A4: "14.1601 14.2401 582.48 819.32 "
+*ImageableArea B5: "14.16 14.7 501.84 706.38 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: StandardCassette
+*InputSlot StandardCassette/Cassette (Standard): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot OptionalCassette/Cassette (Optional): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (StandardCassette) put
+ dup /1 (Multipurpose) put
+ dup /2 (OptionalCassette) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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
+
+*% 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-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Condensed: Standard "(001.001)" Standard ROM
+*Font Helvetica-Condensed-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-Condensed-Oblique: Standard "(001.001)" Standard ROM
+*Font Helvetica-Condensed-BoldObl: Standard "(001.002)" 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 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: Standard "(001.007S)" Standard 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: Standard "(001.004S)" Standard 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
+ (*) {(/)print print (\n)print}bind 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: door open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (Standard): no paper tray"
+*Status: "PrinterError: Cassette (Standard): out of paper"
+*Status: "PrinterError: Cassette (Optional): no paper tray"
+*Status: "PrinterError: Cassette (Optional): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: incorrect paper size setting"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "PrintServer"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "door open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (Standard): no paper tray"
+*PrinterError: "Cassette (Standard): out of paper"
+*PrinterError: "Cassette (Optional): no paper tray"
+*PrinterError: "Cassette (Optional): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "incorrect paper size setting"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+*% For 200 lpi / 600 dpi =====================
+
+*ColorSepScreenAngle ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle CustomColor.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessCyan.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessMagenta.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessYellow.200lpi.600dpi/200 lpi / 600 dpi: "0"
+
+*ColorSepScreenFreq ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq CustomColor.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessCyan.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessMagenta.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessYellow.200lpi.600dpi/200 lpi / 600 dpi: "200"
+
+*% Last Edit Date: Sep 10 1996
+*% The byte count of this file should be exactly 018570 or 019150
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple Color LaserWriter 12/660 PS
diff --git a/psprint_config/configuration/ppds/APLWGRF1.PS b/psprint_config/configuration/ppds/APLWGRF1.PS
new file mode 100644
index 000000000000..306ff761770b
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWGRF1.PS
@@ -0,0 +1,747 @@
+*PPD-Adobe: "4.2"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.2"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWGRF1.PPD"
+*Product: "(LaserWriter 16/600 PS Fax)"
+*PSVersion: "(2014.106) 1"
+*ModelName: "Apple LaserWriter 16/600 PS Fax"
+*ShortNickName: "Apple LaserWriter 16/600 PS Fax"
+*NickName: "Apple LaserWriter 16/600 PS Fax v2014.106"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 8Meg
+*InstalledMemory 8Meg/Standard 8 MB RAM: ""
+*InstalledMemory 12Meg/12 MB Upgrade: ""
+*InstalledMemory 16Meg/16 MB Upgrade: ""
+*InstalledMemory 24Meg/24 MB Upgrade: ""
+*InstalledMemory 32Meg/32 MB Upgrade: ""
+*?InstalledMemory: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *Option2/Cassette (500 Sheets): PickOne
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*Option2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1 3] put put
+setpagedevice"
+*End
+*?Option2: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 2 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option2
+
+*OpenUI *Option3/Envelope Feeder: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*?Option3: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 3 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option3
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *InstalledMemory 8Meg *BitsPerPixel 4
+
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Envelope
+
+*UIConstraints: *PageSize A5 *InputSlot Upper
+*UIConstraints: *PageSize A5 *InputSlot Lower
+*UIConstraints: *PageSize Com10 *InputSlot Upper
+*UIConstraints: *PageSize Com10 *InputSlot Lower
+*UIConstraints: *PageSize Monarch *InputSlot Upper
+*UIConstraints: *PageSize Monarch *InputSlot Lower
+*UIConstraints: *PageSize C5 *InputSlot Upper
+*UIConstraints: *PageSize C5 *InputSlot Lower
+*UIConstraints: *PageSize DL *InputSlot Upper
+*UIConstraints: *PageSize DL *InputSlot Lower
+
+*UIConstraints: *PageRegion A5 *InputSlot Upper
+*UIConstraints: *PageRegion A5 *InputSlot Lower
+*UIConstraints: *PageRegion Com10 *InputSlot Upper
+*UIConstraints: *PageRegion Com10 *InputSlot Lower
+*UIConstraints: *PageRegion Monarch *InputSlot Upper
+*UIConstraints: *PageRegion Monarch *InputSlot Lower
+*UIConstraints: *PageRegion C5 *InputSlot Upper
+*UIConstraints: *PageRegion C5 *InputSlot Lower
+*UIConstraints: *PageRegion DL *InputSlot Upper
+*UIConstraints: *PageRegion DL *InputSlot Lower
+
+*UIConstraints: *InputSlot Upper *PageSize A5
+*UIConstraints: *InputSlot Lower *PageSize A5
+*UIConstraints: *InputSlot Upper *PageSize Com10
+*UIConstraints: *InputSlot Lower *PageSize Com10
+*UIConstraints: *InputSlot Upper *PageSize Monarch
+*UIConstraints: *InputSlot Lower *PageSize Monarch
+*UIConstraints: *InputSlot Upper *PageSize C5
+*UIConstraints: *InputSlot Lower *PageSize C5
+*UIConstraints: *InputSlot Upper *PageSize DL
+*UIConstraints: *InputSlot Lower *PageSize DL
+
+*UIConstraints: *InputSlot Upper *PageRegion A5
+*UIConstraints: *InputSlot Lower *PageRegion A5
+*UIConstraints: *InputSlot Upper *PageRegion Com10
+*UIConstraints: *InputSlot Lower *PageRegion Com10
+*UIConstraints: *InputSlot Upper *PageRegion Monarch
+*UIConstraints: *InputSlot Lower *PageRegion Monarch
+*UIConstraints: *InputSlot Upper *PageRegion C5
+*UIConstraints: *InputSlot Lower *PageRegion C5
+*UIConstraints: *InputSlot Upper *PageRegion DL
+*UIConstraints: *InputSlot Lower *PageRegion DL
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: LaserJetIII
+*StartEmulator_LaserJetIII: "currentfile /LaserJetIII statusdict /emulate
+get exec "
+*End
+*StopEmulator_LaserJetIII: "<1B>E"
+*TTRasterizer: Type42
+*FaxSupport: Base
+
+*FreeVM: "1539456"
+*VMOption 8Meg: "1539456"
+*VMOption 12Meg: "1662336"
+*VMOption 16Meg: "5815680"
+*VMOption 24Meg: "14114176"
+*VMOption 32Meg: "22396288"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "16"
+*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
+
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*PrintPSErrors: False
+
+
+*% Halftone Information ===============
+*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 }"
+*End
+*DefaultTransfer: Null
+*Transfer Null: "{ }"
+*Transfer Null.Inverse: "{ 1 exch sub }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict dup /PostRenderingEnhance true put setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict dup /PostRenderingEnhance false put setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhanceDetails get
+ /ActualPostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): PickOne
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict dup /PreRenderingEnhance true put setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict dup /PreRenderingEnhance false put setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put put put
+ setpagedevice "
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983]
+put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[279 540] put put put
+ setpagedevice
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize Com10/Comm10 Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[297 684] put put put
+ setpagedevice
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize C5/C5 Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[459 649] put put put
+ setpagedevice
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize DL/DL Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[312 624]put put put
+ setpagedevice
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice "
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 9 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [420 595] (A5) put
+ dup [297 684] (Com10) put
+ dup [279 540] (Monarch) put
+ dup [459 649] (C5) put
+ dup [312 624] (DL) 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/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 792]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put
+put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612
+1008] put put put
+ setpagedevice} if "
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [595 842]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put
+put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [516
+729] put put put
+ setpagedevice} if "
+*End
+*PageRegion A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put
+put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [420
+595] put put put
+ setpagedevice} if "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 792]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [595 842]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put
+put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612
+1008] put put put
+ setpagedevice} if "
+*End
+*PageRegion Monarch/Monarch Envelope: "
+ 3 dict dup /PageSize [279 540] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [279 540] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [279 540]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion Com10/Comm10 Envelope: "
+ 3 dict dup /PageSize [297 684] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [297 684] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [297 684]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion C5/C5 Envelope: "
+ 3 dict dup /PageSize [459 649] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [459 649] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [459 649]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion DL/DL Envelope: "
+ 3 dict dup /PageSize [312 624] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [312 624] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [312 624]
+put put put
+ setpagedevice} if "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "11.52 14.1601 599.04 782.04 "
+*ImageableArea Legal/US Legal: "11.52 14.1601 599.04 998.04 "
+*ImageableArea A4: "10.68 14.1601 582.84 831.96 "
+*ImageableArea B5: "11.52 14.2201 503.04 719.1 "
+*ImageableArea A5: "10.56 14.1601 409.92 585.0 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Com10/Comm10 Envelope: "11.4 14.1601 284.04 674.04 "
+*ImageableArea Monarch/Monarch Envelope: "10.0801 14.1601 267.36 530.04 "
+*ImageableArea C5/C5 Envelope: "11.7601 14.1601 445.68 639.0 "
+*ImageableArea DL/DL Envelope: "11.28 14.1601 299.28 614.04 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension A5: "420 595"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Com10/Comm10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension C5/C5 Envelope: "459 649"
+*PaperDimension DL/DL Envelope: "312 624"
+
+*RequiresPageRegion Multipurpose: True
+*RequiresPageRegion Envelope: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Cassette (250 Sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Lower/Cassette (500 Sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Envelope/Envelope Feeder: "
+ currentpagedevice /InputAttributes get 3 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3 0 1 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (Upper) put
+ dup /1 (Multipurpose) put
+ dup /2 (Lower) put
+ dup /3 (Envelope) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% 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-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: 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: Standard "(001.007S)" Standard 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: Standard "(001.004S)" Standard 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (250 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (250 Sheets): out of paper"
+*Status: "PrinterError: Cassette (500 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (500 Sheets): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Envelope Feeder: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: incorrect paper size setting"
+*Status: "PrinterError: Page image timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "RemotePrinter"
+*Source: "PrintServer"
+*Source: "LPR"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (250 Sheets): no paper tray"
+*PrinterError: "Cassette (250 Sheets): out of paper"
+*PrinterError: "Cassette (500 Sheets): no paper tray"
+*PrinterError: "Cassette (500 Sheets): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "Envelope Feeder: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "incorrect paper size setting"
+*PrinterError: "Page image timeout"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% Produced by "bldppd42.ps" version 4.0 edit 11
+*% Last Edit Date: Aug 12 1994
+*% The byte count of this file should be exactly 025725 or 026472
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter 16/600 PS Fax
diff --git a/psprint_config/configuration/ppds/APLWGRI1.PS b/psprint_config/configuration/ppds/APLWGRI1.PS
new file mode 100644
index 000000000000..66d2e8e51594
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWGRI1.PS
@@ -0,0 +1,746 @@
+*PPD-Adobe: "4.2"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.2"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWGRI1.PPD"
+*Product: "(LaserWriter 16/600 PS)"
+*PSVersion: "(2014.106) 1"
+*ModelName: "Apple LaserWriter 16/600 PS"
+*ShortNickName: "Apple LaserWriter 16/600 PS"
+*NickName: "Apple LaserWriter 16/600 PS v2014.106"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 8Meg
+*InstalledMemory 8Meg/Standard 8 MB RAM: ""
+*InstalledMemory 12Meg/12 MB Upgrade: ""
+*InstalledMemory 16Meg/16 MB Upgrade: ""
+*InstalledMemory 24Meg/24 MB Upgrade: ""
+*InstalledMemory 32Meg/32 MB Upgrade: ""
+*?InstalledMemory: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *Option2/Cassette (500 Sheets): PickOne
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*Option2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1 3] put put
+setpagedevice"
+*End
+*?Option2: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 2 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option2
+
+*OpenUI *Option3/Envelope Feeder: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*?Option3: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 3 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option3
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *InstalledMemory 8Meg *BitsPerPixel 4
+
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Envelope
+
+*UIConstraints: *PageSize A5 *InputSlot Upper
+*UIConstraints: *PageSize A5 *InputSlot Lower
+*UIConstraints: *PageSize Com10 *InputSlot Upper
+*UIConstraints: *PageSize Com10 *InputSlot Lower
+*UIConstraints: *PageSize Monarch *InputSlot Upper
+*UIConstraints: *PageSize Monarch *InputSlot Lower
+*UIConstraints: *PageSize C5 *InputSlot Upper
+*UIConstraints: *PageSize C5 *InputSlot Lower
+*UIConstraints: *PageSize DL *InputSlot Upper
+*UIConstraints: *PageSize DL *InputSlot Lower
+
+*UIConstraints: *PageRegion A5 *InputSlot Upper
+*UIConstraints: *PageRegion A5 *InputSlot Lower
+*UIConstraints: *PageRegion Com10 *InputSlot Upper
+*UIConstraints: *PageRegion Com10 *InputSlot Lower
+*UIConstraints: *PageRegion Monarch *InputSlot Upper
+*UIConstraints: *PageRegion Monarch *InputSlot Lower
+*UIConstraints: *PageRegion C5 *InputSlot Upper
+*UIConstraints: *PageRegion C5 *InputSlot Lower
+*UIConstraints: *PageRegion DL *InputSlot Upper
+*UIConstraints: *PageRegion DL *InputSlot Lower
+
+*UIConstraints: *InputSlot Upper *PageSize A5
+*UIConstraints: *InputSlot Lower *PageSize A5
+*UIConstraints: *InputSlot Upper *PageSize Com10
+*UIConstraints: *InputSlot Lower *PageSize Com10
+*UIConstraints: *InputSlot Upper *PageSize Monarch
+*UIConstraints: *InputSlot Lower *PageSize Monarch
+*UIConstraints: *InputSlot Upper *PageSize C5
+*UIConstraints: *InputSlot Lower *PageSize C5
+*UIConstraints: *InputSlot Upper *PageSize DL
+*UIConstraints: *InputSlot Lower *PageSize DL
+
+*UIConstraints: *InputSlot Upper *PageRegion A5
+*UIConstraints: *InputSlot Lower *PageRegion A5
+*UIConstraints: *InputSlot Upper *PageRegion Com10
+*UIConstraints: *InputSlot Lower *PageRegion Com10
+*UIConstraints: *InputSlot Upper *PageRegion Monarch
+*UIConstraints: *InputSlot Lower *PageRegion Monarch
+*UIConstraints: *InputSlot Upper *PageRegion C5
+*UIConstraints: *InputSlot Lower *PageRegion C5
+*UIConstraints: *InputSlot Upper *PageRegion DL
+*UIConstraints: *InputSlot Lower *PageRegion DL
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: LaserJetIII
+*StartEmulator_LaserJetIII: "currentfile /LaserJetIII statusdict /emulate
+get exec "
+*End
+*StopEmulator_LaserJetIII: "<1B>E"
+*TTRasterizer: Type42
+
+*FreeVM: "1539456"
+*VMOption 8Meg: "1539456"
+*VMOption 12Meg: "1662336"
+*VMOption 16Meg: "5815680"
+*VMOption 24Meg: "14114176"
+*VMOption 32Meg: "22396288"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "16"
+*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
+
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*PrintPSErrors: False
+
+
+*% Halftone Information ===============
+*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 }"
+*End
+*DefaultTransfer: Null
+*Transfer Null: "{ }"
+*Transfer Null.Inverse: "{ 1 exch sub }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict dup /PostRenderingEnhance true put setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict dup /PostRenderingEnhance false put setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhanceDetails get
+ /ActualPostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): PickOne
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict dup /PreRenderingEnhance true put setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict dup /PreRenderingEnhance false put setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put put put
+ setpagedevice "
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983]
+put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[279 540] put put put
+ setpagedevice
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize Com10/Comm10 Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[297 684] put put put
+ setpagedevice
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize C5/C5 Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[459 649] put put put
+ setpagedevice
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize DL/DL Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize
+[312 624]put put put
+ setpagedevice
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice "
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 9 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [420 595] (A5) put
+ dup [297 684] (Com10) put
+ dup [279 540] (Monarch) put
+ dup [459 649] (C5) put
+ dup [312 624] (DL) 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/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 792]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put
+put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612
+1008] put put put
+ setpagedevice} if "
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [595 842]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put
+put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [516
+729] put put put
+ setpagedevice} if "
+*End
+*PageRegion A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put
+put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [420
+595] put put put
+ setpagedevice} if "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 792]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [595 842]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put
+put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612
+1008] put put put
+ setpagedevice} if "
+*End
+*PageRegion Monarch/Monarch Envelope: "
+ 3 dict dup /PageSize [279 540] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [279 540] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [279 540]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion Com10/Comm10 Envelope: "
+ 3 dict dup /PageSize [297 684] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [297 684] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [297 684]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion C5/C5 Envelope: "
+ 3 dict dup /PageSize [459 649] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [459 649] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [459 649]
+put put put
+ setpagedevice} if "
+*End
+*PageRegion DL/DL Envelope: "
+ 3 dict dup /PageSize [312 624] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [312 624] put put
+put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [312 624]
+put put put
+ setpagedevice} if "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "11.52 14.1601 599.04 782.04 "
+*ImageableArea Legal/US Legal: "11.52 14.1601 599.04 998.04 "
+*ImageableArea A4: "10.68 14.1601 582.84 831.96 "
+*ImageableArea B5: "11.52 14.2201 503.04 719.1 "
+*ImageableArea A5: "10.56 14.1601 409.92 585.0 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Com10/Comm10 Envelope: "11.4 14.1601 284.04 674.04 "
+*ImageableArea Monarch/Monarch Envelope: "10.0801 14.1601 267.36 530.04 "
+*ImageableArea C5/C5 Envelope: "11.7601 14.1601 445.68 639.0 "
+*ImageableArea DL/DL Envelope: "11.28 14.1601 299.28 614.04 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension A5: "420 595"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Com10/Comm10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension C5/C5 Envelope: "459 649"
+*PaperDimension DL/DL Envelope: "312 624"
+
+*RequiresPageRegion Multipurpose: True
+*RequiresPageRegion Envelope: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Cassette (250 Sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Lower/Cassette (500 Sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Envelope/Envelope Feeder: "
+ currentpagedevice /InputAttributes get 3 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3 0 1 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (Upper) put
+ dup /1 (Multipurpose) put
+ dup /2 (Lower) put
+ dup /3 (Envelope) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% 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-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: 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: Standard "(001.007S)" Standard 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: Standard "(001.004S)" Standard 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (250 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (250 Sheets): out of paper"
+*Status: "PrinterError: Cassette (500 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (500 Sheets): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Envelope Feeder: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: incorrect paper size setting"
+*Status: "PrinterError: Page image timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "RemotePrinter"
+*Source: "PrintServer"
+*Source: "LPR"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (250 Sheets): no paper tray"
+*PrinterError: "Cassette (250 Sheets): out of paper"
+*PrinterError: "Cassette (500 Sheets): no paper tray"
+*PrinterError: "Cassette (500 Sheets): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "Envelope Feeder: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "incorrect paper size setting"
+*PrinterError: "Page image timeout"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% Produced by "bldppd42.ps" version 4.0 edit 11
+*% Last Edit Date: Aug 12 1994
+*% The byte count of this file should be exactly 025687 or 026433
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter 16/600 PS
diff --git a/psprint_config/configuration/ppds/APLWGRJ1.PS b/psprint_config/configuration/ppds/APLWGRJ1.PS
new file mode 100644
index 000000000000..af9da083c3a2
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWGRJ1.PS
@@ -0,0 +1,709 @@
+*PPD-Adobe: "4.2"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.2"
+*FileVersion: "1.1"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWGRJ1.PPD"
+*Product: "(LaserWriter 16/600 PS-J)"
+*PSVersion: "(2014.106) 1"
+*ModelName: "Apple LaserWriter 16/600 PS-J"
+*ShortNickName: "Apple LaserWriter 16/600 PS-J"
+*NickName: "Apple LaserWriter 16/600 PS-J v2014.106"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 8Meg
+*InstalledMemory 8Meg/Standard 8 MB RAM: ""
+*InstalledMemory 12Meg/12 MB Upgrade: ""
+*InstalledMemory 16Meg/16 MB Upgrade: ""
+*InstalledMemory 24Meg/24 MB Upgrade: ""
+*InstalledMemory 32Meg/32 MB Upgrade: ""
+*?InstalledMemory: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *Option2/Cassette (500 Sheets): PickOne
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*Option2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1 3] put put setpagedevice"
+*End
+*?Option2: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 2 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option2
+
+*OpenUI *Option3/Envelope Feeder: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*?Option3: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 3 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option3
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *InstalledMemory 8Meg *BitsPerPixel 4
+*UIConstraints: *InstalledMemory 12Meg *BitsPerPixel 4
+
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Envelope
+
+*UIConstraints: *PageSize A5 *InputSlot Upper
+*UIConstraints: *PageSize A5 *InputSlot Lower
+*UIConstraints: *PageSize Com10 *InputSlot Upper
+*UIConstraints: *PageSize Com10 *InputSlot Lower
+*UIConstraints: *PageSize Monarch *InputSlot Upper
+*UIConstraints: *PageSize Monarch *InputSlot Lower
+*UIConstraints: *PageSize C5 *InputSlot Upper
+*UIConstraints: *PageSize C5 *InputSlot Lower
+*UIConstraints: *PageSize DL *InputSlot Upper
+*UIConstraints: *PageSize DL *InputSlot Lower
+
+*UIConstraints: *PageRegion A5 *InputSlot Upper
+*UIConstraints: *PageRegion A5 *InputSlot Lower
+*UIConstraints: *PageRegion Com10 *InputSlot Upper
+*UIConstraints: *PageRegion Com10 *InputSlot Lower
+*UIConstraints: *PageRegion Monarch *InputSlot Upper
+*UIConstraints: *PageRegion Monarch *InputSlot Lower
+*UIConstraints: *PageRegion C5 *InputSlot Upper
+*UIConstraints: *PageRegion C5 *InputSlot Lower
+*UIConstraints: *PageRegion DL *InputSlot Upper
+*UIConstraints: *PageRegion DL *InputSlot Lower
+
+*UIConstraints: *InputSlot Upper *PageSize A5
+*UIConstraints: *InputSlot Lower *PageSize A5
+*UIConstraints: *InputSlot Upper *PageSize Com10
+*UIConstraints: *InputSlot Lower *PageSize Com10
+*UIConstraints: *InputSlot Upper *PageSize Monarch
+*UIConstraints: *InputSlot Lower *PageSize Monarch
+*UIConstraints: *InputSlot Upper *PageSize C5
+*UIConstraints: *InputSlot Lower *PageSize C5
+*UIConstraints: *InputSlot Upper *PageSize DL
+*UIConstraints: *InputSlot Lower *PageSize DL
+
+*UIConstraints: *InputSlot Upper *PageRegion A5
+*UIConstraints: *InputSlot Lower *PageRegion A5
+*UIConstraints: *InputSlot Upper *PageRegion Com10
+*UIConstraints: *InputSlot Lower *PageRegion Com10
+*UIConstraints: *InputSlot Upper *PageRegion Monarch
+*UIConstraints: *InputSlot Lower *PageRegion Monarch
+*UIConstraints: *InputSlot Upper *PageRegion C5
+*UIConstraints: *InputSlot Lower *PageRegion C5
+*UIConstraints: *InputSlot Upper *PageRegion DL
+*UIConstraints: *InputSlot Lower *PageRegion DL
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*TTRasterizer: Type42
+
+*FreeVM: "1922832"
+*VMOption 8Meg: "1922832"
+*VMOption 12Meg: "4052752"
+*VMOption 16Meg: "6077044"
+*VMOption 24Meg: "14465652"
+*VMOption 32Meg: "22854260"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "16"
+*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
+
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*PrintPSErrors: False
+
+
+*% Halftone Information ===============
+*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 }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict dup /PostRenderingEnhance true put setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict dup /PostRenderingEnhance false put setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhanceDetails get
+ /ActualPostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): PickOne
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict dup /PreRenderingEnhance true put setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict dup /PreRenderingEnhance false put setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put put put
+ setpagedevice "
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize [279 540] put put put
+ setpagedevice
+ 2 dict dup /PageSize [279 540] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize Com10/Comm10 Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize [297 684] put put put
+ setpagedevice
+ 2 dict dup /PageSize [297 684] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize C5/C5 Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize [459 649] put put put
+ setpagedevice
+ 2 dict dup /PageSize [459 649] put dup /ImagingBBox null put setpagedevice "
+*End
+*PageSize DL/DL Envelope: "
+ currentpagedevice /InputAttributes get 3 known {3} {1} ifelse
+ 1 dict dup /InputAttributes 1 dict dup 6 -1 roll 1 dict dup /PageSize [312 624]put put put
+ setpagedevice
+ 2 dict dup /PageSize [312 624] put dup /ImagingBBox null put setpagedevice "
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 9 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [420 595] (A5) put
+ dup [297 684] (Com10) put
+ dup [279 540] (Monarch) put
+ dup [459 649] (C5) put
+ dup [312 624] (DL) 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/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 792] put put put
+ setpagedevice} if "
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 1008] put put put
+ setpagedevice} if "
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [595 842] put put put
+ setpagedevice} if "
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [516 729] put put put
+ setpagedevice} if "
+*End
+*PageRegion A5: "
+ 3 dict dup /PageSize [420 595] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [420 595] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [420 595] put put put
+ setpagedevice} if "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 792] put put put
+ setpagedevice} if "
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [595 842] put put put
+ setpagedevice} if "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [612 1008] put put put
+ setpagedevice} if "
+*End
+*PageRegion Monarch/Monarch Envelope: "
+ 3 dict dup /PageSize [279 540] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [279 540] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [279 540] put put put
+ setpagedevice} if "
+*End
+*PageRegion Com10/Comm10 Envelope: "
+ 3 dict dup /PageSize [297 684] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [297 684] put put put
+ setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [297 684] put put put
+ setpagedevice} if "
+*End
+*PageRegion C5/C5 Envelope: "
+ 3 dict dup /PageSize [459 649] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [459 649] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [459 649] put put put
+ setpagedevice} if "
+*End
+*PageRegion DL/DL Envelope: "
+ 3 dict dup /PageSize [312 624] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [312 624] put put put setpagedevice
+ currentpagedevice /InputAttributes get 3 known
+ {1 dict dup /InputAttributes 1 dict dup 3 1 dict dup /PageSize [312 624] put put put
+ setpagedevice} if "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "11.52 14.1601 599.04 782.04 "
+*ImageableArea Legal/US Legal: "11.52 14.1601 599.04 998.04 "
+*ImageableArea A4: "10.68 14.1601 582.84 831.96 "
+*ImageableArea B5: "11.52 14.2201 503.04 719.1 "
+*ImageableArea A5: "10.56 14.1601 409.92 585.0 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Com10/Comm10 Envelope: "11.4 14.1601 284.04 674.04 "
+*ImageableArea Monarch/Monarch Envelope: "10.0801 14.1601 267.36 530.04 "
+*ImageableArea C5/C5 Envelope: "11.7601 14.1601 445.68 639.0 "
+*ImageableArea DL/DL Envelope: "11.28 14.1601 299.28 614.04 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension A5: "420 595"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Com10/Comm10 Envelope: "297 684"
+*PaperDimension Monarch/Monarch Envelope: "279 540"
+*PaperDimension C5/C5 Envelope: "459 649"
+*PaperDimension DL/DL Envelope: "312 624"
+
+*RequiresPageRegion Multipurpose: True
+*RequiresPageRegion Envelope: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Cassette (250 Sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Lower/Cassette (500 Sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1 3] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Envelope/Envelope Feeder: "
+ currentpagedevice /InputAttributes get 3 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3 0 1 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (Upper) put
+ dup /1 (Multipurpose) put
+ dup /2 (Lower) put
+ dup /3 (Envelope) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% 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-LightItalic: Standard "(001.004S)" Standard ROM
+*Font Bookman-Light: 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: Standard "(001.007S)" Standard 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: Standard "(001.004S)" Standard 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (250 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (250 Sheets): out of paper"
+*Status: "PrinterError: Cassette (500 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (500 Sheets): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Envelope Feeder: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: incorrect paper size setting"
+*Status: "PrinterError: Page image timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "LocalTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (250 Sheets): no paper tray"
+*PrinterError: "Cassette (250 Sheets): out of paper"
+*PrinterError: "Cassette (500 Sheets): no paper tray"
+*PrinterError: "Cassette (500 Sheets): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "Envelope Feeder: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "incorrect paper size setting"
+*PrinterError: "Page image timeout"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 lpi / 600 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% Produced by "bldppd42.ps" version 4.0 edit 11
+*% Last Edit Date: Dec 5 1995
+*% The byte count of this file should be exactly 025501 or 026210
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter 16/600 PS-J
+
+
diff --git a/psprint_config/configuration/ppds/APLWIIF2.PS b/psprint_config/configuration/ppds/APLWIIF2.PS
new file mode 100644
index 000000000000..245b0c8580da
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWIIF2.PS
@@ -0,0 +1,428 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "3.1"
+*PCFileName: "APLWIIF2.PPD"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*Product: "(LaserWriter IIf)"
+*PSVersion: "(2010.130) 2"
+*ModelName: "Apple LaserWriter IIf v2010.130"
+*NickName: "Apple LaserWriter IIf v2010.130"
+
+*% ==== Options and Constraints =====
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: None
+*Option1 None/Minimum 4 MB: ""
+*Option1 5Meg/Upgrade to 5 MB: ""
+*Option1 8Meg/Upgrade to 8 MB: ""
+*?Option1: "
+ (None)currentsystemparams/RamSize get
+ dup 5242880 eq{pop pop(5Meg)}{8388608 eq{pop(8Meg)}if}ifelse
+ =
+"
+*End
+*CloseUI: *Option1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 None *BitsPerPixel 4
+
+*UIConstraints: *Option1 None *PageSize Letter.5Meg
+*UIConstraints: *Option1 None *PageSize Letter.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.5Meg
+
+*UIConstraints: *Option1 None *PageSize A4.5Meg
+*UIConstraints: *Option1 None *PageSize A4.8Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.8Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.5Meg
+
+*UIConstraints: *Option1 5Meg *PageSize LetterSmall
+*UIConstraints: *Option1 5Meg *PageSize A4Small
+
+*UIConstraints: *Option1 None *PageSize Monarch.5Meg
+*UIConstraints: *Option1 None *PageSize Monarch.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.5Meg
+
+*UIConstraints: *Option1 None *PageSize Com10.5Meg
+*UIConstraints: *Option1 None *PageSize Com10.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.5Meg
+
+*% === Basic Capabilities ===============
+*FreeVM: "2031121"
+*LanguageLevel: "2"
+*Protocols: BCP
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Emulators: hplj
+*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hplj: "<1B7F>0"
+*Throughput: "8"
+*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
+*DefaultResolution: 300dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print (dpi) = flush
+ restore"
+*End
+
+*% === PhotoGrade (bits per pixel) =============
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: 4
+*BitsPerPixel 4/On: "1 dict dup /PreRenderingEnhance true put setpagedevice"
+*BitsPerPixel None/Off: "1 dict dup /PreRenderingEnhance false put setpagedevice"
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% === FinePrint (smoothing) =============
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: True
+*Smoothing True/On: "1 dict dup /PostRenderingEnhance true put setpagedevice"
+*Smoothing False/Off: "1 dict dup /PostRenderingEnhance false put setpagedevice"
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*% === Halftone Information ===============
+*AccurateScreensSupport: True
+*ScreenFreq: "60.0"
+*ScreenAngle: "45"
+*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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Unknown
+*PageSize Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageSize LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageSize A4Small/A4 Small: "userdict /a4small get exec"
+*PageSize LegalSmall/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*?PageSize: "
+ save currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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
+
+*% These entries will set up the frame buffer. Usually used with manual feed.
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 40 AnySetup *PageRegion
+*DefaultPageRegion: Unknown
+*PageRegion Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageRegion A4Small/A4 Small: "userdict /a4small get exec"
+*PageRegion LegalSmall/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Unknown
+*ImageableArea Letter.4Meg/US Letter: "14.16 7.80002 597.84 784.44 "
+*ImageableArea Letter.5Meg/US Letter: "31 31 583 761 "
+*ImageableArea Letter.8Meg/US Letter: "14.16 7.8 597.84 784.44"
+*ImageableArea Legal/US Legal: "14.16 7.8 597.84 1000.44 "
+*ImageableArea A4.4Meg/A4: "12.96 9.23999 581.28 832.92 "
+*ImageableArea A4.5Meg/A4: "29 31 567 812 "
+*ImageableArea A4.8Meg/A4: "12.96 9.239 581.28 832.92 "
+*ImageableArea B5: "20.64 9.23999 504.48 715.8 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "23.76 24.96 592.08 982.8 "
+*ImageableArea Monarch.4Meg/Monarch Envelope Center Fed: "178.5 257 433.5 761.88 "
+*ImageableArea Monarch.5Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Monarch.8Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Com10.4Meg/Com10 Envelope Center Fed: "169.5 113 442.5 761.88 "
+*ImageableArea Com10.5Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+*ImageableArea Com10.8Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Unknown
+*PaperDimension Letter.4Meg/US Letter: "612 792"
+*PaperDimension Letter.5Meg/US Letter: "612 792"
+*PaperDimension Letter.8Meg/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4.4Meg/A4: "595 842"
+*PaperDimension A4.5Meg/A4: "595 842"
+*PaperDimension A4.8Meg/A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch.4Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.5Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.8Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Com10.4Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.5Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.8Meg/Com10 Envelope Center Fed: "610 792"
+
+*OpenUI *ManualFeed/Manual Feed: 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 *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% === Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard ROM
+*Font Courier: Standard "(002.003)" Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" 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.008S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" 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.006)" 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: laser doide or scanning mirror malfunction"
+*Status: "PrinterError: test printing stage"
+*Status: "PrinterError: service call"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "out of paper"
+*PrinterError: "no paper tray"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "laser doide or scanning mirror malfunction"
+*PrinterError: "test printing stage"
+*PrinterError: "service call"
+
+*% 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"
+
+*% For "LaserWriter IIf" version 2010.130
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 018950 or 019378
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple LaserWriter IIf
diff --git a/psprint_config/configuration/ppds/APLWIIG2.PS b/psprint_config/configuration/ppds/APLWIIG2.PS
new file mode 100644
index 000000000000..3f04758e9800
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWIIG2.PS
@@ -0,0 +1,440 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "3.1"
+*PCFileName: "APLWIIG2.PPD"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*Product: "(LaserWriter IIg)"
+*PSVersion: "(2010.130) 2"
+*ModelName: "Apple LaserWriter IIg v2010.130"
+*NickName: "Apple LaserWriter IIg v2010.130"
+
+*% ==== Options and Constraints =====
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: None
+*Option1 None/Minimum 4 MB: ""
+*Option1 5Meg/Upgrade to 5 MB: ""
+*Option1 8Meg/Upgrade to 8 MB: ""
+*?Option1: "
+ (None)currentsystemparams/RamSize get
+ dup 5242880 eq{pop pop(5Meg)}{8388608 eq{pop(8Meg)}if}ifelse
+ =
+"
+*End
+*CloseUI: *Option1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 None *PageSize Letter.5Meg
+*UIConstraints: *Option1 None *PageSize Letter.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.5Meg
+
+*UIConstraints: *Option1 None *PageSize A4.5Meg
+*UIConstraints: *Option1 None *PageSize A4.8Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.8Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.5Meg
+
+*UIConstraints: *Option1 5Meg *PageSize LetterSmall
+*UIConstraints: *Option1 5Meg *PageSize A4Small
+
+*UIConstraints: *Option1 None *PageSize Monarch.5Meg
+*UIConstraints: *Option1 None *PageSize Monarch.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.5Meg
+
+*UIConstraints: *Option1 None *PageSize Com10.5Meg
+*UIConstraints: *Option1 None *PageSize Com10.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.5Meg
+
+*% === Basic Capabilities ===============
+*FreeVM: "2210413"
+*LanguageLevel: "2"
+*Protocols: BCP
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Emulators: hplj
+*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hplj: "<1B7F>0"
+*Throughput: "8"
+*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
+*DefaultResolution: 300dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print (dpi) = flush
+ restore"
+*End
+
+*% === PhotoGrade (bits per pixel) =============
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: 4
+*BitsPerPixel 4/On: "1 dict dup /PreRenderingEnhance true put setpagedevice"
+*BitsPerPixel None/Off: "1 dict dup /PreRenderingEnhance false put setpagedevice"
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% === FinePrint (smoothing) =============
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: True
+*Smoothing True/On: "1 dict dup /PostRenderingEnhance true put setpagedevice"
+*Smoothing False/Off: "1 dict dup /PostRenderingEnhance false put setpagedevice"
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*% === Halftone Information ===============
+*AccurateScreensSupport: True
+*ScreenFreq: "106.0"
+*ScreenAngle: "45"
+*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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Unknown
+*PageSize Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageSize LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageSize A4Small/A4 Small: "userdict /a4small get exec"
+*PageSize LegalSmall/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*?PageSize: "
+ save currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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
+
+*% These entries will set up the frame buffer. Usually used with manual feed.
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 40 AnySetup *PageRegion
+*DefaultPageRegion: Unknown
+*PageRegion Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageRegion A4Small/A4 Small: "userdict /a4small get exec"
+*PageRegion LegalSmall/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Unknown
+*ImageableArea Letter.4Meg/US Letter: "14.16 7.80002 597.84 784.44 "
+*ImageableArea Letter.5Meg/US Letter: "31 31 583 761 "
+*ImageableArea Letter.8Meg/US Letter: "14.16 7.8 597.84 784.44"
+*ImageableArea Legal/US Legal: "14.16 7.8 597.84 1000.44 "
+*ImageableArea A4.4Meg/A4: "12.96 9.23999 581.28 832.92 "
+*ImageableArea A4.5Meg/A4: "29 31 567 812 "
+*ImageableArea A4.8Meg/A4: "12.96 9.239 581.28 832.92 "
+*ImageableArea B5: "20.64 9.23999 504.48 715.8 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "23.76 24.96 592.08 982.8 "
+*ImageableArea Monarch.4Meg/Monarch Envelope Center Fed: "178.5 257 433.5 761.88 "
+*ImageableArea Monarch.5Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Monarch.8Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Com10.4Meg/Com10 Envelope Center Fed: "169.5 113 442.5 761.88 "
+*ImageableArea Com10.5Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+*ImageableArea Com10.8Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Unknown
+*PaperDimension Letter.4Meg/US Letter: "612 792"
+*PaperDimension Letter.5Meg/US Letter: "612 792"
+*PaperDimension Letter.8Meg/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4.4Meg/A4: "595 842"
+*PaperDimension A4.5Meg/A4: "595 842"
+*PaperDimension A4.8Meg/A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch.4Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.5Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.8Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Com10.4Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.5Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.8Meg/Com10 Envelope Center Fed: "610 792"
+
+*OpenUI *ManualFeed/Manual Feed: 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 *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% === Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard ROM
+*Font Courier: Standard "(002.003)" Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" 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.008S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" 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.006)" 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: laser doide or scanning mirror malfunction"
+*Status: "PrinterError: test printing stage"
+*Status: "PrinterError: service call"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+*Source: "EtherTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "out of paper"
+*PrinterError: "no paper tray"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "laser doide or scanning mirror malfunction"
+*PrinterError: "test printing stage"
+*PrinterError: "service call"
+
+*% Color Separation Information =========================
+*DefaultColorSep: ProcessBlack.106lpi.300dpi/106 lpi / 300 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+*% 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 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"
+
+*% For "LaserWriter IIg" version 2010.130
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 019744 or 020184
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple LaserWriter IIg
diff --git a/psprint_config/configuration/ppds/APLWLOT1.PS b/psprint_config/configuration/ppds/APLWLOT1.PS
new file mode 100644
index 000000000000..0284ac25a0f2
--- /dev/null
+++ b/psprint_config/configuration/ppds/APLWLOT1.PS
@@ -0,0 +1,563 @@
+*PPD-Adobe: "4.2"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1995 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*%LocalVersion: "J1-1.1L4"
+*FormatVersion: "4.2"
+*FileVersion: "1.0"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APLWLOT1.PPD"
+*Product: "(Color LaserWriter 12/600 PS-J)"
+*PSVersion: "(2014.108) 2"
+*ModelName: "LaserWriter Color 12/600 PS-J"
+*ShortNickName: "Apple Color LaserWriter 12/600J"
+*NickName: "Apple Color LaserWriter 12/600 PS-J v2014.108"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *InstalledMemory/Memory Configuration: PickOne
+*DefaultInstalledMemory: 16Meg
+*InstalledMemory 16Meg/16 MB Upgrade: ""
+*InstalledMemory 24Meg/24 MB Upgrade: ""
+*InstalledMemory 25Meg/25 MB Upgrade: ""
+*InstalledMemory 28Meg/28 MB Upgrade: ""
+*InstalledMemory 40Meg/40 MB Upgrade: ""
+*?InstalledMemory: "
+ save
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ = flush
+ restore
+"
+*End
+*CloseUI: *InstalledMemory
+
+*OpenUI *Option1/ Cassette (Optional): PickOne
+*DefaultOption1: False
+*Option1 True/Installed: ""
+*Option1 False/Not Intalled: ""
+*Option1 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1] put put setpagedevice"
+*End
+*?Option1: "
+ save
+ (False)
+ currentpagedevice /InputAttributes get
+ dup 2 known { 2 get null ne {pop (True)}if }{pop}ifelse
+ = flush
+ restore
+"
+*End
+*CloseUI: *Option1
+
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 False *InputSlot OptionalCassette
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: TBCP
+*TTRasterizer: Type42
+
+*FreeVM: "3911344"
+*VMOption 16Meg: "3911344"
+*VMOption 24Meg: "5402684"
+*VMOption 25Meg: "7401136"
+*VMOption 28Meg: "5795504"
+*VMOption 40Meg: "13717168"
+*ColorDevice: True
+*DefaultColorSpace: CMYK
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "12"
+*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
+
+*Resolution 600dpi: ""
+*DefaultResolution: 600dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+
+*OpenUI *TraySwitch/Tray Switch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True/On: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False/Off: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*OpenUI *MediaType/Paper Type: PickOne
+*OrderDependency: 50 AnySetup *MediaType
+*DefaultMediaType: Plain
+*MediaType Plain/Plain: "
+ 2 dict
+ dup /MediaType (Plain) put
+ dup /InputAttributes mark
+ currentpagedevice /InputAttributes get
+ {
+ dup type /dicttype eq {
+ dup length 1 add dict begin {def} forall
+ /MediaType (Plain) def
+ currentdict end
+ } if
+ } forall
+ counttomark 2 idiv dup dict begin {def} repeat
+ pop currentdict end
+ put
+ setpagedevice
+"
+*End
+*MediaType Transparency/Transparency: "
+ 2 dict
+ dup /MediaType (Transparency) put
+ dup /InputAttributes mark
+ currentpagedevice /InputAttributes get
+ {
+ dup type /dicttype eq {
+ dup length 1 add dict begin {def} forall
+ /MediaType (Transparency) def
+ currentdict end
+ } if
+ } forall
+ counttomark 2 idiv dup dict begin {def} repeat
+ pop currentdict end
+ put
+ setpagedevice
+"
+*End
+*?MediaType: "
+ save
+ currentpagedevice /MediaType get dup null eq
+ { pop (Plain) }
+ {
+ (Transparency) ne {
+ (Plain)
+ }{
+ (Transparency)
+ } ifelse
+ }ifelse
+ = flush
+ restore
+"
+*End
+*CloseUI: *MediaType
+
+*OpenUI *OutputMode/Print Quality Mode: PickOne
+*OrderDependency: 50 AnySetup *OutputMode
+*DefaultOutputMode: Normal
+*OutputMode Normal/ Normal (Fastest Print Speed): "
+ 1 dict dup /PostRenderingEnhanceDetails
+ 2 dict dup /Type 19 put dup /OutputMode /Normal put put
+ setpagedevice "
+*End
+*OutputMode Best/ Best (Slower Print Speed): "
+ 1 dict dup /PostRenderingEnhanceDetails
+ 2 dict dup /Type 19 put dup /OutputMode /Best put put
+ setpagedevice "
+*End
+*?OutputMode: "
+ save
+ currentpagedevice /PostRenderingEnhanceDetails get
+ /OutputMode get = flush
+ restore "
+*End
+*CloseUI: *OutputMode
+
+*SuggestedJobTimeout: "0"
+*SuggestedWaitTimeout: "300"
+*PrintPSErrors: False
+
+*% Halftone Information ===============
+*ScreenFreq: "200.0"
+*ScreenAngle: "0.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 ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put setpagedevice"
+*End
+
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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/US Letter: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice "
+*End
+*PageRegion Legal/US Legal: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put setpagedevice "
+*End
+*PageRegion A4: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice "
+*End
+*PageRegion B5: "
+ 3 dict dup /PageSize [516 729] put dup /ImagingBBox null put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [516 729] put put put setpagedevice "
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 3 dict dup /PageSize [612 792] put dup /ImagingBBox [25 25 587 767] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 792] put put put setpagedevice "
+*End
+*PageRegion A4Small/A4 Small: "
+ 3 dict dup /PageSize [595 842] put dup /ImagingBBox [25 25 570 817] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [595 842] put put put setpagedevice "
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 3 dict dup /PageSize [612 1008] put dup /ImagingBBox [25 25 587 983] put
+ dup /InputAttributes 1 dict dup 1 1 dict dup /PageSize [612 1008] put put put setpagedevice "
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/ US Letter: "14.16 14.1601 597.84 769.32 "
+*ImageableArea Legal/US Legal: "14.16 14.1601 597.84 985.32 "
+*ImageableArea A4: "14.1601 14.2401 582.48 819.32 "
+*ImageableArea B5: "14.16 14.7 501.84 706.38 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: StandardCassette
+*InputSlot StandardCassette/ Cassette (Standard): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0 1 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/ Multipurpose Tray: "
+ currentpagedevice /InputAttributes get 1 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [1 0 2] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot OptionalCassette/ Cassette (Optional): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0 1] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (StandardCassette) put
+ dup /1 (Multipurpose) put
+ dup /2 (OptionalCassette) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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
+
+*% 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-Oblique: Standard "(001.006S)" Standard ROM
+*Font Helvetica-Condensed: Standard "(001.001)" Standard ROM
+*Font Helvetica-Condensed-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-Condensed-Oblique: Standard "(001.001)" Standard ROM
+*Font Helvetica-Condensed-BoldObl: Standard "(001.002)" 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 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: Standard "(001.007S)" Standard 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: Standard "(001.004S)" Standard 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
+ (*) {(/)print print (\n)print}bind 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: "initializing"
+*Status: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: door open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (Standard): no paper tray"
+*Status: "PrinterError: Cassette (Standard): out of paper"
+*Status: "PrinterError: Cassette (Optional): no paper tray"
+*Status: "PrinterError: Cassette (Optional): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: incorrect paper size setting"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "EtherTalk"
+*Source: "PrintServer"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "door open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (Standard): no paper tray"
+*PrinterError: "Cassette (Standard): out of paper"
+*PrinterError: "Cassette (Optional): no paper tray"
+*PrinterError: "Cassette (Optional): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "incorrect paper size setting"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+*% For 200 lpi / 600 dpi =====================
+
+*ColorSepScreenAngle ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle CustomColor.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessCyan.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessMagenta.200lpi.600dpi/200 lpi / 600 dpi: "0"
+*ColorSepScreenAngle ProcessYellow.200lpi.600dpi/200 lpi / 600 dpi: "0"
+
+*ColorSepScreenFreq ProcessBlack.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq CustomColor.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessCyan.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessMagenta.200lpi.600dpi/200 lpi / 600 dpi: "200"
+*ColorSepScreenFreq ProcessYellow.200lpi.600dpi/200 lpi / 600 dpi: "200"
+
+*% Produced by "bldppd42.ps" version 4.0 edit 11
+*% Last Edit Date: Dec 5 1995
+*% Edited by jbonacci@adobe.com: Dec 5, 1995
+*% The byte count of this file should be exactly 017975 or 018538
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple Color LaserWriter 12/600 PS-J
diff --git a/psprint_config/configuration/ppds/APL_IIF1.PS b/psprint_config/configuration/ppds/APL_IIF1.PS
new file mode 100644
index 000000000000..09661affc712
--- /dev/null
+++ b/psprint_config/configuration/ppds/APL_IIF1.PS
@@ -0,0 +1,520 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "3.0"
+*PCFileName: "APLWIIF1.PPD"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*Product: "(LaserWriter IIf)"
+*PSVersion: "(2010.113) 1"
+*ModelName: "Apple LaserWriter IIf v2010.113"
+*NickName: "Apple LaserWriter IIf v2010.113"
+
+*% ==== Options and Constraints =====
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: 2Meg
+*Option1 2Meg/Minimum 2 MB: ""
+*Option1 4Meg/Upgrade to 4 MB: ""
+*Option1 5Meg/Upgrade to 5 MB: ""
+*Option1 8Meg/Upgrade to 8 MB: ""
+*?Option1: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *Option1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 2Meg *BitsPerPixel 4
+*UIConstraints: *Option1 4Meg *BitsPerPixel 4
+
+*UIConstraints: *Option1 2Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 2Meg *PageSize Letter.5Meg
+*UIConstraints: *Option1 2Meg *PageSize Letter.8Meg
+*UIConstraints: *Option1 4Meg *PageSize Letter.2Meg
+*UIConstraints: *Option1 4Meg *PageSize Letter.5Meg
+*UIConstraints: *Option1 4Meg *PageSize Letter.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.2Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.2Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.5Meg
+
+*UIConstraints: *Option1 2Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 2Meg *PageSize A4.5Meg
+*UIConstraints: *Option1 2Meg *PageSize A4.8Meg
+*UIConstraints: *Option1 4Meg *PageSize A4.2Meg
+*UIConstraints: *Option1 4Meg *PageSize A4.5Meg
+*UIConstraints: *Option1 4Meg *PageSize A4.8Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.2Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.8Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.2Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.5Meg
+
+*UIConstraints: *Option1 2Meg *PageSize Legal.4Meg
+*UIConstraints: *Option1 2Meg *PageSize Legal.5Meg
+*UIConstraints: *Option1 2Meg *PageSize Legal.8Meg
+*UIConstraints: *Option1 4Meg *PageSize Legal.2Meg
+*UIConstraints: *Option1 4Meg *PageSize Legal.5Meg
+*UIConstraints: *Option1 4Meg *PageSize Legal.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Legal.2Meg
+*UIConstraints: *Option1 5Meg *PageSize Legal.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Legal.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.2Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.5Meg
+
+*UIConstraints: *Option1 5Meg *PageSize LetterSmall
+*UIConstraints: *Option1 5Meg *PageSize A4Small
+
+*UIConstraints: *Option1 2Meg *PageSize LegalSmall.4Meg
+*UIConstraints: *Option1 2Meg *PageSize LegalSmall.5Meg
+*UIConstraints: *Option1 2Meg *PageSize LegalSmall.8Meg
+*UIConstraints: *Option1 4Meg *PageSize LegalSmall.2Meg
+*UIConstraints: *Option1 4Meg *PageSize LegalSmall.5Meg
+*UIConstraints: *Option1 4Meg *PageSize LegalSmall.8Meg
+*UIConstraints: *Option1 5Meg *PageSize LegalSmall.2Meg
+*UIConstraints: *Option1 5Meg *PageSize LegalSmall.4Meg
+*UIConstraints: *Option1 5Meg *PageSize LegalSmall.8Meg
+*UIConstraints: *Option1 8Meg *PageSize LegalSmall.2Meg
+*UIConstraints: *Option1 8Meg *PageSize LegalSmall.4Meg
+*UIConstraints: *Option1 8Meg *PageSize LegalSmall.5Meg
+
+*UIConstraints: *Option1 2Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 2Meg *PageSize Monarch.5Meg
+*UIConstraints: *Option1 2Meg *PageSize Monarch.8Meg
+*UIConstraints: *Option1 4Meg *PageSize Monarch.2Meg
+*UIConstraints: *Option1 4Meg *PageSize Monarch.5Meg
+*UIConstraints: *Option1 4Meg *PageSize Monarch.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.2Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.2Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.5Meg
+
+*UIConstraints: *Option1 2Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 2Meg *PageSize Com10.5Meg
+*UIConstraints: *Option1 2Meg *PageSize Com10.8Meg
+*UIConstraints: *Option1 4Meg *PageSize Com10.2Meg
+*UIConstraints: *Option1 4Meg *PageSize Com10.5Meg
+*UIConstraints: *Option1 4Meg *PageSize Com10.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.2Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.2Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.5Meg
+
+*% === Basic Capabilities ===============
+*FreeVM: "296304"
+*LanguageLevel: "2"
+*Protocols: BCP
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Emulators: hplj
+*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hplj: "<1B7F>0"
+*Throughput: "8"
+*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
+*DefaultResolution: 300dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print (dpi) = flush
+ restore"
+*End
+
+*% === PhotoGrade (bits per pixel) =============
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: 4
+*BitsPerPixel 4/On: "1 dict dup /PreRenderingEnhance true put setpagedevice"
+*BitsPerPixel None/Off: "1 dict dup /PreRenderingEnhance false put setpagedevice"
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% === FinePrint (smoothing) =============
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: True
+*Smoothing True/On: "1 dict dup /PostRenderingEnhance true put setpagedevice"
+*Smoothing False/Off: "1 dict dup /PostRenderingEnhance false put setpagedevice"
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*% === Halftone Information ===============
+*AccurateScreensSupport: True
+*ScreenFreq: "60.0"
+*ScreenAngle: "45"
+*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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Unknown
+*PageSize Letter.2Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.2Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.4Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.5Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.8Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.2Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageSize LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageSize A4Small/A4 Small: "userdict /a4small get exec"
+*PageSize LegalSmall.2Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize LegalSmall.4Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize LegalSmall.5Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize LegalSmall.8Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.2Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.2Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*?PageSize: "
+ save currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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
+
+*% These entries will set up the frame buffer. Usually used with manual feed.
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 40 AnySetup *PageRegion
+*DefaultPageRegion: Unknown
+*PageRegion Letter.2Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.2Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.4Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.5Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.8Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.2Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageRegion A4Small/A4 Small: "userdict /a4small get exec"
+*PageRegion LegalSmall.2Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LegalSmall.4Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LegalSmall.5Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LegalSmall.8Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.2Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.2Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Unknown
+*ImageableArea Letter.2Meg/US Letter: "31 31 583 761 "
+*ImageableArea Letter.4Meg/US Letter: "15 8 597 784 "
+*ImageableArea Letter.5Meg/US Letter: "31 31 583 761 "
+*ImageableArea Letter.8Meg/US Letter: "15 8 597 784 "
+*ImageableArea Legal.2Meg/US Legal: "31 247 583 977 "
+*ImageableArea Legal.4Meg/US Legal: "15 8 597 1000 "
+*ImageableArea Legal.5Meg/US Legal: "15 8 597 1000 "
+*ImageableArea Legal.8Meg/US Legal: "15 8 597 1000 "
+*ImageableArea A4.2Meg/A4: "27 31 571 811 "
+*ImageableArea A4.4Meg/A4: "13 10 581 832 "
+*ImageableArea A4.5Meg/A4: "29 31 567 812 "
+*ImageableArea A4.8Meg/A4: "13 10 581 832 "
+*ImageableArea B5: "21 10 504 715 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall.2Meg/US Legal Small: "31 247 583 977 "
+*ImageableArea LegalSmall.4Meg/US Legal Small: "22 26 590 982 "
+*ImageableArea LegalSmall.5Meg/US Legal Small: "22 26 590 982 "
+*ImageableArea LegalSmall.8Meg/US Legal Small: "22 26 590 982 "
+*ImageableArea Monarch.2Meg/Monarch Envelope Center Fed: "178.5 257 433.5 761 "
+*ImageableArea Monarch.4Meg/Monarch Envelope Center Fed: "178.5 257 433.5 761 "
+*ImageableArea Monarch.5Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Monarch.8Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Com10.2Meg/Com10 Envelope Center Fed: "169.5 113 442.5 761 "
+*ImageableArea Com10.4Meg/Com10 Envelope Center Fed: "169.5 113 442.5 761 "
+*ImageableArea Com10.5Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+*ImageableArea Com10.8Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Unknown
+*PaperDimension Letter.2Meg/US Letter: "612 792"
+*PaperDimension Letter.4Meg/US Letter: "612 792"
+*PaperDimension Letter.5Meg/US Letter: "612 792"
+*PaperDimension Letter.8Meg/US Letter: "612 792"
+*PaperDimension Legal.2Meg/US Legal: "612 1008"
+*PaperDimension Legal.4Meg/US Legal: "612 1008"
+*PaperDimension Legal.5Meg/US Legal: "612 1008"
+*PaperDimension Legal.8Meg/US Legal: "612 1008"
+*PaperDimension A4.2Meg/A4: "595 842"
+*PaperDimension A4.4Meg/A4: "595 842"
+*PaperDimension A4.5Meg/A4: "595 842"
+*PaperDimension A4.8Meg/A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall.2Meg/US Legal Small: "612 1008"
+*PaperDimension LegalSmall.4Meg/US Legal Small: "612 1008"
+*PaperDimension LegalSmall.5Meg/US Legal Small: "612 1008"
+*PaperDimension LegalSmall.8Meg/US Legal Small: "612 1008"
+*PaperDimension Monarch.2Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.4Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.5Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.8Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Com10.2Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.4Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.5Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.8Meg/Com10 Envelope Center Fed: "610 792"
+
+*OpenUI *ManualFeed/Manual Feed: 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 *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% === Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard ROM
+*Font Courier: Standard "(002.003)" Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" 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.008S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" 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.006)" Standard 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: laser doide or scanning mirror malfunction"
+*Status: "PrinterError: test printing stage"
+*Status: "PrinterError: service call"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "out of paper"
+*PrinterError: "no paper tray"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "laser doide or scanning mirror malfunction"
+*PrinterError: "test printing stage"
+*PrinterError: "service call"
+
+*% 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"
+
+*% For "LaserWriter IIf" version 2010.113
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 024988 or 025508
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple LaserWriter IIf
diff --git a/psprint_config/configuration/ppds/APL_IIG1.PS b/psprint_config/configuration/ppds/APL_IIG1.PS
new file mode 100644
index 000000000000..650d2b4832fb
--- /dev/null
+++ b/psprint_config/configuration/ppds/APL_IIG1.PS
@@ -0,0 +1,483 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "3.0"
+*PCFileName: "APLWIIG1.PPD"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*Product: "(LaserWriter IIg)"
+*PSVersion: "(2010.113) 1"
+*ModelName: "Apple LaserWriter IIg v2010.113"
+*NickName: "Apple LaserWriter IIg v2010.113"
+
+*% ==== Options and Constraints =====
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: None
+*Option1 None/Minimum 4 MB: ""
+*Option1 5Meg/Upgrade to 5 MB: ""
+*Option1 8Meg/Upgrade to 8 MB: ""
+*?Option1: "
+ (None)currentsystemparams/RamSize get
+ dup 5242880 eq{pop pop(5Meg)}{8388608 eq{pop(8Meg)}if}ifelse
+ =
+"
+*End
+*CloseUI: *Option1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 None *PageSize Letter.5Meg
+*UIConstraints: *Option1 None *PageSize Letter.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Letter.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Letter.5Meg
+
+*UIConstraints: *Option1 None *PageSize A4.5Meg
+*UIConstraints: *Option1 None *PageSize A4.8Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 5Meg *PageSize A4.8Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.4Meg
+*UIConstraints: *Option1 8Meg *PageSize A4.5Meg
+
+*UIConstraints: *Option1 None *PageSize Legal.5Meg
+*UIConstraints: *Option1 None *PageSize Legal.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Legal.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Legal.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Legal.5Meg
+
+*UIConstraints: *Option1 5Meg *PageSize LetterSmall
+*UIConstraints: *Option1 5Meg *PageSize A4Small
+
+*UIConstraints: *Option1 None *PageSize LegalSmall.5Meg
+*UIConstraints: *Option1 None *PageSize LegalSmall.8Meg
+*UIConstraints: *Option1 5Meg *PageSize LegalSmall.4Meg
+*UIConstraints: *Option1 5Meg *PageSize LegalSmall.8Meg
+*UIConstraints: *Option1 8Meg *PageSize LegalSmall.4Meg
+*UIConstraints: *Option1 8Meg *PageSize LegalSmall.5Meg
+
+*UIConstraints: *Option1 None *PageSize Monarch.5Meg
+*UIConstraints: *Option1 None *PageSize Monarch.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Monarch.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Monarch.5Meg
+
+*UIConstraints: *Option1 None *PageSize Com10.5Meg
+*UIConstraints: *Option1 None *PageSize Com10.8Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 5Meg *PageSize Com10.8Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.4Meg
+*UIConstraints: *Option1 8Meg *PageSize Com10.5Meg
+
+*% === Basic Capabilities ===============
+*FreeVM: "509428"
+*LanguageLevel: "2"
+*Protocols: BCP
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+*Emulators: hplj
+*StartEmulator_hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hplj: "<1B7F>0"
+*Throughput: "8"
+*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
+*DefaultResolution: 300dpi
+*?Resolution: "
+ save
+ currentpagedevice /HWResolution get
+ 0 get
+ ( ) cvs print (dpi) = flush
+ restore"
+*End
+
+*OpenUI *MirrorPrint: Boolean
+*OrderDependency: 50 AnySetup *MirrorPrint
+*DefaultMirrorPrint: False
+*MirrorPrint True: "1 dict dup /MirrorPrint true put setpagedevice"
+*MirrorPrint False: "1 dict dup /MirrorPrint false put setpagedevice"
+*?MirrorPrint: "
+save
+ currentpagedevice /MirrorPrint get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *MirrorPrint
+
+*% === PhotoGrade (bits per pixel) =============
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: 4
+*BitsPerPixel 4/On: "1 dict dup /PreRenderingEnhance true put setpagedevice"
+*BitsPerPixel None/Off: "1 dict dup /PreRenderingEnhance false put setpagedevice"
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% === FinePrint (smoothing) =============
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: True
+*Smoothing True/On: "1 dict dup /PostRenderingEnhance true put setpagedevice"
+*Smoothing False/Off: "1 dict dup /PostRenderingEnhance false put setpagedevice"
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*% === Halftone Information ===============
+*AccurateScreensSupport: True
+*ScreenFreq: "106.0"
+*ScreenAngle: "45"
+*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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Unknown
+*PageSize Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.4Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.5Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Legal.8Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageSize B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageSize LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageSize A4Small/A4 Small: "userdict /a4small get exec"
+*PageSize LegalSmall.4Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize LegalSmall.5Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize LegalSmall.8Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageSize Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*?PageSize: "
+ save currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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
+
+*% These entries will set up the frame buffer. Usually used with manual feed.
+*OpenUI *PageRegion: PickOne
+*OrderDependency: 40 AnySetup *PageRegion
+*DefaultPageRegion: Unknown
+*PageRegion Letter.4Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.5Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Letter.8Meg/US Letter: "2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.4Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.5Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Legal.8Meg/US Legal: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.4Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.5Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion A4.8Meg/A4: "2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*PageRegion B5: "2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageRegion A4Small/A4 Small: "userdict /a4small get exec"
+*PageRegion LegalSmall.4Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LegalSmall.5Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion LegalSmall.8Meg/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.4Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.5Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch.8Meg/Monarch Envelope Center Fed: "2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.4Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.5Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Com10.8Meg/Com10 Envelope Center Fed: "2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Unknown
+*ImageableArea Letter.4Meg/US Letter: "31 31 583 761 "
+*ImageableArea Letter.5Meg/US Letter: "31 31 583 761 "
+*ImageableArea Letter.8Meg/US Letter: "15 8 597 784 "
+*ImageableArea Legal.4Meg/US Legal: "31 247 583 977 "
+*ImageableArea Legal.5Meg/US Legal: "15 8 597 1000 "
+*ImageableArea Legal.8Meg/US Legal: "15 8 597 1000 "
+*ImageableArea A4.4Meg/A4: "27 31 571 811 "
+*ImageableArea A4.5Meg/A4: "29 31 567 812 "
+*ImageableArea A4.8Meg/A4: "13 10 581 832 "
+*ImageableArea B5: "21 10 504 715 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall.4Meg/US Legal Small: "31 247 583 977 "
+*ImageableArea LegalSmall.5Meg/US Legal Small: "22 26 590 982 "
+*ImageableArea LegalSmall.8Meg/US Legal Small: "22 26 590 982 "
+*ImageableArea Monarch.4Meg/Monarch Envelope Center Fed: "178.5 257 433.5 761 "
+*ImageableArea Monarch.5Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Monarch.8Meg/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Com10.4Meg/Com10 Envelope Center Fed: "169.5 113 442.5 761 "
+*ImageableArea Com10.5Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+*ImageableArea Com10.8Meg/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Unknown
+*PaperDimension Letter.4Meg/US Letter: "612 792"
+*PaperDimension Letter.5Meg/US Letter: "612 792"
+*PaperDimension Letter.8Meg/US Letter: "612 792"
+*PaperDimension Legal.4Meg/US Legal: "612 1008"
+*PaperDimension Legal.5Meg/US Legal: "612 1008"
+*PaperDimension Legal.8Meg/US Legal: "612 1008"
+*PaperDimension A4.4Meg/A4: "595 842"
+*PaperDimension A4.5Meg/A4: "595 842"
+*PaperDimension A4.8Meg/A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall.4Meg/US Legal Small: "612 1008"
+*PaperDimension LegalSmall.5Meg/US Legal Small: "612 1008"
+*PaperDimension LegalSmall.8Meg/US Legal Small: "612 1008"
+*PaperDimension Monarch.4Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.5Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Monarch.8Meg/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Com10.4Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.5Meg/Com10 Envelope Center Fed: "610 792"
+*PaperDimension Com10.8Meg/Com10 Envelope Center Fed: "610 792"
+
+*OpenUI *ManualFeed/Manual Feed: 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 *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% === Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard ROM
+*Font Courier: Standard "(002.003)" Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" 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.008S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" 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.006)" Standard 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: laser doide or scanning mirror malfunction"
+*Status: "PrinterError: test printing stage"
+*Status: "PrinterError: service call"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+*Source: "EtherTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "out of paper"
+*PrinterError: "no paper tray"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "laser doide or scanning mirror malfunction"
+*PrinterError: "test printing stage"
+*PrinterError: "service call"
+
+*% Color Separation Information =========================
+*DefaultColorSep: ProcessBlack.106lpi.300dpi/106 lpi / 300 dpi
+
+*InkName: ProcessBlack/Process Black
+*InkName: CustomColor/Custom Color
+*InkName: ProcessCyan/Process Cyan
+*InkName: ProcessMagenta/Process Magenta
+*InkName: ProcessYellow/Process Yellow
+
+*% 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 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"
+
+*% For "LaserWriter IIg" version 2010.113
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 022027 or 022510
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple LaserWriter IIg
diff --git a/psprint_config/configuration/ppds/APL_NTR1.PS b/psprint_config/configuration/ppds/APL_NTR1.PS
new file mode 100644
index 000000000000..9a2b4174d9ed
--- /dev/null
+++ b/psprint_config/configuration/ppds/APL_NTR1.PS
@@ -0,0 +1,416 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.10"
+*PCFileName: "APLWNTR1.PPD"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*Product: "(LaserWriter Personal NTR)"
+*PSVersion: "(2010.129) 1"
+*ModelName: "Apple Personal LaserWriter NTR"
+*ShortNickName: "Apple Personal LaserWriter NTR"
+*NickName: "Apple Personal LaserWriter NTR v2010.129"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Optional Paper Cassette: Boolean
+*DefaultOption1: False
+*Option1 True/Installed: ""
+*Option1 False/Not Installed: ""
+*?Option1: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 1 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option1
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Option1 False *InputSlot Lower
+
+*% General Information and Defaults ===============
+*FreeVM: "1203433"
+*LanguageLevel: "2"
+*Protocols: BCP
+*ColorDevice: False
+*VariablePaperSize: False
+*FileSystem: False
+*Emulators: hplj
+*StartEmulate hplj: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulate hplj: "<1B7F>0"
+*Throughput: "4"
+*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
+
+*DefaultResolution: 300dpi
+*?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: "
+{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 ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageSize A4Small/A4 Small: "userdict /a4small get exec"
+*PageSize LegalSmall/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageSize Monarch/Monarch Envelope Edge Fed: "
+ 2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Com10/Com10 Envelope Edge Fed: "
+ 2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 4 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) 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/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LetterSmall/US Letter Small: "userdict /lettersmall get exec"
+*PageRegion A4Small/A4 Small: "userdict /a4small get exec"
+*PageRegion LegalSmall/US Legal Small: "2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*PageRegion Monarch/Monarch Envelope Edge Fed: "
+ 2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Com10/Com10 Envelope Edge Fed: "
+ 2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*End
+
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "14.16 5.4001 597.84 773.4 "
+*ImageableArea Legal/US Legal: "14.16 5.4 597.84 989.4 "
+*ImageableArea A4: "12.9601 3.6001 581.28 825.6 "
+*ImageableArea B5: "16.08 5.4 499.92 711.96 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "16.16 263 272 767.4 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "16.16 119 289 767.4 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion Upper: True
+
+*OpenUI *ManualFeed/Manual Feed: 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 *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Multipurpose Tray : "
+ 1 dict dup /ManualFeed true put setpagedevice"
+*End
+*InputSlot Lower/Paper Cassette: "
+ currentpagedevice /InputAttributes get
+ 1 get dup
+ null eq {pop}
+ { dup
+ /InputAttributes
+ 1 dict dup /Priority [1 0] put
+ put setpagedevice
+ } ifelse "
+*End
+*?InputSlot: "
+save
+ 2 dict
+ dup /1 (Lower) put
+ dup /0 (Upper) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard Standard ROM
+*Font Courier: Standard "(002.003)" Standard Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" Standard Standard ROM
+*Font Helvetica: Standard "(001.006S)" Standard Standard ROM
+*Font Helvetica-Bold: Standard "(001.007S)" Standard Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.007S)" Standard Standard ROM
+*Font Helvetica-Narrow: Standard "(001.006S)" Standard Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.007S)" Standard Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.007S)" Standard Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.006S)" Standard Standard ROM
+*Font Helvetica-Oblique: Standard "(001.006S)" Standard Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.008S)" Standard Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" Standard Standard ROM
+*Font Palatino-Bold: Standard "(001.005S)" Standard Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.005S)" Standard Standard ROM
+*Font Palatino-Italic: Standard "(001.005S)" Standard Standard ROM
+*Font Palatino-Roman: Standard "(001.005S)" Standard Standard ROM
+*Font Symbol: Special "(001.007S)" Special Special ROM
+*Font Times-Bold: Standard "(001.007S)" Standard Standard ROM
+*Font Times-BoldItalic: Standard "(001.009S)" Standard Standard ROM
+*Font Times-Italic: Standard "(001.007S)" Standard Standard ROM
+*Font Times-Roman: Standard "(001.007S)" Standard Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.006)" Standard Standard ROM
+*Font ZapfDingbats: Special "(001.004S)" Special 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: "idle"
+*Status: "busy"
+*Status: "waiting"
+*Status: "printing"
+*Status: "warming up"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: paper exit misfeed"
+*Status: "PrinterError: lower tray: out of paper"
+*Status: "PrinterError: lower tray: no paper tray"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+*Status: "PrinterError: laser diode or scanning mirror malfunction"
+*Status: "PrinterError: test printing stage"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: upper tray: out of paper"
+*Status: "PrinterError: upper tray: manual feed timeout"
+*Status: "PrinterError: waiting for manual feed"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+*Source: "Parallel"
+*Source: "Internal"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "paper exit misfeed"
+*PrinterError: "lower tray: out of paper"
+*PrinterError: "lower tray: no paper tray"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+*PrinterError: "laser diode or scanning mirror malfunction"
+*PrinterError: "test printing stage"
+*PrinterError: "service call"
+*PrinterError: "upper tray: out of paper"
+*PrinterError: "upper tray: manual feed timeout"
+*PrinterError: "waiting for manual feed"
+
+*%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"
+
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 014773 or 015189
+*% depending on the filesystem it resides in.
+*% end of PPD file for Apple Personal LaserWriter NTR
diff --git a/psprint_config/configuration/ppds/APNT518_.PS b/psprint_config/configuration/ppds/APNT518_.PS
new file mode 100644
index 000000000000..d4982b046cba
--- /dev/null
+++ b/psprint_config/configuration/ppds/APNT518_.PS
@@ -0,0 +1,351 @@
+*PPD-Adobe: "4.0"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.0"
+*FileVersion: "2.8"
+*PCFileName: "A_PNT518.PPD"
+*LanguageVersion: English
+*Product: "(LaserWriter Personal NT)"
+*PSVersion: "(51.8) 0"
+*ModelName: "Apple LaserWriter Personal NT"
+*NickName: "LaserWriter Personal NT v51.8"
+
+*% General Information and Defaults ===============
+*FreeVM: "402366"
+*LanguageLevel: "1"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "4"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ 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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "statusdict begin lettertray end"
+*PageSize Legal/US Legal: "statusdict begin legaltray end"
+*PageSize A4: "statusdict begin a4tray end"
+*PageSize B5: "statusdict begin b5tray end"
+*PageSize LetterSmall/US Letter Small: "statusdict begin lettertray end lettersmall"
+*PageSize A4Small/A4 Small: "statusdict begin a4tray end a4small"
+*PageSize LegalSmall/US Legal Small: "legal"
+*PageSize Monarch/Monarch Envelope Edge Fed: "statusdict begin lettertray end"
+*PageSize Com10/Com10 Envelope Edge Fed: "statusdict begin lettertray end"
+*?PageSize: "
+save
+7 dict
+ dup /getregion {newpath clippath pathbbox pop pop pop ceiling cvi} put
+ dup /llxltrsml 31 put
+ dup /llxa4sml 27 put
+ dup /lettertray {getregion llxltrsml eq {(LetterSmall)}{(Letter)}ifelse} put
+ dup /a4tray { getregion llxa4sml eq {(A4Small)}{(A4)}ifelse } put
+ dup /legaltray (Legal) put
+ dup /b5tray (B5) put
+ statusdict begin papersize end
+ 3 1 roll {get} stopped {(Unknown)}if
+ exch not { print (.Transverse) }if
+ = flush
+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/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion A4: "a4"
+*PageRegion B5: "b5"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion A4Small/A4 Small: "a4small"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion Monarch/Monarch Envelope Edge Fed: "letter"
+*PageRegion Com10/Com10 Envelope Edge Fed: "letter"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "15 6 597 773 "
+*ImageableArea Legal/US Legal: "15 6 597 989 "
+*ImageableArea A4: "13 4 577 825 "
+*ImageableArea B5: "17 6 495 711 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "17 263 272 767 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "17 119 290 767 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion All: True
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Lower
+*InputSlot Lower/Multipurpose Tray: "1 statusdict begin setpapertray end"
+*InputSlot Upper/Paper Cassette: "0 statusdict begin setpapertray end"
+*?InputSlot: "
+save
+ [ (Upper) (Lower) ] statusdict begin papertray end
+ {get exec} stopped { pop pop (Unknown)} if = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+save
+ statusdict /manualfeed get {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*DefaultOutputOrder: Normal
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.001)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.001)" Standard ROM
+*Font Bookman-Light: Standard "(001.001)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.001)" Standard ROM
+*Font Courier: Standard "(002.002)" Standard ROM
+*Font Courier-Bold: Standard "(002.002)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.002)" Standard ROM
+*Font Courier-Oblique: Standard "(002.002)" Standard ROM
+*Font Emulatorfont: Special "(001.000)" Special ROM
+*Font Emulatorfont-Bold: Special "(001.000)" Special ROM
+*Font Helvetica: Standard "(001.002)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.002)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.004)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.003)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.004)" Standard ROM
+*Font Palatino-Bold: Standard "(001.002)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.002)" Standard ROM
+*Font Palatino-Italic: Standard "(001.002)" Standard ROM
+*Font Palatino-Roman: Standard "(001.001)" Standard ROM
+*Font Symbol: Special "(001.003)" Special ROM
+*Font Times-Bold: Standard "(001.002)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.004)" Standard ROM
+*Font Times-Italic: Standard "(001.002)" Standard ROM
+*Font Times-Roman: Standard "(001.002)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.003)" Standard ROM
+*Font ZapfDingbats: Special "(001.002)" Special ROM
+*?FontQuery: "
+save
+ /str 100 string dup 0 (fonts/) putinterval def
+ {
+ count 1 gt
+ {
+ exch dup str 6 94 getinterval cvs
+ (/) print print (:) print
+ FontDirectory exch known
+ {(Yes)}{(No)} ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+restore
+"
+*End
+
+*?FontList: "
+save
+ FontDirectory { pop == } bind forall flush
+ (*) = 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"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: lower tray: out of paper"
+*Status: "PrinterError: lower tray: no papertray"
+*Status: "PrinterError: upper tray: out of paper"
+*Status: "PrinterError: upper tray: manual feed timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "serial9"
+*Source: "serial25"
+*Source: "AppleTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "warming up"
+*PrinterError: "cover open"
+*PrinterError: "service call"
+*PrinterError: "paper jam"
+*PrinterError: "lower tray: out of paper"
+*PrinterError: "lower tray: no papertray"
+*PrinterError: "upper tray: out of paper"
+*PrinterError: "upper tray: manual feed timeout"
+
+*%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"
+
+*% For "LaserWriter-Personal II NT" version 51.8
+*% Produced by "BuildPPD.ps" version 3.0 edit 58
+*% Converted to meet 4.0 specification
+*% Last Edit Date: May 21 1993
+*% The byte count of this file should be exactly 012605 or 012956
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter-Personal II NT
diff --git a/psprint_config/configuration/ppds/APNTX501.PS b/psprint_config/configuration/ppds/APNTX501.PS
new file mode 100644
index 000000000000..caebd1381897
--- /dev/null
+++ b/psprint_config/configuration/ppds/APNTX501.PS
@@ -0,0 +1,351 @@
+*PPD-Adobe: "4.0"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.0"
+*FileVersion: "1.3"
+*PCFileName: "APNTX501.PPD"
+*LanguageVersion: English
+*Product: "(LaserWriter II NTX)"
+*PSVersion: "(50.5) 2"
+*ModelName: "Apple LaserWriter II NTX v50.5"
+*NickName: "Apple LaserWriter II NTX v50.5"
+
+*% General Information and Defaults ===============
+*FreeVM: "4076994"
+*Extensions: FileSystem Composite
+*LanguageLevel: "1"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+save
+ statusdict /diskonline get exec {(True)}{(False)} ifelse = flush
+restore
+"
+*End
+*Throughput: "8"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ 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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "statusdict /lettertray get exec"
+*PageSize Legal/US Legal: "statusdict /legaltray get exec"
+*PageSize A4: "statusdict /a4tray get exec"
+*PageSize B5: "statusdict /b5tray get exec"
+*PageSize LetterSmall/US Letter Small: "statusdict /lettertray get exec lettersmall"
+*PageSize A4Small/A4 Small: "statusdict /a4tray get exec a4small"
+*PageSize LegalSmall/US Legal Small: "legal"
+*PageSize Monarch/Monarch Envelope Center Fed: "statusdict /lettertray get exec"
+*PageSize Com10/Com10 Envelope Center Fed: "statusdict /lettertray get exec"
+*?PageSize: "
+save
+ [(Letter)(Legal)] statusdict /pagetype get exec
+ {get} stopped { pop pop (Unknown)} if = flush
+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/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion A4: "a4"
+*PageRegion B5: "b5"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion A4Small/A4 Small: "a4small"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion Monarch/Monarch Envelope Center Fed: "letter"
+*PageRegion Com10/Com10 Envelope Center Fed: "letter"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "15 8 597 784 "
+*ImageableArea Legal/US Legal: "15 8 597 1000 "
+*ImageableArea A4: "13 10 577 832 "
+*ImageableArea B5: "21 10 500 715 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Com10/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Center Fed: "610 792"
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+save
+ statusdict /manualfeed get {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*DefaultOutputOrder: Normal
+
+*RequiresPageRegion All: True
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AGaramond-Bold: Standard "(001.000)" Standard ROM
+*Font AGaramond-BoldItalic: Standard "(001.000)" Standard ROM
+*Font AGaramond-Italic: Standard "(001.000)" Standard ROM
+*Font AGaramond-Regular: Standard "(001.000)" Standard ROM
+*Font AGaramond-Semibold: Standard "(001.000)" Standard ROM
+*Font AGaramond-SemiboldItalic: Standard "(001.000)" Standard ROM
+*Font AGaramond-Titling: Standard "(001.000)" Standard ROM
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.001)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.001)" Standard ROM
+*Font Bookman-Light: Standard "(001.001)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.001)" Standard ROM
+*Font Courier: Standard "(001.004)" Standard ROM
+*Font Courier-Bold: Standard "(001.004)" Standard ROM
+*Font Courier-BoldOblique: Standard "(001.004)" Standard ROM
+*Font Courier-Oblique: Standard "(001.004)" Standard ROM
+*Font Helvetica: Standard "(001.002)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.002)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.004)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.003)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.004)" Standard ROM
+*Font Palatino-Bold: Standard "(001.002)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.002)" Standard ROM
+*Font Palatino-Italic: Standard "(001.002)" Standard ROM
+*Font Palatino-Roman: Standard "(001.001)" Standard ROM
+*Font Symbol: Special "(001.003)" Special ROM
+*Font Times-Bold: Standard "(001.002)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.004)" Standard ROM
+*Font Times-Italic: Standard "(001.002)" Standard ROM
+*Font Times-Roman: Standard "(001.002)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.003)" Standard ROM
+*Font ZapfDingbats: Special "(001.002)" Special ROM
+
+*?FontQuery: "
+save
+ /str 100 string dup 0 (fonts/) putinterval def
+ {
+ count 1 gt
+ {
+ exch dup str 6 94 getinterval cvs
+ (/) print dup print (:) print exch
+ FontDirectory exch known
+ { pop (Yes) }
+ {
+ length 6 add str 0 3 -1 roll getinterval
+ mark exch status
+ {cleartomark (Yes)}{cleartomark (No)} ifelse
+ } ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+restore
+"
+*End
+
+*?FontList: "
+save
+ FontDirectory { pop == } bind forall flush
+ /filenameforall where
+ {
+ pop (fonts/*)
+ { dup length 6 sub 6 exch getinterval cvn == } bind
+ 128 string filenameforall flush
+ } if
+ (*) = 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"
+*Status: "PrinterError: timeout, clearing printer"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: no toner cartridge"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "serial9"
+*Source: "serial25"
+*Source: "AppleTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "timeout, clearing printer"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "service call"
+*PrinterError: "warming up"
+*PrinterError: "no toner cartridge"
+
+*%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"
+
+*% Produced by "bldppd41.ps" version 4.0 edit 9
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 012379 or 012730
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter II NTX
diff --git a/psprint_config/configuration/ppds/APNTXJ1_.PS b/psprint_config/configuration/ppds/APNTXJ1_.PS
new file mode 100644
index 000000000000..afb7edd265b1
--- /dev/null
+++ b/psprint_config/configuration/ppds/APNTXJ1_.PS
@@ -0,0 +1,412 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.5"
+*PCFileName: "AP_NTXJ1.PPD"
+*LanguageVersion: English
+*Product: "(LaserWriter II NTX)"
+*PSVersion: "(50.5) 2"
+*ModelName: "Apple LaserWriter II NTX-J v50.5"
+*ShortNickName: "Apple LaserWriterII NTX-J v50.5"
+*NickName: "Apple LaserWriter II NTX-J v50.5"
+
+*% General Information and Defaults ===============
+*FreeVM: "4076994"
+*Extensions: FileSystem Composite
+*LanguageLevel: "1"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+save
+ statusdict /diskonline get exec {(True)}{(False)} ifelse = flush
+restore
+"
+*End
+*Throughput: "8"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ 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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "statusdict /lettertray get exec"
+*PageSize Legal/US Legal: "statusdict /legaltray get exec"
+*PageSize A4: "statusdict /a4tray get exec"
+*PageSize B5: "statusdict /b5tray get exec"
+*PageSize LetterSmall/US Letter Small: "statusdict /lettertray get exec lettersmall"
+*PageSize A4Small/A4 Small: "statusdict /a4tray get exec a4small"
+*PageSize LegalSmall/US Legal Small: "legal"
+*PageSize Monarch/Monarch Envelope Center Fed: "statusdict /lettertray get exec"
+*PageSize Com10/Com10 Envelope Center Fed: "statusdict /lettertray get exec"
+*?PageSize: "
+save
+ [(Letter)(Legal)] statusdict /pagetype get exec
+ {get} stopped { pop pop (Unknown)} if = flush
+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/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion A4: "a4"
+*PageRegion B5: "b5"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion A4Small/A4 Small: "a4small"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion Monarch/Monarch Envelope Center Fed: "letter"
+*PageRegion Com10/Com10 Envelope Center Fed: "letter"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "15 8 597 784 "
+*ImageableArea Legal/US Legal: "15 8 597 1000 "
+*ImageableArea A4: "13 10 577 832 "
+*ImageableArea B5: "21 10 500 715 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Center Fed: "178.5 269 433.5 773 "
+*ImageableArea Com10/Com10 Envelope Center Fed: "169.5 125 442.5 773 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Center Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Center Fed: "610 792"
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+save
+ statusdict /manualfeed get {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*DefaultOutputOrder: Normal
+
+*RequiresPageRegion All: True
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AGaramond-Bold: Standard "(001.000)" Standard ROM
+*Font AGaramond-BoldItalic: Standard "(001.000)" Standard ROM
+*Font AGaramond-Italic: Standard "(001.000)" Standard ROM
+*Font AGaramond-Regular: Standard "(001.000)" Standard ROM
+*Font AGaramond-Semibold: Standard "(001.000)" Standard ROM
+*Font AGaramond-SemiboldItalic: Standard "(001.000)" Standard ROM
+*Font AGaramond-Titling: Standard "(001.000)" Standard ROM
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.001)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.001)" Standard ROM
+*Font Bookman-Light: Standard "(001.001)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.001)" Standard ROM
+*Font Courier: Standard "(001.004)" Standard ROM
+*Font Courier-Bold: Standard "(001.004)" Standard ROM
+*Font Courier-BoldOblique: Standard "(001.004)" Standard ROM
+*Font Courier-Oblique: Standard "(001.004)" Standard ROM
+*Font GothicBBB-Medium-78-EUC-H: EUC "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-EUC-V: EUC "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-H: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-RKSJ-H: RKSJ "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-RKSJ-V: RKSJ "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-SJ-H: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-SJ-V: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-78-V: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-83pv-RKSJ-H: RKSJ "(000.000)" 83pv Disk
+*Font GothicBBB-Medium-EUC-H: EUC "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-EUC-V: EUC "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-Ext-EUC-H: EUC "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-Ext-EUC-V: EUC "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-Ext-H: JIS "(000.000)" Ext Disk
+*Font GothicBBB-Medium-Ext-RKSJ-H: RKSJ "(000.000)" Ext Disk
+*Font GothicBBB-Medium-Ext-RKSJ-V: RKSJ "(000.000)" Ext Disk
+*Font GothicBBB-Medium-Ext-SJ-H: JIS "(000.000)" Ext Disk
+*Font GothicBBB-Medium-Ext-SJ-V: JIS "(000.000)" Ext Disk
+*Font GothicBBB-Medium-Ext-V: JIS "(000.000)" Ext Disk
+*Font GothicBBB-Medium-H: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-NWP-H: JIS "(000.000)" NWP Disk
+*Font GothicBBB-Medium-NWP-V: JIS "(000.000)" NWP Disk
+*Font GothicBBB-Medium-RKSJ-H: RKSJ "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-RKSJ-V: RKSJ "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-SJ-H: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-SJ-V: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium-V: JIS "(000.000)" JIS-83 Disk
+*Font GothicBBB-Medium.Roman: Special "(000.000)" Special Disk
+*Font GothicBBB-Medium.WP-Symbol: Special "(000.000)" Special Disk
+*Font Helvetica: Standard "(001.002)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-Bold: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-BoldOblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Narrow-Oblique: Standard "(001.002)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.002)" Standard ROM
+*Font Mincho-PC-Hiragana: Special "(000.000)" Special Disk
+*Font Mincho-PC-Katakana: Special "(000.000)" Special Disk
+*Font NewCenturySchlbk-Bold: Standard "(001.006)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.004)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.003)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.004)" Standard ROM
+*Font Palatino-Bold: Standard "(001.002)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.002)" Standard ROM
+*Font Palatino-Italic: Standard "(001.002)" Standard ROM
+*Font Palatino-Roman: Standard "(001.001)" Standard ROM
+*Font Ryumin-Light-78-EUC-H: EUC "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-EUC-V: EUC "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-H: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-RKSJ-H: RKSJ "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-RKSJ-V: RKSJ "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-SJ-H: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-SJ-V: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-78-V: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-83pv-RKSJ-H: RKSJ "(000.000)" 83pv Disk
+*Font Ryumin-Light-EUC-H: EUC "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-EUC-V: EUC "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-Ext-EUC-H: EUC "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-Ext-EUC-V: EUC "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-Ext-H: JIS "(000.000)" Ext Disk
+*Font Ryumin-Light-Ext-RKSJ-H: RKSJ "(000.000)" Ext Disk
+*Font Ryumin-Light-Ext-RKSJ-V: RKSJ "(000.000)" Ext Disk
+*Font Ryumin-Light-Ext-SJ-H: JIS "(000.000)" Ext Disk
+*Font Ryumin-Light-Ext-SJ-V: JIS "(000.000)" Ext Disk
+*Font Ryumin-Light-Ext-V: JIS "(000.000)" Ext Disk
+*Font Ryumin-Light-H: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-NWP-H: JIS "(000.000)" NWP Disk
+*Font Ryumin-Light-NWP-V: JIS "(000.000)" NWP Disk
+*Font Ryumin-Light-RKSJ-H: RKSJ "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-RKSJ-V: RKSJ "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-SJ-H: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-SJ-V: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light-V: JIS "(000.000)" JIS-83 Disk
+*Font Ryumin-Light.Roman: Special "(000.000)" Special Disk
+*Font Ryumin-Light.WP-Symbol: Special "(000.000)" Special Disk
+*Font Symbol: Special "(001.003)" Special ROM
+*Font Times-Bold: Standard "(001.002)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.004)" Standard ROM
+*Font Times-Italic: Standard "(001.002)" Standard ROM
+*Font Times-Roman: Standard "(001.002)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.003)" Standard ROM
+*Font ZapfDingbats: Special "(001.002)" Special ROM
+
+*?FontQuery: "
+save
+ /str 100 string dup 0 (fonts/) putinterval def
+ {
+ count 1 gt
+ {
+ exch dup str 6 94 getinterval cvs
+ (/) print dup print (:) print exch
+ FontDirectory exch known
+ { pop (Yes) }
+ {
+ length 6 add str 0 3 -1 roll getinterval
+ mark exch status
+ {cleartomark (Yes)}{cleartomark (No)} ifelse
+ } ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+restore
+"
+*End
+
+*?FontList: "
+save
+ FontDirectory { pop == } bind forall flush
+ /filenameforall where
+ {
+ pop (fonts/*)
+ { dup length 6 sub 6 exch getinterval cvn == } bind
+ 128 string filenameforall flush
+ } if
+ (*) = 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"
+*Status: "PrinterError: timeout, clearing printer"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: no toner cartridge"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "serial9"
+*Source: "serial25"
+*Source: "AppleTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "timeout, clearing printer"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "service call"
+*PrinterError: "warming up"
+*PrinterError: "no toner cartridge"
+
+*%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"
+
+*% Produced by "bldppd41.ps" version 4.0 edit 9
+*% Last Edit Date: Jun 1 1993
+*% The byte count of this file should be exactly 015866 or 016278
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter II NTX-J
diff --git a/psprint_config/configuration/ppds/APPL_230.PS b/psprint_config/configuration/ppds/APPL_230.PS
new file mode 100644
index 000000000000..b44008ce2e0c
--- /dev/null
+++ b/psprint_config/configuration/ppds/APPL_230.PS
@@ -0,0 +1,350 @@
+*PPD-Adobe: "4.0"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.0"
+*FileVersion: "3.3"
+*PCFileName: "APPLE230.PPD"
+*LanguageVersion: English
+*Product: "(LaserWriter)"
+*PSVersion: "(23.0) 0"
+*ModelName: "Apple LaserWriter"
+*NickName: "Apple LaserWriter v23.0"
+
+*% General Information and Defaults ===============
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FreeVM: "173936"
+*LanguageLevel: "1"
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "8"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ 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: "
+{dup mul exch dup mul add 1.0 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 }"
+
+*% Paper Handling ===================
+*% Use these entries to set paper size most of the time, unless there is
+*% specific reason to use PageRegion.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "letter"
+*PageSize Legal/US Legal: "legal"
+*PageSize LetterSmall/US Letter Small: "lettersmall"
+*PageSize LegalSmall/US Legal Small: "legal"
+*PageSize A4: "a4"
+*PageSize Monarch/Monarch Envelope Edge Fed: "letter"
+*PageSize Com10/Com10 Envelope Edge Fed: "letter"
+*?PageSize: "
+save
+ [(Letter)(Legal)] statusdict /pagetype get exec
+ {get} stopped { pop pop (Unknown)} if = flush
+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/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion A4: "a4"
+*PageRegion Monarch/Monarch Envelope Edge Fed: "letter"
+*PageRegion Com10/Com10 Envelope Edge Fed: "letter"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "18 8 593 784 "
+*ImageableArea Legal/US Legal: "65 37 547 972 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea A4:"17 22 578 820 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "19 269 274 773 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "19 125 292 773 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion All: True
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+save
+ statusdict /manualfeed get {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*DefaultOutputOrder: Reverse
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font Courier-Bold: Standard "(001.000)" Standard ROM
+*Font Courier-BoldOblique: Standard "(001.000)" Standard ROM
+*Font Courier-Oblique: Standard "(001.000)" Standard ROM
+*Font Helvetica: Standard "(001.001)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.001)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.000)" Standard ROM
+*Font Helvetica-Oblique: Standard "(001.000)" Standard ROM
+*Font Symbol: Special "(001.001)" Special ROM
+*Font Times-Bold: Standard "(001.001)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.001)" Standard ROM
+*Font Times-Italic: Standard "(001.001)" Standard ROM
+*Font Times-Roman: Standard "(001.000)" Standard ROM
+*?FontQuery: "
+save
+ /str 100 string dup 0 (fonts/) putinterval def
+ {
+ count 1 gt
+ {
+ exch dup str 6 94 getinterval cvs
+ (/) print print (:) print
+ FontDirectory exch known
+ {(Yes)}{(No)} ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+restore
+"
+*End
+
+*?FontList: "
+save
+ FontDirectory { pop == } bind flush forall (*) = 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: "PrinterError: timeout, clearing printer"
+*Status: "PrinterError: timeout"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: no toner cartridge"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: resetting printer"
+*Status: "PrinterError: manual feed timeout"
+*Status: "PrinterError: warming up"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "serial9"
+*Source: "serial25"
+*Source: "AppleTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "timeout, clearing printer"
+*PrinterError: "timeout"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "no toner cartridge"
+*PrinterError: "service call"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "no paper tray"
+*PrinterError: "out of paper"
+*PrinterError: "cover open"
+*PrinterError: "resetting printer"
+*PrinterError: "manual feed timeout"
+*PrinterError: "warming up"
+
+*%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"
+
+*% This patch file inserts a delay before manualfeed to fix a bug
+*% in the version 23 LaserWriter.
+*JobPatchFile 1/ManualFeedDelay: "
+save
+/version23-manualfeedpatch where { pop false } { true }ifelse
+ % we don't do an explicit 'get' since product and version MAY
+ % be in systemdict or statusdict - this technique gets the lookup
+ % without failure
+statusdict begin
+ product (LaserWriter) eq % true if LaserWriter
+ version cvr 23.0 eq % true if version 23
+end
+
+and % only install this patch if both are true
+and % true only if patch is not installed and is for this printer
+ % save object and boolean on stack
+dup { exch restore }if
+% either true OR saveobject false
+dup
+{
+ /version23-manualfeedpatch true def
+ /oldversion23-showpage /showpage load def
+ /showpage % this showpage will wait extra time if manualfeed is true
+ {%
+ statusdict /manualfeed known
+ {% manualfeed known in statusdict
+ statusdict /manualfeed get
+ {% if true then we loop for 5 seconds
+ usertime 5000 add % target usertime
+ { % loop
+ dup usertime sub 0 lt
+ { exit }if
+ }loop
+ pop % pop the usertime off the stac
+ }if
+ }if
+ oldversion23-showpage
+ }bind def
+}if
+not{ restore }if
+"
+*End
+
+*% For "LaserWriter" version 23.0
+*% Produced by "GETapd.ps" version 2.0 edit 45
+*% Converted to meet 4.0 specification
+*% Last Edit Date: Aug 11 1993
+*% The byte count of this file should be exactly 011416 or 011766
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter
diff --git a/psprint_config/configuration/ppds/APPL_380.PS b/psprint_config/configuration/ppds/APPL_380.PS
new file mode 100644
index 000000000000..b0b7143a190a
--- /dev/null
+++ b/psprint_config/configuration/ppds/APPL_380.PS
@@ -0,0 +1,329 @@
+*PPD-Adobe: "4.0"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.0"
+*FileVersion: "3.7"
+*PCFileName: "APPLE380.PPD"
+*LanguageVersion: English
+*Product: "(LaserWriter Plus)"
+*PSVersion: "(38.0) 2"
+*ModelName: "Apple LaserWriter Plus"
+*NickName: "Apple LaserWriter Plus v38.0"
+
+*% General Information and Defaults ===============
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FreeVM: "172872"
+*LanguageLevel: "1"
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "8"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ 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: "
+{dup mul exch dup mul add 1.0 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 }"
+
+*% Paper Handling ===================
+*% Use these entries to set paper size most of the time, unless there is
+*% specific reason to use PageRegion.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "letter"
+*PageSize Legal/US Legal: "legal"
+*PageSize A4: "a4"
+*PageSize B5: "b5"
+*PageSize LetterSmall/US Letter Small: "lettersmall"
+*PageSize A4Small/A4 Small: "a4small"
+*PageSize LegalSmall/US Legal Small: "legal"
+*PageSize Monarch/Monarch Envelope Edge Fed: "letter"
+*PageSize Com10/Com10 Envelope Edge Fed: "letter"
+*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/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion A4: "a4"
+*PageRegion B5: "b5"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion A4Small/A4 Small: "a4small"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion Monarch/Monarch Envelope Edge Fed: "letter"
+*PageRegion Com10/Com10 Envelope Edge Fed: "letter"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "18 7.92 593.76 784.32 "
+*ImageableArea Legal/US Legal: "64.08 42 547.68 966.24 "
+*ImageableArea A4: "17.28 22.08 577.68 819.84 "
+*ImageableArea B5: "2.64 3.12 497.76 705.6 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64.08 42 547.68 966.24 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "338 269 593 773 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "320 125 593 773 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion All: True
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+save
+ statusdict /manualfeed get {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*DefaultOutputOrder: Reverse
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" 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-BoldOblique: Standard "(001.000)" Standard ROM
+*Font Courier-Oblique: Standard "(001.000)" Standard ROM
+*Font Helvetica: Standard "(001.000)" Standard ROM
+*Font Helvetica-Bold: 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 Helvetica-Oblique: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.000)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.000)" Standard ROM
+*Font Palatino-Bold: Standard "(001.000)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.000)" Standard ROM
+*Font Palatino-Italic: Standard "(001.000)" Standard ROM
+*Font Palatino-Roman: Standard "(001.000)" Standard ROM
+*Font Symbol: Special "(001.001)" Special ROM
+*Font Times-Bold: Standard "(001.000)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.000)" Standard ROM
+*Font Times-Italic: Standard "(001.000)" Standard ROM
+*Font Times-Roman: Standard "(001.000)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.000)" Standard ROM
+*Font ZapfDingbats: Special "(001.000)" Special ROM
+*?FontQuery: "
+save
+ /str 100 string dup 0 (fonts/) putinterval def
+ {
+ count 1 gt
+ {
+ exch dup str 6 94 getinterval cvs
+ (/) print print (:) print
+ FontDirectory exch known
+ {(Yes)}{(No)} ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+restore
+"
+*End
+
+*?FontList: "
+save
+ FontDirectory { pop == } bind forall flush (*) = 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: "PrinterError: timeout, clearing printer"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: no toner cartridge"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: resetting printer"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: timeout"
+*Status: "PrinterError: manual feed timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these>]%% )
+*Source: "serial9"
+*Source: "serial25"
+*Source: "AppleTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these>]%%)
+*PrinterError: "timeout, clearing printer"
+*PrinterError: "paper entry misfeed"
+*PrinterError: "warming up"
+*PrinterError: "service call"
+*PrinterError: "no toner cartridge"
+*PrinterError: "no paper tray"
+*PrinterError: "cover open"
+*PrinterError: "resetting printer"
+*PrinterError: "out of paper"
+*PrinterError: "timeout"
+*PrinterError: "manual feed timeout"
+
+*%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"
+
+*% For "LaserWriter Plus" version 38.0
+*% Produced by "GETapd.ps" version 2.0 edit 44
+*% Converted to meet 4.0 specification
+*% Last Edit Date: May 21 1993
+*% The byte count of this file should be exactly 011622 or 011951
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter Plus
diff --git a/psprint_config/configuration/ppds/APPL_422.PS b/psprint_config/configuration/ppds/APPL_422.PS
new file mode 100644
index 000000000000..a82bbf84e1f5
--- /dev/null
+++ b/psprint_config/configuration/ppds/APPL_422.PS
@@ -0,0 +1,330 @@
+*PPD-Adobe: "4.0"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1993 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.0"
+*FileVersion: "3.5"
+*PCFileName: "APPLE422.PPD"
+*LanguageVersion: English
+*Product: "(LaserWriter Plus)"
+*PSVersion: "(42.2) 3"
+*ModelName: "Apple LaserWriter Plus v42.2"
+*NickName: "Apple LaserWriter Plus v42.2"
+
+*% General Information and Defaults ===============
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*FreeVM: "172414"
+*LanguageLevel: "1"
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "8"
+*Password: "0"
+*ExitServer: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+"
+*End
+
+*Reset: "
+ count 0 eq { % is the password on the stack?
+ true
+ }{
+ dup % potential password
+ statusdict /checkpassword get exec 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 /exitserver get exec
+ 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: " {dup mul exch dup mul add 1.0 exch sub } "
+*ScreenProc Line: "{ pop }"
+*ScreenProc Ellipse: "
+ { dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }
+"
+*End
+
+*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.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "letter"
+*PageSize Legal/US Legal: "legal"
+*PageSize A4: "a4"
+*PageSize B5: "b5"
+*PageSize LetterSmall/US Letter Small: "lettersmall"
+*PageSize A4Small/A4 Small: "a4small"
+*PageSize LegalSmall/US Legal Small: "legal"
+*PageSize Monarch/Monarch Envelope Edge Fed: "letter"
+*PageSize Com10/Com10 Envelope Edge Fed: "letter"
+*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/US Letter: "letter"
+*PageRegion Legal/US Legal: "legal"
+*PageRegion A4: "a4"
+*PageRegion B5: "b5"
+*PageRegion LetterSmall/US Letter Small: "lettersmall"
+*PageRegion A4Small/A4 Small: "a4small"
+*PageRegion LegalSmall/US Legal Small: "legal"
+*PageRegion Monarch/Monarch Envelope Edge Fed: "letter"
+*PageRegion Com10/Com10 Envelope Edge Fed: "letter"
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "18 8 593 784 "
+*ImageableArea Legal/US Legal: "65 42 547 966 "
+*ImageableArea A4: "18 23 577 819 "
+*ImageableArea B5: "3 4 497 705 "
+*ImageableArea LetterSmall/US Letter Small: "30 31 582 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "338 269 593 773 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "320 125 593 773 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion All: True
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Cassette
+*InputSlot Cassette: ""
+*CloseUI: *InputSlot
+
+*OpenUI *ManualFeed/Manual Feed: Boolean
+*OrderDependency: 20 AnySetup *ManualFeed
+*DefaultManualFeed: False
+*ManualFeed True: "statusdict /manualfeed true put"
+*ManualFeed False: "statusdict /manualfeed false put"
+*?ManualFeed: "
+save
+ statusdict /manualfeed get exec {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *ManualFeed
+
+*DefaultOutputOrder: Reverse
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.001)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.001)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.001)" Standard ROM
+*Font Bookman-Demi: Standard "(001.001)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.001)" Standard ROM
+*Font Bookman-Light: Standard "(001.001)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.001)" Standard ROM
+*Font Courier: Standard "(001.001)" Standard ROM
+*Font Courier-Bold: Standard "(001.001)" Standard ROM
+*Font Courier-BoldOblique: Standard "(001.001)" Standard ROM
+*Font Courier-Oblique: Standard "(001.001)" Standard ROM
+*Font Helvetica: Standard "(001.001)" Standard ROM
+*Font Helvetica-Bold: Standard "(001.001)" Standard ROM
+*Font Helvetica-BoldOblique: Standard "(001.001)" 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 Helvetica-Oblique: Standard "(001.001)" Standard ROM
+*Font NewCenturySchlbk-Bold: Standard "(001.002)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.001)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.001)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.002)" Standard ROM
+*Font Palatino-Bold: Standard "(001.000)" Standard ROM
+*Font Palatino-BoldItalic: Standard "(001.000)" Standard ROM
+*Font Palatino-Italic: Standard "(001.000)" Standard ROM
+*Font Palatino-Roman: Standard "(001.000)" Standard ROM
+*Font Symbol: Special "(001.001)" Special ROM
+*Font Times-Bold: Standard "(001.001)" Standard ROM
+*Font Times-BoldItalic: Standard "(001.001)" Standard ROM
+*Font Times-Italic: Standard "(001.001)" Standard ROM
+*Font Times-Roman: Standard "(001.001)" Standard ROM
+*Font ZapfChancery-MediumItalic: Standard "(001.002)" Standard ROM
+*Font ZapfDingbats: Special "(001.000)" Special ROM
+*?FontQuery: "
+save
+ /str 100 string dup 0 (fonts/) putinterval def
+ {
+ count 1 gt
+ {
+ exch dup str 6 94 getinterval cvs
+ (/) print print (:) print
+ FontDirectory exch known
+ {(Yes)}{(No)} ifelse =
+ }
+ {exit} ifelse
+ }bind loop
+ (*) = flush
+restore
+"
+*End
+
+*?FontList: "
+save
+ FontDirectory { pop == } bind forall flush (*) = 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"
+*Status: "PrinterError: timeout, clearing printer"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: service call"
+*Status: "PrinterError: paper entry misfeed"
+*Status: "PrinterError: no toner cartridge"
+*Status: "PrinterError: no paper tray"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: resetting printer"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: timeout"
+*Status: "PrinterError: manual feed timeout"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "serial9"
+*Source: "serial25"
+*Source: "AppleTalk"
+
+*% 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: "no paper tray"
+*PrinterError: "cover open"
+*PrinterError: "resetting printer"
+*PrinterError: "out of paper"
+*PrinterError: "timeout"
+*PrinterError: "manual feed timeout"
+
+*%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"
+
+*% For "LaserWriter Plus" version 42.2
+*% Produced by "GETapd.ps" version 2.0 edit 48
+*% Converted to meet 4.0 specification
+*% Last Edit Date: May 21 1993
+*% The byte count of this file should be exactly 011611 or 011941
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter Plus
diff --git a/psprint_config/configuration/ppds/APTOLLD1.PS b/psprint_config/configuration/ppds/APTOLLD1.PS
new file mode 100644
index 000000000000..fafe6751ebe3
--- /dev/null
+++ b/psprint_config/configuration/ppds/APTOLLD1.PS
@@ -0,0 +1,660 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.17"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APTOLLD1.PPD"
+*Product: "(LaserWriter Pro 600)"
+*PSVersion: "(2010.130) 1"
+*ModelName: "Apple LaserWriter Pro 600"
+*ShortNickName: "Apple LaserWriter Pro 600"
+*NickName: "Apple LaserWriter Pro 600 v2010.130"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: 4Meg
+*Option1 4Meg/Standard 4 MB RAM: ""
+*Option1 8Meg/8 MB Upgrade: ""
+*Option1 16Meg/16 MB Upgrade: ""
+*Option1 32Meg/32 MB Upgrade: ""
+*?Option1: "
+ currentsystemparams /RamSize get
+ 6 string dup 4 string 4 -1 roll 1048576 div cvi dup 9 gt {exch cvs 0 exch
+ putinterval dup 2}{exch cvs 0 exch putinterval dup 1}ifelse
+ (Meg) putinterval
+ =
+"
+*End
+*CloseUI: *Option1
+
+*OpenUI *Option2/Cassette (500 Sheets): PickOne
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*Option2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1 3] put put setpagedevice"
+*End
+*?Option2: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 2 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option2
+
+*OpenUI *Option3/Envelope Feeder: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*?Option3: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 3 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option3
+
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Resolution 600dpi *Smoothing True
+*UIConstraints: *Resolution 600dpi *BitsPerPixel 4
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Envelope
+
+*UIConstraints: *PageSize Letter *InputSlot Envelope
+*UIConstraints: *PageSize Legal *InputSlot Envelope
+*UIConstraints: *PageSize A4 *InputSlot Envelope
+*UIConstraints: *PageSize B5 *InputSlot Envelope
+*UIConstraints: *PageSize LetterSmall *InputSlot Envelope
+*UIConstraints: *PageSize A4Small *InputSlot Envelope
+*UIConstraints: *PageSize LegalSmall *InputSlot Envelope
+*UIConstraints: *InputSlot Envelope *PageSize Letter
+*UIConstraints: *InputSlot Envelope *PageSize Legal
+*UIConstraints: *InputSlot Envelope *PageSize A4
+*UIConstraints: *InputSlot Envelope *PageSize B5
+*UIConstraints: *InputSlot Envelope *PageSize LetterSmall
+*UIConstraints: *InputSlot Envelope *PageSize A4Small
+*UIConstraints: *InputSlot Envelope *PageSize LegalSmall
+*UIConstraints: *PageRegion Letter *InputSlot Envelope
+*UIConstraints: *PageRegion Legal *InputSlot Envelope
+*UIConstraints: *PageRegion A4 *InputSlot Envelope
+*UIConstraints: *PageRegion B5 *InputSlot Envelope
+*UIConstraints: *PageRegion LetterSmall *InputSlot Envelope
+*UIConstraints: *PageRegion A4Small *InputSlot Envelope
+*UIConstraints: *PageRegion LegalSmall *InputSlot Envelope
+*UIConstraints: *InputSlot Envelope *PageRegion Letter
+*UIConstraints: *InputSlot Envelope *PageRegion Legal
+*UIConstraints: *InputSlot Envelope *PageRegion A4
+*UIConstraints: *InputSlot Envelope *PageRegion B5
+*UIConstraints: *InputSlot Envelope *PageRegion LetterSmall
+*UIConstraints: *InputSlot Envelope *PageRegion A4Small
+*UIConstraints: *InputSlot Envelope *PageRegion LegalSmall
+
+*UIConstraints: *Option1 4Meg *VMOption 8Meg
+*UIConstraints: *Option1 4Meg *VMOption 16Meg
+*UIConstraints: *Option1 4Meg *VMOption 32Meg
+
+*UIConstraints: *Option1 8Meg *VMOption 4Meg
+*UIConstraints: *Option1 8Meg *VMOption 16Meg
+*UIConstraints: *Option1 8Meg *VMOption 32Meg
+
+*UIConstraints: *Option1 16Meg *VMOption 4Meg
+*UIConstraints: *Option1 16Meg *VMOption 8Meg
+*UIConstraints: *Option1 16Meg *VMOption 32Meg
+
+*UIConstraints: *Option1 32Meg *VMOption 4Meg
+*UIConstraints: *Option1 32Meg *VMOption 8Meg
+*UIConstraints: *Option1 32Meg *VMOption 16Meg
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: hpcl
+*StartEmulator_hpcl: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hpcl: "<1B7F>0"
+
+*FreeVM: "2078077"
+*VMOption 4Meg/Standard 4 MB RAM: "2078077"
+*VMOption 8Meg/8 MB Upgrade: "2406169"
+*VMOption 16Meg/16 MB Upgrade: "10851725"
+*VMOption 32Meg/32 MB Upgrade: "27598075"
+
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: False
+*Throughput: "8"
+*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
+
+*OpenUI *Resolution/Choose Resolution: PickOne
+*OrderDependency: 10 AnySetup *Resolution
+*DefaultResolution: 600dpi
+*Resolution 600dpi: "1 dict dup /HWResolution [600 600] put setpagedevice"
+*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
+*?Resolution: "
+ save
+ /ActualValues /ProcSet findresource
+ begin HWResolution end
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+*CloseUI: *Resolution
+
+*% Halftone Information ===============
+*ScreenFreq: "85.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 }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict
+ dup /PostRenderingEnhance true put
+ dup /PostRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPostRenderingEnhance true put
+ put
+ setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict
+ dup /PostRenderingEnhance false put
+ dup /PostRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPostRenderingEnhance false put
+ put
+ setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhanceDetails get
+ /ActualPostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict
+ dup /PreRenderingEnhance true put
+ dup /PreRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPreRenderingEnhance true put
+ put
+ setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict
+ dup /PreRenderingEnhance false put
+ dup /PreRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPreRenderingEnhance false put
+ put
+ setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope Edge Fed: "
+ 2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Com10/Com10 Envelope Edge Fed: "
+ 2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 7 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [612 792] (LetterSmall) put
+ dup [610 792] (Comm10) put
+ dup [611 792] (Monarch) 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/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LetterSmall/US Letter Small:"
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Monarch/Monarch Envelope Edge Fed: "
+ 2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Com10/Com10 Envelope Edge Fed: "
+ 2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "9.84 14.2201 601.2 783.66 "
+*ImageableArea Legal/US Legal: "9.84 14.2201 601.2 999.66 "
+*ImageableArea A4: "9.84 14.2201 578.16 833.82 "
+*ImageableArea B5: "9.84 14.22 501.36 720.78 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "9.84 257 274 783.66 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "9.84 113 292 783.66 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Cassette (250 Sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ 1 dict dup /ManualFeed true put setpagedevice"
+*End
+*InputSlot Lower/Cassette (500 Sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Envelope/Envelope Feeder: "
+ currentpagedevice /InputAttributes get 3 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3 0] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (Upper) put
+ dup /1 (Multipurpose) put
+ dup /2 (Lower) put
+ dup /3 (Envelope) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard ROM
+*Font Courier: Standard "(002.003)" Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" 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.008S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" 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.006)" 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (250 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (250 Sheets): out of paper"
+*Status: "PrinterError: Cassette (500 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (500 Sheets): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Envelope Feeder: out of paper"
+*Status: "PrinterError: Manual Feed: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+*Source: "Parallel"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "out of paper"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (250 Sheets): no paper tray"
+*PrinterError: "Cassette (250 Sheets): out of paper"
+*PrinterError: "Cassette (500 Sheets): no paper tray"
+*PrinterError: "Cassette (500 Sheets): out of paper"
+*PrinterError: "Multipurpose Tray: out of paper"
+*PrinterError: "Envelope Feeder: out of paper"
+*PrinterError: "Manual Feed: out of paper"
+*PrinterError: "waiting for manual feed"
+*PrinterError: "fixing temperature malfunction"
+*PrinterError: "scanner motor malfunction"
+
+*%DeviceAdjustMatrix: "[1 0 0 1 0 0]"
+
+*% Color Separation Information =====================
+
+*DefaultColorSep: ProcessBlack.85lpi.600dpi/85 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 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"
+
+*% 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 71 lpi / 600 dpi ===============================
+
+*ColorSepScreenAngle ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "45.0"
+*ColorSepScreenAngle ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "71.5651"
+*ColorSepScreenAngle ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "18.4349"
+*ColorSepScreenAngle ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "0.0"
+
+*ColorSepScreenFreq ProcessBlack.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq CustomColor.71lpi.600dpi/71 lpi / 600 dpi: "70.7107"
+*ColorSepScreenFreq ProcessCyan.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessMagenta.71lpi.600dpi/71 lpi / 600 dpi: "63.2456"
+*ColorSepScreenFreq ProcessYellow.71lpi.600dpi/71 lpi / 600 dpi: "66.6667"
+
+*% Produced by "bldppd42.ps" version 4.0 edit 11
+*% Last Edit Date: Mar 23 1994
+*% The byte count of this file should be exactly 022816 or 023476
+*% depending on the filesystem it resides in.
+*% end of PPD file for LaserWriter Pro 600
diff --git a/psprint_config/configuration/ppds/APTOLLW1.PS b/psprint_config/configuration/ppds/APTOLLW1.PS
new file mode 100644
index 000000000000..f836e66a68af
--- /dev/null
+++ b/psprint_config/configuration/ppds/APTOLLW1.PS
@@ -0,0 +1,656 @@
+*PPD-Adobe: "4.1"
+*% Adobe Systems PostScript(R) Printer Description File
+*% Copyright 1987-1994 Adobe Systems Incorporated.
+*% All Rights Reserved.
+*% Permission is granted for redistribution of this file as
+*% long as this copyright notice is intact and the contents
+*% of the file is not altered in any way from its original form.
+*% End of Copyright statement
+*FormatVersion: "4.1"
+*FileVersion: "1.15"
+*LanguageEncoding: ISOLatin1
+*LanguageVersion: English
+*PCFileName: "APTOLLW1.PPD"
+*Product: "(LaserWriter Pro 630)"
+*PSVersion: "(2010.130) 1"
+*ModelName: "Apple LaserWriter Pro 630"
+*ShortNickName: "Apple LaserWriter Pro 630"
+*NickName: "Apple LaserWriter Pro 630 v2010.130"
+
+*% === Options and Constraints =========
+*OpenGroup: InstallableOptions/Options Installed
+*OpenUI *Option1/Memory Configuration: PickOne
+*DefaultOption1: None
+*Option1 None/Standard 8 MB RAM: ""
+*Option1 16Meg/16 MB Upgrade: ""
+*Option1 32Meg/32 MB Upgrade: ""
+*?Option1: "
+ (None)currentsystemparams/RamSize get
+ dup 16777216 eq{pop pop(16Meg)}{33554432 eq{pop(32Meg)}if}ifelse
+ =
+"
+*End
+*CloseUI: *Option1
+
+*OpenUI *Option2/Cassette (500 Sheets): PickOne
+*DefaultOption2: False
+*Option2 True/Installed: ""
+*Option2 False/Not Installed: ""
+*Option2 Preferred/Installed and Preferred: "
+ 1 dict dup /InputAttributes 1 dict dup /Priority [2 0 1 3] put put setpagedevice"
+*End
+*?Option2: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 2 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option2
+
+*OpenUI *Option3/Envelope Feeder: Boolean
+*DefaultOption3: False
+*Option3 True/Installed: ""
+*Option3 False/Not Installed: ""
+*?Option3: "
+ save
+ currentpagedevice
+ /InputAttributes get
+ 3 known {(True)}{(False)} ifelse = flush
+ restore "
+*End
+*CloseUI: *Option3
+*CloseGroup: InstallableOptions
+
+*UIConstraints: *Resolution 600dpi *Smoothing True
+*UIConstraints: *Resolution 600dpi *BitsPerPixel 4
+*UIConstraints: *Option2 False *InputSlot Lower
+*UIConstraints: *Option3 False *InputSlot Envelope
+
+*UIConstraints: *PageSize Letter *InputSlot Envelope
+*UIConstraints: *PageSize Legal *InputSlot Envelope
+*UIConstraints: *PageSize A4 *InputSlot Envelope
+*UIConstraints: *PageSize B5 *InputSlot Envelope
+*UIConstraints: *PageSize LetterSmall *InputSlot Envelope
+*UIConstraints: *PageSize A4Small *InputSlot Envelope
+*UIConstraints: *PageSize LegalSmall *InputSlot Envelope
+*UIConstraints: *InputSlot Envelope *PageSize Letter
+*UIConstraints: *InputSlot Envelope *PageSize Legal
+*UIConstraints: *InputSlot Envelope *PageSize A4
+*UIConstraints: *InputSlot Envelope *PageSize B5
+*UIConstraints: *InputSlot Envelope *PageSize LetterSmall
+*UIConstraints: *InputSlot Envelope *PageSize A4Small
+*UIConstraints: *InputSlot Envelope *PageSize LegalSmall
+*UIConstraints: *PageRegion Letter *InputSlot Envelope
+*UIConstraints: *PageRegion Legal *InputSlot Envelope
+*UIConstraints: *PageRegion A4 *InputSlot Envelope
+*UIConstraints: *PageRegion B5 *InputSlot Envelope
+*UIConstraints: *PageRegion LetterSmall *InputSlot Envelope
+*UIConstraints: *PageRegion A4Small *InputSlot Envelope
+*UIConstraints: *PageRegion LegalSmall *InputSlot Envelope
+*UIConstraints: *InputSlot Envelope *PageRegion Letter
+*UIConstraints: *InputSlot Envelope *PageRegion Legal
+*UIConstraints: *InputSlot Envelope *PageRegion A4
+*UIConstraints: *InputSlot Envelope *PageRegion B5
+*UIConstraints: *InputSlot Envelope *PageRegion LetterSmall
+*UIConstraints: *InputSlot Envelope *PageRegion A4Small
+*UIConstraints: *InputSlot Envelope *PageRegion LegalSmall
+
+*UIConstraints: *Option1 None *VMOption
+
+*UIConstraints: *Option1 16Meg *VMOption None
+*UIConstraints: *Option1 16Meg *VMOption 32Meg
+
+*UIConstraints: *Option1 32Meg *VMOption None
+*UIConstraints: *Option1 32Meg *VMOption 16Meg
+
+*% ==== Device Capabilities ===============
+*LanguageLevel: "2"
+*Protocols: BCP
+*Emulators: hpcl
+*StartEmulator_hpcl: "currentfile /hpcl statusdict /emulate get exec "
+*StopEmulator_hpcl: "<1B7F>0"
+
+*FreeVM: "2406169"
+*VMOption None/Standard 8 MB RAM: "2406169"
+*VMOption 16Meg/16 MB Upgrade: "10851725"
+*VMOption 32Meg/32 MB Upgrade: "27598075"
+*ColorDevice: False
+*DefaultColorSpace: Gray
+*VariablePaperSize: False
+*FileSystem: True
+*?FileSystem: "
+ save false
+ (%disk?%)
+ { currentdevparams dup /Writeable known
+ { /Writeable get {pop true} if } { pop } ifelse
+ } 10 string /IODevice resourceforall
+ {(True)}{(False)} ifelse = flush
+ restore"
+*End
+
+*Throughput: "8"
+*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
+
+*OpenUI *Resolution/Choose Resolution: PickOne
+*OrderDependency: 10 AnySetup *Resolution
+*DefaultResolution: 600dpi
+*Resolution 600dpi: "1 dict dup /HWResolution [600 600] put setpagedevice"
+*Resolution 300dpi: "1 dict dup /HWResolution [300 300] put setpagedevice"
+*?Resolution: "
+ save
+ /ActualValues /ProcSet findresource
+ begin HWResolution end
+ 0 get
+ ( ) cvs print
+ (dpi)
+ = flush
+ restore
+"
+*End
+*CloseUI: *Resolution
+
+*% Halftone Information ===============
+*ScreenFreq: "85.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 }"
+
+*OpenUI *Smoothing/FinePrint(TM): Boolean
+*OrderDependency: 50 AnySetup *Smoothing
+*DefaultSmoothing: False
+*Smoothing True/On: "
+ 2 dict
+ dup /PostRenderingEnhance true put
+ dup /PostRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPostRenderingEnhance true put
+ put
+ setpagedevice
+"
+*End
+*Smoothing False/Off: "
+ 2 dict
+ dup /PostRenderingEnhance false put
+ dup /PostRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPostRenderingEnhance false put
+ put
+ setpagedevice
+"
+*End
+*?Smoothing: "
+ save currentpagedevice /PostRenderingEnhanceDetails get
+ /ActualPostRenderingEnhance get
+ {(True)}{(False)} ifelse = flush restore"
+*End
+*CloseUI: *Smoothing
+
+*OpenUI *BitsPerPixel/PhotoGrade(TM): Boolean
+*OrderDependency: 50 AnySetup *BitsPerPixel
+*DefaultBitsPerPixel: None
+*BitsPerPixel 4/On: "
+ 2 dict
+ dup /PreRenderingEnhance true put
+ dup /PreRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPreRenderingEnhance true put
+ put
+ setpagedevice
+"
+*End
+*BitsPerPixel None/Off: "
+ 2 dict
+ dup /PreRenderingEnhance false put
+ dup /PreRenderingEnhanceDetails
+ 2 dict
+ dup /Type 1 put
+ dup /ActualPreRenderingEnhance false put
+ put
+ setpagedevice
+"
+*End
+*?BitsPerPixel: "
+ save currentpagedevice /PreRenderingEnhanceDetails get
+ /ActualPreRenderingEnhance get
+ {(4)}{(None)} ifelse = flush restore"
+*End
+*CloseUI: *BitsPerPixel
+
+*% Paper Handling ===================
+
+*% Code in this section both selects a tray and sets up a frame buffer.
+*OpenUI *PageSize: PickOne
+*OrderDependency: 30 AnySetup *PageSize
+*DefaultPageSize: Letter
+*PageSize Letter/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Monarch/Monarch Envelope Edge Fed: "
+ 2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageSize Com10/Com10 Envelope Edge Fed: "
+ 2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*?PageSize: "
+ save
+ currentpagedevice /PageSize get aload pop
+ 2 copy gt {exch} if
+ (Unknown)
+ 7 dict
+ dup [612 792] (Letter) put
+ dup [612 1008] (Legal) put
+ dup [595 842] (A4) put
+ dup [516 729] (B5) put
+ dup [610 792] (Comm10) put
+ dup [611 792] (Monarch) 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/US Letter: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Legal/US Legal: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion B5: "
+ 2 dict dup /PageSize [516 729] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LetterSmall/US Letter Small: "
+ 2 dict dup /PageSize [612 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion A4Small/A4 Small: "
+ 2 dict dup /PageSize [595 842] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion LegalSmall/US Legal Small: "
+ 2 dict dup /PageSize [612 1008] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Monarch/Monarch Envelope Edge Fed: "
+ 2 dict dup /PageSize [611 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*PageRegion Com10/Com10 Envelope Edge Fed: "
+ 2 dict dup /PageSize [610 792] put dup /ImagingBBox null put setpagedevice"
+*End
+*CloseUI: *PageRegion
+
+*% The following entries provide information about specific paper keywords.
+*DefaultImageableArea: Letter
+*ImageableArea Letter/US Letter: "9.84 14.2201 601.2 783.66 "
+*ImageableArea Legal/US Legal: "9.84 14.2201 601.2 999.66 "
+*ImageableArea A4: "9.84 14.2201 578.16 833.82 "
+*ImageableArea B5: "9.84 14.22 501.36 720.78 "
+*ImageableArea LetterSmall/US Letter Small: "31 31 583 761 "
+*ImageableArea A4Small/A4 Small: "29 31 567 812 "
+*ImageableArea LegalSmall/US Legal Small: "64 54 548 954 "
+*ImageableArea Monarch/Monarch Envelope Edge Fed: "9.84 257 274 783.66 "
+*ImageableArea Com10/Com10 Envelope Edge Fed: "9.84 113 292 783.66 "
+*?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
+
+*% These provide the physical dimensions of the paper (by keyword)
+*DefaultPaperDimension: Letter
+*PaperDimension Letter/US Letter: "612 792"
+*PaperDimension Legal/US Legal: "612 1008"
+*PaperDimension A4: "595 842"
+*PaperDimension B5: "516 729"
+*PaperDimension LetterSmall/US Letter Small: "612 792"
+*PaperDimension A4Small/A4 Small: "595 842"
+*PaperDimension LegalSmall/US Legal Small: "612 1008"
+*PaperDimension Monarch/Monarch Envelope Edge Fed: "611 792"
+*PaperDimension Com10/Com10 Envelope Edge Fed: "610 792"
+
+*RequiresPageRegion Multipurpose: True
+
+*OpenUI *InputSlot: PickOne
+*OrderDependency: 20 AnySetup *InputSlot
+*DefaultInputSlot: Upper
+*InputSlot Upper/Cassette (250 Sheets): "
+ currentpagedevice /InputAttributes get 0 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [0] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Multipurpose/Multipurpose Tray: "
+ 1 dict dup /ManualFeed true put setpagedevice"
+*End
+*InputSlot Lower/Cassette (500 Sheets): "
+ currentpagedevice /InputAttributes get 2 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [2 0] put
+ put setpagedevice
+ } ifelse"
+*End
+*InputSlot Envelope/Envelope Feeder: "
+ currentpagedevice /InputAttributes get 3 get
+ dup null eq
+ { pop }
+ { dup length 1 add dict copy
+ dup /InputAttributes
+ 1 dict dup /Priority [3 0] put
+ put setpagedevice
+ } ifelse"
+*End
+*?InputSlot: "
+save
+ 3 dict
+ dup /0 (Upper) put
+ dup /1 (Multipurpose) put
+ dup /2 (Lower) put
+ dup /3 (Envelope) put
+ currentpagedevice /InputAttributes get
+ dup /Priority known
+ { /Priority get 0 get ( ) cvs cvn get }
+ {
+ dup length 1 eq
+ { {pop} forall ( ) cvs cvn get }
+ { pop pop (Unknown) } ifelse
+ } ifelse
+ = flush
+restore
+"
+*End
+*CloseUI: *InputSlot
+
+*DefaultOutputBin: OnlyOne
+*DefaultOutputOrder: Normal
+
+*OpenUI *ManualFeed/Manual Feed: 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 *TraySwitch: Boolean
+*OrderDependency: 50 AnySetup *TraySwitch
+*DefaultTraySwitch: False
+*TraySwitch True: "1 dict dup /TraySwitch true put setpagedevice"
+*TraySwitch False: "1 dict dup /TraySwitch false put setpagedevice"
+*?TraySwitch: "
+save
+ currentpagedevice /TraySwitch get
+ {(True)}{(False)}ifelse = flush
+restore
+"
+*End
+*CloseUI: *TraySwitch
+
+*% Font Information =====================
+*DefaultFont: Courier
+*Font AvantGarde-Book: Standard "(001.002)" Standard ROM
+*Font AvantGarde-BookOblique: Standard "(001.002)" Standard ROM
+*Font AvantGarde-Demi: Standard "(001.003)" Standard ROM
+*Font AvantGarde-DemiOblique: Standard "(001.003)" Standard ROM
+*Font Bookman-Demi: Standard "(001.003S)" Standard ROM
+*Font Bookman-DemiItalic: Standard "(001.003S)" Standard ROM
+*Font Bookman-Light: Standard "(001.003S)" Standard ROM
+*Font Bookman-LightItalic: Standard "(001.003S)" Standard ROM
+*Font Courier: Standard "(002.003)" Standard ROM
+*Font Courier-Bold: Standard "(002.003)" Standard ROM
+*Font Courier-BoldOblique: Standard "(002.003)" Standard ROM
+*Font Courier-Oblique: Standard "(002.003)" 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.008S)" Standard ROM
+*Font NewCenturySchlbk-BoldItalic: Standard "(001.006S)" Standard ROM
+*Font NewCenturySchlbk-Italic: Standard "(001.005S)" Standard ROM
+*Font NewCenturySchlbk-Roman: Standard "(001.006S)" 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.006)" 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: "initializing"
+*Status: "idle"
+*Status: "holding"
+*Status: "busy"
+*Status: "waiting"
+*Status: "PrinterError: cover open"
+*Status: "PrinterError: warming up"
+*Status: "PrinterError: out of paper"
+*Status: "PrinterError: toner cartridge missing or incorrect"
+*Status: "PrinterError: paper jam"
+*Status: "PrinterError: Cassette (250 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (250 Sheets): out of paper"
+*Status: "PrinterError: Cassette (500 Sheets): no paper tray"
+*Status: "PrinterError: Cassette (500 Sheets): out of paper"
+*Status: "PrinterError: Multipurpose Tray: out of paper"
+*Status: "PrinterError: Envelope Feeder: out of paper"
+*Status: "PrinterError: Manual Feed: out of paper"
+*Status: "PrinterError: waiting for manual feed"
+*Status: "PrinterError: fixing temperature malfunction"
+*Status: "PrinterError: scanner motor malfunction"
+
+*% Input Sources (format: %%[ status: <stat>; source: <one of these> ]%% )
+*Source: "Serial"
+*Source: "SerialB"
+*Source: "LocalTalk"
+*Source: "Parallel"
+*Source: "EtherTalk"
+
+*% Printer Error (format: %%[ PrinterError: <one of these> ]%%)
+*PrinterError: "cover open"
+*PrinterError: "warming up"
+*PrinterError: "out of paper"
+*PrinterError: "toner cartridge missing or incorrect"
+*PrinterError: "paper jam"
+*PrinterError: "Cassette (250 Sheets): no paper tra