Release notes for the Lexmark 3200 printer driver version 0.4.1 December 21, 2000 Copyright 2000 Daniele Gordini (dgordin@tin.it) This program is released under the terms of the GNU GPL. INTRODUCTION ============ This version is an almost complete rewrite of the driver, that adds (hopefully) increased stability and more features. The main differences between this release and the 0.3 releases are: 1) Changed syntax: now there is only one device name and a parameter to select between monochromatic, color and photoquality printing. 2) Much more robust printing: it *should* now be able to print all kind of pages, even very complex ones. I did not have any problem with any printout using this version, but obviously this doesn't mean it's perfect. It can be it will broke at your first attempt to print something, simply it's likely it will work pretty well. 3) Support for 300, 600 and 1200 dpi resolution, both horizontal and vertical. Horizontal and vertical resolutions are independent, thus allowing for a total of 9 different resolution modes. Of course not all of them make sense (300x1200 for instance) but they are selectable nonetheless. IMPORTANT: Ghostscript uses a simple ordered dithering that does not take into account interlaced resolutions (i.e. resolutions where dots partially overlap, like all the Lexmark 3200 resolutions that have 1200 dpi either horizontally or vertically). The result is that at 1200 dpi Ghostscript lays down *way* too much ink *way* too fast, leaving the paper soaked and causing ink smearing. The problem can be partially worked around by adjusting the gamma value to a lighter setting and/or by increasing the number of print passes (see below). The real solution would be to use a proper dithering algorithm: this is not trivial, and it will be cared for in the next release. By now this driver will work at its best at 600 dpi. 4) Bidirectional printing for fastproofing. This still has issues with pass aligment that affect output quality, so I am confining this feature to draft output. The problem is that, as of now, I was able to obtain an output that is perfectly aligned either on the left or the right side but not on both. Even the Windows driver does have problems with bidirectional alignment, so I suspect that there is some kind of hardware problem. Anyway the output of the Windows driver looks better aligned than the output of my driver, so it appears there is room for improvement here. 5) Multipass printing for lesser ink smearing. Using more than one pass has the main effect of reducing the speed at which the ink is dropped on the paper, thus allowing it to dry somewhat before adding more ink. This feature was provided for non-absorbing (i.e. coated) paper, but with the current unoptimized dithering algorithm the highest resolution modes (that would gain more benefit from it) don't really improve much. 6) Now the printing margins are set as the printer's manual says they must be set (well, almost...). This means no more printing on the whole page, but it also means that what is inside the margins should be printed better. Note that, according to the manual, there are two sets of side margins: one used for A4 paper and one used for every other size (namely letter). I don't think this makes sense, but I need to study the issue more carefully, so for this release I will do as the manual says. And the third set of margins, the one used for envelopes, it's plainly ignored because this release does not explicitly support envelopes. This does not mean you won't be able to print on envelopes: it only means I've not tried to do it, so I won't assure anything. 7) The driver supports the Lexmark Z12 and Z31 via the -dmodel parameter (see below). In the case of the Z12 only B&W printing was tested. KNOWN ISSUES ============ This driver is technically robust, but it still has 3 issues about the printout quality that need to be solved. All three directly descend from the fact that the routine used to do the dithering is the standard routine supplied by Ghostscript, which has limitations. The issues are: 1) Ink density is fixed, so at 1200 dpi, where dots partially overlap, the paper gets soaked with ink and the printout is *way* too dark. You can alleviate the soaking problem by using more passes and by disabling bidirectional mode (if it was enabled in the first place), but don't expect too much from these solutions. The sad truth is that at 1200 dpi you need to do a real lot of manual tweaking on the originating program (gamma value, luminosity, etc.) to make the output usable. 2) Dithering algorithm is fixed to ordered, so line art printouts look pretty good (the Ghostscript examples, for instance), but photographic printouts doesn't... 3) There is no color correction, so colors are quite often pretty wrong. I hope to solve most or all of these problems by releasing a version of the driver that plugs into the gimp-print project, using their dithering code (which is more general and better quality than ghostscript's one). PARAMETERS FOR THE DRIVER ========================= BEWARE: in Ghostscript, parameter names are always case sensitive! Device name: ------------ Now there is only one device name: lxm3200, without the trailing letter. So the ghostscript invocation will always contain the option: -sDEVICE=lxm3200 NOTE: this change will break the modified RedHat printtool that was distribuited with the version 0.3 of the driver. There is an upgrade package for printtool and printfilters on the download page that will make things work again, but YOU NEED TO REMOVE ALL THE CONFIGURED PRINTERS THAT USE THE OLD DRIVER BEFORE UPGRADING and then reinstall the printers after the upgrade. Printer model selection: ------------------------ The driver supports the following printers: Lexmark 3200, Z12 and Z31. The model must be selected with the "model" parameter. -dmodel=0 -> Lexmark 3200 (this is the default). -dmodel=1 -> Lexmark Z12 (discovered by Boer Attila) -dmodel=2 -> Lexmark Z31 (discovered by Tomas Groth) Printing mode selection: ------------------------ Since there is only one device now, a new parameter has been added to select between the three printing modes. The parameter name is "mode", and it should be added to the Ghostscript invocation as follows: -dmode= Where is 0 to select monochromatic printing, 1 to select standard color printing (the default) and 2 to select photoquality printing. Printing resolution settings: ----------------------------- The resolution is selected using the standard Ghostscript option "-rHxV", where H is the horizontal resolution and V the vertical one, both in DPI. The default is the native resolution (600x600) and legal values for H and V are 300, 600 and 1200, in any combination. No error is issued if a different number is specified: any setting below 450 is snapped to 300 dpi, a setting between 450 and 900 is snapped to 600 dpi and anything above 900 is snapped to 1200 dpi. Bidirectional printing: ----------------------- The parameter "bidir" selects if bidirectional printing is in effect. Bidirectional improves speed but it has an effect on quality, so I strongly advice to use it only in draft mode. The default is "off", and it can be turned on or off adding on the ghostscript command line the option: -dbidir= where "num" is 0 for monodirectional printing or 1 for bidirectional. Multipass printing: ------------------- The parameter "numpass" allows to specify the number of passes to do on each stripe, to slow down the printing. The invocation will be: -dnumpass= where is the number of passes, ranging from 1 (the default) to 16. Please note that usually each line is printed in a single pass, with the exception of the 1200 dpi resolutions: 1200 dpi horizontal requires two passes, 1200 dpi vertical requires two passes as well, and so 1200x1200 requires a total of four passes. The value of MULTIPLIES this, so setting a of 3 at 1200x1200 dpi will result in a total of 12 passes. Alignment values: ----------------- These are the same as of previous versions. They are all passed to the driver by defining them in a "-d" option. -dAlgnA= This is the horizontal alignment between left and right cartridge. If you notice that there is an horizontal misalignment between black and color parts of the same printout, this is the value to change. The default is 16 and the allowed range for goes from 0 to 30. Obviously, in monochrome printing this value is not used at all. -dAlgnB= This is the same as AlgnB, but for vertical alignment. You need to change this value if you notice vertical misalignments between black and color. The default value is 8 and can go from 0 to 15. In monochrome printing this value is not used. -dAlgnC= This sets the value of the distance between the even and odd nozzle columns of the left cartridge (black or photo). You need to change this if you see misalignments between black parts OF THE SAME STRIPE. The default value is 16, and can go from 0 to 30. -dAlgnD= This sets the value of the distance between the even and odd nozzle columns of the right cartridge (color). You need to change this if you see misalignments between color parts OF THE SAME STRIPE. The default value is 16, and can go from 0 to 30. Additional margin for the Z31: ------------------------------ Because there are small differences between different Z31 models, we need a parameter which introduce an additional margin (default is 100). -dz31m=