Re: Make PostScript driver less loquacious
"Ian Pilcher" <ian.pilcher(a)home.com> wrote:
dlls/wineps/init.c, ppd.c
Change some PS driver FIXMEs/MESSAGEs to WARNs
I think it's not the time to do it. Those messages/fixme's help a lot to add missing page and bin type into psdrv: they are not complete now. And without message about missing fonts in ppd/afm it would be nightmare to track down problems with ps fonts at least for me.
Dmitry Timoshkov wrote:
I think it's not the time to do it. Those messages/fixme's help a lot to add missing page and bin type into psdrv: they are not complete now.
And without message about missing fonts in ppd/afm it would be nightmare to track down problems with ps fonts at least for me.
The messages are still there. All you have to do is turn them on if you have problems. -- ======================================================================== Ian Pilcher ian.pilcher(a)home.com ========================================================================
"Ian Pilcher" <ian.pilcher(a)home.com> wrote:
I think it's not the time to do it. Those messages/fixme's help a lot to add missing page and bin type into psdrv: they are not complete now.
And without message about missing fonts in ppd/afm it would be nightmare to track down problems with ps fonts at least for me.
The messages are still there. All you have to do is turn them on if you have problems.
Sure. -debugmsg +??? serves for finding problems too, doesn't it? FIXME tells about not complete implementation, in the case of psdrv - about missing page and bin type.
Dmitry Timoshkov wrote:
Sure. -debugmsg +??? serves for finding problems too, doesn't it? FIXME tells about not complete implementation, in the case of psdrv - about missing page and bin type.
Is it really appropriate to spit out a FIXME every time we encounter a paper size or bin type that we don't recognize? In the case of the *InputSlot option, for example, p. 97 of Adobe's Post- Script Printer Description File Format Specification says: Any arbitrary strings that appropriately describe the device's input slots are valid inputSlotOptions. Referring to media types, p. 183 says: A device manufacturer is free to list a new size in a PPD file for a new device. So the fact is that we're never going to recognize all options. I'll grant that we could probably recognize more options, but that hardly seems to justify issuing a FIXME -- and I can see no logic to issuing the FIXME only when an option isn't recognized. -- ======================================================================== Ian Pilcher ian.pilcher(a)home.com ========================================================================
"Ian Pilcher" <ian.pilcher(a)home.com> wrote:
Is it really appropriate to spit out a FIXME every time we encounter a paper size or bin type that we don't recognize?
I would agree with you, if you have added all regular possible values listed in wine/include/wingdi.h and only then replaced FIXME's by WARN's.
Dmitry Timoshkov wrote:
I would agree with you, if you have added all regular possible values listed in wine/include/wingdi.h and only then replaced FIXME's by WARN's.
Well, the only paper size missing is DMPAPER_11X17, presumable because it isn't mentioned in Adobe's documentation. For the bin types, if someone can tell me how to map the following PPD file bin types, I'll do it: 2ndTray 3rdHCFTray 3rdTray 4thHCFTray 4thTray 500Sheet ASFbin1 ASFbin2 AUTO AnyLargeFormat Auto AutoSelect Auto_Tray1 Auto_Tray2 Automatic Autoselect Autotray Bin1 Bin2 Bottom Bottomtray Bypass BypassHeavy BypassPaper BypassT1 BypassT2 BypassT3 BypassTransparency BypassTray BypassXHeavy CPF1 CPF2 Cassette Cassette1 Cassette2 Cassette3 Cassette4 Cassette5 EnvFeed Envelope EnvelopeFeeder EnvelopeTray Front FrontFeed FrontFeeder HCEF HCF HighCapTray1 Hopper InsertSheet LCIT LargeCapacity LargeCapacityTray LargeLower LargeUpper Largesheet Lower Lower1 Lower2 Lower250SheetFeeder Lower500SheetFeeder LowerCassette LowerOptTray LowerTray Lowercassette MBF MP MPF MPMF MPT MPTray MSI Main MainTray Manual ManualBypass ManualEnvelope ManualFeed ManualFeedTray ManualFeeder ManualNormal ManualOHP ManualPaper ManualThick ManualTransparency Medium Middle Middle250SheetFeeder Middle500SheetFeeder Middletray Multi-Feeder Multi-MediaFeeder Multi-Purpose MultiMediaFeeder MultiPurpose Multimedia Multipurpose MultipurposeTray NotSpec OnlyOne OptionalCassette OptionalCassette1 OptionalCassette2 OptionalTray Paper PaperDeck PaperTray Paper_Deck PrinterDefault Rear Roll RollFeed SecondCassette SideTray Slot0 Slot1 Slot2 Slot3 Slot4 Small Standard StandardCassette StandardTray StandardTray Top Toptray Transparency Tray Tray0 Tray1 Tray2 Tray3 Tray4 Tray5 Tray6 Tray7 TrayManual Tray_Auto Universal Upper UpperCassette UpperOptTray UpperTray Uppercassette Version2 Web (Every single one of these comes from a PPD file on Adobe's FTP site.) -- ======================================================================== Ian Pilcher ian.pilcher(a)home.com ========================================================================
On Wed, Apr 04, 2001 at 02:16:49AM +0600, Ian Pilcher wrote:
Dmitry Timoshkov wrote:
I would agree with you, if you have added all regular possible values listed in wine/include/wingdi.h and only then replaced FIXME's by WARN's.
Well, the only paper size missing is DMPAPER_11X17, presumable because it isn't mentioned in Adobe's documentation.
For the bin types, if someone can tell me how to map the following PPD file bin types, I'll do it:
The fallback should be to map unmapped names to DMBIN_USER, DMBIN_USER+1, etc... This is what the FIXME is now telling us to do ;) Huw. -- Dr. Huw D M Davies | Clarendon Laboratory h.davies1(a)physics.ox.ac.uk | Parks Road Tel: +44 1865 272390 | Oxford OX1 3PU Fax: +44 1865 272400 | UK
"Ian Pilcher" <ian.pilcher(a)home.com> wrote:
Well, the only paper size missing is DMPAPER_11X17, presumable because it isn't mentioned in Adobe's documentation.
For the bin types, if someone can tell me how to map the following PPD file bin types, I'll do it:
Since we have a fairly limited set of available DMBIN_???, some approximation could be used. For all missing bins we could just assign some reasonable value, for instance DMBIN_AUTO:
2ndTray 3rdHCFTray 3rdTray 4thHCFTray 4thTray 500Sheet ASFbin1 ASFbin2 AUTO --> DMBIN_AUTO AnyLargeFormat --> DMBIN_LARGEFMT Auto --> DMBIN_AUTO AutoSelect --> DMBIN_AUTO Auto_Tray1 --> DMBIN_AUTO Auto_Tray2 --> DMBIN_AUTO Automatic --> DMBIN_AUTO Autoselect --> DMBIN_AUTO Autotray --> DMBIN_AUTO Bin1 Bin2 Bottom --> DMBIN_LOWER Bottomtray --> DMBIN_LOWER Bypass BypassHeavy BypassPaper BypassT1 BypassT2 BypassT3 BypassTransparency BypassTray BypassXHeavy CPF1 CPF2 Cassette --> DMBIN_CASSETTE Cassette1 --> DMBIN_CASSETTE Cassette2 --> DMBIN_CASSETTE Cassette3 --> DMBIN_CASSETTE Cassette4 --> DMBIN_CASSETTE Cassette5 --> DMBIN_CASSETTE EnvFeed --> DMBIN_ENVELOPE Envelope --> DMBIN_ENVELOPE EnvelopeFeeder --> DMBIN_ENVELOPE EnvelopeTray --> DMBIN_ENVELOPE Front FrontFeed FrontFeeder HCEF HCF HighCapTray1 --> DMBIN_LARGECAPACITY Hopper InsertSheet LCIT LargeCapacity --> DMBIN_LARGECAPACITY LargeCapacityTray --> DMBIN_LARGECAPACITY LargeLower --> DMBIN_LOWER LargeUpper --> DMBIN_UPPER Largesheet --> DMBIN_LARGEFMT Lower --> DMBIN_LOWER Lower1 --> DMBIN_LOWER Lower2 --> DMBIN_LOWER Lower250SheetFeeder --> DMBIN_LOWER Lower500SheetFeeder --> DMBIN_LOWER LowerCassette --> DMBIN_LOWER or DMBIN_CASSETTE LowerOptTray --> DMBIN_LOWER LowerTray --> DMBIN_LOWER Lowercassette --> DMBIN_LOWER or DMBIN_CASSETTE MBF MP --> DMBIN_AUTO MPF MPMF MPT --> DMBIN_AUTO MPTray --> DMBIN_AUTO MSI Main --> DMBIN_AUTO MainTray --> DMBIN_AUTO Manual --> DMBIN_MANUAL ManualBypass --> DMBIN_MANUAL ManualEnvelope --> DMBIN_ENVMANUAL ManualFeed --> DMBIN_MANUAL ManualFeedTray --> DMBIN_MANUAL ManualFeeder --> DMBIN_MANUAL ManualNormal --> DMBIN_MANUAL ManualOHP --> DMBIN_MANUAL ManualPaper --> DMBIN_MANUAL ManualThick --> DMBIN_MANUAL ManualTransparency --> DMBIN_MANUAL Medium --> DMBIN_MIDDLE Middle --> DMBIN_MIDDLE Middle250SheetFeeder --> DMBIN_MIDDLE Middle500SheetFeeder --> DMBIN_MIDDLE Middletray --> DMBIN_MIDDLE Multi-Feeder --> DMBIN_AUTO Multi-MediaFeeder --> DMBIN_AUTO Multi-Purpose --> DMBIN_AUTO MultiMediaFeeder MultiPurpose --> DMBIN_AUTO Multimedia Multipurpose --> DMBIN_AUTO MultipurposeTray --> DMBIN_AUTO NotSpec --> DMBIN_AUTO OnlyOne --> DMBIN_ONLYONE OptionalCassette --> DMBIN_CASSETTE OptionalCassette1 --> DMBIN_CASSETTE OptionalCassette2 --> DMBIN_CASSETTE OptionalTray Paper PaperDeck PaperTray Paper_Deck PrinterDefault --> DMBIN_AUTO Rear Roll RollFeed SecondCassette --> DMBIN_CASSETTE SideTray Slot0 Slot1 Slot2 Slot3 Slot4 Small --> DMBIN_SMALLFMT Standard --> DMBIN_AUTO StandardCassette --> DMBIN_CASSETTE StandardTray --> DMBIN_AUTO StandardTray --> DMBIN_AUTO Top --> DMBIN_UPPER Toptray --> DMBIN_UPPER Transparency Tray Tray0 Tray1 Tray2 Tray3 Tray4 Tray5 Tray6 Tray7 TrayManual --> DMBIN_MANUAL Tray_Auto --> DMBIN_AUTO Universal --> DMBIN_AUTO Upper --> DMBIN_UPPER UpperCassette --> DMBIN_UPPER or DMBIN_CASSETTE UpperOptTray --> DMBIN_UPPER UpperTray --> DMBIN_UPPER Uppercassette --> DMBIN_UPPER or DMBIN_CASSETTE Version2 Web
Dmitry Timoshkov wrote:
Since we have a fairly limited set of available DMBIN_???, some approximation could be used. For all missing bins we could just assign some reasonable value, for instance DMBIN_AUTO:
I wrote a little test program to see what Windows reports for these different bin types, and the results are interesting. On Windows NT 4, both the Microsoft and Adobe PostScript drivers seem to just map every- thing to DMBIN_USER+x values! For example, I installed the "IBM 4019 LaserPrinter PS17" driver (PPD file attached), and got the following from DeviceCapabilities: DC_BINNAMES DC_BINS Automatically Select DMBIN_FORMSOURCE Upper 256 Lower 257 Envelope 258 EnvelopeManual 259 Manual Feed DMBIN_MANUAL (Note that every printer driver I tried had the "Automatically Select" and "Manual Feed" entries.) Based on this, I see no reason to try to guess what the appropriate DMBIN* type is for undocumented *InputSlot values. In my mind, the question is whether we should use the mappings in Adobe's PPD spec or completely emulate the Windows behavior. Thoughts? -- ======================================================================== Ian Pilcher ian.pilcher(a)home.com ======================================================================== *PPD-Adobe: "4.2" *% Adobe Systems PostScript(R) Printer Description File *% For IBM LaserPrinter 4019 *% For use with Windows NT Ver 4.x *% Produced by Lexmark International, Inc. *% *% Copyright (c) 1993 Lexmark International Inc. All Rights Reserved. *% Permission is granted for redistribution of this file as *% long as this copyright notice is intact and the content *% of the file is not altered in any way from its original form. *% *% *% Version History: *% 3.1) Changed for NT Ver 4.0 *% *FormatVersion: "4.2" *FileVersion: "3.1" *LanguageVersion: English *PCFileName: "IBM17523.PPD" *Product: "(IBM LaserPrinter)" *PSVersion: "(52.1) 0" *PSVersion: "(52.3) 0" *ModelName: "IBM 4019 LaserPrinter PS17" *ShortNickName: "IBM 4019 LaserPrinter PS17" *NickName: "IBM 4019 LaserPrinter PS17" *% === Options and Constraints ============ *OpenGroup: InstallableOptions/Options Installed *OpenUI *Option1/Optional Lower Tray: Boolean *DefaultOption1: False *Option1 True/Installed: "" *Option1 False/Not Installed: "" *CloseUI: *Option1 *OpenUI *Option2/Optional Envelope Feeder: Boolean *DefaultOption2: False *Option2 True/Installed: "" *Option2 False/Not Installed: "" *CloseUI: *Option2 *OpenUI *Option3/Memory Configuration: PickOne *DefaultOption3: None *Option3 None/Installed Memory 1.5 MB: "" *Option3 2Meg/Installed Memory 2.5 MB: "" *Option3 3.5Meg/Installed Memory 4 MB: "" *CloseUI: *Option3 *CloseGroup: InstallableOptions *UIConstraints: *Option1 False *InputSlot Lower *UIConstraints: *Option1 False *TraySwitch *UIConstraints: *Option2 False *InputSlot Envelope *UIConstraints: *Option3 None *PageSize Legal *UIConstraints: *Option3 None *PageRegion Legal *% === Basic Capabilities ============ *LanguageLevel: "1" *FreeVM: "132000" *ColorDevice: False *DefaultColorSpace: Gray *VariablePaperSize: False *FileSystem: False *Throughput: "10" *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 *% === Resolution ============ *DefaultResolution: 300dpi *Resolution 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 =================== *% Code in this section selects a tray and sets up a frame buffer. *OpenUI *PageSize: PickOne *OrderDependency: 30 AnySetup *PageSize *DefaultPageSize: Letter *PageSize Letter: "statusdict begin {lettertray}stopped {3 setpapertray letter}if end" *PageSize Legal: "statusdict begin {legaltray}stopped {3 setpapertray legal}if end" *PageSize Executive: " statusdict begin {executivetray}stopped {3 setpapertray executivepage}if end" *End *PageSize A4: "statusdict begin {a4tray}stopped {3 setpapertray a4}if end" *PageSize A5: "statusdict begin {a5tray}stopped {3 setpapertray a5}if end" *PageSize B5: "statusdict begin {b5tray}stopped {3 setpapertray b5}if end" *PageSize Monarch/Envelope Monarch: " statusdict begin {3.875x7.5envelopetray}stopped {4 setpapertray 3.875x7.5envelope}if end 279 540 translate 180 rotate" *End *PageSize C9/Envelope #9: " statusdict begin {3.875x8.875envelopetray}stopped {4 setpapertray 3.875x8.875envelope}if end 279 639 translate 180 rotate" *End *PageSize Comm10/Envelope #10: " statusdict begin {4.125x9.5envelopetray}stopped {4 setpapertray 4.125x9.5envelope}if end 297 684 translate 180 rotate" *End *PageSize DL/Envelope DL: " statusdict begin {110x220envelopetray}stopped {4 setpapertray 110x220envelope}if end 312 624 translate 180 rotate" *End *PageSize C5/Envelope C5: " statusdict begin {162x229envelopetray}stopped {4 setpapertray 162x229envelope}if end 459 649 translate 180 rotate" *End *PageSize ISOB5/Envelope B5: " statusdict begin {176x250envelopetray}stopped {4 setpapertray 176x250envelope}if end 499 709 translate 180 rotate" *End *?PageSize: " save 12 dict dup /letter (Letter) put dup /legal (Legal) put dup /executivepage (Executive) put dup /a4 (A4) put dup /a5 (A5) put dup /b5 (B5) put dup /3.875x7.5envelope (Monarch) put dup /3.875x8.875envelope (Envelope.279.639) put dup /4.125x9.5envelope (Comm10) put dup /110x220envelope (DL) put dup /162x229envelope (C5) put dup /176x250envelope (Envelope.499.709) put statusdict /papersize get exec 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: "letter" *PageRegion Legal: "legal" *PageRegion Executive: "executivepage" *PageRegion A4: "a4" *PageRegion A5: "a5" *PageRegion B5: "b5" *PageRegion Monarch/Envelope Monarch: "3.875x7.5envelope 279 540 translate 180 rotate" *PageRegion C9/Envelope #9: "3.875x8.875envelope 279 639 translate 180 rotate" *PageRegion Comm10/Envelope #10: "4.125x9.5envelope 297 684 translate 180 rotate" *PageRegion DL/Envelope DL: "110x220envelope 312 624 translate 180 rotate" *PageRegion C5/Envelope C5: "162x229envelope 459 649 translate 180 rotate" *PageRegion ISOB5/B5 Envelope: "176x250envelope 499 709 translate 180 rotate" *CloseUI: *PageRegion *DefaultImageableArea: Letter *ImageableArea Letter: "18 17 597 776" *ImageableArea Legal: "18 18 597 992" *ImageableArea Executive: "18 18 505 740" *ImageableArea A4: "18 19 578 827" *ImageableArea A5: "18 13 405 580" *ImageableArea B5: "18 18 505 711" *ImageableArea Monarch: "1 13 260 526" *ImageableArea C9: "1 16 260 623" *ImageableArea Comm10: "3 16 278 668" *ImageableArea DL: "3 16 293 608" *ImageableArea C5: "4 16 440 634" *ImageableArea ISOB5: "2 15 480 693" *?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 A4: "595 842" *PaperDimension A5: "420 595" *PaperDimension B5: "516 729" *PaperDimension Monarch: "279 540" *PaperDimension C9: "279 639" *PaperDimension Comm10: "297 684" *PaperDimension DL: "312 624" *PaperDimension C5: "459 649" *PaperDimension ISOB5: "499 709" *RequiresPageRegion All: True *OpenUI *InputSlot: PickOne *OrderDependency: 20 AnySetup *InputSlot *DefaultInputSlot: Unknown *InputSlot Upper: "0 statusdict /setpapertray get exec" *InputSlot Lower: " statusdict begin optionalfeeder { 1 }{ 0 }ifelse setpapertray end" *End *InputSlot Envelope: " statusdict begin envelopefeeder { 2 }{ 3 }ifelse setpapertray end" *End *InputSlot EnvelopeManual: "4 statusdict /setpapertray get exec" *?InputSlot: " save [ (Upper) (Lower) (Envelope) (Manual) (ManualEnvelope) ] statusdict /papertray get exec {get exec} stopped { pop pop (Unknown) } if = flush restore " *End *CloseUI: *InputSlot *OpenUI *ManualFeed: Boolean *OrderDependency: 15 AnySetup *ManualFeed *DefaultManualFeed: False *ManualFeed True: "3 statusdict /setpapertray get exec" *ManualFeed False: "statusdict /manualfeed false put" *?ManualFeed: " save statusdict /manualfeed get {(True)}{(False)}ifelse = flush restore " *End *CloseUI: *ManualFeed *OpenUI *TraySwitch/Tray Linking: PickOne *OrderDependency: 50 AnySetup *TraySwitch *DefaultTraySwitch: None *TraySwitch None/Printer Setting: "" *TraySwitch True/On: "statusdict /trayswitch true put" *TraySwitch False/Off: "statusdict /trayswitch false put" *?TraySwitch: " save statusdict /trayswitch get {(True)}{(False)}ifelse = flush restore " *End *CloseUI: *TraySwitch *DefaultOutputOrder: Normal *OutputOrder Normal: "" *OutputOrder Reverse: "" *% === Font Information ===================== *DefaultFont: Courier *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 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 *?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" *% 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: "Printer Busy" *Status: "Warming Up" *Status: "PrinterError: Printer Offline" *Status: "PrinterError: Paper Out or Feed Failure - Tray 1" *Status: "PrinterError: Paper Out or Feed Failure - Tray 2" *Status: "PrinterError: Paper Out or Feed Failure - Envelope Feeder" *Status: "PrinterError: Load Paper Requested" *Status: "PrinterError: Load Envelope Requested" *Status: "PrinterError: Invalid Manual Insertion" *Status: "PrinterError: Wrong Paper Length" *Status: "PrinterError: Paper Jam" *Status: "PrinterError: Cover Open/Cartridge Not Installed" *Status: "PrinterError: Output Bin Full" *Status: "PrinterError: Default Storage Error" *Status: "PrinterError: Battery Low - Slot 1" *Status: "PrinterError: Battery Low - Slot 2" *Status: "PrinterError: Non-Download Font Card Installed - Slot 1" *Status: "PrinterError: Non-Download Font Card Installed - Slot 2" *Status: "PrinterError: Write-Protect Switch in Protect Position - Slot 1" *Status: "PrinterError: Write-Protect Switch in Protect Position - Slot 2" *Status: "PrinterError: Defective or Unprogrammed Card Installed - Slot 1" *Status: "PrinterError: Defective or Unprogrammed Card Installed - Slot 2" *Status: "PrinterError: Defective Font Card Installed - Slot 1" *Status: "PrinterError: Defective Font Card Installed - Slot 2" *Status: "PrinterError: Unsupported Card Installed - Slot 1" *Status: "PrinterError: Unsupported Card Installed - Slot 2" *Status: "PrinterError: Printer Busy" *Status: "PrinterError: Printer Error" *% Input Sources (format: %% status: <stat>; source: <one of these> %% ) *Source: "serial9" *Source: "serial25" *Source: "Centronics" *% Printer Error (format: %% PrinterError: <one of these> %%) *PrinterError: "Printer Offline" *PrinterError: "Paper Out or Feed Failure - Tray 1" *PrinterError: "Paper Out or Feed Failure - Tray 2" *PrinterError: "Paper Out or Feed Failure - Envelope Feeder" *PrinterError: "Load Paper Requested" *PrinterError: "Load Envelope Requested" *PrinterError: "Invalid Manual Insertion" *PrinterError: "Wrong Paper Length" *PrinterError: "Paper Jam" *PrinterError: "Cover Open/Cartridge Not Installed" *PrinterError: "Output Bin Full" *PrinterError: "Default Storage Error" *PrinterError: "Battery Low - Slot 1" *PrinterError: "Battery Low - Slot 2" *PrinterError: "Non-Download Font Card Installed - Slot 1" *PrinterError: "Non-Download Font Card Installed - Slot 2" *PrinterError: "Write-Protect Switch in Protect Position - Slot 1" *PrinterError: "Write-Protect Switch in Protect Position - Slot 2" *PrinterError: "Defective or Unprogrammed Card Installed - Slot 1" *PrinterError: "Defective or Unprogrammed Card Installed - Slot 2" *PrinterError: "Defective Font Card Installed - Slot 1" *PrinterError: "Defective Font Card Installed - Slot 2" *PrinterError: "Unsupported Card Installed - Slot 1" *PrinterError: "Unsupported Card Installed - Slot 2" *PrinterError: "Printer Busy" *PrinterError: "Printer Error" *%DeviceAdjustMatrix: "[1 0 0 1 0 0]" *% === Color Separation Information ===================== *DefaultColorSep: ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi *InkName: ProcessBlack/Process Black *InkName: CustomColor/Custom Color *InkName: ProcessCyan/Process Cyan *InkName: ProcessMagenta/Process Magenta *InkName: ProcessYellow/Process Yellow *% For 60 lpi / 300 dpi =============================== *ColorSepScreenAngle ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "45" *ColorSepScreenAngle CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "45" *ColorSepScreenAngle ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "15" *ColorSepScreenAngle ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "75" *ColorSepScreenAngle ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "0" *ColorSepScreenFreq ProcessBlack.60lpi.300dpi/60 lpi / 300 dpi: "60" *ColorSepScreenFreq CustomColor.60lpi.300dpi/60 lpi / 300 dpi: "60" *ColorSepScreenFreq ProcessCyan.60lpi.300dpi/60 lpi / 300 dpi: "60" *ColorSepScreenFreq ProcessMagenta.60lpi.300dpi/60 lpi / 300 dpi: "60" *ColorSepScreenFreq ProcessYellow.60lpi.300dpi/60 lpi / 300 dpi: "60" *% For 53 lpi / 300 dpi =============================== *ColorSepScreenAngle ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "45.0" *ColorSepScreenAngle CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "45.0" *ColorSepScreenAngle ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "71.5651" *ColorSepScreenAngle ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "18.4349" *ColorSepScreenAngle ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "0.0" *ColorSepScreenFreq ProcessBlack.53lpi.300dpi/53 lpi / 300 dpi: "53.033" *ColorSepScreenFreq CustomColor.53lpi.300dpi/53 lpi / 300 dpi: "53.033" *ColorSepScreenFreq ProcessCyan.53lpi.300dpi/53 lpi / 300 dpi: "47.4342" *ColorSepScreenFreq ProcessMagenta.53lpi.300dpi/53 lpi / 300 dpi: "47.4342" *ColorSepScreenFreq ProcessYellow.53lpi.300dpi/53 lpi / 300 dpi: "50.0" *% End of PPD file for IBM LaserPrinter 4019
participants (3)
-
Dmitry Timoshkov -
Huw D M Davies -
Ian Pilcher