1*593dc095SDavid du Colombier<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2*593dc095SDavid du Colombier<html> 3*593dc095SDavid du Colombier<head> 4*593dc095SDavid du Colombier<title>Deprecated Ghostscript features</title> 5*593dc095SDavid du Colombier<!-- $Id: Deprecated.htm,v 1.20 2005/10/20 19:46:23 ray Exp $ --> 6*593dc095SDavid du Colombier<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style"> 7*593dc095SDavid du Colombier</head> 8*593dc095SDavid du Colombier 9*593dc095SDavid du Colombier<body> 10*593dc095SDavid du Colombier<!-- [1.0 begin visible header] ============================================ --> 11*593dc095SDavid du Colombier 12*593dc095SDavid du Colombier<!-- [1.1 begin headline] ================================================== --> 13*593dc095SDavid du Colombier 14*593dc095SDavid du Colombier<h1>Deprecated Ghostscript options and output devices</h1> 15*593dc095SDavid du Colombier 16*593dc095SDavid du Colombier<!-- [1.1 end headline] ==================================================== --> 17*593dc095SDavid du Colombier 18*593dc095SDavid du Colombier<!-- [1.2 begin table of contents] ========================================= --> 19*593dc095SDavid du Colombier 20*593dc095SDavid du Colombier<h2>Table of contents</h2> 21*593dc095SDavid du Colombier 22*593dc095SDavid du Colombier<blockquote><ul> 23*593dc095SDavid du Colombier<li><a href="#Options">Deprecated Options</a> 24*593dc095SDavid du Colombier<li><a href="#HP8_color_inkjet">H-P 8xx, 1100, and 1600 color inkjet printers</a> 25*593dc095SDavid du Colombier<ul> 26*593dc095SDavid du Colombier<li><a href="#HP8_gdevcd8">Drivers contained in <b><tt>gdevcd8.c</tt></b></a> 27*593dc095SDavid du Colombier<li><a href="#HP8_further_documentation">Further documentation</a> 28*593dc095SDavid du Colombier</ul> 29*593dc095SDavid du Colombier<li><a href="#HP880_color_inkjet">H-P 812, 815, 832, 880, 882, 895, and 970 color inkjet printers</a> 30*593dc095SDavid du Colombier<ul> 31*593dc095SDavid du Colombier<li><a href="#HP880_gdevcd8">Drivers contained in <b><tt>gdevcd8.c</tt></b></a> 32*593dc095SDavid du Colombier<li><a href="#HP880_further_documentation">Further documentation</a> 33*593dc095SDavid du Colombier</ul> 34*593dc095SDavid du Colombier<li><a href="#HP_color_inkjet">Other H-P color inkjet printers</a> 35*593dc095SDavid du Colombier<ul> 36*593dc095SDavid du Colombier<li><a href="#HP_gdevcdj">Drivers contained in <b><tt>gdevcdj.c</tt></b></a> 37*593dc095SDavid du Colombier<li><a href="#HP_paper_size">Default paper size</a> 38*593dc095SDavid du Colombier<li><a href="#HP_limits">Deskjet physical limits</a> 39*593dc095SDavid du Colombier<li><a href="#HP_command_line">Printer properties (command-line parameters)</a> 40*593dc095SDavid du Colombier<ul> 41*593dc095SDavid du Colombier<li><a href="#HP_bpp">Bits per pixel</a> 42*593dc095SDavid du Colombier<li><a href="#HP_deskjet_properties">Deskjet properties</a> 43*593dc095SDavid du Colombier<li><a href="#HP_paintjet_properties">Paintjet XL300 / Paintjet XL properties</a> 44*593dc095SDavid du Colombier</ul> 45*593dc095SDavid du Colombier<li><a href="#HP_gamma">Gamma correction</a> 46*593dc095SDavid du Colombier<li><a href="#HP_resolution_enhance">HP's resolution-enhanced mode for Inkjet printers</a> 47*593dc095SDavid du Colombier<li><a href="#HP_tips">General tips</a> 48*593dc095SDavid du Colombier</ul> 49*593dc095SDavid du Colombier<li><a href="#BJC_8200">Canon BJC-8200 printer</a> 50*593dc095SDavid du Colombier<li><a href="#BJC">Other Canon BubbleJet (BJC) printers</a> 51*593dc095SDavid du Colombier<ul> 52*593dc095SDavid du Colombier<li><a href="#BJC_history">History</a> 53*593dc095SDavid du Colombier<li><a href="#BJC_build">Configuring and building the BJC drivers</a> 54*593dc095SDavid du Colombier<ul> 55*593dc095SDavid du Colombier<li><a href="#BJC_defaults">Modify values in <b><tt>gdevbjc.h</tt></b></a> 56*593dc095SDavid du Colombier<li><a href="#BJC_CMYK_RGB">CMYK-to-RGB color conversion</a> 57*593dc095SDavid du Colombier<li><a href="#BJC_vertical_centering">Vertical centering of the printable area</a> 58*593dc095SDavid du Colombier<li><a href="#BJC_margins">Page margins</a> 59*593dc095SDavid du Colombier<li><a href="#BJC_compile">Makefile and compilation</a> 60*593dc095SDavid du Colombier</ul> 61*593dc095SDavid du Colombier<li><a href="#BJC_usage">Use of the drivers</a> 62*593dc095SDavid du Colombier<ul> 63*593dc095SDavid du Colombier<li><a href="#BJC_options">Supported Options and Defaults</a> 64*593dc095SDavid du Colombier<li><a href="#BJC_device_info">Device information</a> 65*593dc095SDavid du Colombier<li><a href="#BJC_HW_margins">Hardware margins</a> 66*593dc095SDavid du Colombier<li><a href="#BJC_PPD">PostScript printer description (PPD) files</a> 67*593dc095SDavid du Colombier<li><a href="#BJC_PPD_custom">Customizing the PPD files</a> 68*593dc095SDavid du Colombier</ul> 69*593dc095SDavid du Colombier<li><a href="#BJC_bugs">How to report problems</a> 70*593dc095SDavid du Colombier<li><a href="#BJC_acks">Acknowledgements</a> 71*593dc095SDavid du Colombier</ul> 72*593dc095SDavid du Colombier<li><a href="#STC_epson_stylus">Epson Stylus color printer (see also <b><tt>uniprint</tt></b>)</a> 73*593dc095SDavid du Colombier<ul> 74*593dc095SDavid du Colombier<li><a href="#STC_usage">Usage</a> 75*593dc095SDavid du Colombier<li><a href="#STC_options">Options</a> 76*593dc095SDavid du Colombier<li><a href="#STC_FAQ">Application note and FAQ</a> 77*593dc095SDavid du Colombier<ul> 78*593dc095SDavid du Colombier<li><a href="#STC_FAQ_A3">Support for A3 paper</a> 79*593dc095SDavid du Colombier<li><a href="#STC_FAQ_margins">Margins, PageSize</a> 80*593dc095SDavid du Colombier<li><a href="#STC_FAQ_II_IIS_1500">Stylus Color II / IIs and 1500</a> 81*593dc095SDavid du Colombier</ul> 82*593dc095SDavid du Colombier<li><a href="#STC_recommendations">Recommendations</a> 83*593dc095SDavid du Colombier<ul> 84*593dc095SDavid du Colombier<li><a href="#STC_dither_experiment">Color dithering experiments with <b><tt>gdevstc</tt></b> 1.21</a> 85*593dc095SDavid du Colombier</ul> 86*593dc095SDavid du Colombier<li><a href="#STC_color_transform">Color transformation</a> 87*593dc095SDavid du Colombier<li><a href="#STC_CAM"><b><tt>ColorAdjustMatrix</tt></b></a> 88*593dc095SDavid du Colombier<li><a href="#STC_RGBCMYK_coding">RGB / CMYK coding and transfer, and <b><tt>BitsPerPixel</tt></b></a> 89*593dc095SDavid du Colombier<li><a href="#What_is_weaving">What is weaving?</a> 90*593dc095SDavid du Colombier<li><a href="#STC_print_modes">Print mode parameters</a> 91*593dc095SDavid du Colombier<ul> 92*593dc095SDavid du Colombier<li><a href="#STC_unidirectional"><b><tt>Unidirectional</tt></b></a> 93*593dc095SDavid du Colombier<li><a href="#STC_noweave"><b><tt>Microweave</tt></b>, <b><tt>noWeave</tt></b> and <b><tt>OutputCode=deltarow</tt></b></a> 94*593dc095SDavid du Colombier<li><a href="#STC_model"><b><tt>Model</tt></b></a> 95*593dc095SDavid du Colombier</ul> 96*593dc095SDavid du Colombier<li><a href="#STC_Pitfalls">Bugs and pitfalls</a> 97*593dc095SDavid du Colombier<li><a href="#STC_Tests">Tests</a> 98*593dc095SDavid du Colombier<ul> 99*593dc095SDavid du Colombier<li><a href="#STC_OutputCodes">The various OutputCodes</a> 100*593dc095SDavid du Colombier<li><a href="#STC_printing_time">Printing time related to other options</a> 101*593dc095SDavid du Colombier</ul> 102*593dc095SDavid du Colombier<li><a href="#STC_acks">Acknowledgments</a> 103*593dc095SDavid du Colombier</ul> 104*593dc095SDavid du Colombier<li><a href="#Uniprint">uniprint, a flexible unified printer driver</a> 105*593dc095SDavid du Colombier<ul> 106*593dc095SDavid du Colombier<li><a href="#Uni_state">The state of this driver</a> 107*593dc095SDavid du Colombier<li><a href="#Uni_background">Notes on <b><tt>uniprint</tt></b>'s background</a> 108*593dc095SDavid du Colombier<li><a href="#Uni_make_pfile">Godzilla's guide to the creation of Unified Printer Parameter (<b><tt>.upp</tt></b>) files</a> 109*593dc095SDavid du Colombier<li><a href="#Uni_all_parameters">All parameters in brief</a> 110*593dc095SDavid du Colombier<li><a href="#Uni_honors"><b><tt>Uniprint</tt></b>'s Roll of Honor</a> 111*593dc095SDavid du Colombier<li><a href="#Uni_weaving_howto"><b><tt>Uniprint</tt></b> weaving parameters howto</a></li> 112*593dc095SDavid du Colombier<li><a href="#Uni_esc300">Extension to <b><tt>uniprint</tt></b> for the Epson Stylus Color 300</a></li> 113*593dc095SDavid du Colombier</ul> 114*593dc095SDavid du Colombier</ul></blockquote> 115*593dc095SDavid du Colombier 116*593dc095SDavid du Colombier<!-- [1.2 end table of contents] =========================================== --> 117*593dc095SDavid du Colombier 118*593dc095SDavid du Colombier<!-- [1.3 begin hint] ====================================================== --> 119*593dc095SDavid du Colombier 120*593dc095SDavid du Colombier<p><strong>These devices are no longer supported and/or superceeded by newer methods. 121*593dc095SDavid du ColombierThe documentation is kept here for reference. Be advised that these devices 122*593dc095SDavid du Colombierwill be removed in future versions of Ghostscript.</strong></p> 123*593dc095SDavid du Colombier 124*593dc095SDavid du Colombier<p>Supported devices are descripted in <a href="Devices">Details of Ghostscript 125*593dc095SDavid du Colombieroutput devices</a>.</p> 126*593dc095SDavid du Colombier 127*593dc095SDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript 128*593dc095SDavid du Colombieroverview</a>. You may also be interested in <a href="Make.htm">how to 129*593dc095SDavid du Colombierbuild Ghostscript</a> and <a href="Install.htm">install it</a>, as well as 130*593dc095SDavid du Colombierthe description of the <a href="Drivers.htm">driver interface</a>. 131*593dc095SDavid du Colombier 132*593dc095SDavid du Colombier<!-- [1.3 end hint] ======================================================== --> 133*593dc095SDavid du Colombier 134*593dc095SDavid du Colombier<hr> 135*593dc095SDavid du Colombier 136*593dc095SDavid du Colombier<!-- [1.0 end visible header] ============================================== --> 137*593dc095SDavid du Colombier 138*593dc095SDavid du Colombier<!-- [2.0 begin contents] ================================================== --> 139*593dc095SDavid du Colombier 140*593dc095SDavid du Colombier<h2><a name="Options"></a>Deprecated options</h2> 141*593dc095SDavid du Colombier 142*593dc095SDavid du Colombier<p> 143*593dc095SDavid du ColombierFor compatibility with older versions of Ghostscript, <tt>-sOUTPUTFILE</tt> 144*593dc095SDavid du Colombieris a synonym for <tt>-sOutputFile</tt>. It should not be used in new code. 145*593dc095SDavid du Colombier 146*593dc095SDavid du Colombier<hr> 147*593dc095SDavid du Colombier 148*593dc095SDavid du Colombier<h2><a name="HP8_color_inkjet"></a>H-P 8xx, 1100, and 1600 color inkjet printers</h2> 149*593dc095SDavid du Colombier 150*593dc095SDavid du Colombier<p> 151*593dc095SDavid du ColombierThis section, written by Uli Wortmann <<a 152*593dc095SDavid du Colombierhref="mailto:uliw@erdw.ethz.ch">uliw@erdw.ethz.ch</a>>, deals with the 153*593dc095SDavid du ColombierDeskJet 670, 690, 850, 855, 870, 890, 1100, and 1600. 154*593dc095SDavid du Colombier 155*593dc095SDavid du Colombier<h3><a name="HP8_gdevcd8"></a>Drivers contained in <b><tt>gdevcd8.c</tt></b></h3> 156*593dc095SDavid du Colombier 157*593dc095SDavid du Colombier<p> 158*593dc095SDavid du ColombierThe source module <b><tt>gdevcd8.c</tt></b> contains four generic drivers: 159*593dc095SDavid du Colombier 160*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 161*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj670</tt></b> 162*593dc095SDavid du Colombier <td> 163*593dc095SDavid du Colombier <td>HP DeskJet 670 and 690 164*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj850</tt></b> 165*593dc095SDavid du Colombier <td> 166*593dc095SDavid du Colombier <td>HP DeskJet 850, 855, 870, and 1100 167*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj890</tt></b> 168*593dc095SDavid du Colombier <td> 169*593dc095SDavid du Colombier <td>HP DeskJet 890 170*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj1600</tt></b> 171*593dc095SDavid du Colombier <td> 172*593dc095SDavid du Colombier <td>HP DeskJet 1600 173*593dc095SDavid du Colombier</table></blockquote> 174*593dc095SDavid du Colombier 175*593dc095SDavid du Colombier<h3><a name="HP8_further_documentation"></a>Further documentation</h3> 176*593dc095SDavid du Colombier 177*593dc095SDavid du Colombier<p> 178*593dc095SDavid du Colombier<b>Credits:</b> Much of the driver is based on ideas derived from the 179*593dc095SDavid du Colombiercdj550 driver of George Cameron. The support for the hp670, hp690, hp890 180*593dc095SDavid du Colombierand hp1600 was added by Martin Gerbershagen. 181*593dc095SDavid du Colombier 182*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 183*593dc095SDavid du Colombier<tr valign=top> <td>11.11.96 184*593dc095SDavid du Colombier <td> 185*593dc095SDavid du Colombier <td>Version 1.0 186*593dc095SDavid du Colombier <td> 187*593dc095SDavid du Colombier <td> 188*593dc095SDavid du Colombier<tr valign=top> <td>25.08.97 189*593dc095SDavid du Colombier <td> 190*593dc095SDavid du Colombier <td>Version 1.2 191*593dc095SDavid du Colombier <td> 192*593dc095SDavid du Colombier <td>Resolved all but one of the known bugs, introduced a couple of 193*593dc095SDavid du Colombier perfomance improvements. Complete new color-transfer-function 194*593dc095SDavid du Colombier handling (see gamma). 195*593dc095SDavid du Colombier<tr valign=top> <td>01.06.98 196*593dc095SDavid du Colombier <td> 197*593dc095SDavid du Colombier <td>Version 1.3 198*593dc095SDavid du Colombier <td> 199*593dc095SDavid du Colombier <td>Due to the most welcome contribution of Martin Gerbershagen 200*593dc095SDavid du Colombier (ger@ulm.temic.de), support for the hp670, hp690 and hp890 and 201*593dc095SDavid du Colombier hp1600 has been added. Martin has also resolved all known bugs. 202*593dc095SDavid du Colombier<tr valign=top> <td> 203*593dc095SDavid du Colombier <td> 204*593dc095SDavid du Colombier <td> 205*593dc095SDavid du Colombier <td> 206*593dc095SDavid du Colombier <td>Problems:Dark colors are still pale. 207*593dc095SDavid du Colombier</table></blockquote> 208*593dc095SDavid du Colombier 209*593dc095SDavid du Colombier<p> 210*593dc095SDavid du ColombierThe hp690 is supported through the hp670 device, the hp855, hp870 and the 211*593dc095SDavid du Colombierhp1100 through the hp850 device. The driver needs no longer special 212*593dc095SDavid du Colombierswitches to be invoked except <b><tt>-sDEVICE=cdj850</tt></b>, 213*593dc095SDavid du Colombier<b><tt>-sDEVICE=CDJ890</tt></b>, <b><tt>-sDEVICE=CDJ670</tt></b>, or 214*593dc095SDavid du Colombier<b><tt>-sDevice=CDJ1600</tt></b>. The following switches are supported. 215*593dc095SDavid du Colombier 216*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 217*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dPapertype=</tt></b> 218*593dc095SDavid du Colombier <td> 219*593dc095SDavid du Colombier <td>0 220*593dc095SDavid du Colombier <td> 221*593dc095SDavid du Colombier <td>plain paper [default] 222*593dc095SDavid du Colombier<tr valign=top> <td> 223*593dc095SDavid du Colombier <td> 224*593dc095SDavid du Colombier <td>1 225*593dc095SDavid du Colombier <td> 226*593dc095SDavid du Colombier <td>bond paper 227*593dc095SDavid du Colombier<tr valign=top> <td> 228*593dc095SDavid du Colombier <td> 229*593dc095SDavid du Colombier <td>2 230*593dc095SDavid du Colombier <td> 231*593dc095SDavid du Colombier <td>special paper 232*593dc095SDavid du Colombier<tr valign=top> <td> 233*593dc095SDavid du Colombier <td> 234*593dc095SDavid du Colombier <td>3 235*593dc095SDavid du Colombier <td> 236*593dc095SDavid du Colombier <td>glossy film 237*593dc095SDavid du Colombier<tr valign=top> <td> 238*593dc095SDavid du Colombier <td> 239*593dc095SDavid du Colombier <td>4 240*593dc095SDavid du Colombier <td> 241*593dc095SDavid du Colombier <td>transparency film 242*593dc095SDavid du Colombier<tr valign=top> <td> 243*593dc095SDavid du Colombier <td> 244*593dc095SDavid du Colombier <td> 245*593dc095SDavid du Colombier <td> 246*593dc095SDavid du Colombier <td>Currently the lookup tables are unsuited for printing on 247*593dc095SDavid du Colombier special paper or transparencies. For these please revert to the 248*593dc095SDavid du Colombier gamma functions. 249*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dQuality=</tt></b> 250*593dc095SDavid du Colombier <td> 251*593dc095SDavid du Colombier <td>-1 252*593dc095SDavid du Colombier <td> 253*593dc095SDavid du Colombier <td>draft 254*593dc095SDavid du Colombier<tr valign=top> <td> 255*593dc095SDavid du Colombier <td> 256*593dc095SDavid du Colombier <td>0 257*593dc095SDavid du Colombier <td> 258*593dc095SDavid du Colombier <td>normal [default] 259*593dc095SDavid du Colombier<tr valign=top> <td> 260*593dc095SDavid du Colombier <td> 261*593dc095SDavid du Colombier <td>1 262*593dc095SDavid du Colombier <td> 263*593dc095SDavid du Colombier <td>presentation 264*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dRetStatus=</tt></b> 265*593dc095SDavid du Colombier <td> 266*593dc095SDavid du Colombier <td>0 267*593dc095SDavid du Colombier <td> 268*593dc095SDavid du Colombier <td>C-RET off 269*593dc095SDavid du Colombier<tr valign=top> <td> 270*593dc095SDavid du Colombier <td> 271*593dc095SDavid du Colombier <td>1 272*593dc095SDavid du Colombier <td> 273*593dc095SDavid du Colombier <td>C-RET on [default] 274*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dMasterGamma=</tt></b> 275*593dc095SDavid du Colombier <td> 276*593dc095SDavid du Colombier <td>3.0 277*593dc095SDavid du Colombier <td> 278*593dc095SDavid du Colombier <td>[default = 1.0] 279*593dc095SDavid du Colombier</table></blockquote> 280*593dc095SDavid du Colombier 281*593dc095SDavid du Colombier<blockquote> 282*593dc095SDavid du Colombier<b>Note:</b> To take advantage of the calibrated color-transfer functions, 283*593dc095SDavid du Colombierbe sure not to have any gamma statements left! If you need to (i.e., for 284*593dc095SDavid du Colombieroverhead transparencies), you still can use the gamma functions, but they 285*593dc095SDavid du Colombierwill override the built-in calibration. To use gamma in the traditional 286*593dc095SDavid du Colombierway, set MasterGamma to any value greater than 1.0 and less than 10.0. To 287*593dc095SDavid du Colombieradjust individual gamma values, you have to additionally set MasterGamma to 288*593dc095SDavid du Colombiera value greater than 1.0 and less than 10.0. With the next release, gamma 289*593dc095SDavid du Colombierfunctions will be dropped. 290*593dc095SDavid du Colombier</blockquote> 291*593dc095SDavid du Colombier 292*593dc095SDavid du Colombier<p> 293*593dc095SDavid du ColombierWhen using the driver, be aware that printing at 600dpi involves 294*593dc095SDavid du Colombierprocessing large amounts of data (> 188MB !). Therefore the 295*593dc095SDavid du Colombierdriver is not what you would expect to be a fast driver ;-) 296*593dc095SDavid du ColombierThis is no problem when printing a full-sized color page (because 297*593dc095SDavid du Colombierprinting itself is slow), but it's really annoying if you print only 298*593dc095SDavid du Colombiertext pages. Maybe I can optimize the code for text-only pages in a 299*593dc095SDavid du Colombierlater release. Right now, it is recommended to use the highest 300*593dc095SDavid du Colombierpossible optimisation level your compiler offers. 301*593dc095SDavid du ColombierFor the time being, use the cdj550 device with <b><tt>-sBitsPerPixel=3</tt></b> 302*593dc095SDavid du Colombierfor fast proof prints. If you simply want to print 600dpi BW data, 303*593dc095SDavid du Colombieruse the cdj550 device with <b><tt>-sBitsPerPixel=8</tt></b> (or 1). 304*593dc095SDavid du Colombier 305*593dc095SDavid du Colombier<p> 306*593dc095SDavid du ColombierSince the printer itself is slow, it may help to set the process priority 307*593dc095SDavid du Colombierof the gs process to "regular" or even less. On a 486/100MHz this is still 308*593dc095SDavid du Colombiersufficient to maintain a continuous data flow. Note to OS/2 users: simply 309*593dc095SDavid du Colombierput the gs window into the background or minimize it. Also make sure that 310*593dc095SDavid du Colombier<b><tt>print01.sys</tt></b> is invoked without the <b><tt>/irq</tt></b> 311*593dc095SDavid du Colombierswitch (great speed improvement under Warp4). 312*593dc095SDavid du Colombier 313*593dc095SDavid du Colombier<p> 314*593dc095SDavid du ColombierThe printer default settings compensate for dot-gain by a calibrated 315*593dc095SDavid du Colombiercolor-transfer function. If this appears to be too light for your business 316*593dc095SDavid du Colombiergraphs, or for overhead transparencies, feel free to set 317*593dc095SDavid du Colombier<b><tt>-dMasterGamma=1.7</tt></b>. Furthermore, you may tweak the gamma 318*593dc095SDavid du Colombiervalues independently by setting <b><tt>-dGammaValC</tt></b>, 319*593dc095SDavid du Colombier<b><tt>-dGammaValM</tt></b>, <b><tt>-dGammaValY</tt></b> or 320*593dc095SDavid du Colombier<b><tt>-dGammaValK</tt></b> (if not set, the values default to 321*593dc095SDavid du Colombier<b><tt>MasterGamma</tt></b>). This will only work when 322*593dc095SDavid du Colombier<b><tt>-dMasterGamma</tt></b> is set to a value greater than 1.0. 323*593dc095SDavid du Colombier 324*593dc095SDavid du Colombier<p> 325*593dc095SDavid du ColombierFurther information, bugs, tips etc, can be found at my website. To learn 326*593dc095SDavid du Colombiermore about gamma, see 327*593dc095SDavid du Colombier<a href="ftp://ftp.igd.fhg.de/pub/doc/colour/GammaFAQ.pdf">ftp://ftp.igd.fhg.de/pub/doc/colour/GammaFAQ.pdf</a>. 328*593dc095SDavid du Colombier 329*593dc095SDavid du Colombier<p> 330*593dc095SDavid du ColombierDepending on how you transfer the files, under UNIX you may need to remove 331*593dc095SDavid du Colombierthe CRs of the CR-LF sequence used for end-of-line on DOS-based (MS 332*593dc095SDavid du ColombierWindows-based) systems. You can do this in unpacking the files with <b><tt>unzip -a hp850.zip</tt></b>. 333*593dc095SDavid du Colombier 334*593dc095SDavid du Colombier<p> 335*593dc095SDavid du ColombierTo compile with gs5.x or later, simply add to your makefile 336*593dc095SDavid du Colombier<blockquote> 337*593dc095SDavid du ColombierDEVICE_DEVS4=cdj850.dev cdj670.dev cdj890.dev cdj1600.dev 338*593dc095SDavid du Colombier</blockquote> 339*593dc095SDavid du Colombier 340*593dc095SDavid du Colombier<p> 341*593dc095SDavid du ColombierHave fun! 342*593dc095SDavid du Colombier 343*593dc095SDavid du Colombier<p> 344*593dc095SDavid du ColombierUli <<a href="mailto:uliw@erdw.ethz.ch">uliw@erdw.ethz.ch</a>> 345*593dc095SDavid du Colombier<br><a href="http://www.erdw.ethz.ch/~bonk/">http://www.erdw.ethz.ch/~bonk/</a> 346*593dc095SDavid du Colombier 347*593dc095SDavid du Colombier<hr> 348*593dc095SDavid du Colombier 349*593dc095SDavid du Colombier<h2><a name="HP880_color_inkjet"></a>H-P 812, 815, 832, 880, 882, 895, and 970 color inkjet printers</h2> 350*593dc095SDavid du Colombier 351*593dc095SDavid du Colombier<p> 352*593dc095SDavid du ColombierThis section, written by Matthew Gelhaus <<a 353*593dc095SDavid du Colombierhref="mailto:hp880@gelhaus.net">hp880@gelhaus.net</a>>, deals with the 354*593dc095SDavid du ColombierDeskJet 812, 815, 832, 880, 882, 895, and 970. 355*593dc095SDavid du Colombier 356*593dc095SDavid du Colombier<p> 357*593dc095SDavid du ColombierThis is a modified version of the <a href="#HP8_color_inkjet">HP8xx driver</a> 358*593dc095SDavid du Colombierwritten by Uli Wortmann. More information and download are available at 359*593dc095SDavid du Colombier<a href="http://www.gelhaus.net/hp880c/">http://www.gelhaus.net/hp880c/</a>. 360*593dc095SDavid du Colombier 361*593dc095SDavid du Colombier<h3><a name="HP880_gdevcd8"></a>Drivers contained in <b><tt>gdevcd8.c</tt></b></h3> 362*593dc095SDavid du Colombier 363*593dc095SDavid du Colombier<p> 364*593dc095SDavid du ColombierThe source module <b><tt>gdevcd8.c</tt></b> contains one generic driver: 365*593dc095SDavid du Colombier 366*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 367*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj880</tt></b> 368*593dc095SDavid du Colombier <td> 369*593dc095SDavid du Colombier <td>HP DeskJet 812, 815, 832, 880, 882, 895, and 970 370*593dc095SDavid du Colombier</table></blockquote> 371*593dc095SDavid du Colombier 372*593dc095SDavid du Colombier<h3><a name="HP880_further_documentation"></a>Further documentation</h3> 373*593dc095SDavid du Colombier 374*593dc095SDavid du Colombier<p> 375*593dc095SDavid du Colombier<b>Credits:</b> This driver is based on the cdj850 driver by Uli Wortmann, and shares the same 376*593dc095SDavid du Colombierinternal structure, although the PCL3+ interpretation has changed. 377*593dc095SDavid du Colombier 378*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 379*593dc095SDavid du Colombier<tr valign=top> <td>15.03.99 380*593dc095SDavid du Colombier <td> 381*593dc095SDavid du Colombier <td>Version 1.3 382*593dc095SDavid du Colombier <td> 383*593dc095SDavid du Colombier <td>Initial version, based on Version 1.3 of Uli Wortmann's driver. 384*593dc095SDavid du Colombier<tr valign=top> <td>26.02.00 385*593dc095SDavid du Colombier <td> 386*593dc095SDavid du Colombier <td>Version 1.4beta 387*593dc095SDavid du Colombier <td> 388*593dc095SDavid du Colombier <td>Greatly improved color handling & dithering, but not yet complete enough 389*593dc095SDavid du Colombier to use for text. 390*593dc095SDavid du Colombier</table></blockquote> 391*593dc095SDavid du Colombier 392*593dc095SDavid du Colombier<p> 393*593dc095SDavid du ColombierAll printers are supported through the cdj880 device. Invoke with 394*593dc095SDavid du Colombier<b><tt>-sDEVICE=cdj880</tt></b>. The following switches are supported. 395*593dc095SDavid du Colombier 396*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 397*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dPapertype=</tt></b> 398*593dc095SDavid du Colombier <td> 399*593dc095SDavid du Colombier <td>0 400*593dc095SDavid du Colombier <td> 401*593dc095SDavid du Colombier <td>plain paper [default] 402*593dc095SDavid du Colombier<tr valign=top> <td> 403*593dc095SDavid du Colombier <td> 404*593dc095SDavid du Colombier <td>1 405*593dc095SDavid du Colombier <td> 406*593dc095SDavid du Colombier <td>bond paper 407*593dc095SDavid du Colombier<tr valign=top> <td> 408*593dc095SDavid du Colombier <td> 409*593dc095SDavid du Colombier <td>2 410*593dc095SDavid du Colombier <td> 411*593dc095SDavid du Colombier <td>special paper 412*593dc095SDavid du Colombier<tr valign=top> <td> 413*593dc095SDavid du Colombier <td> 414*593dc095SDavid du Colombier <td>3 415*593dc095SDavid du Colombier <td> 416*593dc095SDavid du Colombier <td>glossy film 417*593dc095SDavid du Colombier<tr valign=top> <td> 418*593dc095SDavid du Colombier <td> 419*593dc095SDavid du Colombier <td>4 420*593dc095SDavid du Colombier <td> 421*593dc095SDavid du Colombier <td>transparency film 422*593dc095SDavid du Colombier<tr valign=top> <td> 423*593dc095SDavid du Colombier <td> 424*593dc095SDavid du Colombier <td> 425*593dc095SDavid du Colombier <td> 426*593dc095SDavid du Colombier <td>Currently the lookup tables are unsuited for printing on 427*593dc095SDavid du Colombier special paper or transparencies. For these please revert to the 428*593dc095SDavid du Colombier gamma functions. 429*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dQuality=</tt></b> 430*593dc095SDavid du Colombier <td> 431*593dc095SDavid du Colombier <td>-1 432*593dc095SDavid du Colombier <td> 433*593dc095SDavid du Colombier <td>draft 434*593dc095SDavid du Colombier<tr valign=top> <td> 435*593dc095SDavid du Colombier <td> 436*593dc095SDavid du Colombier <td>0 437*593dc095SDavid du Colombier <td> 438*593dc095SDavid du Colombier <td>normal [default] 439*593dc095SDavid du Colombier<tr valign=top> <td> 440*593dc095SDavid du Colombier <td> 441*593dc095SDavid du Colombier <td>1 442*593dc095SDavid du Colombier <td> 443*593dc095SDavid du Colombier <td>presentation 444*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>-dMasterGamma=</tt></b> 445*593dc095SDavid du Colombier <td> 446*593dc095SDavid du Colombier <td>3.0 447*593dc095SDavid du Colombier <td> 448*593dc095SDavid du Colombier <td>[default = 1.0] 449*593dc095SDavid du Colombier</table></blockquote> 450*593dc095SDavid du Colombier 451*593dc095SDavid du Colombier<p> 452*593dc095SDavid du ColombierThe printer default settings compensate for dot-gain by a pre-defined 453*593dc095SDavid du Colombiercolor-transfer function. If this appears to be too light for your business 454*593dc095SDavid du Colombiergraphs, or for overhead transparencies, feel free to set 455*593dc095SDavid du Colombier<b><tt>-dMasterGamma=1.7</tt></b>. Furthermore, you may tweak the gamma 456*593dc095SDavid du Colombiervalues independently by setting <b><tt>-dGammaValC</tt></b>, 457*593dc095SDavid du Colombier<b><tt>-dGammaValM</tt></b>, <b><tt>-dGammaValY</tt></b> or 458*593dc095SDavid du Colombier<b><tt>-dGammaValK</tt></b> (if not set, the values default to 459*593dc095SDavid du Colombier<b><tt>MasterGamma</tt></b>). This will only work when 460*593dc095SDavid du Colombier<b><tt>-dMasterGamma</tt></b> is set to a value greater than 1.0. 461*593dc095SDavid du Colombier 462*593dc095SDavid du Colombier<p> 463*593dc095SDavid du ColombierFurther information, bugs, tips etc, can be found at my website. 464*593dc095SDavid du Colombier 465*593dc095SDavid du Colombier<p> 466*593dc095SDavid du ColombierTo compile with gs6.x or later, simply add to your makefile 467*593dc095SDavid du Colombier<blockquote> 468*593dc095SDavid du ColombierDEVICE_DEVS4=$(DD)cdj880.dev 469*593dc095SDavid du Colombier</blockquote> 470*593dc095SDavid du Colombier 471*593dc095SDavid du Colombier<p> 472*593dc095SDavid du ColombierMatthew Gelhaus <<a href="mailto:hp880@gelhaus.net">mailto:hp880@gelhaus.net</a>> 473*593dc095SDavid du Colombier<br><a href="http://www.gelhaus.net/hp880c/">http://www.gelhaus.net/hp880c/</a> 474*593dc095SDavid du Colombier 475*593dc095SDavid du Colombier<hr> 476*593dc095SDavid du Colombier 477*593dc095SDavid du Colombier<h2><a name="HP_color_inkjet"></a>H-P color inkjet printers</h2> 478*593dc095SDavid du Colombier 479*593dc095SDavid du Colombier<p> 480*593dc095SDavid du ColombierThis section, written by George Cameron, deals with the DeskJet 500C, 481*593dc095SDavid du ColombierDeskJet 550C, PaintJet, PaintJet XL, PaintJet XL300, the DEC LJ250 482*593dc095SDavid du Colombieroperating in PaintJet-compatible mode. 483*593dc095SDavid du Colombier 484*593dc095SDavid du Colombier<h3><a name="HP_gdevcdj"></a>Drivers contained in <b><tt>gdevcdj.c</tt></b></h3> 485*593dc095SDavid du Colombier 486*593dc095SDavid du Colombier<p> 487*593dc095SDavid du ColombierThe source module <b><tt>gdevcdj.c</tt></b> contains six generic drivers: 488*593dc095SDavid du Colombier 489*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 490*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj500</tt></b> 491*593dc095SDavid du Colombier <td> 492*593dc095SDavid du Colombier <td>HP DeskJet 500C and 540C 493*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>cdj550</tt></b> 494*593dc095SDavid du Colombier <td> 495*593dc095SDavid du Colombier <td>HP DeskJet 550C, 560C, 660C, 660Cse 496*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>pjxl300</tt></b> 497*593dc095SDavid du Colombier <td> 498*593dc095SDavid du Colombier <td>HP PaintJet XL300, DeskJet 1200C, and CopyJet 499*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>pjtest</tt></b> 500*593dc095SDavid du Colombier <td> 501*593dc095SDavid du Colombier <td>HP PaintJet 502*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>pjxltest</tt></b> 503*593dc095SDavid du Colombier <td> 504*593dc095SDavid du Colombier <td>HP PaintJet XL 505*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>declj250</tt></b> 506*593dc095SDavid du Colombier <td> 507*593dc095SDavid du Colombier <td>DEC LJ250 508*593dc095SDavid du Colombier</table></blockquote> 509*593dc095SDavid du Colombier 510*593dc095SDavid du Colombier<p> 511*593dc095SDavid du ColombierAll these drivers have 8-bit (monochrome), 16-bit and 24-bit (colour) and 512*593dc095SDavid du Colombierfor the DJ 550C, 32-bit (colour, CMYK mode) options in addition to standard 513*593dc095SDavid du Colombiercolour and mono drivers. It is also possible to set various 514*593dc095SDavid du Colombierprinter-specific parameters from the command line, for example 515*593dc095SDavid du Colombier 516*593dc095SDavid du Colombier<blockquote><b><tt> 517*593dc095SDavid du Colombiergs -sDEVICE=cDeskJet -dBitsPerPixel=16 -dDepletion=1 -dShingling=2 tiger.eps 518*593dc095SDavid du Colombier</tt></b></blockquote> 519*593dc095SDavid du Colombier 520*593dc095SDavid du Colombier<p> 521*593dc095SDavid du Colombier<b>Note:</b> the old names <b><tt>cDeskJet</tt></b>, 522*593dc095SDavid du Colombier<b><tt>cdjcolor</tt></b> and <b><tt>cdjmono</tt></b> drivers have been 523*593dc095SDavid du Colombierretained; however, their functionality duplicates that available using the 524*593dc095SDavid du Colombierdrivers above (and <b><tt>cDeskJet</tt></b> is identical to 525*593dc095SDavid du Colombier<b><tt>cdj500</tt></b>). That is, we can use 526*593dc095SDavid du Colombier 527*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 528*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>gs -sDEVICE=cdj500 -dBitsPerPixel=24</tt></b> 529*593dc095SDavid du Colombier <td> 530*593dc095SDavid du Colombier <td>for <b><tt>cdjcolor</tt></b>, and 531*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>gs -sDEVICE=cdj500 -dBitsPerPixel=1</tt></b> 532*593dc095SDavid du Colombier <td> 533*593dc095SDavid du Colombier <td>for <b><tt>cdjmono</tt></b> 534*593dc095SDavid du Colombier</table></blockquote> 535*593dc095SDavid du Colombier 536*593dc095SDavid du Colombier<h3><a name="HP_paper_size"></a>Default paper size</h3> 537*593dc095SDavid du Colombier 538*593dc095SDavid du Colombier<p> 539*593dc095SDavid du ColombierIf the preprocessor symbol <b><tt>A4</tt></b> is defined, the default paper 540*593dc095SDavid du Colombiersize is ISO A4; otherwise it is U.S. letter size (see about 541*593dc095SDavid du Colombier<a href="Use.htm#Known_paper_sizes">paper sizes</a> in the usage 542*593dc095SDavid du Colombierdocumentation). You can <a href="Use.htm#Paper_size">specify other paper 543*593dc095SDavid du Colombiersizes</a> on the command line, including A3 for the PaintJet XL and 544*593dc095SDavid du ColombierPaintJet XL300, as also explained in the usage documentation. 545*593dc095SDavid du Colombier 546*593dc095SDavid du Colombier<h3><a name="HP_limits"></a>DeskJet physical limits</h3> 547*593dc095SDavid du Colombier 548*593dc095SDavid du Colombier<p> 549*593dc095SDavid du ColombierThe DeskJet's maximum printing width is 2400 dots, or 8 inches 550*593dc095SDavid du Colombier(20.32cm). The printer manuals say that the maximum recommended printing 551*593dc095SDavid du Colombierheight on the page is 10.3 inches (26.16cm), but since this is obviously 552*593dc095SDavid du Colombiernot true for A4 paper, and I have been unable to detect any problems in 553*593dc095SDavid du Colombierprinting longer page lengths, this would seem to be a rather artificial 554*593dc095SDavid du Colombierrestriction. 555*593dc095SDavid du Colombier 556*593dc095SDavid du Colombier<p> 557*593dc095SDavid du ColombierAll DeskJets have 0.5 inches (1.27cm) of unprintable bottom margin, due to the mechanical 558*593dc095SDavid du Colombierarrangement used to grab the paper. Side margins are approximately 0.25 inches (0.64cm) 559*593dc095SDavid du Colombierfor U.S. letter paper, and 0.15 inches (0.38cm) for A4. 560*593dc095SDavid du Colombier 561*593dc095SDavid du Colombier<h4><a name="HP_command_line"></a>Printer properties (command-line parameters)</h4> 562*593dc095SDavid du Colombier 563*593dc095SDavid du Colombier<p> 564*593dc095SDavid du ColombierSeveral printer "properties" have been implemented for these printers. 565*593dc095SDavid du ColombierThose available so far are all integer quantities, and thus may be 566*593dc095SDavid du Colombierspecified, for instance, like 567*593dc095SDavid du Colombier 568*593dc095SDavid du Colombier<blockquote> 569*593dc095SDavid du Colombier<b><tt>gs -dBitsPerPixel=32 -dShingling=1</tt></b> ... 570*593dc095SDavid du Colombier</blockquote> 571*593dc095SDavid du Colombier 572*593dc095SDavid du Colombier<p> 573*593dc095SDavid du Colombierwhich sets the <b><tt>BitsPerPixel</tt></b> parameter to 32 and the 574*593dc095SDavid du Colombier<b><tt>Shingling</tt></b> parameter to 1. 575*593dc095SDavid du Colombier 576*593dc095SDavid du Colombier<h4><a name="HP_bpp"></a>Bits per pixel</h4> 577*593dc095SDavid du Colombier 578*593dc095SDavid du Colombier<p> 579*593dc095SDavid du ColombierIf the preprocessor symbol <b><tt>BITSPERPIXEL</tt></b> is defined as an 580*593dc095SDavid du Colombierinteger (see below for the range of allowable values), that number defines 581*593dc095SDavid du Colombierthe default bits per pixel (bit depth) for the generic drivers. If the 582*593dc095SDavid du Colombiersymbol is undefined, the default is 24 bits per pixel. It is, of course, 583*593dc095SDavid du Colombierstill possible to specify the value from the command line as described 584*593dc095SDavid du Colombierbelow. Note also that the <b><tt>cDeskJet</tt></b>, 585*593dc095SDavid du Colombier<b><tt>cdjcolor</tt></b> and <b><tt>cdjmono</tt></b> drivers are unaffected 586*593dc095SDavid du Colombierby setting this symbol, as their default settings are predefined to be 1, 3 587*593dc095SDavid du Colombierand 24 respectively. 588*593dc095SDavid du Colombier 589*593dc095SDavid du Colombier<p> 590*593dc095SDavid du ColombierAll of the drivers in <b><tt>gdevcdj.c</tt></b> accept a command line 591*593dc095SDavid du Colombieroption to set the <b><tt>BitsPerPixel</tt></b> property. This gives 592*593dc095SDavid du Colombierconsiderable flexibility in choosing various tradeoffs among speed, 593*593dc095SDavid du Colombierquality, colour, etc. The valid numbers are: 594*593dc095SDavid du Colombier 595*593dc095SDavid du Colombier<blockquote><dl compact> 596*593dc095SDavid du Colombier<dt><b>1</b> 597*593dc095SDavid du Colombier<dd>A standard Ghostscript monochrome driver, using black ink (by 598*593dc095SDavid du Colombierinstalling the separate mono cartridge in the case of the DeskJet 500C, or 599*593dc095SDavid du Colombierautomatically for the other printers). 600*593dc095SDavid du Colombier 601*593dc095SDavid du Colombier<dt><b>3</b> 602*593dc095SDavid du Colombier<dd>A standard Ghostscript colour driver, using internal dithering. This 603*593dc095SDavid du Colombieris fast to compute and to print, but the clustered dithering can lose some 604*593dc095SDavid du Colombierdetail and colour fidelity. 605*593dc095SDavid du Colombier 606*593dc095SDavid du Colombier<dt><b>8</b> 607*593dc095SDavid du Colombier<dd>An "error-diffusion" monochrome driver which uses Floyd-Steinberg 608*593dc095SDavid du Colombierdithering to print greyscale images. The patterns are much more randomised 609*593dc095SDavid du Colombierthan with the normal clustered dithering, but the data files can be much 610*593dc095SDavid du Colombierlarger and somewhat slower to print. 611*593dc095SDavid du Colombier 612*593dc095SDavid du Colombier<dt><b>16</b> 613*593dc095SDavid du Colombier<dd>A "cheaper" version of the 24-bit driver, which generates 614*593dc095SDavid du ColombierFloyd-Steinberg colour dithered output using the minimum memory (this may 615*593dc095SDavid du Colombierbe helpful when using Ghostscript has not been compiled using a 16-bit 616*593dc095SDavid du Colombierbuild environment). The quality can be almost as good as the 24-bit 617*593dc095SDavid du Colombierversion. 618*593dc095SDavid du Colombier 619*593dc095SDavid du Colombier<dt><b>24</b> 620*593dc095SDavid du Colombier<dd>A high-quality colour driver using Floyd-Steinberg dithering for 621*593dc095SDavid du Colombiermaximum detail and colour range. However, it is very memory-intensive, and 622*593dc095SDavid du Colombierthus can be slow to compute. It tends to produce rather larger raw data 623*593dc095SDavid du Colombierfiles, so they can also take longer to print. 624*593dc095SDavid du Colombier 625*593dc095SDavid du Colombier<dt><b>32</b> 626*593dc095SDavid du Colombier<dd>Only for the DeskJet 550C, which uses the black cartridge and the 627*593dc095SDavid du Colombiercolour cartridge simultaneously (that is, CMYK printing). This printer can 628*593dc095SDavid du Colombierboth be faster and give higher quality than the DeskJet 500C, because of 629*593dc095SDavid du Colombierthe true black ink. (Note that the 24-bit mode also permits CMYK printing 630*593dc095SDavid du Colombieron this printer, and uses less memory. Any differences between 24-bit and 631*593dc095SDavid du Colombier32-bit should be small.) 632*593dc095SDavid du Colombier</dl></blockquote> 633*593dc095SDavid du Colombier 634*593dc095SDavid du Colombier<h4><a name="HP_DeskJet_properties"></a>DeskJet properties</h4> 635*593dc095SDavid du Colombier 636*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 637*593dc095SDavid du Colombier<tr valign=bottom> 638*593dc095SDavid du Colombier <th align=left>Name 639*593dc095SDavid du Colombier <td> 640*593dc095SDavid du Colombier <th align=left>Type 641*593dc095SDavid du Colombier <td> 642*593dc095SDavid du Colombier <th align=left> 643*593dc095SDavid du Colombier<tr> <td colspan=5><hr> 644*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>BlackCorrect</tt></b> 645*593dc095SDavid du Colombier <td> 646*593dc095SDavid du Colombier <td><b><tt>int</tt></b> 647*593dc095SDavid du Colombier <td> 648*593dc095SDavid du Colombier <td>Colour correction to give better blacks when using the DJ500C in colour mode. For example, the default of 4 reduces the cyan component to 4/5. Range accepted: 0 - 9 (0 = none). 649*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Shingling</tt></b> 650*593dc095SDavid du Colombier <td> 651*593dc095SDavid du Colombier <td><b><tt>int</tt></b> 652*593dc095SDavid du Colombier <td> 653*593dc095SDavid du Colombier <td>Interlaced, multi-pass printing: 0 = none, 1 = 50%, 2 = 25%, 2 is best and slowest. 654*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Depletion</tt></b> 655*593dc095SDavid du Colombier <td> 656*593dc095SDavid du Colombier <td><b><tt>int</tt></b> 657*593dc095SDavid du Colombier <td> 658*593dc095SDavid du Colombier <td>"Intelligent" dot-removal: 0 = none, 1 = 25%, 2 = 50%, 1 best for graphics? Use 0 for transparencies. 659*593dc095SDavid du Colombier</table></blockquote> 660*593dc095SDavid du Colombier 661*593dc095SDavid du Colombier<h4><a name="HP_PaintJet_properties"></a>PaintJet XL300 / PaintJet XL properties</h4> 662*593dc095SDavid du Colombier 663*593dc095SDavid du Colombier<blockquote> 664*593dc095SDavid du Colombier<table cellpadding=0 cellspacing=0> 665*593dc095SDavid du Colombier<tr valign=bottom> 666*593dc095SDavid du Colombier <th align=left>Name 667*593dc095SDavid du Colombier <td> 668*593dc095SDavid du Colombier <th align=left>Type 669*593dc095SDavid du Colombier <td> 670*593dc095SDavid du Colombier <th align=left> 671*593dc095SDavid du Colombier<tr> <td colspan=5><hr> 672*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>PrintQuality</tt></b> 673*593dc095SDavid du Colombier <td> 674*593dc095SDavid du Colombier <td><b><tt>int</tt></b> 675*593dc095SDavid du Colombier <td> 676*593dc095SDavid du Colombier <td>Mechanical print quality: -1 = fast, 0 = normal, 1 = presentation. Fast mode reduces ink usage and uses single-pass operation for some media types. Presentation uses more ink and the maximum number of passes, giving slowest printing for highest quality 677*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>RenderType</tt></b> 678*593dc095SDavid du Colombier <td> 679*593dc095SDavid du Colombier <td><b><tt>int</tt></b> 680*593dc095SDavid du Colombier <td> 681*593dc095SDavid du Colombier <td><dl compact> 682*593dc095SDavid du Colombier <dt><b>0</b><dd>driver does dithering 683*593dc095SDavid du Colombier <dt><b>1</b><dd>snap to primaries 684*593dc095SDavid du Colombier <dt><b>2</b><dd>snap black to white, others to black 685*593dc095SDavid du Colombier <dt><b>3</b><dd>ordered dither 686*593dc095SDavid du Colombier <dt><b>4</b><dd>error diffusion 687*593dc095SDavid du Colombier <dt><b>5</b><dd>monochrome ordered dither 688*593dc095SDavid du Colombier <dt><b>6</b><dd>monochrome error diffusion 689*593dc095SDavid du Colombier <dt><b>7</b><dd>cluster ordered dither 690*593dc095SDavid du Colombier <dt><b>8</b><dd>monochrome cluster ordered dither 691*593dc095SDavid du Colombier <dt><b>9</b><dd>user-defined dither (not supported) 692*593dc095SDavid du Colombier <dt><b>10</b><dd>monochrome user-defined dither ns. 693*593dc095SDavid du Colombier </dl> 694*593dc095SDavid du Colombier</table> 695*593dc095SDavid du Colombier 696*593dc095SDavid du Colombier<p> 697*593dc095SDavid du ColombierThe PaintJet (non-XL) has no additional properties. 698*593dc095SDavid du Colombier 699*593dc095SDavid du Colombier</blockquote> 700*593dc095SDavid du Colombier 701*593dc095SDavid du Colombier<h3><a name="HP_gamma"></a>Gamma correction</h3> 702*593dc095SDavid du Colombier 703*593dc095SDavid du Colombier<p> 704*593dc095SDavid du ColombierOne consequence of using Floyd-Steinberg dithering rather than Ghostscript's 705*593dc095SDavid du Colombierdefault clustered ordered dither is that it is much more obvious that the 706*593dc095SDavid du Colombierink dots are rather larger on the page than their nominal 1/180-inch or 1/300-inch 707*593dc095SDavid du Colombiersize (clustering the dots tends to minimise this effect). Thus it is often 708*593dc095SDavid du Colombierthe case that the printed result is rather too dark. A simple empirical 709*593dc095SDavid du Colombiercorrection for this may be achieved by preceding the actual PostScript 710*593dc095SDavid du Colombierfile to be printed by a short file which effectively sets the gamma for 711*593dc095SDavid du Colombierthe device, such as 712*593dc095SDavid du Colombier 713*593dc095SDavid du Colombier<blockquote><b><tt> 714*593dc095SDavid du Colombiergs ... gamma.ps colorpic.ps -c quit 715*593dc095SDavid du Colombier</tt></b></blockquote> 716*593dc095SDavid du Colombier 717*593dc095SDavid du Colombier<p> 718*593dc095SDavid du Colombierwhere <b><tt>gamma.ps</tt></b> is 719*593dc095SDavid du Colombier 720*593dc095SDavid du Colombier<blockquote> 721*593dc095SDavid du Colombier<pre>%! 722*593dc095SDavid du Colombier/.fixtransfer { 723*593dc095SDavid du Colombier currentcolortransfer 4 { 724*593dc095SDavid du Colombier mark exch 725*593dc095SDavid du Colombier dup type dup /arraytype eq exch /packedarraytype eq or 726*593dc095SDavid du Colombier 1 index xcheck and { /exec load } if 727*593dc095SDavid du Colombier 0.333 /exp load 728*593dc095SDavid du Colombier ] cvx 4 1 roll 729*593dc095SDavid du Colombier } repeat setcolortransfer 730*593dc095SDavid du Colombier} bind odef 731*593dc095SDavid du Colombier.fixtransfer 732*593dc095SDavid du Colombier/setpagedevice { setpagedevice .fixtransfer } bind odef</pre> 733*593dc095SDavid du Colombier</blockquote> 734*593dc095SDavid du Colombier 735*593dc095SDavid du Colombier<p> 736*593dc095SDavid du ColombierThis does the gamma correction <b><em>after</em></b> whatever correction 737*593dc095SDavid du Colombierthe device might be doing already. To do the correction 738*593dc095SDavid du Colombier<b><em>before</em></b> the current correction, 739*593dc095SDavid du Colombier 740*593dc095SDavid du Colombier<blockquote> 741*593dc095SDavid du Colombier<pre>%! 742*593dc095SDavid du Colombier/.fixtransfer { 743*593dc095SDavid du Colombier currentcolortransfer 4 { 744*593dc095SDavid du Colombier mark 0.333 /exp load 4 -1 roll 745*593dc095SDavid du Colombier dup type dup /arraytype eq exch /packedarraytype eq or 746*593dc095SDavid du Colombier 1 index xcheck and { /exec load } if 747*593dc095SDavid du Colombier ] cvx 4 1 roll 748*593dc095SDavid du Colombier } repeat setcolortransfer 749*593dc095SDavid du Colombier} bind odef 750*593dc095SDavid du Colombier.fixtransfer 751*593dc095SDavid du Colombier/setpagedevice { setpagedevice .fixtransfer } bind odef</pre> 752*593dc095SDavid du Colombier</blockquote> 753*593dc095SDavid du Colombier 754*593dc095SDavid du Colombier<p> 755*593dc095SDavid du ColombierThis example sets the gamma for R, G, and B to 3, which seems to work 756*593dc095SDavid du Colombierreasonably well in practice. 757*593dc095SDavid du Colombier 758*593dc095SDavid du Colombier<h3><a name="HP_resolution_enhance"></a>HP's resolution-enhanced mode for Inkjet printers</h3> 759*593dc095SDavid du Colombier 760*593dc095SDavid du Colombier<p> 761*593dc095SDavid du ColombierThis feature is available on HP's more recent inkjet printers, including 762*593dc095SDavid du Colombierthe DeskJet 520 (mono), 540 (mono or colour) and 560C (mono and colour). 763*593dc095SDavid du ColombierThe colour and monochrome drivers for the HP DeskJet 550c are (probably) 764*593dc095SDavid du Colombierthe best you will get for use with Ghostscript, for the following reasons. 765*593dc095SDavid du Colombier 766*593dc095SDavid du Colombier<p> 767*593dc095SDavid du ColombierThese printers do not offer true 600×300dpi resolution. Those that 768*593dc095SDavid du Colombierprint in colour are strictly 300×300dpi in colour mode, while in mono 769*593dc095SDavid du Colombiermode there is a pseudo 600×300dpi mode with the restriction that you 770*593dc095SDavid du Colombiercan't print two adjacent dots. In effect what you have is 600dpi dot 771*593dc095SDavid du Colombierpositioning, but on average you don't get more dots per line. This 772*593dc095SDavid du Colombierprovides the possibility, for instance, to have sharper character outlines, 773*593dc095SDavid du Colombierbecause you can place dots on the edges nearer to their ideal positions. 774*593dc095SDavid du ColombierThis is why it is worth doing. 775*593dc095SDavid du Colombier 776*593dc095SDavid du Colombier<p> 777*593dc095SDavid du ColombierHowever, HP will not support user-level programming of this 778*593dc095SDavid du Colombierresolution-enhanced mode, one reason being that (I understand) all the dot 779*593dc095SDavid du Colombierspacing has to be done by the driver, and if you get it wrong, you can 780*593dc095SDavid du Colombieractually damage the print head. 781*593dc095SDavid du Colombier 782*593dc095SDavid du Colombier<p> 783*593dc095SDavid du ColombierTo summarise, you may lose a smidgin of (potential) text clarity using the 784*593dc095SDavid du Colombier550c drivers (<b><tt>cdj550</tt></b>, <b><tt>cdjcolor</tt></b>, 785*593dc095SDavid du Colombier<b><tt>cdjmono</tt></b> etc.), but other than that, they are the ones for 786*593dc095SDavid du Colombierthe job. 787*593dc095SDavid du Colombier 788*593dc095SDavid du Colombier<h3><a name="HP_tips"></a>General tips</h3> 789*593dc095SDavid du Colombier 790*593dc095SDavid du Colombier<p> 791*593dc095SDavid du ColombierFor all the printers above, the choice of paper is critically important to 792*593dc095SDavid du Colombierthe final results. The printer manuals suggest type of paper, but in 793*593dc095SDavid du Colombiergeneral, smoother, less fibrous types give better results. In particular, 794*593dc095SDavid du Colombierthe special ink-jet paper can make a big difference: colours are brighter, 795*593dc095SDavid du Colombierbut most importantly, there is almost no colour bleed, even with adjacent 796*593dc095SDavid du Colombierareas of very heavy inking. Similarly the special coated transparencies 797*593dc095SDavid du Colombieralso work well (and ordinary transparencies do not work at all!). 798*593dc095SDavid du Colombier 799*593dc095SDavid du Colombier<p> 800*593dc095SDavid du ColombierThe Unix procedure <a href="Unix-lpr.htm"><b><tt>unix-lpr.sh</tt></b></a> 801*593dc095SDavid du Colombierprovides one example of setting up a multi-option colour PostScript 802*593dc095SDavid du Colombier<b><tt>lpr</tt></b> queue on Unix systems, and includes the ability to 803*593dc095SDavid du Colombierchoose a range of different colour options and printer accounting and error 804*593dc095SDavid du Colombierlogging. 805*593dc095SDavid du Colombier 806*593dc095SDavid du Colombier<p> 807*593dc095SDavid du Colombier<b>Caveat emptor!</b> It is not always easy for me to test all of these 808*593dc095SDavid du Colombierdrivers, as the only colour printer I have here is the DeskJet 500C. I rely 809*593dc095SDavid du Colombieron others to test drivers for the additional machines and report their 810*593dc095SDavid du Colombierfindings back to me. 811*593dc095SDavid du Colombier 812*593dc095SDavid du Colombier<hr> 813*593dc095SDavid du Colombier 814*593dc095SDavid du Colombier<h2><a name="BJC_8200"></a>Canon BJC-8200 printer</h2> 815*593dc095SDavid du Colombier 816*593dc095SDavid du Colombier<p> 817*593dc095SDavid du ColombierThis section was contributed by the author of the <b><tt>uniprint</tt></b> 818*593dc095SDavid du Colombierconfiguration files for the Canon BJC-8200, Stephan C. Buchert <<a 819*593dc095SDavid du Colombierhref="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>>. 820*593dc095SDavid du ColombierThese files also handle the Japanese Canon F850 printer. 821*593dc095SDavid du Colombier 822*593dc095SDavid du Colombier<p> 823*593dc095SDavid du ColombierWarning: Usage of this program is neither supported nor endorsed by 824*593dc095SDavid du Colombierthe Canon corporation. Please see the Ghostscript <a 825*593dc095SDavid du Colombierhref="Public.htm">license</a> regarding warranty. 826*593dc095SDavid du Colombier 827*593dc095SDavid du Colombier<h3>Introduction</h3> 828*593dc095SDavid du Colombier 829*593dc095SDavid du Colombier<p> 830*593dc095SDavid du ColombierThe Canon Bubble Jet printer BJC-8200 is designed for printing digital 831*593dc095SDavid du Colombierphotos and halftone images. Software drivers for Windows 95-2000 and Mac are 832*593dc095SDavid du Colombierusually included and can be downloaded from the Canon web sites like 833*593dc095SDavid du Colombier<a href="http://consumer.usa.canon.com/bjc/bjc8200/">http://consumer.usa.canon.com/bjc/bjc8200/</a> 834*593dc095SDavid du Colombierfor the US market. If these drivers cannot be used for some reason, then at 835*593dc095SDavid du Colombierpresent Ghostscript is probably the alternative giving the best results. 836*593dc095SDavid du Colombier 837*593dc095SDavid du Colombier<p> 838*593dc095SDavid du ColombierThe BJC-8200 has features not found among the specs of earlier bubble jet 839*593dc095SDavid du Colombiermodels (except the even more advanced BJC-8500) and is advertised to offer: 840*593dc095SDavid du Colombier 841*593dc095SDavid du Colombier<ol> 842*593dc095SDavid du Colombier 843*593dc095SDavid du Colombier<li>microfine droplet technology; 844*593dc095SDavid du Colombier 845*593dc095SDavid du Colombier<li>support for printing on a new type of paper, Photo Paper Pro; 846*593dc095SDavid du Colombier 847*593dc095SDavid du Colombier<li>a printhead capable of printing up to 1200 DpI; 848*593dc095SDavid du Colombier 849*593dc095SDavid du Colombier<li>individual ink tanks for 6 colors; 850*593dc095SDavid du Colombier 851*593dc095SDavid du Colombier<li>an internal status monitor reporting low ink back to a driver; 852*593dc095SDavid du Colombier 853*593dc095SDavid du Colombier<li>an optional color scanner cartridge for up to 600 DpI resolution. 854*593dc095SDavid du Colombier 855*593dc095SDavid du Colombier</ol> 856*593dc095SDavid du Colombier 857*593dc095SDavid du Colombier<p> 858*593dc095SDavid du ColombierAccess to features 5 and 6 requires use of the original Canon drivers for 859*593dc095SDavid du Colombierthe foreseeable future. This README is about getting the printer features 860*593dc095SDavid du Colombier1-3 working with Ghostscript. No (re)compilation of Ghostscript is normally 861*593dc095SDavid du Colombierrequired. 862*593dc095SDavid du Colombier 863*593dc095SDavid du Colombier<p> 864*593dc095SDavid du ColombierGhostscript comes with a relatively highly configurable driver, called 865*593dc095SDavid du Colombier<a href="#Uniprint">uniprint</a>, for printers which understand raster 866*593dc095SDavid du Colombierimages in various propriety formats. Most options for this driver are 867*593dc095SDavid du Colombierusually organized into files having the suffix ".upp." Ghostscript 868*593dc095SDavid du Colombierversions >= 5.10 (or even earlier) include such uniprint control files 869*593dc095SDavid du Colombierfor the Canon BJC-610. They work also well for some other Canon Bubble 870*593dc095SDavid du ColombierJet models, for example for my BJC-35vII. But when using them for a 871*593dc095SDavid du ColombierBJC-8200 the result is unsatisfactory. 872*593dc095SDavid du Colombier 873*593dc095SDavid du Colombier<h3>The uniprint control files for the BJC-8200</h3> 874*593dc095SDavid du Colombier 875*593dc095SDavid du Colombier<p> 876*593dc095SDavid du ColombierAfter some experimenting with the options for uniprint I have obtained quite 877*593dc095SDavid du Colombiersatisfactory prints with my printer(*). This distribution includes six new 878*593dc095SDavid du Colombieruniprint control files: 879*593dc095SDavid du Colombier 880*593dc095SDavid du Colombier<ul> 881*593dc095SDavid du Colombier<li>bj8pp12f.upp 882*593dc095SDavid du Colombier<li>bj8hg12f.upp 883*593dc095SDavid du Colombier<li>bj8gc12f.upp 884*593dc095SDavid du Colombier<li>bj8oh06n.upp 885*593dc095SDavid du Colombier<li>bj8ts06n.upp 886*593dc095SDavid du Colombier<li>bj8pa06n.upp 887*593dc095SDavid du Colombier</ul> 888*593dc095SDavid du Colombier 889*593dc095SDavid du Colombier<p> 890*593dc095SDavid du ColombierThey are included in Ghostscript >=6.21. For older versions you can put 891*593dc095SDavid du Colombierthem anywhere in the Ghostscript search path (type "gs -h" to see the 892*593dc095SDavid du Colombierpath), but should perhaps add the files to the directory with the 893*593dc095SDavid du Colombierother *.upp files. This is "/usr/share/ghostscript/gs6.01/lib" in my 894*593dc095SDavid du ColombierRedHat 6.1 Linux box with Aladdin Ghostscript 6.01. 895*593dc095SDavid du Colombier 896*593dc095SDavid du Colombier<p> 897*593dc095SDavid du ColombierHere is an explanation of my file name convention: the prefix "bj8" should 898*593dc095SDavid du Colombierperhaps be used for the Canon BJC-8200 and compatible (like the Japanese 899*593dc095SDavid du ColombierF850 and perhaps the non-Japanese BJC-8500) models. The next two letters 900*593dc095SDavid du Colombierindicate the print media: 901*593dc095SDavid du Colombier 902*593dc095SDavid du Colombier<ul> 903*593dc095SDavid du Colombier<li>pp "Photo Paper Pro" 904*593dc095SDavid du Colombier<li>hg "High Gloss Photo Film" 905*593dc095SDavid du Colombier<li>gc "Glossy Photo Cards" 906*593dc095SDavid du Colombier<li>oh "OHP transparencies" 907*593dc095SDavid du Colombier<li>ts "T-shirt transfer" 908*593dc095SDavid du Colombier<li>pa "Plain Paper" 909*593dc095SDavid du Colombier</ul> 910*593dc095SDavid du Colombier 911*593dc095SDavid du Colombier<p> 912*593dc095SDavid du ColombierThe numbers at positions 6 and 7 indicate the resolution 913*593dc095SDavid du Colombier 914*593dc095SDavid du Colombier<ul> 915*593dc095SDavid du Colombier<li>12 1200x1200 DpIxDpI 916*593dc095SDavid du Colombier<li>06 600x600 DpIxDpI 917*593dc095SDavid du Colombier</ul> 918*593dc095SDavid du Colombier 919*593dc095SDavid du Colombier<p> 920*593dc095SDavid du ColombierThe last letter stands for a quality factor that effects also the print 921*593dc095SDavid du Colombierspeed (presumably related to the number of passes that the printhead makes). 922*593dc095SDavid du Colombier 923*593dc095SDavid du Colombier<ul> 924*593dc095SDavid du Colombier<li>f highest quality 925*593dc095SDavid du Colombier<li>n normal quality 926*593dc095SDavid du Colombier</ul> 927*593dc095SDavid du Colombier 928*593dc095SDavid du Colombier<p> 929*593dc095SDavid du ColombierPrinting a postcard size (~10x15 cm^2) image at 1200x1200 DpI^2 takes about 930*593dc095SDavid du Colombier3 minutes. The output of Ghostscript is then typically 4-5 MByte. The 931*593dc095SDavid du Colombierbootleneck seems to be the transfer of the raster image in run-length 932*593dc095SDavid du Colombierencoded Canon format to the printer (via the parallel port on my system) or 933*593dc095SDavid du Colombierthe printer's speed, not Ghostscript or the uniprint renderer. 934*593dc095SDavid du Colombier 935*593dc095SDavid du Colombier<h3>Further Optimization for the Canon BJC-8200</h3> 936*593dc095SDavid du Colombier 937*593dc095SDavid du ColombierSo far I have only experimented with the printer initialization code at the 938*593dc095SDavid du Colombierbeginning of each page (-dupBeginPageCommand) and the resolution (-r). Other 939*593dc095SDavid du Colombieroptions, particularly the transfer arrays (-dupBlackTransfer, 940*593dc095SDavid du Colombier-dupCyanTransfer, -dupMagentaTransfer, -dupYellowTransfer) and the margins 941*593dc095SDavid du Colombier(-dupMargins) were simply copied from the files for the BJC-610, but they 942*593dc095SDavid du Colombiermay need to be changed for optimized performance. 943*593dc095SDavid du Colombier 944*593dc095SDavid du Colombier<p> 945*593dc095SDavid du ColombierHere is information useful for changing or adding uniprint control files for 946*593dc095SDavid du Colombierthe BJC-8200: 947*593dc095SDavid du Colombier 948*593dc095SDavid du Colombier<p> 949*593dc095SDavid du ColombierIn "-dupBeginPageCommand=..." use the line 950*593dc095SDavid du Colombier 951*593dc095SDavid du Colombier<blockquote> 952*593dc095SDavid du Colombier 1b28 64 0400 04b0 04b0 953*593dc095SDavid du Colombier</blockquote> 954*593dc095SDavid du Colombier 955*593dc095SDavid du Colombier<p> 956*593dc095SDavid du Colombierfor 1200x1200 resolution, and 957*593dc095SDavid du Colombier 958*593dc095SDavid du Colombier<blockquote> 959*593dc095SDavid du Colombier 1b28 64 0400 0258 0258 960*593dc095SDavid du Colombier</blockquote> 961*593dc095SDavid du Colombier 962*593dc095SDavid du Colombier<p> 963*593dc095SDavid du Colombierfor 600x600. The "-r" option in the control file must of course match this 964*593dc095SDavid du Colombierline. Other resolutions might work as well, but I didn't try. 965*593dc095SDavid du Colombier 966*593dc095SDavid du Colombier<p> 967*593dc095SDavid du ColombierCrucial are the numbers in the lines like 968*593dc095SDavid du Colombier 969*593dc095SDavid du Colombier<blockquote><pre> 970*593dc095SDavid du Colombier 1b28 63 0300 3005 04 971*593dc095SDavid du Colombier ^ ^ 972*593dc095SDavid du Colombier Plain Paper 0 4 Highest quality 973*593dc095SDavid du Colombier OHP transparency 2 . 974*593dc095SDavid du Colombier T-shirt transfer 3 . 975*593dc095SDavid du Colombier Glossy Photo Film 5 . 976*593dc095SDavid du Colombier High Gloss Paper 6 0 Lowest quality 977*593dc095SDavid du Colombier Photo Paper Pro 9 978*593dc095SDavid du Colombier</pre></blockquote> 979*593dc095SDavid du Colombier 980*593dc095SDavid du Colombier<h3>Outlook</h3> 981*593dc095SDavid du Colombier 982*593dc095SDavid du Colombier<p> 983*593dc095SDavid du ColombierPresently uniprint can use the black (K), cyan (C), magenta (M), and 984*593dc095SDavid du Colombieryellow (Y) colors in the BJC-8200. The unused colors are photo (or 985*593dc095SDavid du Colombierlight) cyan (c) and magenta (m). Also the Canon driver seems to use 986*593dc095SDavid du Colombieronly CMYK, for example when printing on Photo Paper Pro in "Camera" or 987*593dc095SDavid du Colombier"SuperPhoto" mode. These modes supposedly produce prints of the best 988*593dc095SDavid du Colombierquality that the Canon driver can offer. Other modes of Canon driver 989*593dc095SDavid du Colombierdo use up to all six color cartridges (CMYKcm). Therefore expanding 990*593dc095SDavid du Colombieruniprint's capabilities for six colors would be interesting, but it may 991*593dc095SDavid du Colombiernot increase the output quality of 6-color printers such as the 992*593dc095SDavid du ColombierBJC-8200 drastically. 993*593dc095SDavid du Colombier 994*593dc095SDavid du Colombier<p> 995*593dc095SDavid du ColombierMore control files for uniprint could be added in order to offer more 996*593dc095SDavid du Colombierversatility for controlling the BJC-8200 within a Ghostscript 997*593dc095SDavid du Colombierinstallation. The number of possible combinations for media type, resolution 998*593dc095SDavid du Colombierand print quality factor is very large, many combinations would not make 999*593dc095SDavid du Colombiermuch sense, many might be used here and there, but relatively rarely. The 1000*593dc095SDavid du Colombieruser would have to remember a name for each combination that is used. 1001*593dc095SDavid du Colombier 1002*593dc095SDavid du Colombier<p> 1003*593dc095SDavid du ColombierA better way would be to let the user patch optionally a user owned or 1004*593dc095SDavid du Colombiersystem wide uniprint control file before each print via some print 1005*593dc095SDavid du Colombiertool. This is similar to the approach taken by Canon with their driver for 1006*593dc095SDavid du ColombierWindows. Similarly a uniprint tool could also incorporate other functions 1007*593dc095SDavid du Colombiersuch as printing test and demo pages and the low ink warning once the 1008*593dc095SDavid du Colombierprotocol for this is known. Clearly it would be difficult to code such a 1009*593dc095SDavid du Colombieruniprint tool for all the platforms where Ghostscript is running. 1010*593dc095SDavid du Colombier 1011*593dc095SDavid du Colombier<h3>Usage on RedHat Linux</h3> 1012*593dc095SDavid du Colombier 1013*593dc095SDavid du Colombier<p> 1014*593dc095SDavid du ColombierIn order to install a BJC-8200 printer on a RedHat Linux system with 1015*593dc095SDavid du ColombierRedHat's printtool, you need also to insert with a text editor the contents 1016*593dc095SDavid du Colombierof the file <b><tt>bj8.rpd</tt></b> into the RedHat printer database 1017*593dc095SDavid du Colombier<b><tt>/usr/lib/rhs/rhs-printfilters/printerdb</tt></b>. Insert it most 1018*593dc095SDavid du Colombierappropriately after the section 1019*593dc095SDavid du Colombier 1020*593dc095SDavid du Colombier<blockquote><pre> 1021*593dc095SDavid du ColombierStartEntry: U_CanonBJC610 1022*593dc095SDavid du Colombier. 1023*593dc095SDavid du Colombier. 1024*593dc095SDavid du Colombier. 1025*593dc095SDavid du ColombierEndEntry 1026*593dc095SDavid du Colombier 1027*593dc095SDavid du Colombier< --- insert here "bj8.rpd" from this distribution: 1028*593dc095SDavid du Colombier< --- StartEntry: U_CanonBJC8200 1029*593dc095SDavid du Colombier . 1030*593dc095SDavid du Colombier . 1031*593dc095SDavid du Colombier . 1032*593dc095SDavid du Colombier</pre></blockquote> 1033*593dc095SDavid du Colombier 1034*593dc095SDavid du Colombier<h3>Contacting the Author</h3> 1035*593dc095SDavid du Colombier 1036*593dc095SDavid du Colombier<p> 1037*593dc095SDavid du ColombierE-mail address: <<a 1038*593dc095SDavid du Colombierhref="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>> 1039*593dc095SDavid du Colombier 1040*593dc095SDavid du Colombier<p> 1041*593dc095SDavid du ColombierFootnotes: 1042*593dc095SDavid du Colombier 1043*593dc095SDavid du Colombier<p> 1044*593dc095SDavid du Colombier(*) Actually I have a F850, not a BJC-8200. That model is sold for the 1045*593dc095SDavid du ColombierJapanese market only. The specs and also the external look are the 1046*593dc095SDavid du Colombiersame as those of the BJC-8200 models for the American and European 1047*593dc095SDavid du Colombiermarkets. I expect that the raster image mode which is used exclusively 1048*593dc095SDavid du Colombierby Ghostscript is entirely compatible for both models. 1049*593dc095SDavid du Colombier 1050*593dc095SDavid du Colombier<p> 1051*593dc095SDavid du ColombierStephan C. Buchert 1052*593dc095SDavid du Colombier 1053*593dc095SDavid du Colombier<hr> 1054*593dc095SDavid du Colombier 1055*593dc095SDavid du Colombier<h2><a name="BJC"></a>Other Canon BubbleJet (BJC) printers</h2> 1056*593dc095SDavid du Colombier 1057*593dc095SDavid du Colombier<p> 1058*593dc095SDavid du ColombierThis section was contributed by the author of the drivers, Yves Arrouye 1059*593dc095SDavid du Colombier(<<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>>, but 1060*593dc095SDavid du Colombierplease do not send questions to him: he no longer maintains these drivers.) 1061*593dc095SDavid du ColombierThe drivers handle Canon BJC-600, BJC-4xxx, BJC-70, Stylewriter 2x00, and 1062*593dc095SDavid du ColombierBJC-800 printers. 1063*593dc095SDavid du Colombier 1064*593dc095SDavid du Colombier<h3><a name="BJC_history"></a>History</h3> 1065*593dc095SDavid du Colombier 1066*593dc095SDavid du Colombier<p> 1067*593dc095SDavid du ColombierThe BJC-600 driver was written in the first place by Yoshio Kuniyoshi and 1068*593dc095SDavid du Colombierlater modified by Yves Arrouye. We tried to make it evolve synchronously, 1069*593dc095SDavid du Colombierthough Yoshio cannot be reached since a long time ago. The drivers are 1070*593dc095SDavid du Colombierbased on code for the HP printers by George Cameron (in fact, they are in 1071*593dc095SDavid du Colombierthe same file!), so he's the first person to thank. 1072*593dc095SDavid du Colombier 1073*593dc095SDavid du Colombier<p> 1074*593dc095SDavid du ColombierThe 2.00 version of the drivers was a complete rewrite of the driver 1075*593dc095SDavid du Colombier(arguments, optimization, colour handling, in short: everything!) by Yves 1076*593dc095SDavid du ColombierArrouye. That release was also the first one to be able to use the full 1077*593dc095SDavid du Colombierwidth of an A3 paper size. PostScript Printer Description (PPD) files for 1078*593dc095SDavid du Colombierthe drivers were released with version 2.15. They are incomplete, 1079*593dc095SDavid du Colombierbut they can be used to drive the printers' main features. 1080*593dc095SDavid du Colombier 1081*593dc095SDavid du Colombier<h3><a name="BJC_build"></a>Configuring and building the BJC drivers</h3> 1082*593dc095SDavid du Colombier 1083*593dc095SDavid du Colombier<h4><a name="BJC_defaults"></a>Modify values in 1084*593dc095SDavid du Colombier<b><tt>gdevbjc.h</tt></b></h4> 1085*593dc095SDavid du Colombier 1086*593dc095SDavid du Colombier<p> 1087*593dc095SDavid du ColombierConfigure the drivers by modifying the default values in the file 1088*593dc095SDavid du Colombier<b><tt>gdevbjc.h</tt></b> or on the compilation line. If you don't do 1089*593dc095SDavid du Colombierthat, the drivers use reasonable defaults that make them work "as 1090*593dc095SDavid du Colombierexpected". All default values shown here are defined in that file. 1091*593dc095SDavid du Colombier 1092*593dc095SDavid du Colombier<h4><a name="BJC_CMYK_RGB"></a>CMYK-to-RGB color conversion</h4> 1093*593dc095SDavid du Colombier 1094*593dc095SDavid du Colombier<p> 1095*593dc095SDavid du ColombierBy default, the drivers use the same algorithm as Ghostscript to convert 1096*593dc095SDavid du ColombierCMYK colors to RGB. If you prefer to use Adobe formulas, define 1097*593dc095SDavid du Colombier<b><tt>USE_ADOBE_CMYK_RGB</tt></b> when compiling. (See the top of the 1098*593dc095SDavid du Colombierfile <b><tt>gdevcdj.c</tt></b> to see the difference between the two.) 1099*593dc095SDavid du Colombier 1100*593dc095SDavid du Colombier<h4><a name="BJC_vertical_centering"></a>Vertical centering of the 1101*593dc095SDavid du Colombierprintable area</h4> 1102*593dc095SDavid du Colombier 1103*593dc095SDavid du Colombier<p> 1104*593dc095SDavid du ColombierThe drivers center the imageable area horizontally but not vertically, so 1105*593dc095SDavid du Colombierthat what can be printed does use the most of the output media. If you 1106*593dc095SDavid du Colombierdefine <b><tt>BJC_DEFAULT_CENTEREDAREA</tt></b> when compiling, then the 1107*593dc095SDavid du Colombiertop and bottom margins will be the same, resulting in a (smaller) 1108*593dc095SDavid du Colombiervertically centered imageable area also. 1109*593dc095SDavid du Colombier 1110*593dc095SDavid du Colombier<h4><a name="BJC_margins"></a>Page margins</h4> 1111*593dc095SDavid du Colombier 1112*593dc095SDavid du Colombier<p> 1113*593dc095SDavid du ColombierIf you define <b><tt>USE_RECOMMENDED_MARGINS</tt></b>, then the top and 1114*593dc095SDavid du Colombierbottom margins will be the same (that is, 1115*593dc095SDavid du Colombier<b><tt>BJC_DEFAULT_CENTEREDAREA</tt></b> will be defined for you) and the 1116*593dc095SDavid du Colombiermargins will be the 12.4mm recommended by Canon. Since margins are 1117*593dc095SDavid du Colombiercomplicated (because one must rely on the mechanical precision of the 1118*593dc095SDavid du Colombierprinter), the drivers do something about the bottom margin: by default the 1119*593dc095SDavid du Colombierbottom margin is 9.54mm for the BJC-600 driver and 7mm for the BJC-800. If 1120*593dc095SDavid du Colombieryou define <b><tt>USE_TIGHT_MARGINS</tt></b>, then the bottom margin is 7mm 1121*593dc095SDavid du Colombierfor both drivers (but I never managed to get my own BJC-600 to print a line 1122*593dc095SDavid du Colombieron this low bound, hence the larger default). Regardless of the presence 1123*593dc095SDavid du Colombierof this definition, <b><tt>USE_FIXED_MARGINS</tt></b> will not allow the 1124*593dc095SDavid du ColombierBJC-800 to use the lower 7mm bottom margin, so if you have a problem with 1125*593dc095SDavid du Colombierthe bottom margin on a BJC-800, just define that (without defining 1126*593dc095SDavid du Colombier<b><tt>USE_TIGHT_MARGINS</tt></b>, of course). 1127*593dc095SDavid du Colombier 1128*593dc095SDavid du Colombier<p> 1129*593dc095SDavid du ColombierA quick way to be sure the margins you selected is to print a file whose 1130*593dc095SDavid du Colombiercontents are: 1131*593dc095SDavid du Colombier 1132*593dc095SDavid du Colombier<blockquote><b><tt> 1133*593dc095SDavid du Colombier%!<br> 1134*593dc095SDavid du Colombierclippath stroke showpage 1135*593dc095SDavid du Colombier</tt></b></blockquote> 1136*593dc095SDavid du Colombier 1137*593dc095SDavid du Colombier<p> 1138*593dc095SDavid du ColombierIf the margins are okay, you will get a rectangle visibly surrounding 1139*593dc095SDavid du Colombierthe printable area. If they're not correct, one or more of the sides will 1140*593dc095SDavid du Colombierbe either incomplete or completely unprinted. 1141*593dc095SDavid du Colombier 1142*593dc095SDavid du Colombier<h4><a name="BJC_compile"></a>Makefile and compilation</h4> 1143*593dc095SDavid du Colombier 1144*593dc095SDavid du Colombier<p> 1145*593dc095SDavid du ColombierMake sure the <b><tt>bjc600</tt></b> or <b><tt>bjc800</tt></b> devices are 1146*593dc095SDavid du Colombierin <a href="Make.htm#Features_and_devices"><b><tt>DEVICE_DEVS</tt></b> in 1147*593dc095SDavid du Colombierthe makefile</a>; that is, look in the makefile for your platform and add 1148*593dc095SDavid du Colombierthem if necessary -- they may already be there. As of Ghostscript 5.10, 1149*593dc095SDavid du Colombierfor instance, one makefile has 1150*593dc095SDavid du Colombier 1151*593dc095SDavid du Colombier<blockquote><b><tt> 1152*593dc095SDavid du ColombierDEVICE_DEVS6=bj10e.dev bj200.dev bjc600.dev bjc800.dev 1153*593dc095SDavid du Colombier</tt></b></blockquote> 1154*593dc095SDavid du Colombier 1155*593dc095SDavid du Colombier<h3><a name="BJC_usage"></a>Use of the drivers</h3> 1156*593dc095SDavid du Colombier 1157*593dc095SDavid du Colombier<p> 1158*593dc095SDavid du ColombierThere are two drivers here. The "<b><tt>bjc600</tt></b>" one supports the BJC-600 and 1159*593dc095SDavid du ColombierBJC-4xxx (maybe the BJC-70 as well) and the "<b><tt>bjc800</tt></b>" one supports the 1160*593dc095SDavid du ColombierBJC-800 series. Remarks here that apply to both drivers use the name 1161*593dc095SDavid du Colombier"bjc". 1162*593dc095SDavid du Colombier 1163*593dc095SDavid du Colombier<h4><a name="BJC_options"></a>Supported Options and Defaults</h4> 1164*593dc095SDavid du Colombier 1165*593dc095SDavid du Colombier<p> 1166*593dc095SDavid du ColombierNote: "options", "properties", and "parameters" designate the same thing: 1167*593dc095SDavid du Colombierdevice parameters that you can change. 1168*593dc095SDavid du Colombier 1169*593dc095SDavid du Colombier<p> 1170*593dc095SDavid du ColombierGiving an option an incorrect value causes an error. Unless stated 1171*593dc095SDavid du Colombierotherwise, this error will be a rangecheckerror. Options may be set from 1172*593dc095SDavid du Colombierthe Ghostscript command line (using the <b><tt>-d</tt></b> and 1173*593dc095SDavid du Colombier<b><tt>-s</tt></b> switches or other predetermined switches if they have an 1174*593dc095SDavid du Colombiereffect on the driver) or using the PostScript Level 2 1175*593dc095SDavid du Colombier<b><tt>setpagedevice</tt></b> operator if Ghostscript has been compiled 1176*593dc095SDavid du Colombierwith the <b><tt>level2</tt></b> or <b><tt>level3</tt></b> device (which it should 1177*593dc095SDavid du Colombier<b><tt>;-)</tt></b>). There are <b>no</b> special-purpose operators such as 1178*593dc095SDavid du Colombierone was able to find in Level 1 printers. 1179*593dc095SDavid du Colombier 1180*593dc095SDavid du Colombier<p> 1181*593dc095SDavid du ColombierThe bjc uses 24 bits per pixel by default (unless you change the value of 1182*593dc095SDavid du Colombier<b><tt>BJC_BITSPERPIXEL</tt></b>), corresponding to CMYK printing. 1183*593dc095SDavid du ColombierSupported modes are 1 bpp and 4 bpp (gray levels), 8 bpp, 16 bpp, 24 bpp 1184*593dc095SDavid du Colombierand 32 bpp (colours). Colours are preferably stored in the CMYK model 1185*593dc095SDavid du Colombier(which means, for example, that with 16 bpp there are only 16 different 1186*593dc095SDavid du Colombiershades of each color) but it is possible to store them as RGB color for 1187*593dc095SDavid du Colombiersome depths. Some modes do Floyd-Steinberg dithering and some don't, but 1188*593dc095SDavid du Colombieruse the default Ghostscript halftoning (in fact, when halftoning is used, 1189*593dc095SDavid du Colombierdithering takes also place but because of the low point density it is 1190*593dc095SDavid du Colombierusually not efficient, and thus invisible). 1191*593dc095SDavid du Colombier 1192*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 1193*593dc095SDavid du Colombier<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Descriptions of printing modes by bpp and <b><tt>Colors</tt></b></font><hr> 1194*593dc095SDavid du Colombier<tr valign=bottom> 1195*593dc095SDavid du Colombier <th align=left>bpp 1196*593dc095SDavid du Colombier <td> 1197*593dc095SDavid du Colombier <th align=left><b><tt>Colors</tt></b> 1198*593dc095SDavid du Colombier <td> 1199*593dc095SDavid du Colombier <th align=left>Mode 1200*593dc095SDavid du Colombier<tr> <td colspan=5><hr> 1201*593dc095SDavid du Colombier<tr valign=top> <td>32 1202*593dc095SDavid du Colombier <td> 1203*593dc095SDavid du Colombier <td align=center>4 1204*593dc095SDavid du Colombier <td> 1205*593dc095SDavid du Colombier <td>CMYK colour printing, Floyd-Steinberg dithering 1206*593dc095SDavid du Colombier<tr valign=top> <td>24 1207*593dc095SDavid du Colombier <td> 1208*593dc095SDavid du Colombier <td align=center>4 1209*593dc095SDavid du Colombier <td> 1210*593dc095SDavid du Colombier <td>The same. (But each primary colour is stored on 6 bits instead of 8.) 1211*593dc095SDavid du Colombier<tr valign=top> <td>24 1212*593dc095SDavid du Colombier <td> 1213*593dc095SDavid du Colombier <td align=center>3 1214*593dc095SDavid du Colombier <td> 1215*593dc095SDavid du Colombier <td>RGB colour printing, Floyd-Steinberg dithering. This mode does 1216*593dc095SDavid du Colombier <b><tt>not</tt></b> use the black cartridge (that's why it 1217*593dc095SDavid du Colombier exists, for when you don't want to use it <b><tt>;-)</tt></b>). 1218*593dc095SDavid du Colombier Each primary colour is stored in 8 bits as in the 32/4 mode, 1219*593dc095SDavid du Colombier but black generation and under-color removal are done on the 1220*593dc095SDavid du Colombier driver side and not by Ghostscript, so you have no control over 1221*593dc095SDavid du Colombier it. (This mode is no longer supported in this driver.) 1222*593dc095SDavid du Colombier<tr valign=top> <td>16 1223*593dc095SDavid du Colombier <td> 1224*593dc095SDavid du Colombier <td align=center>4 1225*593dc095SDavid du Colombier <td> 1226*593dc095SDavid du Colombier <td>CMYK colour printing, halftoned by Ghostscript. F-S dithering 1227*593dc095SDavid du Colombier is still visible here (but the halftone patterns are visible 1228*593dc095SDavid du Colombier too!). 1229*593dc095SDavid du Colombier<tr valign=top> <td>8 1230*593dc095SDavid du Colombier <td> 1231*593dc095SDavid du Colombier <td align=center>4 1232*593dc095SDavid du Colombier <td> 1233*593dc095SDavid du Colombier <td>The same. (But each primary colour is stored in 2 bits instead of 4.) 1234*593dc095SDavid du Colombier<tr valign=top> <td>8 1235*593dc095SDavid du Colombier <td> 1236*593dc095SDavid du Colombier <td align=center>3 1237*593dc095SDavid du Colombier <td> 1238*593dc095SDavid du Colombier <td>RGB colour printing. This mode is not intended for use. What I 1239*593dc095SDavid du Colombier mean is that it should be used only if you want to use custom 1240*593dc095SDavid du Colombier halftone screens <b>and</b> the halftoning is broken using the 1241*593dc095SDavid du Colombier 8/4 mode (some versions of Ghostscript have this problem). 1242*593dc095SDavid du Colombier<tr valign=top> <td>8 1243*593dc095SDavid du Colombier <td> 1244*593dc095SDavid du Colombier <td align=center>1 1245*593dc095SDavid du Colombier <td> 1246*593dc095SDavid du Colombier <td>Gray-level printing, Floyd-Steinberg dithering 1247*593dc095SDavid du Colombier<tr valign=top> <td>1 1248*593dc095SDavid du Colombier <td> 1249*593dc095SDavid du Colombier <td align=center>1 1250*593dc095SDavid du Colombier <td> 1251*593dc095SDavid du Colombier <td>Gray-level printing halftoned by Ghostscript 1252*593dc095SDavid du Colombier</table></blockquote> 1253*593dc095SDavid du Colombier 1254*593dc095SDavid du Colombier<p> 1255*593dc095SDavid du ColombierThese modes are selected using the <b><tt>BitsPerPixel</tt></b> <b>and</b> 1256*593dc095SDavid du Colombier<b><tt>Colors</tt></b> integer options (either from the command line or in 1257*593dc095SDavid du Colombiera PostScript program using <b><tt>setpagedevice</tt></b>). See below. 1258*593dc095SDavid du Colombier 1259*593dc095SDavid du Colombier<p> 1260*593dc095SDavid du ColombierA note about darkness of what is printed: Canon printers do print dark, 1261*593dc095SDavid du Colombierreally. And the Floyd-Steinberg dithering may eventually darken your image 1262*593dc095SDavid du Colombiertoo. So you may need to apply gamma correction by calling Ghostscript as in 1263*593dc095SDavid du Colombier 1264*593dc095SDavid du Colombier<blockquote><b><tt> 1265*593dc095SDavid du Colombiergs -sDEVICE=bjc600 gamma.ps myfile.ps 1266*593dc095SDavid du Colombier</tt></b></blockquote> 1267*593dc095SDavid du Colombier 1268*593dc095SDavid du Colombier<p> 1269*593dc095SDavid du Colombierwhere <b><tt>gamma.ps</tt></b> changes the gamma correction (here to 3 for 1270*593dc095SDavid du Colombierall colors); 0.45 gives me good results, but your mileage may vary. The 1271*593dc095SDavid du Colombierbigger the value the lighter the output: 1272*593dc095SDavid du Colombier 1273*593dc095SDavid du Colombier<blockquote><b><tt> 1274*593dc095SDavid du Colombier{ 0.45 exp } dup dup currenttransfer setcolortransfer 1275*593dc095SDavid du Colombier</tt></b></blockquote> 1276*593dc095SDavid du Colombier 1277*593dc095SDavid du Colombier<p> 1278*593dc095SDavid du ColombierThe drivers support printing at 90dpi, 180dpi and 360dpi. Horizontal and 1279*593dc095SDavid du Colombiervertical resolutions must be the same or a limitcheck error will happen. A 1280*593dc095SDavid du Colombierrangecheck will happen too if the resolution is not 1281*593dc095SDavid du Colombier90 ×2^<small><sup><b>N</b></sup></small>. If the driver 1282*593dc095SDavid du Colombieris compiled with <b><tt>-DBJC_STRICT</tt></b> a rangecheck also happens if 1283*593dc095SDavid du Colombierthe resolution is not one of those supported. This is not the case, as we 1284*593dc095SDavid du Colombierexpect that there may be a 720dpi bjc some day. 1285*593dc095SDavid du Colombier 1286*593dc095SDavid du Colombier<p> 1287*593dc095SDavid du ColombierHere are the various options supported by the bjc drivers, along with 1288*593dc095SDavid du Colombiertheir types, supported values, effects, and usage: 1289*593dc095SDavid du Colombier 1290*593dc095SDavid du Colombier<dl> 1291*593dc095SDavid du Colombier<dt><b><tt>BitsPerPixel</tt></b> (int) 1292*593dc095SDavid du Colombier<dd>Choose the depth of the page. Valid values are 1, 8, 16, 24 (the 1293*593dc095SDavid du Colombierdefault) and 32. 1294*593dc095SDavid du Colombier 1295*593dc095SDavid du Colombier<p> 1296*593dc095SDavid du ColombierNote that when this is set for the first time, the <b><tt>Colors</tt></b> 1297*593dc095SDavid du Colombierproperty is automatically adjusted unless it is also specified. The table 1298*593dc095SDavid du Colombierhere shows the corresponding color models and the rendering method visible: 1299*593dc095SDavid du Colombier"GS" for Ghostscript halftoning and "F-S" for Floyd-Steinberg dithering. 1300*593dc095SDavid du ColombierWhen both are present it means that the dithering of halftones is visible. 1301*593dc095SDavid du ColombierDefault choices are indicated by asterisk "*". 1302*593dc095SDavid du Colombier 1303*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 1304*593dc095SDavid du Colombier<tr><th colspan=9 bgcolor="#CCCC00"><hr><font size="+1">Valid <b><tt>Colors</tt></b> values for<br>allowed <b><tt>BitsPerPixel</tt></b> values 1305*593dc095SDavid du Colombier</font><hr> 1306*593dc095SDavid du Colombier<tr valign=bottom> 1307*593dc095SDavid du Colombier <th align=left>bpp 1308*593dc095SDavid du Colombier <td> 1309*593dc095SDavid du Colombier <th align=left><b><tt>Colors</tt></b> 1310*593dc095SDavid du Colombier <td> 1311*593dc095SDavid du Colombier <th align=left> 1312*593dc095SDavid du Colombier <td> 1313*593dc095SDavid du Colombier <th align=left>Color model 1314*593dc095SDavid du Colombier <td> 1315*593dc095SDavid du Colombier <th align=left>Dithering 1316*593dc095SDavid du Colombier<tr> <td colspan=9><hr> 1317*593dc095SDavid du Colombier<tr valign=top> <td>32 1318*593dc095SDavid du Colombier <td> 1319*593dc095SDavid du Colombier <td align=center>4 1320*593dc095SDavid du Colombier <td> 1321*593dc095SDavid du Colombier <td> 1322*593dc095SDavid du Colombier <td align=center> 1323*593dc095SDavid du Colombier <td>CMYK 1324*593dc095SDavid du Colombier <td> 1325*593dc095SDavid du Colombier <td>F-S 1326*593dc095SDavid du Colombier<tr valign=top> <td>24 1327*593dc095SDavid du Colombier <td> 1328*593dc095SDavid du Colombier <td align=center>4 1329*593dc095SDavid du Colombier <td> 1330*593dc095SDavid du Colombier <td><b>*</b> 1331*593dc095SDavid du Colombier <td align=center> 1332*593dc095SDavid du Colombier <td>CMYK 1333*593dc095SDavid du Colombier <td> 1334*593dc095SDavid du Colombier <td>F-S 1335*593dc095SDavid du Colombier<tr valign=top> <td> 1336*593dc095SDavid du Colombier <td> 1337*593dc095SDavid du Colombier <td align=center>3 1338*593dc095SDavid du Colombier <td> 1339*593dc095SDavid du Colombier <td> 1340*593dc095SDavid du Colombier <td align=center> 1341*593dc095SDavid du Colombier <td>RGB 1342*593dc095SDavid du Colombier <td> 1343*593dc095SDavid du Colombier <td>F-S 1344*593dc095SDavid du Colombier<tr valign=top> <td>16 1345*593dc095SDavid du Colombier <td> 1346*593dc095SDavid du Colombier <td align=center>4 1347*593dc095SDavid du Colombier <td> 1348*593dc095SDavid du Colombier <td> 1349*593dc095SDavid du Colombier <td align=center> 1350*593dc095SDavid du Colombier <td>CMYK 1351*593dc095SDavid du Colombier <td> 1352*593dc095SDavid du Colombier <td>GS, F-S 1353*593dc095SDavid du Colombier<tr valign=top> <td>8 1354*593dc095SDavid du Colombier <td> 1355*593dc095SDavid du Colombier <td align=center>4 1356*593dc095SDavid du Colombier <td> 1357*593dc095SDavid du Colombier <td><b>*</b> 1358*593dc095SDavid du Colombier <td align=center> 1359*593dc095SDavid du Colombier <td>CMYK 1360*593dc095SDavid du Colombier <td> 1361*593dc095SDavid du Colombier <td>GS 1362*593dc095SDavid du Colombier<tr valign=top> <td> 1363*593dc095SDavid du Colombier <td> 1364*593dc095SDavid du Colombier <td align=center>3 1365*593dc095SDavid du Colombier <td> 1366*593dc095SDavid du Colombier <td> 1367*593dc095SDavid du Colombier <td align=center> 1368*593dc095SDavid du Colombier <td>RGB 1369*593dc095SDavid du Colombier <td> 1370*593dc095SDavid du Colombier <td>GS 1371*593dc095SDavid du Colombier<tr valign=top> <td> 1372*593dc095SDavid du Colombier <td> 1373*593dc095SDavid du Colombier <td align=center>1 1374*593dc095SDavid du Colombier <td> 1375*593dc095SDavid du Colombier <td> 1376*593dc095SDavid du Colombier <td align=center> 1377*593dc095SDavid du Colombier <td>K (CMYK) 1378*593dc095SDavid du Colombier <td> 1379*593dc095SDavid du Colombier <td>F-S 1380*593dc095SDavid du Colombier<tr valign=top> <td>1 1381*593dc095SDavid du Colombier <td> 1382*593dc095SDavid du Colombier <td align=center>1 1383*593dc095SDavid du Colombier <td> 1384*593dc095SDavid du Colombier <td><b>*</b> 1385*593dc095SDavid du Colombier <td align=center> 1386*593dc095SDavid du Colombier <td>K (CMYK) 1387*593dc095SDavid du Colombier <td> 1388*593dc095SDavid du Colombier <td>GS 1389*593dc095SDavid du Colombier</table></blockquote> 1390*593dc095SDavid du Colombier 1391*593dc095SDavid du Colombier<p>Also note that automagical change of one parameter depending on the 1392*593dc095SDavid du Colombierother one does not work in a <b><tt>setpagedevice</tt></b> call. This 1393*593dc095SDavid du Colombiermeans that if you want to change <b><tt>BitsPerPixel</tt></b> to a value 1394*593dc095SDavid du Colombierwhose valid <b><tt>Colors</tt></b> values do not include the actual 1395*593dc095SDavid du Colombier<b><tt>Colors</tt></b> value, you must change <b><tt>Colors</tt></b> too. 1396*593dc095SDavid du Colombier</dl> 1397*593dc095SDavid du Colombier 1398*593dc095SDavid du Colombier<dl> 1399*593dc095SDavid du Colombier<dt><b><tt>Colors</tt></b> (int) 1400*593dc095SDavid du Colombier<dd>Choose the number of color components from among 1, 3 and 4 (the 1401*593dc095SDavid du Colombierdefault). This setting cannot be used in a PostScript program, only on 1402*593dc095SDavid du ColombierGhostscript's command line. See <b><tt>ProcessColorModel</tt></b> below 1403*593dc095SDavid du Colombierfor what to use to change the number of colors with PostScript code. 1404*593dc095SDavid du Colombier 1405*593dc095SDavid du Colombier<p> 1406*593dc095SDavid du ColombierNote that setting this property does limit the choices of 1407*593dc095SDavid du Colombier<b><tt>BitsPerPixel</tt></b>. As for the previous property, its first 1408*593dc095SDavid du Colombiersetting may induce a setting of the "other value" 1409*593dc095SDavid du Colombier(<b><tt>BitsPerPixel</tt></b> here). The table here indicates valid 1410*593dc095SDavid du Colombiercombinations with "V", default values with asterisk "*". 1411*593dc095SDavid du Colombier 1412*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 1413*593dc095SDavid du Colombier<tr><th colspan=13 bgcolor="#CCCC00"><hr><font size="+1">Valid <b><tt>BitsPerPixel</tt></b> values<br>for allowed <b><tt>Colors</tt></b> values</font><hr> 1414*593dc095SDavid du Colombier<tr valign=top> <td> 1415*593dc095SDavid du Colombier <td> 1416*593dc095SDavid du Colombier <td> 1417*593dc095SDavid du Colombier <td> 1418*593dc095SDavid du Colombier <th align=left colspan=9><b><tt>BitsPerPixel</tt></b> OK values<hr> 1419*593dc095SDavid du Colombier<tr valign=top> <th>Colors 1420*593dc095SDavid du Colombier <td> 1421*593dc095SDavid du Colombier <th>Type 1422*593dc095SDavid du Colombier <td> 1423*593dc095SDavid du Colombier <td>32 1424*593dc095SDavid du Colombier <td> 1425*593dc095SDavid du Colombier <td>24 1426*593dc095SDavid du Colombier <td> 1427*593dc095SDavid du Colombier <td>16 1428*593dc095SDavid du Colombier <td> 1429*593dc095SDavid du Colombier <td>8 1430*593dc095SDavid du Colombier <td> 1431*593dc095SDavid du Colombier <td>1 1432*593dc095SDavid du Colombier<tr> <td colspan=13><hr> 1433*593dc095SDavid du Colombier<tr valign=top> <td>4 1434*593dc095SDavid du Colombier <td> 1435*593dc095SDavid du Colombier <td>CMYK 1436*593dc095SDavid du Colombier <td> 1437*593dc095SDavid du Colombier <td><b>V</b> 1438*593dc095SDavid du Colombier <td> 1439*593dc095SDavid du Colombier <td><b>*</b> 1440*593dc095SDavid du Colombier <td> 1441*593dc095SDavid du Colombier <td><b>V</b> 1442*593dc095SDavid du Colombier <td> 1443*593dc095SDavid du Colombier <td><b>V</b> 1444*593dc095SDavid du Colombier <td> 1445*593dc095SDavid du Colombier <td> 1446*593dc095SDavid du Colombier<tr valign=top> <td>3 1447*593dc095SDavid du Colombier <td> 1448*593dc095SDavid du Colombier <td>RGB 1449*593dc095SDavid du Colombier <td> 1450*593dc095SDavid du Colombier <td> 1451*593dc095SDavid du Colombier <td> 1452*593dc095SDavid du Colombier <td><b>*</b> 1453*593dc095SDavid du Colombier <td> 1454*593dc095SDavid du Colombier <td> 1455*593dc095SDavid du Colombier <td> 1456*593dc095SDavid du Colombier <td><b>V</b> 1457*593dc095SDavid du Colombier <td> 1458*593dc095SDavid du Colombier <td> 1459*593dc095SDavid du Colombier<tr valign=top> <td>1 1460*593dc095SDavid du Colombier <td> 1461*593dc095SDavid du Colombier <td>K 1462*593dc095SDavid du Colombier <td> 1463*593dc095SDavid du Colombier <td> 1464*593dc095SDavid du Colombier <td> 1465*593dc095SDavid du Colombier <td> 1466*593dc095SDavid du Colombier <td> 1467*593dc095SDavid du Colombier <td> 1468*593dc095SDavid du Colombier <td> 1469*593dc095SDavid du Colombier <td><b>V</b> 1470*593dc095SDavid du Colombier <td> 1471*593dc095SDavid du Colombier <td><b>*</b> 1472*593dc095SDavid du Colombier</table></blockquote> 1473*593dc095SDavid du Colombier 1474*593dc095SDavid du Colombier<p>Also note that automagical change of one parameter depending on the 1475*593dc095SDavid du Colombierother one does not work in a <b><tt>setpagedevice</tt></b> call. This 1476*593dc095SDavid du Colombiermeans that if you want to change <b><tt>Colors</tt></b> to a value whose 1477*593dc095SDavid du Colombiervalid <b><tt>BitsPerPixel</tt></b> values don't include the actual 1478*593dc095SDavid du Colombier<b><tt>BitsPerPixel</tt></b> value, you must change 1479*593dc095SDavid du Colombier<b><tt>BitsPerPixel</tt></b> too. 1480*593dc095SDavid du Colombier</dl> 1481*593dc095SDavid du Colombier 1482*593dc095SDavid du Colombier<dl> 1483*593dc095SDavid du Colombier<dt><b><tt>ProcessColorModel</tt></b> (symbol) 1484*593dc095SDavid du Colombier<dd>A symbol taken from <b><tt>/DeviceGray</tt></b>, 1485*593dc095SDavid du Colombier<b><tt>/DeviceRGB</tt></b> or <b><tt>/DeviceCMYK</tt></b> which can be used 1486*593dc095SDavid du Colombierto select 1, 3 or 4 colors respectively. Note that this parameter takes 1487*593dc095SDavid du Colombierprecedence over <b><tt>Colors</tt></b>, and that both affect the same 1488*593dc095SDavid du Colombiervariable of the driver. (See <b><tt>Colors</tt></b> above for values 1489*593dc095SDavid du Colombiercombined with <b><tt>BitsPerPixel</tt></b>.) 1490*593dc095SDavid du Colombier</dl> 1491*593dc095SDavid du Colombier 1492*593dc095SDavid du Colombier<dl> 1493*593dc095SDavid du Colombier<dt><b><tt>HWResolution</tt></b> (floats array) 1494*593dc095SDavid du Colombier<dd>An array of two floats giving the horizontal and vertical resolution in 1495*593dc095SDavid du Colombierdots per inch from among 90, 180 and 360 (the default). Both values must 1496*593dc095SDavid du Colombierbe the same. On the Ghostscript command line, the resolution may be 1497*593dc095SDavid du Colombierchanged with the <a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b> 1498*593dc095SDavid du Colombierswitch</a>. 1499*593dc095SDavid du Colombier</dl> 1500*593dc095SDavid du Colombier 1501*593dc095SDavid du Colombier<dl> 1502*593dc095SDavid du Colombier<dt><b><tt>ManualFeed</tt></b> (bool) 1503*593dc095SDavid du Colombier<dd>Indicate that the sheets won't be fed automatically by the printer, 1504*593dc095SDavid du Colombier<b><tt>false</tt></b> by default. (Not meaningful on the BJC-600, I fear.) 1505*593dc095SDavid du Colombier</dl> 1506*593dc095SDavid du Colombier 1507*593dc095SDavid du Colombier<dl> 1508*593dc095SDavid du Colombier<dt><b><tt>MediaType</tt></b> (string) 1509*593dc095SDavid du Colombier<dd>The media to print on, chosen from among "<b><tt>PlainPaper</tt></b>", 1510*593dc095SDavid du Colombier"<b><tt>CoatedPaper</tt></b>", "<b><tt>TransparencyFilm</tt></b>", 1511*593dc095SDavid du Colombier"<b><tt>Envelope</tt></b>", "<b><tt>Card</tt></b>" and 1512*593dc095SDavid du Colombier"<b><tt>Other</tt></b>". Default is "<b><tt>PlainPaper</tt></b>". For 1513*593dc095SDavid du Colombier"<b><tt>Envelope</tt></b>", "<b><tt>Card</tt></b>" or 1514*593dc095SDavid du Colombier"<b><tt>Other</tt></b>" the driver puts the printer into thick mode 1515*593dc095SDavid du Colombierautomatically regardless of the actual media weight. 1516*593dc095SDavid du Colombier</dl> 1517*593dc095SDavid du Colombier 1518*593dc095SDavid du Colombier<dl> 1519*593dc095SDavid du Colombier<dt><b><tt>MediaWeight</tt></b> (int or null) 1520*593dc095SDavid du Colombier<dd>The weight of the media in grams per square meter. Null (the default) 1521*593dc095SDavid du Colombierindicates that the weight is of no importance. If the specified media 1522*593dc095SDavid du Colombierweight is greater than 105 (that is, the value of the compilation default 1523*593dc095SDavid du Colombier<b><tt>BJC</tt></b>???<b><tt>_MEDIAWEIGHT_THICKLIMIT</tt></b>) then the 1524*593dc095SDavid du Colombierprinter will be set to use thick paper. 1525*593dc095SDavid du Colombier</dl> 1526*593dc095SDavid du Colombier 1527*593dc095SDavid du Colombier<dl> 1528*593dc095SDavid du Colombier<dt><b><tt>PrintQuality</tt></b> (string) 1529*593dc095SDavid du Colombier<dd>The quality of printing. 1530*593dc095SDavid du Colombier<table cellpadding=0 cellspacing=0> 1531*593dc095SDavid du Colombier<tr valign=bottom> 1532*593dc095SDavid du Colombier <th align=left>Value 1533*593dc095SDavid du Colombier <td> 1534*593dc095SDavid du Colombier <th align=left><b><tt>bjc600</tt></b> 1535*593dc095SDavid du Colombier <td> 1536*593dc095SDavid du Colombier <th align=left><b><tt>bjc800</tt></b> 1537*593dc095SDavid du Colombier <td> 1538*593dc095SDavid du Colombier <th align=left> 1539*593dc095SDavid du Colombier<tr> <td colspan=7><hr> 1540*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Low</tt></b> 1541*593dc095SDavid du Colombier <td> 1542*593dc095SDavid du Colombier <td> 1543*593dc095SDavid du Colombier <td> 1544*593dc095SDavid du Colombier <td align=center><b>X</b> 1545*593dc095SDavid du Colombier <td> 1546*593dc095SDavid du Colombier <td>Has the effect of making only two printing passes instead of four, so should be twice the speed; known as "CN" (Color Normal) mode 1547*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Draft</tt></b> 1548*593dc095SDavid du Colombier <td> 1549*593dc095SDavid du Colombier <td align=center><b>X</b> 1550*593dc095SDavid du Colombier <td> 1551*593dc095SDavid du Colombier <td align=center><b>X</b> 1552*593dc095SDavid du Colombier <td> 1553*593dc095SDavid du Colombier <td>Unlights the "HQ" light on a BJC-600 1554*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Normal</tt></b> 1555*593dc095SDavid du Colombier <td> 1556*593dc095SDavid du Colombier <td align=center><b>X</b> 1557*593dc095SDavid du Colombier <td> 1558*593dc095SDavid du Colombier <td align=center><b>X</b> 1559*593dc095SDavid du Colombier <td> 1560*593dc095SDavid du Colombier <td>Default for both drivers; lights the "HQ" light on a BJC-600 1561*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>High</tt></b> 1562*593dc095SDavid du Colombier <td> 1563*593dc095SDavid du Colombier <td align=center><b>X</b> 1564*593dc095SDavid du Colombier <td> 1565*593dc095SDavid du Colombier <td align=center><b>X</b> 1566*593dc095SDavid du Colombier <td> 1567*593dc095SDavid du Colombier <td>Means 200% black and 100% CMY; lights the "Bk+" light on a BJC-600 1568*593dc095SDavid du Colombier</table> 1569*593dc095SDavid du Colombier</dl> 1570*593dc095SDavid du Colombier 1571*593dc095SDavid du Colombier<dl> 1572*593dc095SDavid du Colombier<dt><b><tt>DitheringType</tt></b> (string) 1573*593dc095SDavid du Colombier<dd>Dithering algorithm from between "<b><tt>Floyd-Steinberg</tt></b>" and 1574*593dc095SDavid du Colombier"<b><tt>None</tt></b>". "<b><tt>None</tt></b>" is the default for 1/1 print 1575*593dc095SDavid du Colombiermode, "<b><tt>Floyd-Steinberg</tt></b>" for other modes. At the moment 1576*593dc095SDavid du Colombierthis parameter is read-only, though no error is generated if one tries to 1577*593dc095SDavid du Colombierchange it. This parameter is not of much value at the moment and is here 1578*593dc095SDavid du Colombiermainly to reserve the name for future addition of dithering algorithms. 1579*593dc095SDavid du Colombier</dl> 1580*593dc095SDavid du Colombier 1581*593dc095SDavid du Colombier<dl> 1582*593dc095SDavid du Colombier<dt><b><tt>PrintColors</tt></b> (int) 1583*593dc095SDavid du Colombier<dd>Mask for printing color. If 0, use black for any color; otherwise the 1584*593dc095SDavid du Colombiervalue must be the sum of any of 1 (cyan), 2 (magenta), 4 (yellow) and 8 1585*593dc095SDavid du Colombier(black), indicating which colors will be used for printing. When printing 1586*593dc095SDavid du Colombiercolour, only colours specified will be printed (this means that some planes 1587*593dc095SDavid du Colombierwill be missing if a color's value above is omitted). When printing grays, 1588*593dc095SDavid du Colombierblack is used if it is present in the <b><tt>PrintColors</tt></b>; 1589*593dc095SDavid du Colombierotherwise, the image is printed by superimposing each requested color. 1590*593dc095SDavid du Colombier</dl> 1591*593dc095SDavid du Colombier 1592*593dc095SDavid du Colombier<dl> 1593*593dc095SDavid du Colombier<dt><b><tt>MonochromePrint</tt></b> (bool) 1594*593dc095SDavid du Colombier<dd><b>For <tt>bjc600</tt> only</b>, <b><tt>false</tt></b> by default. 1595*593dc095SDavid du ColombierSubstitute black for Cyan, Magenta and Yellow when printing -- useful, for 1596*593dc095SDavid du Colombierexample, to get some monochrome output of a dithered printing This is a 1597*593dc095SDavid du Colombierhardware mechanism as opposed to the previous software one. I think that 1598*593dc095SDavid du Colombierusing this or setting <b><tt>PrintColors</tt></b> to 0 will give the same 1599*593dc095SDavid du Colombierresults. 1600*593dc095SDavid du Colombier</dl> 1601*593dc095SDavid du Colombier 1602*593dc095SDavid du Colombier<p> 1603*593dc095SDavid du ColombierNote that the <b><tt>MediaType</tt></b> and <b><tt>ThickMedia</tt></b> 1604*593dc095SDavid du Colombieroptions will be replaced by the use of the device 1605*593dc095SDavid du Colombier<b><tt>InputAttributes</tt></b> and <b><tt>OutputAttributes</tt></b> as 1606*593dc095SDavid du Colombiersoon as possible. Please note too that the print mode may be reset at the 1607*593dc095SDavid du Colombierstart of printing, not at the end. This is the expected behaviour. If you 1608*593dc095SDavid du Colombierneed to reset the printer to its default state, simply print a file that 1609*593dc095SDavid du Colombierdoes just a <b><tt>showpage</tt></b>. 1610*593dc095SDavid du Colombier 1611*593dc095SDavid du Colombier<h4><a name="BJC_device_info"></a>Device information</h4> 1612*593dc095SDavid du Colombier 1613*593dc095SDavid du Colombier<p> 1614*593dc095SDavid du ColombierHere is other information published by the driver that you will find 1615*593dc095SDavid du Colombierin the <b><tt>deviceinfo</tt></b> dictionary. 1616*593dc095SDavid du Colombier 1617*593dc095SDavid du Colombier<dl> 1618*593dc095SDavid du Colombier<dt><b><tt>OutputFaceUp</tt></b> (bool) 1619*593dc095SDavid du Colombier<dd>This has the boolean value <b><tt>true</tt></b>, indicating that the 1620*593dc095SDavid du Colombiersheets are stacked face up. 1621*593dc095SDavid du Colombier</dl> 1622*593dc095SDavid du Colombier 1623*593dc095SDavid du Colombier<dl> 1624*593dc095SDavid du Colombier<dt><b><tt>Version</tt></b> (float) 1625*593dc095SDavid du Colombier<dd>In the form <b>M.</b><em>mm</em>pp, where <b>M</b> is the major 1626*593dc095SDavid du Colombierversion, <em>mm</em> the bjc driver's minor version, and pp the specific 1627*593dc095SDavid du Colombierdriver minor version (that is, <b><tt>M.</tt></b><em>mm</em> will always be 1628*593dc095SDavid du Colombierthe same for the <b><tt>bjc600</tt></b> and <b><tt>bjc800</tt></b> 1629*593dc095SDavid du Colombierdrivers). 1630*593dc095SDavid du Colombier</dl> 1631*593dc095SDavid du Colombier 1632*593dc095SDavid du Colombier<dl> 1633*593dc095SDavid du Colombier<dt><b><tt>VersionString</tt></b> (string) 1634*593dc095SDavid du Colombier<dd> A string showing the driver version and other indications. At the 1635*593dc095SDavid du Colombiermoment, things like "a" or "b" may follow the version to indicate alpha or 1636*593dc095SDavid du Colombierbeta versions. The date of the last change to this version is given in the 1637*593dc095SDavid du Colombierform MM/DD/YY (no, it won't adapt to your locale). 1638*593dc095SDavid du Colombier</dl> 1639*593dc095SDavid du Colombier 1640*593dc095SDavid du Colombier<h4><a name="BJC_HW_margins"></a>Hardware margins</h4> 1641*593dc095SDavid du Colombier 1642*593dc095SDavid du Colombier<p> 1643*593dc095SDavid du ColombierThe BJC printers have top and bottom hardware margins of 3mm and 7.1mm 1644*593dc095SDavid du Colombierrespectively (Canon says 7mm, but this is unusable because of the rounding 1645*593dc095SDavid du Colombierof paper sizes to PostScript points). The left margin is 3.4mm for A4 and 1646*593dc095SDavid du Colombiersmaller paper sizes, 6.4mm for U.S. paper sizes, envelopes and cards. It 1647*593dc095SDavid du Colombieris 4.0mm for A3 paper on the BJC-800. 1648*593dc095SDavid du Colombier 1649*593dc095SDavid du Colombier<p> 1650*593dc095SDavid du ColombierThe maximum printing width of a BJC-600 printer is 203mm. The maximum 1651*593dc095SDavid du Colombierprinting width of a BJC-800 printer is 289mm on A3 paper, 203mm on 1652*593dc095SDavid du ColombierU.S. letter and ISO A4 paper. 1653*593dc095SDavid du Colombier 1654*593dc095SDavid du Colombier<h4><a name="BJC_PPD"></a>PostScript printer description (PPD) files</h4> 1655*593dc095SDavid du Colombier 1656*593dc095SDavid du Colombier<p> 1657*593dc095SDavid du ColombierThe files <b><tt>CBJC600.PPD</tt></b> and <b><tt>CBJC800.PPD</tt></b> (whose 1658*593dc095SDavid du Colombierlong names are, respectively, <b><tt>Canon_BubbleJetColor_600.ppd</tt></b> 1659*593dc095SDavid du Colombierand <b><tt>Canon_BubbleJetColor_800.ppd</tt></b>) are PPD files to drive the 1660*593dc095SDavid du Colombierfeatures of the <b><tt>bjc600</tt></b> and <b><tt>bjc800</tt></b> drivers. 1661*593dc095SDavid du ColombierThey can be used, for example, on NextStep systems (presumably on OpenStep 1662*593dc095SDavid du Colombiersystems too) and on Unix systems with Adobe's TranScript and 1663*593dc095SDavid du Colombier<b><tt>pslpr</tt></b> (not tested). The files are not complete at the 1664*593dc095SDavid du Colombiermoment. Please note that NextStep's printing interface does not 1665*593dc095SDavid du Colombiercorrectly enforce constraints specified in these files (in UIConstraints 1666*593dc095SDavid du Colombierdescriptions): you must force yourself to use valid combinations of 1667*593dc095SDavid du Colombieroptions. 1668*593dc095SDavid du Colombier 1669*593dc095SDavid du Colombier<h4><a name="BJC_PPD_custom"></a>Customizing the PPD files</h4> 1670*593dc095SDavid du Colombier 1671*593dc095SDavid du Colombier<p> 1672*593dc095SDavid du ColombierBy default the PPD files are set for U.S. letter size paper, and they use a 1673*593dc095SDavid du Colombiernormalized transfer function. If you choose to use A4 printing by default, 1674*593dc095SDavid du Colombieryou must replace "<b><tt>Letter</tt></b>" with "<b><tt>A4</tt></b>" in 1675*593dc095SDavid du Colombierthese (noncontiguous) lines: 1676*593dc095SDavid du Colombier 1677*593dc095SDavid du Colombier<blockquote> 1678*593dc095SDavid du Colombier [...]<br> 1679*593dc095SDavid du Colombier<b><tt>*DefaultPageSize: Letter<br></tt></b> 1680*593dc095SDavid du Colombier [...]<br> 1681*593dc095SDavid du Colombier<b><tt>*DefaultRegion: Letter<br></tt></b> 1682*593dc095SDavid du Colombier [...]<br> 1683*593dc095SDavid du Colombier<b><tt>*DefaultImageableArea: Letter</tt></b><br> 1684*593dc095SDavid du Colombier [...]<br> 1685*593dc095SDavid du Colombier</blockquote> 1686*593dc095SDavid du Colombier 1687*593dc095SDavid du Colombier<p> 1688*593dc095SDavid du ColombierSome versions of Ghostscript have problems with normalized colors, which 1689*593dc095SDavid du Colombiermakes them add magenta in gray levels. If you experience this problem, 1690*593dc095SDavid du Colombierin the PPD file replace the line 1691*593dc095SDavid du Colombier 1692*593dc095SDavid du Colombier<blockquote><b><tt> 1693*593dc095SDavid du Colombier*DefaultTransfer: Normalized 1694*593dc095SDavid du Colombier</tt></b></blockquote> 1695*593dc095SDavid du Colombier 1696*593dc095SDavid du Colombier<p> 1697*593dc095SDavid du Colombierwith the alternate line 1698*593dc095SDavid du Colombier 1699*593dc095SDavid du Colombier<blockquote><b><tt> 1700*593dc095SDavid du Colombier*DefaultTransfer: Null 1701*593dc095SDavid du Colombier</tt></b></blockquote> 1702*593dc095SDavid du Colombier 1703*593dc095SDavid du Colombier<p> 1704*593dc095SDavid du ColombierThe "thick media" option is implemented by choosing a value of 120 or 80 1705*593dc095SDavid du Colombier(for thick and thin media respectively) for the <b><tt>MediaWeight</tt></b> 1706*593dc095SDavid du Colombierfeature of the drivers. If you ever change the threshold for thick media 1707*593dc095SDavid du Colombierin the driver code, you may need to change the values in the PPD files too. 1708*593dc095SDavid du Colombier 1709*593dc095SDavid du Colombier<p> 1710*593dc095SDavid du ColombierAll customization should be done using the "<b><tt>*Include:</tt></b>" 1711*593dc095SDavid du Colombierfeature of PPD files so that your local changes will be retained if you 1712*593dc095SDavid du Colombierupdate the PPD files. 1713*593dc095SDavid du Colombier 1714*593dc095SDavid du Colombier<h3><a name="BJC_bugs"></a>How to report problems</h3> 1715*593dc095SDavid du Colombier 1716*593dc095SDavid du Colombier<p> 1717*593dc095SDavid du ColombierYves Arrouye no longer maintains this driver, and will not answer questions 1718*593dc095SDavid du Colombierabout it. If you are posting a question about it in a public form, please 1719*593dc095SDavid du Colombierbe as descriptive as possible, and please send information that can be used 1720*593dc095SDavid du Colombierto reproduce the problem. Don't forget to say which driver you use, and in 1721*593dc095SDavid du Colombierwhat version. Version information can be found in the source code of the 1722*593dc095SDavid du Colombierdriver or by issuing the following command in a shell: 1723*593dc095SDavid du Colombier 1724*593dc095SDavid du Colombier<blockquote><b><tt> 1725*593dc095SDavid du Colombierecho "currentpagedevice /VersionString get ==" | gs -q -sDEVICE=bjc600 - 1726*593dc095SDavid du Colombier</tt></b></blockquote> 1727*593dc095SDavid du Colombier 1728*593dc095SDavid du Colombier<h3><a name="BJC_acks"></a>Acknowledgements</h3> 1729*593dc095SDavid du Colombier 1730*593dc095SDavid du Colombier<p> 1731*593dc095SDavid du ColombierI am particularly grateful to Yoshio Kuniyoshi <<a 1732*593dc095SDavid du Colombierhref="mailto:yoshio@nak.math.keio.ac.jp">yoshio@nak.math.keio.ac.jp</a>> 1733*593dc095SDavid du Colombierwithout whom I'd never make these drivers, and also to L. Peter Deutsch, 1734*593dc095SDavid du Colombierwho answered all my (often silly) questions about Ghostscript's driver 1735*593dc095SDavid du Colombierinterface. 1736*593dc095SDavid du Colombier 1737*593dc095SDavid du Colombier<p> 1738*593dc095SDavid du ColombierThanks also to the people who volunteered to beta-test the v2.x BJC 1739*593dc095SDavid du Colombierdrivers: David Gaudine 1740*593dc095SDavid du Colombier<<a href="mailto:david@donald.concordia.ca">david@donald.concordia.ca</a>>, 1741*593dc095SDavid du ColombierRobert M. Kenney <<a href="mailto:rmk@unh.edu">rmk@unh.edu</a>>, 1742*593dc095SDavid du ColombierJames McPherson 1743*593dc095SDavid du Colombier<<a href="mailto:someone@erols.com">someone@erols.com</a>> 1744*593dc095SDavid du Colombierand Ian Thurlbeck 1745*593dc095SDavid du Colombier<<a href="mailto:ian@stams.strath.ac.uk">ian@stams.strath.ac.uk</a>> 1746*593dc095SDavid du Colombier(listed alphabetically) were particularly helpful by discovering bugs and 1747*593dc095SDavid du Colombierhelping find out exact paper margins on printers I don't have access to. 1748*593dc095SDavid du Colombier 1749*593dc095SDavid du Colombier<p> 1750*593dc095SDavid du ColombierAnd many thanks to Klaus-Gunther Hess 1751*593dc095SDavid du Colombier<<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>> for looking 1752*593dc095SDavid du Colombierat the dithering code and devising a good CMYK dithering algorithm for the 1753*593dc095SDavid du ColombierEpson Stylus Color, which I then adapted to the code of these drivers. 1754*593dc095SDavid du Colombier 1755*593dc095SDavid du Colombier<hr> 1756*593dc095SDavid du Colombier 1757*593dc095SDavid du Colombier<h2><a name="STC_epson_stylus"></a>Epson Stylus color printer (see also <b><tt>uniprint</tt></b>)</h2> 1758*593dc095SDavid du Colombier 1759*593dc095SDavid du Colombier<p> 1760*593dc095SDavid du ColombierThis section was contributed by Gunther Hess 1761*593dc095SDavid du Colombier<<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>>, who also wrote 1762*593dc095SDavid du Colombier<b><tt>uniprint</tt></b>, a later set of drivers. You should probably see 1763*593dc095SDavid du Colombierthe section on <a href="#Uniprint"><b><tt>uniprint</tt></b></a> for whether 1764*593dc095SDavid du Colombierit might be better for your uses than this driver. 1765*593dc095SDavid du Colombier 1766*593dc095SDavid du Colombier<h3><a name="STC_usage"></a>Usage</h3> 1767*593dc095SDavid du Colombier 1768*593dc095SDavid du Colombier<p> 1769*593dc095SDavid du Colombier 1770*593dc095SDavid du ColombierThis driver is selected with "<b><tt>-sDEVICE=stcolor</tt></b>", producing 1771*593dc095SDavid du Colombieroutput for an Epson Stylus Color at 360dpi resolution by default. But it 1772*593dc095SDavid du Colombiercan do much more with this printer, and with significantly better quality, 1773*593dc095SDavid du Colombierthan with the default mode; and it can also produce code for monochrome 1774*593dc095SDavid du Colombierversions of the printer. This can be achieved via either command-line 1775*593dc095SDavid du Colombieroptions or Ghostscript input. For convenience a PostScript file is 1776*593dc095SDavid du Colombiersupplied for use as an initial input file. Try the following command: 1777*593dc095SDavid du Colombier 1778*593dc095SDavid du Colombier<blockquote> 1779*593dc095SDavid du Colombier<b><tt>gs -sDEVICE=stcolor -r</tt></b><b>{Xdpi}</b><b><tt>x</tt></b><b>{Ydpi}</b><b><tt> stcolor.ps</tt></b> <b>{YourFile.ps}</b> 1780*593dc095SDavid du Colombier</blockquote> 1781*593dc095SDavid du Colombier 1782*593dc095SDavid du Colombier<p> 1783*593dc095SDavid du Colombierwhere <b>{Xdpi}</b> is one of 180, 360, or 720 and <b>{Ydpi}</b> is one of 1784*593dc095SDavid du Colombier90, 180, 360, or 720. The result should be significantly better. You may 1785*593dc095SDavid du Colombieruse <b><tt>stcolor.ps</tt></b> with other devices too, but I do not 1786*593dc095SDavid du Colombierrecommend this, since it does nothing then. <b><tt>stcolor.ps</tt></b> 1787*593dc095SDavid du Colombiershould be available with binary distributions and should reside in the same 1788*593dc095SDavid du Colombierdirectory as other Ghostscript initialization files or in the same 1789*593dc095SDavid du Colombierdirectory as the files to be printed. Thus if Ghostscript is part of your 1790*593dc095SDavid du Colombierprinter-spooler, you can insert 1791*593dc095SDavid du Colombier 1792*593dc095SDavid du Colombier<blockquote><b><tt> 1793*593dc095SDavid du Colombier(stcolor.ps) findlibfile { pop run } if pop 1794*593dc095SDavid du Colombier</tt></b></blockquote> 1795*593dc095SDavid du Colombier 1796*593dc095SDavid du Colombier<p> 1797*593dc095SDavid du Colombierin files you want to use the improved algorithms. You may want to adapt 1798*593dc095SDavid du Colombier<b><tt>stcolor.ps</tt></b> file to your specific needs. The methods and 1799*593dc095SDavid du Colombieroptions for this are described here, but this description is restricted to 1800*593dc095SDavid du ColombierGhostscript options, while their manipulation at the PostScript level is 1801*593dc095SDavid du Colombierdocumented in the material on <a href="Language.htm">the relationship of 1802*593dc095SDavid du ColombierGhostscript and PostScript</a> and in <b><tt>stcolor.ps</tt></b>. 1803*593dc095SDavid du Colombier 1804*593dc095SDavid du Colombier<h3><a name="STC_options"></a>Options</h3> 1805*593dc095SDavid du Colombier 1806*593dc095SDavid du Colombier<p> 1807*593dc095SDavid du ColombierNow to explain the options (as written on my UNIX system). The order is 1808*593dc095SDavid du Colombiersomehow related to their use during the printing process: 1809*593dc095SDavid du Colombier 1810*593dc095SDavid du Colombier<dl> 1811*593dc095SDavid du Colombier<dt><b><tt>-dUnidirectional</tt></b> 1812*593dc095SDavid du Colombier<dd>Force unidirectional printing, recommended for transparencies 1813*593dc095SDavid du Colombier</dl> 1814*593dc095SDavid du Colombier 1815*593dc095SDavid du Colombier<dl> 1816*593dc095SDavid du Colombier<dt><b><tt>-dMicroweave</tt></b> 1817*593dc095SDavid du Colombier<dd>Enable the printer's "microweave" feature; see 1818*593dc095SDavid du Colombier"<a href="#What_is_weaving">What is weaving?</a>" below. 1819*593dc095SDavid du Colombier</dl> 1820*593dc095SDavid du Colombier 1821*593dc095SDavid du Colombier<dl> 1822*593dc095SDavid du Colombier<dt><b><tt>-dnoWeave</tt></b> 1823*593dc095SDavid du Colombier<dd>Disable any Weaving (overrides <b><tt>-dMicroweave</tt></b>) 1824*593dc095SDavid du Colombier</dl> 1825*593dc095SDavid du Colombier 1826*593dc095SDavid du Colombier<dl> 1827*593dc095SDavid du Colombier<dt><b><tt>-dSoftweave</tt></b> 1828*593dc095SDavid du Colombier<dd>Enable the driver's internal weaving. Note that <b><tt>Softweave</tt></b> works <b>only</b> with the original Stylus Color and the PRO-Series. 1829*593dc095SDavid du Colombier</dl> 1830*593dc095SDavid du Colombier 1831*593dc095SDavid du Colombier<dl> 1832*593dc095SDavid du Colombier<dt><b><tt>-sDithering=</tt></b><em>{name}</em> 1833*593dc095SDavid du Colombier<dd>Select another dithering algorithm (name) from among 1834*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 1835*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>gscmyk</tt></b> 1836*593dc095SDavid du Colombier <td> 1837*593dc095SDavid du Colombier <td>fast color output, CMYK process color model (default) 1838*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>gsmono</tt></b> 1839*593dc095SDavid du Colombier <td> 1840*593dc095SDavid du Colombier <td>fast monochrome output 1841*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>gsrgb</tt></b> 1842*593dc095SDavid du Colombier <td> 1843*593dc095SDavid du Colombier <td>fast color output, RGB process color model 1844*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>fsmono</tt></b> 1845*593dc095SDavid du Colombier <td> 1846*593dc095SDavid du Colombier <td>Floyd-Steinberg, monochrome 1847*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>fsrgb</tt></b> 1848*593dc095SDavid du Colombier <td> 1849*593dc095SDavid du Colombier <td>Floyd-Steinberg, RGB process color model (almost identical to the <b><tt>cdj550</tt></b>/<b><tt>bjc</tt></b> algorithm) 1850*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>fsx4</tt></b> 1851*593dc095SDavid du Colombier <td> 1852*593dc095SDavid du Colombier <td>Floyd-Steinberg, CMYK process color model (shares code with <b><tt>fsmono</tt></b> and <b><tt>fsrgb</tt></b>, but is algorithmically really bad) 1853*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>fscmyk</tt></b> 1854*593dc095SDavid du Colombier <td> 1855*593dc095SDavid du Colombier <td>Floyd-Steinberg, CMYK process color model and proper modifications for CMYK 1856*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>hscmyk</tt></b> 1857*593dc095SDavid du Colombier <td> 1858*593dc095SDavid du Colombier <td>modified Floyd-Steinberg with CMYK model ("hs" stands for "hess" not for "high speed", but the major difference from <b><tt>fscmyk</tt></b> is speed) 1859*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>fs2</tt></b> 1860*593dc095SDavid du Colombier <td> 1861*593dc095SDavid du Colombier <td>algorithm by Steven Singer (RGB) should be identical to <b><tt>escp2cfs2</tt></b>. 1862*593dc095SDavid du Colombier</table></blockquote> 1863*593dc095SDavid du Colombier</dl> 1864*593dc095SDavid du Colombier 1865*593dc095SDavid du Colombier<dl> 1866*593dc095SDavid du Colombier<dt><b><tt>-dBitsPerPixel=</tt></b><em>{1...32}</em> 1867*593dc095SDavid du Colombier<dd>number of bits used for pixel storage; the larger the value, the better 1868*593dc095SDavid du Colombierthe quality -- at least in theory. In <b><tt>fsrgb</tt></b> one can gain 1869*593dc095SDavid du Colombiersome speed by restricting to 24 bits rather than the default 30. 1870*593dc095SDavid du Colombier</dl> 1871*593dc095SDavid du Colombier 1872*593dc095SDavid du Colombier<dl> 1873*593dc095SDavid du Colombier<dt><b><tt>-dFlag0</tt></b> 1874*593dc095SDavid du Colombier<dd>causes some algorithms to select a uniform initialisation rather than a 1875*593dc095SDavid du Colombierset of random values. May yield a sharper image impression at the cost of 1876*593dc095SDavid du Colombierdithering artifacts. (Applies to <b><tt>hscmyk</tt></b> and all fs modes, 1877*593dc095SDavid du Colombierexcept for fs2, which always uses a constant initialization.) 1878*593dc095SDavid du Colombier</dl> 1879*593dc095SDavid du Colombier 1880*593dc095SDavid du Colombier<dl> 1881*593dc095SDavid du Colombier<dt><b><tt>-dFlag1</tt></b> ... <b><tt>-dFlag4</tt></b> 1882*593dc095SDavid du Colombier<dd>Available for future algorithms. 1883*593dc095SDavid du Colombier</dl> 1884*593dc095SDavid du Colombier 1885*593dc095SDavid du Colombier<dl> 1886*593dc095SDavid du Colombier<dt><b><tt>-dColorAdjustMatrix='{</tt></b><em>three, nine, or sixteen 1887*593dc095SDavid du Colombierfloating-point values</em><b><tt>}'</tt></b> 1888*593dc095SDavid du Colombier<dd>This is a matrix to adjust the colors. Values should be between -1.0 1889*593dc095SDavid du Colombierand 1.0, and the number of values depends on the color model the selected 1890*593dc095SDavid du Colombieralgorithm uses. In RGB and CMYK modes a matrix with 1.0 on the diagonal 1891*593dc095SDavid du Colombierproduces no transformation. This feature is really required, but I could 1892*593dc095SDavid du Colombiernot identify a similar feature at the language level, so I implemented it, 1893*593dc095SDavid du Colombierbut I don't know reasonable values yet. 1894*593dc095SDavid du Colombier</dl> 1895*593dc095SDavid du Colombier 1896*593dc095SDavid du Colombier<dl> 1897*593dc095SDavid du Colombier<dt><b><tt>-dCtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> or 1898*593dc095SDavid du Colombier<dt><b><tt>-dMtransfer=</tt></b>..., <b><tt>-dY</tt></b>..., <b><tt>-dK</tt></b>... or 1899*593dc095SDavid du Colombier<dt><b><tt>-dRtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> or 1900*593dc095SDavid du Colombier<dt><b><tt>-dG</tt></b>..., <b><tt>-dB</tt></b>... or 1901*593dc095SDavid du Colombier<dt><b><tt>-dKtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> 1902*593dc095SDavid du Colombier<dd>Which you use depends on the algorithm, which may be either either 1903*593dc095SDavid du ColombierCMYK, RGB or monochrome. The values are arrays of floats in the range from 1904*593dc095SDavid du Colombier0 to 1.0, representing the visible color intensity for the device. One may 1905*593dc095SDavid du Colombierachieve similar effects with <b><tt>setcolortransfer</tt></b> at the 1906*593dc095SDavid du Colombierlanguage level, but this takes more time and the underlying code for the 1907*593dc095SDavid du Colombierdriver-specific parameters is still required. The size of the arrays is 1908*593dc095SDavid du Colombierarbitrary and the defaults are "<b><tt>{0.0 1.0}</tt></b>", which is a 1909*593dc095SDavid du Colombierlinear characteristic. Most of the code in <b><tt>stcolor.ps</tt></b> are 1910*593dc095SDavid du Colombierbetter transfer arrays. 1911*593dc095SDavid du Colombier</dl> 1912*593dc095SDavid du Colombier 1913*593dc095SDavid du Colombier<dl> 1914*593dc095SDavid du Colombier<dt><b><tt>-dKcoding='{</tt></b><em>float...</em><b><tt>}'</tt></b> 1915*593dc095SDavid du Colombier<dt><b><tt>-dC</tt></b>..., <b><tt>-dM</tt></b>... etc. 1916*593dc095SDavid du Colombier<dd>Arrays between 0.0 and 1.0, controlling the internal coding of the 1917*593dc095SDavid du Colombiercolor values. Clever use of these arrays may yield further enhancements, 1918*593dc095SDavid du Colombierbut I have no experience yet. (To be discontinued with version 2.x.) 1919*593dc095SDavid du Colombier</dl> 1920*593dc095SDavid du Colombier 1921*593dc095SDavid du Colombier<dl> 1922*593dc095SDavid du Colombier<dt><b><tt>-sModel=st800</tt></b> 1923*593dc095SDavid du Colombier<dd>Causes output to be suitable for the monochrome Stylus 800 (no weaving, 1924*593dc095SDavid du Colombierno color). 1925*593dc095SDavid du Colombier</dl> 1926*593dc095SDavid du Colombier 1927*593dc095SDavid du Colombier<dl> 1928*593dc095SDavid du Colombier<dt><b><tt>-sOutputCode=</tt></b><em>{name}</em> 1929*593dc095SDavid du Colombier<dd>Can be either "<b><tt>plain</tt></b>", "<b><tt>runlength</tt></b>" or 1930*593dc095SDavid du Colombier"<b><tt>deltarow</tt></b>" and changes the ESC/P2 coding technique 1931*593dc095SDavid du Colombierused by the driver. The default is to use runlength encoding. 1932*593dc095SDavid du Colombier"<b><tt>plain</tt></b>" selects uncompressed encoding and generates 1933*593dc095SDavid du Colombierenormous amounts of data. 1934*593dc095SDavid du Colombier</dl> 1935*593dc095SDavid du Colombier 1936*593dc095SDavid du Colombier<dl> 1937*593dc095SDavid du Colombier<dt><b><tt>-descp_Band=</tt></b><em>1/8/15/24</em> 1938*593dc095SDavid du Colombier<dd>Number of nozzles of scanlines used in printing, Useful only with 1939*593dc095SDavid du Colombier<b><tt>-dnoWeave</tt></b>. Larger Values yield smaller code, but this 1940*593dc095SDavid du Colombierdoesn't increase the printing speed. 1941*593dc095SDavid du Colombier</dl> 1942*593dc095SDavid du Colombier 1943*593dc095SDavid du Colombier<dl> 1944*593dc095SDavid du Colombier<dt><b><tt>-descp_Width=</tt></b><em>N</em> 1945*593dc095SDavid du Colombier<dd>Number of pixels Printed in each scan Line. (Useful only when tuning 1946*593dc095SDavid du Colombiermargins; see below) 1947*593dc095SDavid du Colombier</dl> 1948*593dc095SDavid du Colombier 1949*593dc095SDavid du Colombier<dl> 1950*593dc095SDavid du Colombier<dt><b><tt>-descp_Height=</tt></b><em>pixels</em> 1951*593dc095SDavid du Colombier<dd>Length of the entire page in pixels. (Parameter of 1952*593dc095SDavid du Colombier"<b><tt>ESC(C</tt></b>" in default initialization.) 1953*593dc095SDavid du Colombier</dl> 1954*593dc095SDavid du Colombier 1955*593dc095SDavid du Colombier<dl> 1956*593dc095SDavid du Colombier<dt><b><tt>-descp_Top=</tt></b><em>scan lines</em> 1957*593dc095SDavid du Colombier<dd>Top margin in scan lines. (First parameter of "<b><tt>ESC(c</tt></b>" 1958*593dc095SDavid du Colombierin default initialization.) 1959*593dc095SDavid du Colombier</dl> 1960*593dc095SDavid du Colombier 1961*593dc095SDavid du Colombier<dl> 1962*593dc095SDavid du Colombier<dt><b><tt>-descp_Bottom=</tt></b><em>scan lines</em> 1963*593dc095SDavid du Colombier<dd>Bottom margin in scan lines. (Second parameter of 1964*593dc095SDavid du Colombier"<b><tt>ESC(c</tt></b>" in default initialization.) 1965*593dc095SDavid du Colombier</dl> 1966*593dc095SDavid du Colombier 1967*593dc095SDavid du Colombier<dl> 1968*593dc095SDavid du Colombier<dt><b><tt>-sescp_Init=</tt></b>"<em>string</em>" 1969*593dc095SDavid du Colombier<dd>Override for the initialization sequence. (Must set graphics mode 1 1970*593dc095SDavid du Colombierand units.) 1971*593dc095SDavid du Colombier</dl> 1972*593dc095SDavid du Colombier 1973*593dc095SDavid du Colombier<dl> 1974*593dc095SDavid du Colombier<dt><b><tt>-sescp_Release=</tt></b>"<em>string</em>" 1975*593dc095SDavid du Colombier<dd>Overrides the release sequence, "<b><tt>ESC @ FF</tt></b>" by 1976*593dc095SDavid du Colombierdefault. 1977*593dc095SDavid du Colombier</dl> 1978*593dc095SDavid du Colombier 1979*593dc095SDavid du Colombier<p> 1980*593dc095SDavid du ColombierESC/P2 allows any resolutions to be valid in theory, but only 1981*593dc095SDavid du Colombier<b><tt>-r360x360</tt></b> (the default) and <b><tt>-r720x720</tt></b> (not 1982*593dc095SDavid du Colombieron STC-IIs ? and st800) are known to work with most printers. 1983*593dc095SDavid du Colombier 1984*593dc095SDavid du Colombier<p> 1985*593dc095SDavid du Colombier 1986*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 1987*593dc095SDavid du Colombier<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Valid option combinations<br>Stylus I & Pro-Series only</font><hr> 1988*593dc095SDavid du Colombier<tr valign=bottom> 1989*593dc095SDavid du Colombier <th valign=bottom align=left>Resolution 1990*593dc095SDavid du Colombier <td> 1991*593dc095SDavid du Colombier <th valign=bottom align=left><b><tt>escp_Band</tt></b> 1992*593dc095SDavid du Colombier <td> 1993*593dc095SDavid du Colombier <th valign=bottom align=left>Weave usable 1994*593dc095SDavid du Colombier <td> 1995*593dc095SDavid du Colombier <th valign=bottom align=left><b><tt>escp_Band</tt></b> &<br>number of passes 1996*593dc095SDavid du Colombier<tr> <td colspan=7><hr> 1997*593dc095SDavid du Colombier<tr valign=top> <td>180x90 1998*593dc095SDavid du Colombier <td> 1999*593dc095SDavid du Colombier <td>15 2000*593dc095SDavid du Colombier <td> 2001*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b> 2002*593dc095SDavid du Colombier <td> 2003*593dc095SDavid du Colombier <td> 2004*593dc095SDavid du Colombier<tr valign=top> <td>180x180 2005*593dc095SDavid du Colombier <td> 2006*593dc095SDavid du Colombier <td>1 , 8, 24 2007*593dc095SDavid du Colombier <td> 2008*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b> 2009*593dc095SDavid du Colombier <td> 2010*593dc095SDavid du Colombier <td>15/2 <b><tt>SoftWeave</tt></b> 2011*593dc095SDavid du Colombier<tr valign=top> <td>180x360 2012*593dc095SDavid du Colombier <td> 2013*593dc095SDavid du Colombier <td> 2014*593dc095SDavid du Colombier <td> 2015*593dc095SDavid du Colombier <td> 2016*593dc095SDavid du Colombier <td> 2017*593dc095SDavid du Colombier <td>15/4 <b><tt>SoftWeave</tt></b> 2018*593dc095SDavid du Colombier<tr valign=top> <td>180x720 2019*593dc095SDavid du Colombier <td> 2020*593dc095SDavid du Colombier <td> 2021*593dc095SDavid du Colombier <td> 2022*593dc095SDavid du Colombier <td> 2023*593dc095SDavid du Colombier <td> 2024*593dc095SDavid du Colombier <td>15/8 <b><tt>SoftWeave</tt></b> 2025*593dc095SDavid du Colombier<tr valign=top> <td>360x90 2026*593dc095SDavid du Colombier <td> 2027*593dc095SDavid du Colombier <td>15 2028*593dc095SDavid du Colombier <td> 2029*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b> 2030*593dc095SDavid du Colombier <td> 2031*593dc095SDavid du Colombier <td> 2032*593dc095SDavid du Colombier<tr valign=top> <td>360x180 2033*593dc095SDavid du Colombier <td> 2034*593dc095SDavid du Colombier <td>1, 8, 24 2035*593dc095SDavid du Colombier <td> 2036*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b> 2037*593dc095SDavid du Colombier <td> 2038*593dc095SDavid du Colombier <td>15/2 <b><tt>SoftWeave</tt></b> 2039*593dc095SDavid du Colombier<tr valign=top> <td>360x360 2040*593dc095SDavid du Colombier <td> 2041*593dc095SDavid du Colombier <td>1, 8, 24 2042*593dc095SDavid du Colombier <td> 2043*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b> 2044*593dc095SDavid du Colombier <td> 2045*593dc095SDavid du Colombier <td>15/4 <b><tt>SoftWeave</tt></b> 2046*593dc095SDavid du Colombier<tr valign=top> <td>360x720 2047*593dc095SDavid du Colombier <td> 2048*593dc095SDavid du Colombier <td> 2049*593dc095SDavid du Colombier <td> 2050*593dc095SDavid du Colombier <td> 2051*593dc095SDavid du Colombier <td> 2052*593dc095SDavid du Colombier <td>15/8 <b><tt>SoftWeave</tt></b> 2053*593dc095SDavid du Colombier<tr valign=top> <td>720x90 2054*593dc095SDavid du Colombier <td> 2055*593dc095SDavid du Colombier <td>15 2056*593dc095SDavid du Colombier <td> 2057*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b> 2058*593dc095SDavid du Colombier <td> 2059*593dc095SDavid du Colombier <td> 2060*593dc095SDavid du Colombier<tr valign=top> <td>720x180 2061*593dc095SDavid du Colombier <td> 2062*593dc095SDavid du Colombier <td> 2063*593dc095SDavid du Colombier <td> 2064*593dc095SDavid du Colombier <td> 2065*593dc095SDavid du Colombier <td> 2066*593dc095SDavid du Colombier <td>15/2 <b><tt>SoftWeave</tt></b> 2067*593dc095SDavid du Colombier<tr valign=top> <td>720x360 2068*593dc095SDavid du Colombier <td> 2069*593dc095SDavid du Colombier <td> 2070*593dc095SDavid du Colombier <td> 2071*593dc095SDavid du Colombier <td> 2072*593dc095SDavid du Colombier <td> 2073*593dc095SDavid du Colombier <td>15/4 <b><tt>SoftWeave</tt></b> 2074*593dc095SDavid du Colombier<tr valign=top> <td>720x720 2075*593dc095SDavid du Colombier <td> 2076*593dc095SDavid du Colombier <td>1 2077*593dc095SDavid du Colombier <td> 2078*593dc095SDavid du Colombier <td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b> 2079*593dc095SDavid du Colombier <td> 2080*593dc095SDavid du Colombier <td>15/8 <b><tt>SoftWeave</tt></b> 2081*593dc095SDavid du Colombier</table></blockquote> 2082*593dc095SDavid du Colombier 2083*593dc095SDavid du Colombier<blockquote> 2084*593dc095SDavid du Colombier<b>Beware:</b> there are only few validity checks for parameters. A good 2085*593dc095SDavid du Colombierexample is <b><tt>escp_Band</tt></b>: if you set this, the driver uses your 2086*593dc095SDavid du Colombiervalue even if the value is not supported by the printer. <b>You asked for 2087*593dc095SDavid du Colombierit and you got it!</b> 2088*593dc095SDavid du Colombier</blockquote> 2089*593dc095SDavid du Colombier 2090*593dc095SDavid du Colombier<h3><a name="STC_FAQ"></a>Application note and FAQ</h3> 2091*593dc095SDavid du Colombier 2092*593dc095SDavid du Colombier<p> 2093*593dc095SDavid du ColombierQuite a bunch of parameters. Hopefully you never need any of them, besides 2094*593dc095SDavid du Colombierfeeding <b><tt>stcolor.ps</tt></b> to Ghostscript in front of your input. 2095*593dc095SDavid du Colombier 2096*593dc095SDavid du Colombier<p> 2097*593dc095SDavid du ColombierAfter answering some questions over fifty times I prepared a FAQ. Here is 2098*593dc095SDavid du Colombierversion 1.3 of the FAQ, as of <b><tt>stcolor</tt></b> version 1.20 (for 2099*593dc095SDavid du ColombierGhostscript 3.50). 2100*593dc095SDavid du Colombier 2101*593dc095SDavid du Colombier<h4><a name="STC_FAQ_A3"></a>Support for A3 paper</h4> 2102*593dc095SDavid du Colombier 2103*593dc095SDavid du Colombier<p> 2104*593dc095SDavid du ColombierYes, this driver supports the A3-size printer: merely set the required 2105*593dc095SDavid du Colombierpagesize and margins. A simple way to do this is to specify the 2106*593dc095SDavid du Colombiercommand-line switch "<b><tt>-sPAPERSIZE=a3</tt></b>" or include the 2107*593dc095SDavid du Colombierprocedure call "<b><tt>a3</tt></b>" in the PostScript prolog section. To 2108*593dc095SDavid du Colombieroptimize the printable area or set the proper margins, see the next 2109*593dc095SDavid du Colombierparagraph. 2110*593dc095SDavid du Colombier 2111*593dc095SDavid du Colombier<h4><a name="STC_FAQ_margins"></a>Margins, PageSize</h4> 2112*593dc095SDavid du Colombier 2113*593dc095SDavid du Colombier<p> 2114*593dc095SDavid du ColombierI refuse to add code to <b><tt>stcolor</tt></b> that tries to guess the 2115*593dc095SDavid du Colombierproper margins or page size, because I found that such guessing is usually 2116*593dc095SDavid du Colombierwrong and needs correction in either the source or the parameters. You can 2117*593dc095SDavid du Colombiermodify <b><tt>stcolor.ps</tt></b> to do that, however. After the line 2118*593dc095SDavid du Colombier 2119*593dc095SDavid du Colombier<blockquote><b><tt> 2120*593dc095SDavid du Colombiermark % prepare stack for "putdeviceprops" 2121*593dc095SDavid du Colombier</tt></b></blockquote> 2122*593dc095SDavid du Colombier 2123*593dc095SDavid du Colombier<p> 2124*593dc095SDavid du Colombierinsert these lines, which define page size and margins in points: 2125*593dc095SDavid du Colombier 2126*593dc095SDavid du Colombier<blockquote> 2127*593dc095SDavid du Colombier<pre>/.HWMargins [9.0 39.96 12.6 9.0] % Left, bottom, right, top (1/72") 2128*593dc095SDavid du Colombier/PageSize [597.6 842.4] % Paper, including margins (1/72") 2129*593dc095SDavid du Colombier/Margins [ % neg. Offset to Left/Top in Pixels 2130*593dc095SDavid du Colombier 4 index 0 get STCold /HWResolution get 0 get mul 72 div neg 2131*593dc095SDavid du Colombier 5 index 3 get STCold /HWResolution get 1 get mul 72 div neg 2132*593dc095SDavid du Colombier]</pre></blockquote> 2133*593dc095SDavid du Colombier 2134*593dc095SDavid du Colombier<p> 2135*593dc095SDavid du ColombierFeel free to change the values of <b><tt>.HWMargins</tt></b> and 2136*593dc095SDavid du Colombier<b><tt>PageSize</tt></b> to match your needs; the values given are the 2137*593dc095SDavid du Colombierdefaults when the driver is compiled with "<b><tt>-DA4</tt></b>". This 2138*593dc095SDavid du Colombieroption or its omission may cause trouble: the Stylus Color can print up to 2139*593dc095SDavid du Colombierexactly 8 inches (2880 pixels) at 360dpi. The remaining paper is the 2140*593dc095SDavid du Colombiermargin, where the left margin varies only slightly with the paper size, 2141*593dc095SDavid du Colombierwhile the right margin is significantly increased for wider paper, such as 2142*593dc095SDavid du ColombierU.S. letter size. 2143*593dc095SDavid du Colombier 2144*593dc095SDavid du Colombier<p> 2145*593dc095SDavid du Colombier<b>Note</b> that if you are using an ISO paper size with a version of 2146*593dc095SDavid du Colombier<b><tt>stcolor</tt></b> after 1.20 and compiled without 2147*593dc095SDavid du Colombier"<b><tt>-DA4</tt></b>", then the default margin is too large, and you need 2148*593dc095SDavid du Colombierto add the proper "<b><tt>.HWMargins</tt></b>" to the command line or to 2149*593dc095SDavid du Colombier<b><tt>stcolor.ps</tt></b>. 2150*593dc095SDavid du Colombier 2151*593dc095SDavid du Colombier<h4><a name="STC_FAQ_II_IIS_1500"></a>Stylus Color II / IIs and 1500</h4> 2152*593dc095SDavid du Colombier 2153*593dc095SDavid du Colombier<p> 2154*593dc095SDavid du ColombierFirst the good news: the driver can print on the Stylus Color II. 2155*593dc095SDavid du ColombierNow the bad news: 2156*593dc095SDavid du Colombier<ul> 2157*593dc095SDavid du Colombier<li>According to Epson support the driver "abuses" the color 2158*593dc095SDavid du Colombiercapabilities. (See "Future Plans" for details.) 2159*593dc095SDavid du Colombier<li>You need some parameters on the command line (or in 2160*593dc095SDavid du Colombier<b><tt>stcolor.ps</tt></b>). 2161*593dc095SDavid du Colombier<li>I doubted that it would be usable with the Stylus Color IIs, but 2162*593dc095SDavid du Colombierit <b>is</b> usable and suffers from mixing problems! 2163*593dc095SDavid du Colombier</ul> 2164*593dc095SDavid du Colombier 2165*593dc095SDavid du Colombier<p> 2166*593dc095SDavid du Colombier 2167*593dc095SDavid du ColombierTo make things work, you <b>MUST</b> disable the driver's internal 2168*593dc095SDavid du Colombierweaving (<b><tt>Softweave</tt></b>), in one of these two ways: 2169*593dc095SDavid du Colombier 2170*593dc095SDavid du Colombier<blockquote> 2171*593dc095SDavid du Colombier<b><tt>gs -dMicroweave</tt></b> ...<br> 2172*593dc095SDavid du Colombier<b><tt>gs -dnoWeave -descp_Band=1</tt></b> ... 2173*593dc095SDavid du Colombier</blockquote> 2174*593dc095SDavid du Colombier 2175*593dc095SDavid du Colombier<p> 2176*593dc095SDavid du ColombierVersion 1.90, current as of Ghostscript 5.10, fixes this bug by new default 2177*593dc095SDavid du Colombierbehaviour. I experienced significantly increased printing speed with the 2178*593dc095SDavid du Colombiersecond variant on the old Stylus Color, when printing mostly monochrome 2179*593dc095SDavid du Colombierdata. 2180*593dc095SDavid du Colombier 2181*593dc095SDavid du Colombier<h3><a name="STC_recommendations"></a>Recommendations</h3> 2182*593dc095SDavid du Colombier 2183*593dc095SDavid du Colombier<p> 2184*593dc095SDavid du ColombierThe next section is a contribution from Jason Patterson <jason@reflections.com.au> 2185*593dc095SDavid du Colombierwho evaluated a previous version (1.17). Ghostscript was invoked as follows: 2186*593dc095SDavid du Colombier 2187*593dc095SDavid du Colombier<blockquote><dl compact> 2188*593dc095SDavid du Colombier<dt><b><tt>gs</tt></b> 2189*593dc095SDavid du Colombier<dd><b><tt>-sDEVICE=stcolor -r720x720 2190*593dc095SDavid du Colombier-sDithering=</tt></b>... <b><tt>-sOutputFile=escp.out stcolor.ps 2191*593dc095SDavid du Colombierwhatsoever.ps</tt></b> 2192*593dc095SDavid du Colombier 2193*593dc095SDavid du Colombier</dl></blockquote> 2194*593dc095SDavid du Colombier 2195*593dc095SDavid du Colombier<p> 2196*593dc095SDavid du Colombierwhere "..." is the name of the desired algorithm. 2197*593dc095SDavid du Colombier<b><tt>stcolor.ps</tt></b> was omitted for the gs-algorithms 2198*593dc095SDavid du Colombier(<b><tt>gsmono</tt></b>, <b><tt>gsrgb</tt></b> and <b><tt>gscmyk</tt></b>), 2199*593dc095SDavid du Colombierfor which it is useless and would not allow the selection of 2200*593dc095SDavid du Colombier"<b><tt>gscmyk</tt></b>". 2201*593dc095SDavid du Colombier 2202*593dc095SDavid du Colombier<h4><a name="STC_dither_experiment"></a>Color dithering experiments with 2203*593dc095SDavid du Colombier<b><tt>gdevstc</tt></b> 1.21</h4> 2204*593dc095SDavid du Colombier 2205*593dc095SDavid du Colombier<p> 2206*593dc095SDavid du ColombierHere are data about the EPSON Stylus Color driver's different dithering 2207*593dc095SDavid du Colombiermethods, based on a little experiment using four good quality scanned 2208*593dc095SDavid du Colombierimages of quite varied nature, to begin with, a summary of the results of 2209*593dc095SDavid du Colombierthe four experiments. <b>Sanity note:</b> the results here are from only 2210*593dc095SDavid du Colombierfour images and a total of 24 printouts (eight on 720dpi paper, sixteen on 2211*593dc095SDavid du Colombierplain paper). Your results will almost certainly vary, and your standards 2212*593dc095SDavid du Colombiermight not be the same as mine, so use these results only as a guide, not as 2213*593dc095SDavid du Colombiera formal evaluation. 2214*593dc095SDavid du Colombier 2215*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 2216*593dc095SDavid du Colombier<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Quality of output by method</font><hr> 2217*593dc095SDavid du Colombier<tr valign=bottom> 2218*593dc095SDavid du Colombier <th align=left> 2219*593dc095SDavid du Colombier <td> 2220*593dc095SDavid du Colombier <th align=left> 2221*593dc095SDavid du Colombier<tr> <td colspan=3><hr> 2222*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>gsmono</tt></b> 2223*593dc095SDavid du Colombier<td> 2224*593dc095SDavid du Colombier<td>Pretty much what you'd expect from a mono ordered pattern. 2225*593dc095SDavid du ColombierLooks like what a lot of mono laser printers produce. 2226*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>fsmono</tt></b> 2227*593dc095SDavid du Colombier<td> 2228*593dc095SDavid du Colombier<td>Excellent for monochrome. 2229*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>gscmyk</tt></b> 2230*593dc095SDavid du Colombier<td> 2231*593dc095SDavid du Colombier<td>Not very good, but expected from an ordered pattern. 2232*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>gsrgb</tt></b> 2233*593dc095SDavid du Colombier<td> 2234*593dc095SDavid du Colombier<td>A little better than <b><tt>gscmyk</tt></b>. More consistent 2235*593dc095SDavid du Colombierlooking. 2236*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>fs2</tt></b> 2237*593dc095SDavid du Colombier<td> 2238*593dc095SDavid du Colombier<td>Good, but not quite as good as <b><tt>fsrgb</tt></b>. Gets the 2239*593dc095SDavid du Colombierbrightness wrong: too light at 720dpi, too dark at 360dpi. 2240*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>fsrgb</tt></b> 2241*593dc095SDavid du Colombier<td> 2242*593dc095SDavid du Colombier<td>Very good, but a little too dark and has a slight blue tint. 2243*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>hscmyk</tt></b> 2244*593dc095SDavid du Colombier<td> 2245*593dc095SDavid du Colombier<td>Excellent. Slightly better than <b><tt>fsrgb</tt></b> and 2246*593dc095SDavid du Colombier<b><tt>fs2</tt></b>. Better than <b><tt>fscmyk</tt></b> on 2247*593dc095SDavid du Colombiersome images, almost the same on most. 2248*593dc095SDavid du Colombier<tr> <td valign=top><b><tt>fscmyk</tt></b> 2249*593dc095SDavid du Colombier<td> 2250*593dc095SDavid du Colombier<td>Best. Very, very slightly better than <b><tt>hscmyk</tt></b>. 2251*593dc095SDavid du ColombierOn some images nearly as good as the EPSON demos done with 2252*593dc095SDavid du Colombierthe MS Windows driver. 2253*593dc095SDavid du Colombier</table></blockquote> 2254*593dc095SDavid du Colombier 2255*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 2256*593dc095SDavid du Colombier<tr><th colspan=4 bgcolor="#CCCC00"><hr><font size="+1">Overall visual quality (1-10), best to worst</font><hr> 2257*593dc095SDavid du Colombier<tr valign=top> <th colspan=4 align=left>Monochrome 2258*593dc095SDavid du Colombier<tr> <td> 2259*593dc095SDavid du Colombier <td><b><tt>fsmono</tt></b> 2260*593dc095SDavid du Colombier <td> 2261*593dc095SDavid du Colombier <td><b><tt>******************</tt></b> 2262*593dc095SDavid du Colombier<tr> <td> 2263*593dc095SDavid du Colombier <td><b><tt>gsmono</tt></b> 2264*593dc095SDavid du Colombier <td> 2265*593dc095SDavid du Colombier <td><b><tt>**********</tt></b> 2266*593dc095SDavid du Colombier<tr> <td> 2267*593dc095SDavid du Colombier <td> 2268*593dc095SDavid du Colombier <td> 2269*593dc095SDavid du Colombier <td><b><tt>0 1 2 3 4 5 6 7 8 9 10</tt></b> 2270*593dc095SDavid du Colombier<tr> <td colspan=4><hr> 2271*593dc095SDavid du Colombier<tr valign=top> <th colspan=4 align=left>Colour 2272*593dc095SDavid du Colombier<tr> <td> 2273*593dc095SDavid du Colombier <td><b><tt>fscmyk</tt></b> 2274*593dc095SDavid du Colombier <td> 2275*593dc095SDavid du Colombier <td><b><tt>*******************</tt></b> 2276*593dc095SDavid du Colombier<tr> <td> 2277*593dc095SDavid du Colombier <td><b><tt>hscmyk</tt></b> 2278*593dc095SDavid du Colombier <td> 2279*593dc095SDavid du Colombier <td><b><tt>*******************</tt></b> 2280*593dc095SDavid du Colombier<tr> <td> 2281*593dc095SDavid du Colombier <td><b><tt>fsrgb</tt></b> 2282*593dc095SDavid du Colombier <td> 2283*593dc095SDavid du Colombier <td><b><tt>******************</tt></b> 2284*593dc095SDavid du Colombier<tr> <td> 2285*593dc095SDavid du Colombier <td><b><tt>fs2</tt></b> 2286*593dc095SDavid du Colombier <td> 2287*593dc095SDavid du Colombier <td><b><tt>*****************</tt></b> 2288*593dc095SDavid du Colombier<tr> <td> 2289*593dc095SDavid du Colombier <td><b><tt>gsrgb</tt></b> 2290*593dc095SDavid du Colombier <td> 2291*593dc095SDavid du Colombier <td><b><tt>**********</tt></b> 2292*593dc095SDavid du Colombier<tr> <td> 2293*593dc095SDavid du Colombier <td><b><tt>gscmyk</tt></b> 2294*593dc095SDavid du Colombier <td> 2295*593dc095SDavid du Colombier <td><b><tt>*********</tt></b> 2296*593dc095SDavid du Colombier<tr> <td> 2297*593dc095SDavid du Colombier <td> 2298*593dc095SDavid du Colombier <td> 2299*593dc095SDavid du Colombier <td><b><tt>0 1 2 3 4 5 6 7 8 9 10</tt></b> 2300*593dc095SDavid du Colombier</table></blockquote> 2301*593dc095SDavid du Colombier 2302*593dc095SDavid du Colombier<h3><a name="STC_color_transform"></a>Color transformation</h3> 2303*593dc095SDavid du Colombier 2304*593dc095SDavid du Colombier<p> 2305*593dc095SDavid du ColombierIn the initial version of the driver distributed with Ghostscript 3.33, the 2306*593dc095SDavid du Colombierparameter "<b><tt>SpotSize</tt></b>" was the only way to manipulate the 2307*593dc095SDavid du Colombiercolors at the driver level. According to the parameters enumerated above, 2308*593dc095SDavid du Colombierthis has changed significantly with version 1.16 and above as a result an 2309*593dc095SDavid du Colombierongoing discussion about dithering algorithms and "false color" on the 2310*593dc095SDavid du ColombierEpson Stylus Color. This initiated the transformation of the 2311*593dc095SDavid du Colombier<b><tt>stcolor</tt></b> driver into a framework for different dithering 2312*593dc095SDavid du Colombieralgorithms, providing a generalized interface to the internal Ghostscript 2313*593dc095SDavid du Colombiercolor models and the other data structures related to Ghostscript drivers. 2314*593dc095SDavid du Colombier 2315*593dc095SDavid du Colombier<p> 2316*593dc095SDavid du ColombierThe main thing such a framework should be able to do is to deliver the 2317*593dc095SDavid du Colombiervalues the dithering algorithm needs; and since this directly influences 2318*593dc095SDavid du Colombierthe optical image impression, this transformation should be adjustable 2319*593dc095SDavid du Colombierwithout the need for recompilation and relinking. In general the process 2320*593dc095SDavid du Colombiercan be described as follows: 2321*593dc095SDavid du Colombier 2322*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 2323*593dc095SDavid du Colombier<tr valign=top> <td colspan=3><b><tt>ColorAdjustMatrix</tt></b> 2324*593dc095SDavid du Colombier <td align=center>Coding 2325*593dc095SDavid du Colombier <td colspan=3> 2326*593dc095SDavid du Colombier <td align=center>Transfer 2327*593dc095SDavid du Colombier <td colspan=3> 2328*593dc095SDavid du Colombier<tr valign=top> <td>| 2329*593dc095SDavid du Colombier <td align=center>Ghostscript color 2330*593dc095SDavid du Colombier <td>| 2331*593dc095SDavid du Colombier <td align=center>=> 2332*593dc095SDavid du Colombier <td>| 2333*593dc095SDavid du Colombier <td align=center>Ghostscript raster 2334*593dc095SDavid du Colombier <td>| 2335*593dc095SDavid du Colombier <td align=center>=> 2336*593dc095SDavid du Colombier <td>| 2337*593dc095SDavid du Colombier <td align=center>Dithering data 2338*593dc095SDavid du Colombier <td>| 2339*593dc095SDavid du Colombier<tr valign=top> <td>| 2340*593dc095SDavid du Colombier <td> 2341*593dc095SDavid du Colombier <td>| 2342*593dc095SDavid du Colombier <td> 2343*593dc095SDavid du Colombier <td>| 2344*593dc095SDavid du Colombier <td align=center>1/2/4/8/16/32-bit 2345*593dc095SDavid du Colombier <td>| 2346*593dc095SDavid du Colombier <td> 2347*593dc095SDavid du Colombier <td>| 2348*593dc095SDavid du Colombier <td> 2349*593dc095SDavid du Colombier <td>| 2350*593dc095SDavid du Colombier<tr valign=top> <td>| 2351*593dc095SDavid du Colombier <td align=center>1/3/4 16-bit values 2352*593dc095SDavid du Colombier <td>| 2353*593dc095SDavid du Colombier <td> 2354*593dc095SDavid du Colombier <td>| 2355*593dc095SDavid du Colombier <td align=center>1/3/4 values 2356*593dc095SDavid du Colombier <td>| 2357*593dc095SDavid du Colombier <td> 2358*593dc095SDavid du Colombier <td>| 2359*593dc095SDavid du Colombier <td align=center>(arbitrary type) 2360*593dc095SDavid du Colombier <td>| 2361*593dc095SDavid du Colombier</table></blockquote> 2362*593dc095SDavid du Colombier 2363*593dc095SDavid du Colombier<p> 2364*593dc095SDavid du ColombierDue to the limitations on raster storage, information is lost in the first 2365*593dc095SDavid du Colombiertransformation step, except for the 16-bit monochrome mode. So any color 2366*593dc095SDavid du Colombieradjustment should take place before this step and this is where the optional 2367*593dc095SDavid du Colombier<b><tt>ColorAdjustMatrix</tt></b> works. 2368*593dc095SDavid du Colombier 2369*593dc095SDavid du Colombier<p> 2370*593dc095SDavid du ColombierThe first transformation step, called "coding", is controlled by the 2371*593dc095SDavid du Colombier<b><tt>?coding</tt></b> arrays. The decoding process expands the range of 2372*593dc095SDavid du Colombiervalues expontentially to a larger range than that provided by the initial 2373*593dc095SDavid du ColombierGhostscript color model, and is therefore a reasonable place to make 2374*593dc095SDavid du Colombierdevice- or algorithm-specific adjustments. This is where the 2375*593dc095SDavid du Colombier<b><tt>?transfer</tt></b> arrays are used. Array access might be not the 2376*593dc095SDavid du Colombierfastest method, but its generality is superior, so this step is always 2377*593dc095SDavid du Colombierbased upon internally algorithm-specific array access. If 8 bits are stored 2378*593dc095SDavid du Colombierper color component and if the algorithm uses bytes too, the second 2379*593dc095SDavid du Colombiertransformation is included within the first, which saves significant 2380*593dc095SDavid du Colombiercomputation time when printing the data. 2381*593dc095SDavid du Colombier 2382*593dc095SDavid du Colombier<h3><a name="STC_CAM"></a><b><tt>ColorAdjustMatrix</tt></b></h3> 2383*593dc095SDavid du Colombier 2384*593dc095SDavid du Colombier<p> 2385*593dc095SDavid du ColombierThe driver supports different values for <b><tt>ProcessColorModel</tt></b>, 2386*593dc095SDavid du Colombierwhich raises the need for different color adjustments. Here 2387*593dc095SDavid du Colombier"<b><tt>CAM</tt></b>" stands for "<b><tt>ColorAdjustMatrix</tt></b>". 2388*593dc095SDavid du Colombier 2389*593dc095SDavid du Colombier<dl> 2390*593dc095SDavid du Colombier<dt><b><tt>DeviceGray</tt></b> (three floats) 2391*593dc095SDavid du Colombier<dd><pre>if ((r == g) && (g == b)) 2392*593dc095SDavid du Colombier K' = 1.0 - R; 2393*593dc095SDavid du Colombierelse 2394*593dc095SDavid du Colombier K' = 1.0 - CAM[0] * R + CAM[1] * G + CAM[2] * B;</pre> 2395*593dc095SDavid du Colombier 2396*593dc095SDavid du Colombier<p> 2397*593dc095SDavid du ColombierAccording to the <a href="Drivers.htm">documentation on drivers</a>, the 2398*593dc095SDavid du Colombierlatter (the "else" clause) should never happen. 2399*593dc095SDavid du Colombier</dl> 2400*593dc095SDavid du Colombier 2401*593dc095SDavid du Colombier<dl> 2402*593dc095SDavid du Colombier<dt><b><tt>DeviceRGB</tt></b> (nine floats) 2403*593dc095SDavid du Colombier<dd><pre>if((r == g) && (g == b)) 2404*593dc095SDavid du Colombier R' = B' = G' = R; 2405*593dc095SDavid du Colombierelse 2406*593dc095SDavid du Colombier R' = CAM[0]*R + CAM[1]*G + CAM[2]*B; 2407*593dc095SDavid du Colombier G' = CAM[3]*R + CAM[4]*G + CAM[5]*B; 2408*593dc095SDavid du Colombier B' = CAM[6]*R + CAM[7]*G + CAM[8]*B;</pre> 2409*593dc095SDavid du Colombier 2410*593dc095SDavid du Colombier<p> 2411*593dc095SDavid du ColombierThe printer always uses four inks, so a special treatment of black is 2412*593dc095SDavid du Colombierprovided. Algorithms may take special action if R, G, and B are all 2413*593dc095SDavid du Colombierequal. 2414*593dc095SDavid du Colombier</dl> 2415*593dc095SDavid du Colombier 2416*593dc095SDavid du Colombier<dl> 2417*593dc095SDavid du Colombier<dt><b><tt>DeviceCMYK</tt></b> (sixteen floats) 2418*593dc095SDavid du Colombier<dd> 2419*593dc095SDavid du Colombier<pre>if((c == m) && (m == y)) 2420*593dc095SDavid du Colombier K' = max(C,K); 2421*593dc095SDavid du Colombier C' = M' = Y' = 0; 2422*593dc095SDavid du Colombierelse 2423*593dc095SDavid du Colombier K = min(C,M,Y); 2424*593dc095SDavid du Colombier if((K > 0) && ColorAdjustMatrix_present) { => UCR 2425*593dc095SDavid du Colombier C -= K; 2426*593dc095SDavid du Colombier M -= K; 2427*593dc095SDavid du Colombier Y -= K; 2428*593dc095SDavid du Colombier } 2429*593dc095SDavid du Colombier 2430*593dc095SDavid du Colombier C' = CAM[ 0]*C + CAM[ 1]*M + CAM[ 2]*Y + CAM[ 3]*K; 2431*593dc095SDavid du Colombier M' = CAM[ 4]*C + CAM[ 5]*M + CAM[ 6]*Y + CAM[ 7]*K; 2432*593dc095SDavid du Colombier Y' = CAM[ 8]*C + CAM[ 9]*M + CAM[10]*Y + CAM[11]*K; 2433*593dc095SDavid du Colombier K' = CAM[12]*C + CAM[13]*M + CAM[14]*Y + CAM[15]*K;</pre> 2434*593dc095SDavid du Colombier 2435*593dc095SDavid du Colombier<p> 2436*593dc095SDavid du ColombierAgain we have a special black treatment. "<b><tt>max(C,K)</tt></b>" was introduced 2437*593dc095SDavid du Colombierbecause of a slight misbehaviour of Ghostscript, which delivers 2438*593dc095SDavid du Colombierblack under certain circumstances as (1,1,1,0). Normally, when 2439*593dc095SDavid du Colombierno special black separation and undercolor removal procedures 2440*593dc095SDavid du Colombierare defined at the PostScript level, either (C,M,Y,0) or (0,0,0,K) 2441*593dc095SDavid du Colombiervalues are mapped. This would make the extended <b><tt>ColorAdjustMatrix</tt></b> 2442*593dc095SDavid du Colombierquite tedious, and so during mapping, black separation is done for 2443*593dc095SDavid du Colombier(C,M,Y,0) requests; and if there is a <b><tt>ColorAdjustMatrix</tt></b>, undercolor 2444*593dc095SDavid du Colombierremoval is used too. In other words the default matrix is: 2445*593dc095SDavid du Colombier 2446*593dc095SDavid du Colombier<blockquote><table> 2447*593dc095SDavid du Colombier<tr> <td>1 <td>0 <td>0 <td>1 2448*593dc095SDavid du Colombier<tr> <td>0 <td>1 <td>0 <td>1 2449*593dc095SDavid du Colombier<tr> <td>0 <td>0 <td>1 <td>1 2450*593dc095SDavid du Colombier<tr> <td>0 <td>0 <td>0 <td>1 2451*593dc095SDavid du Colombier</table></blockquote> 2452*593dc095SDavid du Colombier 2453*593dc095SDavid du Colombier<p> 2454*593dc095SDavid du Colombierand it is applied to CMYK values with separated and removed black. Raising 2455*593dc095SDavid du Colombierthe CMY coefficients while lowering the K coefficients reduces black and 2456*593dc095SDavid du Colombierintensifies color. But be careful, because even small deviations from the 2457*593dc095SDavid du Colombierdefault cause drastic changes. 2458*593dc095SDavid du Colombier</dl> 2459*593dc095SDavid du Colombier 2460*593dc095SDavid du Colombier<p> 2461*593dc095SDavid du ColombierIf no <b><tt>ColorAdjustMatrix</tt></b> is set, the matrix computations are 2462*593dc095SDavid du Colombierskipped. Thus the transformation reduces to range inversion in monochrome 2463*593dc095SDavid du Colombiermode and black separation in CMYK mode. 2464*593dc095SDavid du Colombier 2465*593dc095SDavid du Colombier<h3><a name="STC_RGBCMYK_coding"></a>RGB / CMYK coding and transfer, and <b><tt>BitsPerPixel</tt></b></h3> 2466*593dc095SDavid du Colombier 2467*593dc095SDavid du Colombier<p> 2468*593dc095SDavid du ColombierThese two (groups of) parameters are arrays of floating-point numbers in 2469*593dc095SDavid du Colombierthe range 0.0 to 1.0. They control the truncation to the desired number of 2470*593dc095SDavid du Colombierbits stored in raster memory (<b><tt>BitsPerPixel</tt></b>) and the ink 2471*593dc095SDavid du Colombierdensity. The "truncation" may become a nonlinear function if any of the 2472*593dc095SDavid du Colombier<b><tt>?coding</tt></b> arrays is set. Assume the following Ghostscript 2473*593dc095SDavid du Colombierinvocation: 2474*593dc095SDavid du Colombier 2475*593dc095SDavid du Colombier<blockquote><pre>gs -sDEVICE=stcolor -sDithering=fscmyk -dBitsPerPixel=16 \ 2476*593dc095SDavid du Colombier -dKcoding='{ 0.0 0.09 0.9 1.0 }' \ 2477*593dc095SDavid du Colombier -dMcoding='{ 0.0 0.09 0.9 1.0 }' \ 2478*593dc095SDavid du Colombier -dKtransfer='{ 0.0 0.09 0.9 1.0 }' \ 2479*593dc095SDavid du Colombier -dYtransfer='{ 0.0 0.09 0.9 1.0 }'</pre> 2480*593dc095SDavid du Colombier</blockquote> 2481*593dc095SDavid du Colombier 2482*593dc095SDavid du Colombier<p> 2483*593dc095SDavid du ColombierWe may have either or both of <b><tt>?coding</tt></b> and 2484*593dc095SDavid du Colombier<b><tt>?transfer</tt></b>, giving four possible combinations. (These four 2485*593dc095SDavid du Colombiercombinations appear in the given example.) The resulting mapping appears 2486*593dc095SDavid du Colombierin the following tables, where except for the internal Indices (4 2487*593dc095SDavid du Colombiercomponents × 4 bits = 16 <b><tt>BitsPerPixel</tt></b>), all values 2488*593dc095SDavid du Colombierare normalized to the range 0 to 1. The actual range is 0 to 65535 for the 2489*593dc095SDavid du ColombierGhostscript color and 0 to 16777215 for the ink values delivered to the 2490*593dc095SDavid du Colombier<b><tt>fscmyk</tt></b> algorithm. Sorry for the bunch of numbers 2491*593dc095SDavid du Colombierfollowing, but you may try this example in conjunction with 2492*593dc095SDavid du Colombier<b><tt>stcinfo.ps</tt></b>, which should give you a graphical printout of 2493*593dc095SDavid du Colombierthe following numbers when you issue a <b><tt>showpage</tt></b> command. 2494*593dc095SDavid du Colombier 2495*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 2496*593dc095SDavid du Colombier<tr> <td> 2497*593dc095SDavid du Colombier <td> 2498*593dc095SDavid du Colombier <th colspan=5>Cyan<hr> 2499*593dc095SDavid du Colombier <td> 2500*593dc095SDavid du Colombier <th colspan=5>Magenta<hr> 2501*593dc095SDavid du Colombier<tr valign=top> <th>CI/15 2502*593dc095SDavid du Colombier <td> 2503*593dc095SDavid du Colombier <th>gs_color_values 2504*593dc095SDavid du Colombier <td> 2505*593dc095SDavid du Colombier <th>CI 2506*593dc095SDavid du Colombier <td> 2507*593dc095SDavid du Colombier <th>Ink 2508*593dc095SDavid du Colombier <td> 2509*593dc095SDavid du Colombier <th>gs_color_values 2510*593dc095SDavid du Colombier <td> 2511*593dc095SDavid du Colombier <th>CI 2512*593dc095SDavid du Colombier <td> 2513*593dc095SDavid du Colombier <th>Ink 2514*593dc095SDavid du Colombier<tr> <td colspan=13><hr> 2515*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.000 2516*593dc095SDavid du Colombier <td> 2517*593dc095SDavid du Colombier <td align=center>0.000 - 0.062 2518*593dc095SDavid du Colombier <td> 2519*593dc095SDavid du Colombier <td align=right>0 2520*593dc095SDavid du Colombier <td> 2521*593dc095SDavid du Colombier <td align=center>0.000 2522*593dc095SDavid du Colombier <td> 2523*593dc095SDavid du Colombier <td align=center>-0.123 - 0.123 2524*593dc095SDavid du Colombier <td> 2525*593dc095SDavid du Colombier <td align=right>0 2526*593dc095SDavid du Colombier <td> 2527*593dc095SDavid du Colombier <td align=center>0.000 2528*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.067 2529*593dc095SDavid du Colombier <td> 2530*593dc095SDavid du Colombier <td align=center>0.063 - 0.125 2531*593dc095SDavid du Colombier <td> 2532*593dc095SDavid du Colombier <td align=right>1 2533*593dc095SDavid du Colombier <td> 2534*593dc095SDavid du Colombier <td align=center>0.067 2535*593dc095SDavid du Colombier <td> 2536*593dc095SDavid du Colombier <td align=center>0.123 - 0.299 2537*593dc095SDavid du Colombier <td> 2538*593dc095SDavid du Colombier <td align=right>1 2539*593dc095SDavid du Colombier <td> 2540*593dc095SDavid du Colombier <td align=center>0.247 2541*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.133 2542*593dc095SDavid du Colombier <td> 2543*593dc095SDavid du Colombier <td align=center>0.125 - 0.187 2544*593dc095SDavid du Colombier <td> 2545*593dc095SDavid du Colombier <td align=right>2 2546*593dc095SDavid du Colombier <td> 2547*593dc095SDavid du Colombier <td align=center>0.133 2548*593dc095SDavid du Colombier <td> 2549*593dc095SDavid du Colombier <td align=center>0.299 - 0.365 2550*593dc095SDavid du Colombier <td> 2551*593dc095SDavid du Colombier <td align=right>2 2552*593dc095SDavid du Colombier <td> 2553*593dc095SDavid du Colombier <td align=center>0.351 2554*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.200 2555*593dc095SDavid du Colombier <td> 2556*593dc095SDavid du Colombier <td align=center>0.188 - 0.250 2557*593dc095SDavid du Colombier <td> 2558*593dc095SDavid du Colombier <td align=right>3 2559*593dc095SDavid du Colombier <td> 2560*593dc095SDavid du Colombier <td align=center>0.200 2561*593dc095SDavid du Colombier <td> 2562*593dc095SDavid du Colombier <td align=center>0.365 - 0.392 2563*593dc095SDavid du Colombier <td> 2564*593dc095SDavid du Colombier <td align=right>3 2565*593dc095SDavid du Colombier <td> 2566*593dc095SDavid du Colombier <td align=center>0.379 2567*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.267 2568*593dc095SDavid du Colombier <td> 2569*593dc095SDavid du Colombier <td align=center>0.250 - 0.312 2570*593dc095SDavid du Colombier <td> 2571*593dc095SDavid du Colombier <td align=right>4 2572*593dc095SDavid du Colombier <td> 2573*593dc095SDavid du Colombier <td align=center>0.267 2574*593dc095SDavid du Colombier <td> 2575*593dc095SDavid du Colombier <td align=center>0.392 - 0.420 2576*593dc095SDavid du Colombier <td> 2577*593dc095SDavid du Colombier <td align=right>4 2578*593dc095SDavid du Colombier <td> 2579*593dc095SDavid du Colombier <td align=center>0.406 2580*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.333 2581*593dc095SDavid du Colombier <td> 2582*593dc095SDavid du Colombier <td align=center>0.313 - 0.375 2583*593dc095SDavid du Colombier <td> 2584*593dc095SDavid du Colombier <td align=right>5 2585*593dc095SDavid du Colombier <td> 2586*593dc095SDavid du Colombier <td align=center>0.333 2587*593dc095SDavid du Colombier <td> 2588*593dc095SDavid du Colombier <td align=center>0.420 - 0.447 2589*593dc095SDavid du Colombier <td> 2590*593dc095SDavid du Colombier <td align=right>5 2591*593dc095SDavid du Colombier <td> 2592*593dc095SDavid du Colombier <td align=center>0.433 2593*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.400 2594*593dc095SDavid du Colombier <td> 2595*593dc095SDavid du Colombier <td align=center>0.375 - 0.437 2596*593dc095SDavid du Colombier <td> 2597*593dc095SDavid du Colombier <td align=right>6 2598*593dc095SDavid du Colombier <td> 2599*593dc095SDavid du Colombier <td align=center>0.400 2600*593dc095SDavid du Colombier <td> 2601*593dc095SDavid du Colombier <td align=center>0.447 - 0.475 2602*593dc095SDavid du Colombier <td> 2603*593dc095SDavid du Colombier <td align=right>6 2604*593dc095SDavid du Colombier <td> 2605*593dc095SDavid du Colombier <td align=center>0.461 2606*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.467 2607*593dc095SDavid du Colombier <td> 2608*593dc095SDavid du Colombier <td align=center>0.438 - 0.500 2609*593dc095SDavid du Colombier <td> 2610*593dc095SDavid du Colombier <td align=right>7 2611*593dc095SDavid du Colombier <td> 2612*593dc095SDavid du Colombier <td align=center>0.467 2613*593dc095SDavid du Colombier <td> 2614*593dc095SDavid du Colombier <td align=center>0.475 - 0.502 2615*593dc095SDavid du Colombier <td> 2616*593dc095SDavid du Colombier <td align=right>7 2617*593dc095SDavid du Colombier <td> 2618*593dc095SDavid du Colombier <td align=center>0.488 2619*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.533 2620*593dc095SDavid du Colombier <td> 2621*593dc095SDavid du Colombier <td align=center>0.500 - 0.562 2622*593dc095SDavid du Colombier <td> 2623*593dc095SDavid du Colombier <td align=right>8 2624*593dc095SDavid du Colombier <td> 2625*593dc095SDavid du Colombier <td align=center>0.533 2626*593dc095SDavid du Colombier <td> 2627*593dc095SDavid du Colombier <td align=center>0.502 - 0.529 2628*593dc095SDavid du Colombier <td> 2629*593dc095SDavid du Colombier <td align=right>8 2630*593dc095SDavid du Colombier <td> 2631*593dc095SDavid du Colombier <td align=center>0.516 2632*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.600 2633*593dc095SDavid du Colombier <td> 2634*593dc095SDavid du Colombier <td align=center>0.563 - 0.625 2635*593dc095SDavid du Colombier <td> 2636*593dc095SDavid du Colombier <td align=right>9 2637*593dc095SDavid du Colombier <td> 2638*593dc095SDavid du Colombier <td align=center>0.600 2639*593dc095SDavid du Colombier <td> 2640*593dc095SDavid du Colombier <td align=center>0.529 - 0.557 2641*593dc095SDavid du Colombier <td> 2642*593dc095SDavid du Colombier <td align=right>9 2643*593dc095SDavid du Colombier <td> 2644*593dc095SDavid du Colombier <td align=center>0.543 2645*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.667 2646*593dc095SDavid du Colombier <td> 2647*593dc095SDavid du Colombier <td align=center>0.625 - 0.687 2648*593dc095SDavid du Colombier <td> 2649*593dc095SDavid du Colombier <td align=right>10 2650*593dc095SDavid du Colombier <td> 2651*593dc095SDavid du Colombier <td align=center>0.667 2652*593dc095SDavid du Colombier <td> 2653*593dc095SDavid du Colombier <td align=center>0.557 - 0.584 2654*593dc095SDavid du Colombier <td> 2655*593dc095SDavid du Colombier <td align=right>10 2656*593dc095SDavid du Colombier <td> 2657*593dc095SDavid du Colombier <td align=center>0.571 2658*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.733 2659*593dc095SDavid du Colombier <td> 2660*593dc095SDavid du Colombier <td align=center>0.688 - 0.750 2661*593dc095SDavid du Colombier <td> 2662*593dc095SDavid du Colombier <td align=right>11 2663*593dc095SDavid du Colombier <td> 2664*593dc095SDavid du Colombier <td align=center>0.733 2665*593dc095SDavid du Colombier <td> 2666*593dc095SDavid du Colombier <td align=center>0.584 - 0.612 2667*593dc095SDavid du Colombier <td> 2668*593dc095SDavid du Colombier <td align=right>11 2669*593dc095SDavid du Colombier <td> 2670*593dc095SDavid du Colombier <td align=center>0.598 2671*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.800 2672*593dc095SDavid du Colombier <td> 2673*593dc095SDavid du Colombier <td align=center>0.750 - 0.812 2674*593dc095SDavid du Colombier <td> 2675*593dc095SDavid du Colombier <td align=right>12 2676*593dc095SDavid du Colombier <td> 2677*593dc095SDavid du Colombier <td align=center>0.800 2678*593dc095SDavid du Colombier <td> 2679*593dc095SDavid du Colombier <td align=center>0.612 - 0.639 2680*593dc095SDavid du Colombier <td> 2681*593dc095SDavid du Colombier <td align=right>12 2682*593dc095SDavid du Colombier <td> 2683*593dc095SDavid du Colombier <td align=center>0.626 2684*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.867 2685*593dc095SDavid du Colombier <td> 2686*593dc095SDavid du Colombier <td align=center>0.813 - 0.875 2687*593dc095SDavid du Colombier <td> 2688*593dc095SDavid du Colombier <td align=right>13 2689*593dc095SDavid du Colombier <td> 2690*593dc095SDavid du Colombier <td align=center>0.867 2691*593dc095SDavid du Colombier <td> 2692*593dc095SDavid du Colombier <td align=center>0.639 - 0.715 2693*593dc095SDavid du Colombier <td> 2694*593dc095SDavid du Colombier <td align=right>13 2695*593dc095SDavid du Colombier <td> 2696*593dc095SDavid du Colombier <td align=center>0.653 2697*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.933 2698*593dc095SDavid du Colombier <td> 2699*593dc095SDavid du Colombier <td align=center>0.875 - 0.937 2700*593dc095SDavid du Colombier <td> 2701*593dc095SDavid du Colombier <td align=right>14 2702*593dc095SDavid du Colombier <td> 2703*593dc095SDavid du Colombier <td align=center>0.933 2704*593dc095SDavid du Colombier <td> 2705*593dc095SDavid du Colombier <td align=center>0.715 - 0.889 2706*593dc095SDavid du Colombier <td> 2707*593dc095SDavid du Colombier <td align=right>14 2708*593dc095SDavid du Colombier <td> 2709*593dc095SDavid du Colombier <td align=center>0.778 2710*593dc095SDavid du Colombier<tr valign=top> <td align=center>1.000 2711*593dc095SDavid du Colombier <td> 2712*593dc095SDavid du Colombier <td align=center>0.938 - 1.000 2713*593dc095SDavid du Colombier <td> 2714*593dc095SDavid du Colombier <td align=right>15 2715*593dc095SDavid du Colombier <td> 2716*593dc095SDavid du Colombier <td align=center>1.000 2717*593dc095SDavid du Colombier <td> 2718*593dc095SDavid du Colombier <td align=center>0.889 - 1.111 2719*593dc095SDavid du Colombier <td> 2720*593dc095SDavid du Colombier <td align=right>15 2721*593dc095SDavid du Colombier <td> 2722*593dc095SDavid du Colombier <td align=center>1.000 2723*593dc095SDavid du Colombier</table></blockquote> 2724*593dc095SDavid du Colombier 2725*593dc095SDavid du Colombier<p> 2726*593dc095SDavid du ColombierThe difference between cyan and magenta is the presence of a coding array. 2727*593dc095SDavid du ColombierThe coding process must map a range of color values to each of the sixteen 2728*593dc095SDavid du Colombiercomponent indices. If no coding array is given, this is accomplished 2729*593dc095SDavid du Colombierby dividing by 4096, equivalent to a right shift by 12 bits. The 2730*593dc095SDavid du Colombierfinal ink density resides in the given interval and moves from the left to 2731*593dc095SDavid du Colombierthe right side from 0 to 15. For magenta there is a coding array 2732*593dc095SDavid du Colombierand the ink value matches the center of the intervals. But the distribution 2733*593dc095SDavid du Colombierof the mapped intervals follows the given coding array and is nonlinear in 2734*593dc095SDavid du Colombierthe linear color space of Ghostscript. 2735*593dc095SDavid du Colombier 2736*593dc095SDavid du Colombier<p> 2737*593dc095SDavid du ColombierNow let us take a look at the case with transfer arrays: 2738*593dc095SDavid du Colombier 2739*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 2740*593dc095SDavid du Colombier<tr> <td> 2741*593dc095SDavid du Colombier <td> 2742*593dc095SDavid du Colombier <th colspan=5>Yellow<hr> 2743*593dc095SDavid du Colombier <td> 2744*593dc095SDavid du Colombier <th colspan=5>Black<hr> 2745*593dc095SDavid du Colombier<tr valign=top> <th>CI/15 2746*593dc095SDavid du Colombier <td> 2747*593dc095SDavid du Colombier <th>gs_color_values 2748*593dc095SDavid du Colombier <td> 2749*593dc095SDavid du Colombier <th>CI 2750*593dc095SDavid du Colombier <td> 2751*593dc095SDavid du Colombier <th>Ink 2752*593dc095SDavid du Colombier <td> 2753*593dc095SDavid du Colombier <th>gs_color_values 2754*593dc095SDavid du Colombier <td> 2755*593dc095SDavid du Colombier <th>CI 2756*593dc095SDavid du Colombier <td> 2757*593dc095SDavid du Colombier <th>Ink 2758*593dc095SDavid du Colombier<tr> <td colspan=13><hr> 2759*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.000 2760*593dc095SDavid du Colombier <td> 2761*593dc095SDavid du Colombier <td align=center>0.000 - 0.062 2762*593dc095SDavid du Colombier <td> 2763*593dc095SDavid du Colombier <td align=right>0 2764*593dc095SDavid du Colombier <td> 2765*593dc095SDavid du Colombier <td align=center>0.000 2766*593dc095SDavid du Colombier <td> 2767*593dc095SDavid du Colombier <td align=center>-0.123 - 0.123 2768*593dc095SDavid du Colombier <td> 2769*593dc095SDavid du Colombier <td align=right>0 2770*593dc095SDavid du Colombier <td> 2771*593dc095SDavid du Colombier <td align=center>0.000 2772*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.067 2773*593dc095SDavid du Colombier <td> 2774*593dc095SDavid du Colombier <td align=center>0.063 - 0.125 2775*593dc095SDavid du Colombier <td> 2776*593dc095SDavid du Colombier <td align=right>1 2777*593dc095SDavid du Colombier <td> 2778*593dc095SDavid du Colombier <td align=center>0.018 2779*593dc095SDavid du Colombier <td> 2780*593dc095SDavid du Colombier <td align=center>0.123 - 0.299 2781*593dc095SDavid du Colombier <td> 2782*593dc095SDavid du Colombier <td align=right>1 2783*593dc095SDavid du Colombier <td> 2784*593dc095SDavid du Colombier <td align=center>0.067 2785*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.133 2786*593dc095SDavid du Colombier <td> 2787*593dc095SDavid du Colombier <td align=center>0.125 - 0.187 2788*593dc095SDavid du Colombier <td> 2789*593dc095SDavid du Colombier <td align=right>2 2790*593dc095SDavid du Colombier <td> 2791*593dc095SDavid du Colombier <td align=center>0.036 2792*593dc095SDavid du Colombier <td> 2793*593dc095SDavid du Colombier <td align=center>0.299 - 0.365 2794*593dc095SDavid du Colombier <td> 2795*593dc095SDavid du Colombier <td align=right>2 2796*593dc095SDavid du Colombier <td> 2797*593dc095SDavid du Colombier <td align=center>0.133 2798*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.200 2799*593dc095SDavid du Colombier <td> 2800*593dc095SDavid du Colombier <td align=center>0.188 - 0.250 2801*593dc095SDavid du Colombier <td> 2802*593dc095SDavid du Colombier <td align=right>3 2803*593dc095SDavid du Colombier <td> 2804*593dc095SDavid du Colombier <td align=center>0.054 2805*593dc095SDavid du Colombier <td> 2806*593dc095SDavid du Colombier <td align=center>0.365 - 0.392 2807*593dc095SDavid du Colombier <td> 2808*593dc095SDavid du Colombier <td align=right>3 2809*593dc095SDavid du Colombier <td> 2810*593dc095SDavid du Colombier <td align=center>0.200 2811*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.267 2812*593dc095SDavid du Colombier <td> 2813*593dc095SDavid du Colombier <td align=center>0.250 - 0.312 2814*593dc095SDavid du Colombier <td> 2815*593dc095SDavid du Colombier <td align=right>4 2816*593dc095SDavid du Colombier <td> 2817*593dc095SDavid du Colombier <td align=center>0.072 2818*593dc095SDavid du Colombier <td> 2819*593dc095SDavid du Colombier <td align=center>0.392 - 0.420 2820*593dc095SDavid du Colombier <td> 2821*593dc095SDavid du Colombier <td align=right>4 2822*593dc095SDavid du Colombier <td> 2823*593dc095SDavid du Colombier <td align=center>0.267 2824*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.333 2825*593dc095SDavid du Colombier <td> 2826*593dc095SDavid du Colombier <td align=center>0.313 - 0.375 2827*593dc095SDavid du Colombier <td> 2828*593dc095SDavid du Colombier <td align=right>5 2829*593dc095SDavid du Colombier <td> 2830*593dc095SDavid du Colombier <td align=center>0.090 2831*593dc095SDavid du Colombier <td> 2832*593dc095SDavid du Colombier <td align=center>0.420 - 0.447 2833*593dc095SDavid du Colombier <td> 2834*593dc095SDavid du Colombier <td align=right>5 2835*593dc095SDavid du Colombier <td> 2836*593dc095SDavid du Colombier <td align=center>0.333 2837*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.400 2838*593dc095SDavid du Colombier <td> 2839*593dc095SDavid du Colombier <td align=center>0.375 - 0.437 2840*593dc095SDavid du Colombier <td> 2841*593dc095SDavid du Colombier <td align=right>6 2842*593dc095SDavid du Colombier <td> 2843*593dc095SDavid du Colombier <td align=center>0.252 2844*593dc095SDavid du Colombier <td> 2845*593dc095SDavid du Colombier <td align=center>0.447 - 0.475 2846*593dc095SDavid du Colombier <td> 2847*593dc095SDavid du Colombier <td align=right>6 2848*593dc095SDavid du Colombier <td> 2849*593dc095SDavid du Colombier <td align=center>0.400 2850*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.467 2851*593dc095SDavid du Colombier <td> 2852*593dc095SDavid du Colombier <td align=center>0.438 - 0.500 2853*593dc095SDavid du Colombier <td> 2854*593dc095SDavid du Colombier <td align=right>7 2855*593dc095SDavid du Colombier <td> 2856*593dc095SDavid du Colombier <td align=center>0.414 2857*593dc095SDavid du Colombier <td> 2858*593dc095SDavid du Colombier <td align=center>0.475 - 0.502 2859*593dc095SDavid du Colombier <td> 2860*593dc095SDavid du Colombier <td align=right>7 2861*593dc095SDavid du Colombier <td> 2862*593dc095SDavid du Colombier <td align=center>0.467 2863*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.533 2864*593dc095SDavid du Colombier <td> 2865*593dc095SDavid du Colombier <td align=center>0.500 - 0.562 2866*593dc095SDavid du Colombier <td> 2867*593dc095SDavid du Colombier <td align=right>8 2868*593dc095SDavid du Colombier <td> 2869*593dc095SDavid du Colombier <td align=center>0.576 2870*593dc095SDavid du Colombier <td> 2871*593dc095SDavid du Colombier <td align=center>0.502 - 0.529 2872*593dc095SDavid du Colombier <td> 2873*593dc095SDavid du Colombier <td align=right>8 2874*593dc095SDavid du Colombier <td> 2875*593dc095SDavid du Colombier <td align=center>0.533 2876*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.600 2877*593dc095SDavid du Colombier <td> 2878*593dc095SDavid du Colombier <td align=center>0.563 - 0.625 2879*593dc095SDavid du Colombier <td> 2880*593dc095SDavid du Colombier <td align=right>9 2881*593dc095SDavid du Colombier <td> 2882*593dc095SDavid du Colombier <td align=center>0.738 2883*593dc095SDavid du Colombier <td> 2884*593dc095SDavid du Colombier <td align=center>0.529 - 0.557 2885*593dc095SDavid du Colombier <td> 2886*593dc095SDavid du Colombier <td align=right>9 2887*593dc095SDavid du Colombier <td> 2888*593dc095SDavid du Colombier <td align=center>0.600 2889*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.667 2890*593dc095SDavid du Colombier <td> 2891*593dc095SDavid du Colombier <td align=center>0.625 - 0.687 2892*593dc095SDavid du Colombier <td> 2893*593dc095SDavid du Colombier <td align=right>10 2894*593dc095SDavid du Colombier <td> 2895*593dc095SDavid du Colombier <td align=center>0.900 2896*593dc095SDavid du Colombier <td> 2897*593dc095SDavid du Colombier <td align=center>0.557 - 0.584 2898*593dc095SDavid du Colombier <td> 2899*593dc095SDavid du Colombier <td align=right>10 2900*593dc095SDavid du Colombier <td> 2901*593dc095SDavid du Colombier <td align=center>0.667 2902*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.733 2903*593dc095SDavid du Colombier <td> 2904*593dc095SDavid du Colombier <td align=center>0.688 - 0.750 2905*593dc095SDavid du Colombier <td> 2906*593dc095SDavid du Colombier <td align=right>11 2907*593dc095SDavid du Colombier <td> 2908*593dc095SDavid du Colombier <td align=center>0.920 2909*593dc095SDavid du Colombier <td> 2910*593dc095SDavid du Colombier <td align=center>0.584 - 0.612 2911*593dc095SDavid du Colombier <td> 2912*593dc095SDavid du Colombier <td align=right>11 2913*593dc095SDavid du Colombier <td> 2914*593dc095SDavid du Colombier <td align=center>0.733 2915*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.800 2916*593dc095SDavid du Colombier <td> 2917*593dc095SDavid du Colombier <td align=center>0.750 - 0.812 2918*593dc095SDavid du Colombier <td> 2919*593dc095SDavid du Colombier <td align=right>12 2920*593dc095SDavid du Colombier <td> 2921*593dc095SDavid du Colombier <td align=center>0.940 2922*593dc095SDavid du Colombier <td> 2923*593dc095SDavid du Colombier <td align=center>0.612 - 0.639 2924*593dc095SDavid du Colombier <td> 2925*593dc095SDavid du Colombier <td align=right>12 2926*593dc095SDavid du Colombier <td> 2927*593dc095SDavid du Colombier <td align=center>0.800 2928*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.867 2929*593dc095SDavid du Colombier <td> 2930*593dc095SDavid du Colombier <td align=center>0.813 - 0.875 2931*593dc095SDavid du Colombier <td> 2932*593dc095SDavid du Colombier <td align=right>13 2933*593dc095SDavid du Colombier <td> 2934*593dc095SDavid du Colombier <td align=center>0.960 2935*593dc095SDavid du Colombier <td> 2936*593dc095SDavid du Colombier <td align=center>0.639 - 0.715 2937*593dc095SDavid du Colombier <td> 2938*593dc095SDavid du Colombier <td align=right>13 2939*593dc095SDavid du Colombier <td> 2940*593dc095SDavid du Colombier <td align=center>0.867 2941*593dc095SDavid du Colombier<tr valign=top> <td align=center>0.933 2942*593dc095SDavid du Colombier <td> 2943*593dc095SDavid du Colombier <td align=center>0.875 - 0.937 2944*593dc095SDavid du Colombier <td> 2945*593dc095SDavid du Colombier <td align=right>14 2946*593dc095SDavid du Colombier <td> 2947*593dc095SDavid du Colombier <td align=center>0.980 2948*593dc095SDavid du Colombier <td> 2949*593dc095SDavid du Colombier <td align=center>0.715 - 0.889 2950*593dc095SDavid du Colombier <td> 2951*593dc095SDavid du Colombier <td align=right>14 2952*593dc095SDavid du Colombier <td> 2953*593dc095SDavid du Colombier <td align=center>0.933 2954*593dc095SDavid du Colombier<tr valign=top> <td align=center>1.000 2955*593dc095SDavid du Colombier <td> 2956*593dc095SDavid du Colombier <td align=center>0.938 - 1.000 2957*593dc095SDavid du Colombier <td> 2958*593dc095SDavid du Colombier <td align=right>15 2959*593dc095SDavid du Colombier <td> 2960*593dc095SDavid du Colombier <td align=center>1.000 2961*593dc095SDavid du Colombier <td> 2962*593dc095SDavid du Colombier <td align=center>0.889 - 1.111 2963*593dc095SDavid du Colombier <td> 2964*593dc095SDavid du Colombier <td align=right>15 2965*593dc095SDavid du Colombier <td> 2966*593dc095SDavid du Colombier <td align=center>1.000 2967*593dc095SDavid du Colombier</table></blockquote> 2968*593dc095SDavid du Colombier 2969*593dc095SDavid du Colombier<p> 2970*593dc095SDavid du ColombierYellow uses a transfer array. There is no linear correspondence between 2971*593dc095SDavid du Colombierthe color and the ink values: this correspondence is defined through the 2972*593dc095SDavid du Colombiergiven array. In other words, the transfer arrays define a nonlinear ink 2973*593dc095SDavid du Colombiercharacteristic, which is exactly the same functionality that PostScript's 2974*593dc095SDavid du Colombier"(color)transfer" function provides. 2975*593dc095SDavid du Colombier 2976*593dc095SDavid du Colombier<p> 2977*593dc095SDavid du ColombierWhile for yellow the intervals match the intervals used with cyan, for 2978*593dc095SDavid du Colombierblack the intervals match the magenta intervals. But watch the 2979*593dc095SDavid du Colombiercorrespondence between the CI/15 values and the ink density for black: this 2980*593dc095SDavid du Colombieris a linear distribution in the ink domain. 2981*593dc095SDavid du Colombier 2982*593dc095SDavid du Colombier<p> 2983*593dc095SDavid du ColombierNot a bad idea, I think. Consider the <b><tt>fs2</tt></b> algorithm: it 2984*593dc095SDavid du Colombieruses values in the range 0 to 255. If any transfer array were alone, some 2985*593dc095SDavid du Colombierof the 256 possible values would never be used and others would be used for 2986*593dc095SDavid du Colombieradjacent intervals several times. Establishing an identical coding array 2987*593dc095SDavid du Colombiersolves this problem, so the full potential of the algorithm is used. 2988*593dc095SDavid du Colombier 2989*593dc095SDavid du Colombier<p> 2990*593dc095SDavid du ColombierAnother useful feature of the coding arrays is that they are internally 2991*593dc095SDavid du Colombiernormalized to the range 0-1. In 720x720dpi mode the transfer arrays in 2992*593dc095SDavid du Colombier<b><tt>stcolor.ps</tt></b> limit the dot density to about 50%, so these 2993*593dc095SDavid du Colombierarrays end at 0.5 (and begin at 0.5 for RGB). Because of automatic 2994*593dc095SDavid du Colombiernormalization, these arrays can also be used as coding arrays. But of 2995*593dc095SDavid du Colombiercourse in the <b><tt>fs2</tt></b> case mentioned above, values from 0 to 2996*593dc095SDavid du Colombier127 will never be delivered to the algorithm, while values 128-255 are 2997*593dc095SDavid du Colombierdelivered for adjacent intervals. 2998*593dc095SDavid du Colombier 2999*593dc095SDavid du Colombier<p> 3000*593dc095SDavid du ColombierTo clarify the intended use of the three parameters (parameter groups), keep this in mind: 3001*593dc095SDavid du Colombier 3002*593dc095SDavid du Colombier<blockquote><ul> 3003*593dc095SDavid du Colombier<li><b><tt>ColorAdjustMatrix</tt></b> is never used when transferring gray 3004*593dc095SDavid du Colombiervalues. This restricts it to what the name says: adjustment of colors, 3005*593dc095SDavid du Colombierthat is, correction for miscolored ink. Do not use it for saturation or 3006*593dc095SDavid du Colombierbrightness control. 3007*593dc095SDavid du Colombier 3008*593dc095SDavid du Colombier<li><b><tt>?transfer</tt></b> arrays control the values delivered to the 3009*593dc095SDavid du Colombierdriver, which in turn controls the ink quantity. Use these arrays to 3010*593dc095SDavid du Colombiercontrol saturation and brightness. In general these arrays are identical 3011*593dc095SDavid du Colombierfor all inks. If they differ they provide a simpler scheme for color 3012*593dc095SDavid du Colombiercorrection, which is not necessarily faster than the 3013*593dc095SDavid du Colombier<b><tt>ColorAdjustMatrix</tt></b>. 3014*593dc095SDavid du Colombier 3015*593dc095SDavid du Colombier<li><b><tt>?coding</tt></b> arrays control the color value intervals mapped 3016*593dc095SDavid du Colombierto the internal color indices. 3017*593dc095SDavid du Colombier</ul></blockquote> 3018*593dc095SDavid du Colombier 3019*593dc095SDavid du Colombier<h3><a name="What_is_weaving"></a>What is weaving?</h3> 3020*593dc095SDavid du Colombier 3021*593dc095SDavid du Colombier<p> 3022*593dc095SDavid du ColombierThe Epson Stylus Color has a head assembly that contains two physically 3023*593dc095SDavid du Colombieridentifiable heads, one for black and one for cyan, magenta, and yellow 3024*593dc095SDavid du Colombier(CMY). This makes four "logical" heads, one for each color component. 3025*593dc095SDavid du ColombierEach of these four heads has several jets at some vertical (Y) distance 3026*593dc095SDavid du Colombierfrom one another, so several horizontal lines can be printed of a given 3027*593dc095SDavid du Colombiercolor during one pass of the heads. From experience I think there are 3028*593dc095SDavid du Colombierfifteen jets per color, spaced at 1/90in. 3029*593dc095SDavid du Colombier 3030*593dc095SDavid du Colombier<p> 3031*593dc095SDavid du ColombierSo the question arises of how to print at a Y resolution of 360dpi with 3032*593dc095SDavid du Colombier90dpi jets. Simply by division one gets 360dpi/90dpi = 4, which tells us 3033*593dc095SDavid du Colombierthat 4 passes of the head assembly are needed to achieve a Y resolution of 3034*593dc095SDavid du Colombier360dpi. 3035*593dc095SDavid du Colombier 3036*593dc095SDavid du Colombier<p> 3037*593dc095SDavid du ColombierWeaving is the method of how the fifteen jets are used to print adjacent 3038*593dc095SDavid du Colombierhorizontal rows separated here by 1/360 inch: 3039*593dc095SDavid du Colombier 3040*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 3041*593dc095SDavid du Colombier<tr><th colspan=17 bgcolor="#CCCC00"><hr><font size="+1">Print-head jets used with and without weaving</font><hr> 3042*593dc095SDavid du Colombier<tr> <td> 3043*593dc095SDavid du Colombier <td> 3044*593dc095SDavid du Colombier <th valign=bottom colspan=7>Weaving<hr> 3045*593dc095SDavid du Colombier <td> 3046*593dc095SDavid du Colombier <th valign=bottom colspan=7>noWeave<hr> 3047*593dc095SDavid du Colombier<tr valign=top> <td> 3048*593dc095SDavid du Colombier <th>Pass 3049*593dc095SDavid du Colombier <th>1 3050*593dc095SDavid du Colombier <td> 3051*593dc095SDavid du Colombier <th>2 3052*593dc095SDavid du Colombier <td> 3053*593dc095SDavid du Colombier <th>3 3054*593dc095SDavid du Colombier <td> 3055*593dc095SDavid du Colombier <th>4 3056*593dc095SDavid du Colombier <td> 3057*593dc095SDavid du Colombier <th>1 3058*593dc095SDavid du Colombier <td> 3059*593dc095SDavid du Colombier <th>2 3060*593dc095SDavid du Colombier <td> 3061*593dc095SDavid du Colombier <th>3 3062*593dc095SDavid du Colombier <td> 3063*593dc095SDavid du Colombier <th>4 3064*593dc095SDavid du Colombier<tr> <th>Row 3065*593dc095SDavid du Colombier<tr valign=top> <td align=center>0 3066*593dc095SDavid du Colombier <td> 3067*593dc095SDavid du Colombier <td align=center>jet 0 3068*593dc095SDavid du Colombier <td> 3069*593dc095SDavid du Colombier <td align=center>-- 3070*593dc095SDavid du Colombier <td> 3071*593dc095SDavid du Colombier <td align=center>-- 3072*593dc095SDavid du Colombier <td> 3073*593dc095SDavid du Colombier <td align=center>-- 3074*593dc095SDavid du Colombier <td> 3075*593dc095SDavid du Colombier <td align=center>jet 0 3076*593dc095SDavid du Colombier <td> 3077*593dc095SDavid du Colombier <td align=center>-- 3078*593dc095SDavid du Colombier <td> 3079*593dc095SDavid du Colombier <td align=center>-- 3080*593dc095SDavid du Colombier <td> 3081*593dc095SDavid du Colombier <td align=center>-- 3082*593dc095SDavid du Colombier<tr valign=top> <td align=center>1 3083*593dc095SDavid du Colombier <td> 3084*593dc095SDavid du Colombier <td align=center>-- 3085*593dc095SDavid du Colombier <td> 3086*593dc095SDavid du Colombier <td align=center>jet 1 3087*593dc095SDavid du Colombier <td> 3088*593dc095SDavid du Colombier <td align=center>-- 3089*593dc095SDavid du Colombier <td> 3090*593dc095SDavid du Colombier <td align=center>-- 3091*593dc095SDavid du Colombier <td> 3092*593dc095SDavid du Colombier <td align=center>-- 3093*593dc095SDavid du Colombier <td> 3094*593dc095SDavid du Colombier <td align=center>jet 0 3095*593dc095SDavid du Colombier <td> 3096*593dc095SDavid du Colombier <td align=center>-- 3097*593dc095SDavid du Colombier <td> 3098*593dc095SDavid du Colombier <td align=center>-- 3099*593dc095SDavid du Colombier<tr valign=top> <td align=center>2 3100*593dc095SDavid du Colombier <td> 3101*593dc095SDavid du Colombier <td align=center>-- 3102*593dc095SDavid du Colombier <td> 3103*593dc095SDavid du Colombier <td align=center>-- 3104*593dc095SDavid du Colombier <td> 3105*593dc095SDavid du Colombier <td align=center>jet 2 3106*593dc095SDavid du Colombier <td> 3107*593dc095SDavid du Colombier <td align=center>-- 3108*593dc095SDavid du Colombier <td> 3109*593dc095SDavid du Colombier <td align=center>-- 3110*593dc095SDavid du Colombier <td> 3111*593dc095SDavid du Colombier <td align=center>-- 3112*593dc095SDavid du Colombier <td> 3113*593dc095SDavid du Colombier <td align=center>jet 0 3114*593dc095SDavid du Colombier <td> 3115*593dc095SDavid du Colombier <td align=center>-- 3116*593dc095SDavid du Colombier<tr valign=top> <td align=center>3 3117*593dc095SDavid du Colombier <td> 3118*593dc095SDavid du Colombier <td align=center>-- 3119*593dc095SDavid du Colombier <td> 3120*593dc095SDavid du Colombier <td align=center>-- 3121*593dc095SDavid du Colombier <td> 3122*593dc095SDavid du Colombier <td align=center>-- 3123*593dc095SDavid du Colombier <td> 3124*593dc095SDavid du Colombier <td align=center>jet 3 3125*593dc095SDavid du Colombier <td> 3126*593dc095SDavid du Colombier <td align=center>-- 3127*593dc095SDavid du Colombier <td> 3128*593dc095SDavid du Colombier <td align=center>-- 3129*593dc095SDavid du Colombier <td> 3130*593dc095SDavid du Colombier <td align=center>-- 3131*593dc095SDavid du Colombier <td> 3132*593dc095SDavid du Colombier <td align=center>jet 0 3133*593dc095SDavid du Colombier<tr valign=top> <td align=center>4 3134*593dc095SDavid du Colombier <td> 3135*593dc095SDavid du Colombier <td align=center>jet 1 3136*593dc095SDavid du Colombier <td> 3137*593dc095SDavid du Colombier <td align=center>-- 3138*593dc095SDavid du Colombier <td> 3139*593dc095SDavid du Colombier <td align=center>-- 3140*593dc095SDavid du Colombier <td> 3141*593dc095SDavid du Colombier <td align=center>-- 3142*593dc095SDavid du Colombier <td> 3143*593dc095SDavid du Colombier <td align=center>jet 1 3144*593dc095SDavid du Colombier <td> 3145*593dc095SDavid du Colombier <td align=center>-- 3146*593dc095SDavid du Colombier <td> 3147*593dc095SDavid du Colombier <td align=center>-- 3148*593dc095SDavid du Colombier <td> 3149*593dc095SDavid du Colombier <td align=center>-- 3150*593dc095SDavid du Colombier<tr valign=top> <td align=center>5 3151*593dc095SDavid du Colombier <td> 3152*593dc095SDavid du Colombier <td align=center>-- 3153*593dc095SDavid du Colombier <td> 3154*593dc095SDavid du Colombier <td align=center>jet 2 3155*593dc095SDavid du Colombier <td> 3156*593dc095SDavid du Colombier <td align=center>-- 3157*593dc095SDavid du Colombier <td> 3158*593dc095SDavid du Colombier <td align=center>-- 3159*593dc095SDavid du Colombier <td> 3160*593dc095SDavid du Colombier <td align=center>-- 3161*593dc095SDavid du Colombier <td> 3162*593dc095SDavid du Colombier <td align=center>jet 1 3163*593dc095SDavid du Colombier <td> 3164*593dc095SDavid du Colombier <td align=center>-- 3165*593dc095SDavid du Colombier <td> 3166*593dc095SDavid du Colombier <td align=center>-- 3167*593dc095SDavid du Colombier<tr valign=top> <td align=center>6 3168*593dc095SDavid du Colombier <td> 3169*593dc095SDavid du Colombier <td align=center>-- 3170*593dc095SDavid du Colombier <td> 3171*593dc095SDavid du Colombier <td align=center>-- 3172*593dc095SDavid du Colombier <td> 3173*593dc095SDavid du Colombier <td align=center>jet 3 3174*593dc095SDavid du Colombier <td> 3175*593dc095SDavid du Colombier <td align=center>-- 3176*593dc095SDavid du Colombier <td> 3177*593dc095SDavid du Colombier <td align=center>-- 3178*593dc095SDavid du Colombier <td> 3179*593dc095SDavid du Colombier <td align=center>-- 3180*593dc095SDavid du Colombier <td> 3181*593dc095SDavid du Colombier <td align=center>jet 1 3182*593dc095SDavid du Colombier <td> 3183*593dc095SDavid du Colombier <td align=center>-- 3184*593dc095SDavid du Colombier<tr valign=top> <th>... 3185*593dc095SDavid du Colombier</table></blockquote> 3186*593dc095SDavid du Colombier 3187*593dc095SDavid du Colombier<p> 3188*593dc095SDavid du ColombierNow let's assume that the dot diameter is different for each individual 3189*593dc095SDavid du Colombierjet, but the average among the jets matches the desired resolution. With 3190*593dc095SDavid du Colombierweaving, adjacent rows are printed by different jets, thus some averaging 3191*593dc095SDavid du Colombiertakes place. Without weaving, adjacent rows are printed by the same jet 3192*593dc095SDavid du Colombierand this makes the dot diameter deviations visible as 1/90in stripes on 3193*593dc095SDavid du Colombierthe paper. 3194*593dc095SDavid du Colombier 3195*593dc095SDavid du Colombier<h3><a name="STC_print_modes"></a>Print mode parameters</h3> 3196*593dc095SDavid du Colombier 3197*593dc095SDavid du Colombier<p> 3198*593dc095SDavid du ColombierThe parameters "<b><tt>Unidirectional</tt></b>", 3199*593dc095SDavid du Colombier"<b><tt>Microweave</tt></b>", "<b><tt>noWeave</tt></b>", 3200*593dc095SDavid du Colombier"<b><tt>OutputCode</tt></b>", "<b><tt>Model</tt></b>" and the given 3201*593dc095SDavid du Colombierresolution control the data generated for the printer. 3202*593dc095SDavid du Colombier 3203*593dc095SDavid du Colombier<h4><a name="STC_unidirectional"></a><b><tt>Unidirectional</tt></b></h4> 3204*593dc095SDavid du Colombier 3205*593dc095SDavid du Colombier<p> 3206*593dc095SDavid du ColombierSimply toggles the unidirectional mode of the printer. Setting 3207*593dc095SDavid du Colombier"<b><tt>Unidirectional</tt></b>" definitely slows printing speed, but may 3208*593dc095SDavid du Colombierimprove the quality. I use this for printing transparencies, where fast 3209*593dc095SDavid du Colombierhead movement could smear the ink. 3210*593dc095SDavid du Colombier 3211*593dc095SDavid du Colombier<h4><a name="STC_noweave"></a><b><tt>Microweave</tt></b>, 3212*593dc095SDavid du Colombier<b><tt>noWeave</tt></b> and <b><tt>OutputCode=deltarow</tt></b></h4> 3213*593dc095SDavid du Colombier 3214*593dc095SDavid du Colombier<p> 3215*593dc095SDavid du ColombierThe first are two booleans, which implies that four combinations are 3216*593dc095SDavid du Colombierpossible. Actually only three exist (if you don't count for 3217*593dc095SDavid du Colombier<b><tt>deltarow</tt></b>): <b><tt>Softweave</tt></b>, 3218*593dc095SDavid du Colombier<b><tt>Microweave</tt></b>, and <b><tt>noWeave</tt></b>. The first and 3219*593dc095SDavid du Colombiersecond are functionally identical, the difference being whether the driver 3220*593dc095SDavid du Colombieror the printer does the job. 3221*593dc095SDavid du Colombier 3222*593dc095SDavid du Colombier<p> 3223*593dc095SDavid du ColombierIn the default <b><tt>Softweave</tt></b> mode the driver sends the data 3224*593dc095SDavid du Colombierproperly arranged to the printer, while in <b><tt>Microweave</tt></b> mode, 3225*593dc095SDavid du Colombierit is the printer that arranges the data. But in general the host processor 3226*593dc095SDavid du Colombieris much faster than the printer's processor, and thus it is faster for the 3227*593dc095SDavid du Colombierhost do the job. In addition to that, for 720dpi eight passes are 3228*593dc095SDavid du Colombierrequired, and the amount of buffer space needed to buffer the data for the 3229*593dc095SDavid du Colombierpasses is far beyond the printer's memory. <b><tt>Softweave</tt></b> 3230*593dc095SDavid du Colombierrequires an odd value of "<b><tt>escp_Band</tt></b>"; the Stylus Color 3231*593dc095SDavid du Colombierprovides fifteen for that. 3232*593dc095SDavid du Colombier 3233*593dc095SDavid du Colombier<p> 3234*593dc095SDavid du Colombier"<b><tt>OutputCode</tt></b>" controls the encoding used. In the basic 3235*593dc095SDavid du Colombiermodes, the choice consists of "plain" and "runlength". The computation of 3236*593dc095SDavid du Colombierrunlength-encoded data does not take much time, less than the data tranfer 3237*593dc095SDavid du Colombierto the printer; thus this is the recommended mode, and of course the 3238*593dc095SDavid du Colombierdefault. With the Stylus Color, Epson introduced some new encoding 3239*593dc095SDavid du Colombierprinciples, namely "tiff" and "deltarow". While the first was omitted from 3240*593dc095SDavid du Colombierthis driver for lack of apparent advantages, "<b><tt>deltarow</tt></b>" is 3241*593dc095SDavid du Colombieravailable as an option. "<b><tt>Softweave</tt></b>" cannot be used with 3242*593dc095SDavid du Colombierthis encoding, so if <b><tt>OutputCode=deltarow</tt></b> is set, 3243*593dc095SDavid du Colombier<b><tt>Microweave</tt></b> becomes the default. Maybe that the size of the 3244*593dc095SDavid du ColombierESC/P2 code becomes smaller, but I have never observed faster printing 3245*593dc095SDavid du Colombierspeed. Things tend to become slower with <b><tt>deltarow</tt></b> compared 3246*593dc095SDavid du Colombierto <b><tt>Softweave</tt></b>. 3247*593dc095SDavid du Colombier 3248*593dc095SDavid du Colombier<h4><a name="STC_model"></a><b><tt>Model</tt></b></h4> 3249*593dc095SDavid du Colombier 3250*593dc095SDavid du Colombier<p> 3251*593dc095SDavid du ColombierSome ESC/P2 printers such as the Stylus 800 do not offer 3252*593dc095SDavid du Colombier<b><tt>Microweave</tt></b> or the commands required to do 3253*593dc095SDavid du Colombier<b><tt>Softweave</tt></b>. Setting <b><tt>Model</tt></b> just changes the 3254*593dc095SDavid du Colombierdefaults and omits some parts of the initialization sequence which are not 3255*593dc095SDavid du Colombiercompatible with the given printer model. Currently only 3256*593dc095SDavid du Colombier"<b><tt>st800</tt></b>" is supported besides the default 3257*593dc095SDavid du Colombier<b><tt>stcolor</tt></b>. 3258*593dc095SDavid du Colombier 3259*593dc095SDavid du Colombier<h3><a name="STC_Pitfalls"></a>Bugs and pitfalls</h3> 3260*593dc095SDavid du Colombier 3261*593dc095SDavid du Colombier<ul> 3262*593dc095SDavid du Colombier<li>The given <b><tt>?coding</tt></b> and <b><tt>?transfer</tt></b> arrays 3263*593dc095SDavid du Colombiershould be strictly monotonic. 3264*593dc095SDavid du Colombier 3265*593dc095SDavid du Colombier<li>It is impossible to change <b><tt>WHITE</tt></b>: that's your paper. 3266*593dc095SDavid du ColombierThus RGB transfer should end at 1.0 and CMYK transfer should start at 0.0. 3267*593dc095SDavid du Colombier 3268*593dc095SDavid du Colombier<li>Usually 8 bits per component yields fastest operation. 3269*593dc095SDavid du Colombier 3270*593dc095SDavid du Colombier<li>The <b><tt>ColorAdjustMatrix</tt></b> is not used in the reverse 3271*593dc095SDavid du Colombiertransformation used when Ghostscript does the dithering 3272*593dc095SDavid du Colombier(<b><tt>gs</tt></b>* modes). Expect funny results. 3273*593dc095SDavid du Colombier 3274*593dc095SDavid du Colombier<li>If <b><tt>BitsPerPixel</tt></b> is less than 6, the entire coding and 3275*593dc095SDavid du Colombiertransfer process does not work. This is always true for the 3276*593dc095SDavid du Colombier<b><tt>gs</tt></b>* modes and becomes true for the other modes if 3277*593dc095SDavid du Colombier<b><tt>BitsPerPixel</tt></b> is forced to low values. 3278*593dc095SDavid du Colombier 3279*593dc095SDavid du Colombier<li>720×720dpi printing should never select the <b><tt>gs</tt></b>* 3280*593dc095SDavid du Colombiermodes and should always use <b><tt>stcolor.ps</tt></b>. (I prefer 3281*593dc095SDavid du Colombier360×720.) 3282*593dc095SDavid du Colombier</ul> 3283*593dc095SDavid du Colombier 3284*593dc095SDavid du Colombier<h3><a name="STC_Tests"></a>Tests</h3> 3285*593dc095SDavid du Colombier 3286*593dc095SDavid du Colombier<p> 3287*593dc095SDavid du ColombierThis section gives an overview of performance in terms of processing and 3288*593dc095SDavid du Colombierprinting times, from tests run after version 1.13. Printing was done 3289*593dc095SDavid du Colombieroffline (simply copying a processed file to the printer) to measure real 3290*593dc095SDavid du Colombierprinting speed without regard to speed of processing on the host, since at 3291*593dc095SDavid du Colombierhigh resolutions, processing time is the same order of magnitude and thus 3292*593dc095SDavid du Colombiermay become the limiting factor. 3293*593dc095SDavid du Colombier 3294*593dc095SDavid du Colombier<h4><a name="STC_OutputCodes"></a>The various OutputCodes</h4> 3295*593dc095SDavid du Colombier 3296*593dc095SDavid du Colombier<p> 3297*593dc095SDavid du ColombierI ran several files though Ghostscript and recorded the size of the 3298*593dc095SDavid du Colombierresulting print code, the processing time, and the printing time, at least 3299*593dc095SDavid du Colombierfor some of the files, always using these options: 3300*593dc095SDavid du Colombier 3301*593dc095SDavid du Colombier<blockquote><b><tt> 3302*593dc095SDavid du Colombiergs -sDEVICE=stcolor -sPAPERSIZE=a4 stcolor.ps - < file.ps 3303*593dc095SDavid du Colombier</tt></b></blockquote> 3304*593dc095SDavid du Colombier 3305*593dc095SDavid du Colombier<p> 3306*593dc095SDavid du Colombier(Actually "<b><tt>-sPAPERSIZE=a4</tt></b>" is in my 3307*593dc095SDavid du Colombier<b><tt>gs_init.ps</tt></b> since I'm a germ.) 3308*593dc095SDavid du Colombier 3309*593dc095SDavid du Colombier<p>"<b><tt>deltarow</tt></b>" is the new encoding principle 3310*593dc095SDavid du Colombier("<b><tt>ESC . 3 10 10 1</tt></b>") with 3311*593dc095SDavid du Colombier<b><tt>Microweave</tt></b> on. It is activated with 3312*593dc095SDavid du Colombier"<b><tt>-sOutputCode=deltarow</tt></b>". 3313*593dc095SDavid du Colombier 3314*593dc095SDavid du Colombier<p>"<b><tt>Softweave</tt></b>" actually means that nothing else was used: 3315*593dc095SDavid du Colombierit is the default, and implies that odd v=40/h=10/m=15 mode 3316*593dc095SDavid du Colombier("<b><tt>ESC . 1 40 10 15</tt></b>"). 3317*593dc095SDavid du Colombier 3318*593dc095SDavid du Colombier<p>"<b><tt>Microweave</tt></b>" means "<b><tt>-dMicroweave</tt></b>", 3319*593dc095SDavid du Colombierequivalent to "<b><tt>ESC . 1 10 10 1</tt></b>", 3320*593dc095SDavid du Colombierwith full skip optimization and microweave activated. 3321*593dc095SDavid du Colombier 3322*593dc095SDavid du Colombier<p> 3323*593dc095SDavid du ColombierFinally I wanted to see the plain Kathy Ireland, and used 3324*593dc095SDavid du Colombier"<b><tt>-sOutputCode=plain</tt></b>", which just replaces runlength 3325*593dc095SDavid du Colombierencoding (RLE) by no encoding, thus using 3326*593dc095SDavid du Colombier"<b><tt>ESC . 0 40 10 15</tt></b>". [So sorry 3327*593dc095SDavid du Colombier<b><tt>;-)</tt></b> Kathy was still dressed in blue in front of the blue 3328*593dc095SDavid du Colombiersea on a blue air cushion -- nice to see but hard to dither.] 3329*593dc095SDavid du Colombier 3330*593dc095SDavid du Colombier<p> 3331*593dc095SDavid du ColombierSo here are the results. 3332*593dc095SDavid du Colombier 3333*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 3334*593dc095SDavid du Colombier<tr><th colspan=9 bgcolor="#CCCC00"><hr><font size="+1">File sizes and printing speeds with various weaving methods</font><hr> 3335*593dc095SDavid du Colombier<tr valign=bottom> 3336*593dc095SDavid du Colombier <td> 3337*593dc095SDavid du Colombier <td> 3338*593dc095SDavid du Colombier <th><b><tt>golfer.ps</tt></b> 3339*593dc095SDavid du Colombier <td> 3340*593dc095SDavid du Colombier <th><b><tt>colorcir.ps</tt></b> 3341*593dc095SDavid du Colombier <td> 3342*593dc095SDavid du Colombier <th><b><tt>drawing.ps</tt></b> 3343*593dc095SDavid du Colombier <td> 3344*593dc095SDavid du Colombier <th><b><tt>brief.ps</tt></b> 3345*593dc095SDavid du Colombier<tr> <td colspan=9><hr> 3346*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>deltarow</tt></b> 3347*593dc095SDavid du Colombier <td> 3348*593dc095SDavid du Colombier <td>572751/48.180u 3349*593dc095SDavid du Colombier <td> 3350*593dc095SDavid du Colombier <td>643374/41.690u 3351*593dc095SDavid du Colombier <td> 3352*593dc095SDavid du Colombier <td>90142/46.180u/1:50 3353*593dc095SDavid du Colombier <td> 3354*593dc095SDavid du Colombier <td>178563/49.350u/2:22 3355*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Softweave</tt></b> 3356*593dc095SDavid du Colombier <td> 3357*593dc095SDavid du Colombier <td>559593/46.810u 3358*593dc095SDavid du Colombier <td> 3359*593dc095SDavid du Colombier <td>669966/44.960u 3360*593dc095SDavid du Colombier <td> 3361*593dc095SDavid du Colombier <td>296168/48.160u/1:30 3362*593dc095SDavid du Colombier <td> 3363*593dc095SDavid du Colombier <td>269808/43.320u/1:55 3364*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Microweave</tt></b> 3365*593dc095SDavid du Colombier <td> 3366*593dc095SDavid du Colombier <td>590999/56.060u 3367*593dc095SDavid du Colombier <td> 3368*593dc095SDavid du Colombier <td>754276/42.890u 3369*593dc095SDavid du Colombier <td> 3370*593dc095SDavid du Colombier <td>338885/47.060u/1:50 3371*593dc095SDavid du Colombier <td> 3372*593dc095SDavid du Colombier <td>282314/44.690u/2:22 3373*593dc095SDavid du Colombier</table></blockquote> 3374*593dc095SDavid du Colombier 3375*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 3376*593dc095SDavid du Colombier<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Kathy Ireland</font><hr> 3377*593dc095SDavid du Colombier<tr valign=bottom> 3378*593dc095SDavid du Colombier <td> 3379*593dc095SDavid du Colombier <td> 3380*593dc095SDavid du Colombier <th><b><tt>kathy.ps</tt></b> 3381*593dc095SDavid du Colombier<tr> <td colspan=3><hr> 3382*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>deltarow</tt></b> 3383*593dc095SDavid du Colombier <td> 3384*593dc095SDavid du Colombier <td>3975334/111.940u/5:35 3385*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Softweave</tt></b> 3386*593dc095SDavid du Colombier <td> 3387*593dc095SDavid du Colombier <td>3897112/101.940u/3:10 3388*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>Microweave</tt></b> 3389*593dc095SDavid du Colombier <td> 3390*593dc095SDavid du Colombier <td>4062829/100.990u/3:15 3391*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>plain/soft</tt></b> 3392*593dc095SDavid du Colombier <td> 3393*593dc095SDavid du Colombier <td>5072255/104.390u/3:05 3394*593dc095SDavid du Colombier</table></blockquote> 3395*593dc095SDavid du Colombier 3396*593dc095SDavid du Colombier<p> 3397*593dc095SDavid du ColombierIt may be that I've not chosen the optimal <b><tt>deltarow</tt></b> code, 3398*593dc095SDavid du Colombierbut even if it saves at lot of bytes, printing-speed is not increased. 3399*593dc095SDavid du Colombier 3400*593dc095SDavid du Colombier<p> 3401*593dc095SDavid du ColombierAt least the printer prefers plain Kathy. In other words, sending 1 3402*593dc095SDavid du ColombierMegabyte or 20% more data has no impact on printing speed. 3403*593dc095SDavid du Colombier<b><tt>drawing.ps</tt></b> is an exception to this rule: plain prints 3404*593dc095SDavid du Colombierslower than RLE. 3405*593dc095SDavid du Colombier 3406*593dc095SDavid du Colombier<p> 3407*593dc095SDavid du Colombier"Unclever" coding -- especially with <b><tt>deltarow</tt></b> -- can 3408*593dc095SDavid du Colombiersignificantly slow down printing. But even if very significant advantages 3409*593dc095SDavid du Colombierin the size of the code are achieved, "<b><tt>deltarow</tt></b>" is not 3410*593dc095SDavid du Colombiercompetitive. <b><tt>colorcir.ps</tt></b> shows savings with 3411*593dc095SDavid du Colombier<b><tt>deltarow</tt></b>, but printing is a mess. 3412*593dc095SDavid du Colombier 3413*593dc095SDavid du Colombier<h4><a name="STC_printing_time"></a>Printing time related to other options</h4> 3414*593dc095SDavid du Colombier 3415*593dc095SDavid du Colombier<p> 3416*593dc095SDavid du ColombierFull page halftone images printed, unless otherwise noted. 3417*593dc095SDavid du Colombier 3418*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 3419*593dc095SDavid du Colombier<tr><th colspan=11 bgcolor="#CCCC00"><hr><font size="+1">Printing time related to other options</font><hr> 3420*593dc095SDavid du Colombier<tr valign=top> <th>dpi 3421*593dc095SDavid du Colombier <td> 3422*593dc095SDavid du Colombier <th colspan=3>Print mode 3423*593dc095SDavid du Colombier <td> 3424*593dc095SDavid du Colombier <th>Size KB 3425*593dc095SDavid du Colombier <td> 3426*593dc095SDavid du Colombier <th>Time 3427*593dc095SDavid du Colombier <td> 3428*593dc095SDavid du Colombier <th align=left>Comments 3429*593dc095SDavid du Colombier<tr> <td colspan=11><hr> 3430*593dc095SDavid du Colombier<tr valign=top> <td>180x180 3431*593dc095SDavid du Colombier <td> 3432*593dc095SDavid du Colombier <td>mono 3433*593dc095SDavid du Colombier <td> 3434*593dc095SDavid du Colombier <td align=right>-/uni 3435*593dc095SDavid du Colombier <td> 3436*593dc095SDavid du Colombier <td align=right>358 3437*593dc095SDavid du Colombier <td> 3438*593dc095SDavid du Colombier <td align=right>1:15 3439*593dc095SDavid du Colombier <td> 3440*593dc095SDavid du Colombier <td> 3441*593dc095SDavid du Colombier<tr valign=top> <td> 3442*593dc095SDavid du Colombier <td> 3443*593dc095SDavid du Colombier <td align=right> 3444*593dc095SDavid du Colombier <td> 3445*593dc095SDavid du Colombier <td align=right>-/bi 3446*593dc095SDavid du Colombier <td> 3447*593dc095SDavid du Colombier <td align=right>358 3448*593dc095SDavid du Colombier <td> 3449*593dc095SDavid du Colombier <td align=right>0:45 3450*593dc095SDavid du Colombier <td> 3451*593dc095SDavid du Colombier <td> 3452*593dc095SDavid du Colombier<tr valign=top> <td> 3453*593dc095SDavid du Colombier <td> 3454*593dc095SDavid du Colombier <td align=right> 3455*593dc095SDavid du Colombier <td> 3456*593dc095SDavid du Colombier <td align=right>micro/bi 3457*593dc095SDavid du Colombier <td> 3458*593dc095SDavid du Colombier <td align=right>205 3459*593dc095SDavid du Colombier <td> 3460*593dc095SDavid du Colombier <td align=right>0:45 3461*593dc095SDavid du Colombier <td> 3462*593dc095SDavid du Colombier <td>Not weaving 3463*593dc095SDavid du Colombier<tr valign=top> <td> 3464*593dc095SDavid du Colombier <td> 3465*593dc095SDavid du Colombier <td align=right> 3466*593dc095SDavid du Colombier <td> 3467*593dc095SDavid du Colombier <td align=right>soft/bi 3468*593dc095SDavid du Colombier <td> 3469*593dc095SDavid du Colombier <td align=right>179 3470*593dc095SDavid du Colombier <td> 3471*593dc095SDavid du Colombier <td align=right>1:25 3472*593dc095SDavid du Colombier <td> 3473*593dc095SDavid du Colombier <td> 3474*593dc095SDavid du Colombier<tr valign=top> <td> 3475*593dc095SDavid du Colombier <td> 3476*593dc095SDavid du Colombier <td>color 3477*593dc095SDavid du Colombier <td> 3478*593dc095SDavid du Colombier <td align=right>-/bi 3479*593dc095SDavid du Colombier <td> 3480*593dc095SDavid du Colombier <td align=right>641 3481*593dc095SDavid du Colombier <td> 3482*593dc095SDavid du Colombier <td align=right>2:45 3483*593dc095SDavid du Colombier <td> 3484*593dc095SDavid du Colombier <td> 3485*593dc095SDavid du Colombier<tr valign=top> <td> 3486*593dc095SDavid du Colombier <td> 3487*593dc095SDavid du Colombier <td align=right> 3488*593dc095SDavid du Colombier <td> 3489*593dc095SDavid du Colombier <td align=right>soft/bi 3490*593dc095SDavid du Colombier <td> 3491*593dc095SDavid du Colombier <td align=right>556 3492*593dc095SDavid du Colombier <td> 3493*593dc095SDavid du Colombier <td align=right>1:32 3494*593dc095SDavid du Colombier <td> 3495*593dc095SDavid du Colombier <td> 3496*593dc095SDavid du Colombier<tr valign=top> <td>360x360 3497*593dc095SDavid du Colombier <td> 3498*593dc095SDavid du Colombier <td>mono 3499*593dc095SDavid du Colombier <td> 3500*593dc095SDavid du Colombier <td align=right>-/uni 3501*593dc095SDavid du Colombier <td> 3502*593dc095SDavid du Colombier <td align=right>269 3503*593dc095SDavid du Colombier <td> 3504*593dc095SDavid du Colombier <td align=right>0:50 3505*593dc095SDavid du Colombier <td> 3506*593dc095SDavid du Colombier <td>Monochrome text 3507*593dc095SDavid du Colombier<tr valign=top> <td> 3508*593dc095SDavid du Colombier <td> 3509*593dc095SDavid du Colombier <td align=right> 3510*593dc095SDavid du Colombier <td> 3511*593dc095SDavid du Colombier <td align=right>-/bi 3512*593dc095SDavid du Colombier <td> 3513*593dc095SDavid du Colombier <td align=right>269 3514*593dc095SDavid du Colombier <td> 3515*593dc095SDavid du Colombier <td align=right>0:35 3516*593dc095SDavid du Colombier <td> 3517*593dc095SDavid du Colombier <td>Monochrome text 3518*593dc095SDavid du Colombier<tr valign=top> <td> 3519*593dc095SDavid du Colombier <td> 3520*593dc095SDavid du Colombier <td align=right> 3521*593dc095SDavid du Colombier <td> 3522*593dc095SDavid du Colombier <td align=right>micro/bi 3523*593dc095SDavid du Colombier <td> 3524*593dc095SDavid du Colombier <td align=right>269 3525*593dc095SDavid du Colombier <td> 3526*593dc095SDavid du Colombier <td align=right>2:25 3527*593dc095SDavid du Colombier <td> 3528*593dc095SDavid du Colombier <td>Monochrome text 3529*593dc095SDavid du Colombier<tr valign=top> <td> 3530*593dc095SDavid du Colombier <td> 3531*593dc095SDavid du Colombier <td align=right> 3532*593dc095SDavid du Colombier <td> 3533*593dc095SDavid du Colombier <td align=right>soft/uni 3534*593dc095SDavid du Colombier <td> 3535*593dc095SDavid du Colombier <td align=right>250 3536*593dc095SDavid du Colombier <td> 3537*593dc095SDavid du Colombier <td align=right>3:15 3538*593dc095SDavid du Colombier <td> 3539*593dc095SDavid du Colombier <td>Monochrome text 3540*593dc095SDavid du Colombier<tr valign=top> <td> 3541*593dc095SDavid du Colombier <td> 3542*593dc095SDavid du Colombier <td align=right> 3543*593dc095SDavid du Colombier <td> 3544*593dc095SDavid du Colombier <td align=right>soft/bi 3545*593dc095SDavid du Colombier <td> 3546*593dc095SDavid du Colombier <td align=right>250 3547*593dc095SDavid du Colombier <td> 3548*593dc095SDavid du Colombier <td align=right>1:55 3549*593dc095SDavid du Colombier <td> 3550*593dc095SDavid du Colombier <td>Monochrome text 3551*593dc095SDavid du Colombier<tr valign=top> <td> 3552*593dc095SDavid du Colombier <td> 3553*593dc095SDavid du Colombier <td>color 3554*593dc095SDavid du Colombier <td> 3555*593dc095SDavid du Colombier <td align=right>-/bi 3556*593dc095SDavid du Colombier <td> 3557*593dc095SDavid du Colombier <td align=right>346 3558*593dc095SDavid du Colombier <td> 3559*593dc095SDavid du Colombier <td align=right>1:00 3560*593dc095SDavid du Colombier <td> 3561*593dc095SDavid du Colombier <td>Sparse-color page, visible displacements 3562*593dc095SDavid du Colombier<tr valign=top> <td> 3563*593dc095SDavid du Colombier <td> 3564*593dc095SDavid du Colombier <td align=right> 3565*593dc095SDavid du Colombier <td> 3566*593dc095SDavid du Colombier <td align=right>micro/bi 3567*593dc095SDavid du Colombier <td> 3568*593dc095SDavid du Colombier <td align=right>346 3569*593dc095SDavid du Colombier <td> 3570*593dc095SDavid du Colombier <td align=right>1:50 3571*593dc095SDavid du Colombier <td> 3572*593dc095SDavid du Colombier <td>Sparse-color page, looks buggy -- printer? 3573*593dc095SDavid du Colombier<tr valign=top> <td> 3574*593dc095SDavid du Colombier <td> 3575*593dc095SDavid du Colombier <td align=right> 3576*593dc095SDavid du Colombier <td> 3577*593dc095SDavid du Colombier <td align=right>soft/bi 3578*593dc095SDavid du Colombier <td> 3579*593dc095SDavid du Colombier <td align=right>294 3580*593dc095SDavid du Colombier <td> 3581*593dc095SDavid du Colombier <td align=right>1:30 3582*593dc095SDavid du Colombier <td> 3583*593dc095SDavid du Colombier <td>Sparse-color page, O.K. 3584*593dc095SDavid du Colombier<tr valign=top> <td> 3585*593dc095SDavid du Colombier <td> 3586*593dc095SDavid du Colombier <td align=right> 3587*593dc095SDavid du Colombier <td> 3588*593dc095SDavid du Colombier <td align=right>-/bi 3589*593dc095SDavid du Colombier <td> 3590*593dc095SDavid du Colombier <td align=right>2218 3591*593dc095SDavid du Colombier <td> 3592*593dc095SDavid du Colombier <td align=right>2:45 3593*593dc095SDavid du Colombier <td> 3594*593dc095SDavid du Colombier <td>Visible stripes 3595*593dc095SDavid du Colombier<tr valign=top> <td> 3596*593dc095SDavid du Colombier <td> 3597*593dc095SDavid du Colombier <td align=right> 3598*593dc095SDavid du Colombier <td> 3599*593dc095SDavid du Colombier <td align=right>micro/bi 3600*593dc095SDavid du Colombier <td> 3601*593dc095SDavid du Colombier <td align=right>5171 3602*593dc095SDavid du Colombier <td> 3603*593dc095SDavid du Colombier <td align=right>3:17 3604*593dc095SDavid du Colombier <td> 3605*593dc095SDavid du Colombier <td> 3606*593dc095SDavid du Colombier<tr valign=top> <td> 3607*593dc095SDavid du Colombier <td> 3608*593dc095SDavid du Colombier <td align=right> 3609*593dc095SDavid du Colombier <td> 3610*593dc095SDavid du Colombier <td align=right>soft/bi 3611*593dc095SDavid du Colombier <td> 3612*593dc095SDavid du Colombier <td align=right>3675 3613*593dc095SDavid du Colombier <td> 3614*593dc095SDavid du Colombier <td align=right>3:05 3615*593dc095SDavid du Colombier <td> 3616*593dc095SDavid du Colombier <td> 3617*593dc095SDavid du Colombier<tr valign=top> <td>360x720 3618*593dc095SDavid du Colombier <td> 3619*593dc095SDavid du Colombier <td>mono 3620*593dc095SDavid du Colombier <td> 3621*593dc095SDavid du Colombier <td align=right>soft/bi 3622*593dc095SDavid du Colombier <td> 3623*593dc095SDavid du Colombier <td align=right>2761 3624*593dc095SDavid du Colombier <td> 3625*593dc095SDavid du Colombier <td align=right>5:40 3626*593dc095SDavid du Colombier <td> 3627*593dc095SDavid du Colombier <td> 3628*593dc095SDavid du Colombier<tr valign=top> <td> 3629*593dc095SDavid du Colombier <td> 3630*593dc095SDavid du Colombier <td>color 3631*593dc095SDavid du Colombier <td> 3632*593dc095SDavid du Colombier <td align=right>soft/bi 3633*593dc095SDavid du Colombier <td> 3634*593dc095SDavid du Colombier <td align=right>7789 3635*593dc095SDavid du Colombier <td> 3636*593dc095SDavid du Colombier <td align=right>6:15 3637*593dc095SDavid du Colombier <td> 3638*593dc095SDavid du Colombier <td>Just a small difference! 3639*593dc095SDavid du Colombier<tr valign=top> <td>720x360 3640*593dc095SDavid du Colombier <td> 3641*593dc095SDavid du Colombier <td>color 3642*593dc095SDavid du Colombier <td> 3643*593dc095SDavid du Colombier <td align=right>soft/bi 3644*593dc095SDavid du Colombier <td> 3645*593dc095SDavid du Colombier <td align=right>7182 3646*593dc095SDavid du Colombier <td> 3647*593dc095SDavid du Colombier <td align=right>5:40 3648*593dc095SDavid du Colombier <td> 3649*593dc095SDavid du Colombier <td> 3650*593dc095SDavid du Colombier<tr valign=top> <td>720x720 3651*593dc095SDavid du Colombier <td> 3652*593dc095SDavid du Colombier <td>color 3653*593dc095SDavid du Colombier <td> 3654*593dc095SDavid du Colombier <td align=right>micro/bi 3655*593dc095SDavid du Colombier <td> 3656*593dc095SDavid du Colombier <td align=right>14748 3657*593dc095SDavid du Colombier <td> 3658*593dc095SDavid du Colombier <td align=right>30:26 3659*593dc095SDavid du Colombier <td> 3660*593dc095SDavid du Colombier <td>Actually beyond printer's capabilities 3661*593dc095SDavid du Colombier<tr valign=top> <td> 3662*593dc095SDavid du Colombier <td> 3663*593dc095SDavid du Colombier <td align=right> 3664*593dc095SDavid du Colombier <td> 3665*593dc095SDavid du Colombier <td align=right>soft/bi 3666*593dc095SDavid du Colombier <td> 3667*593dc095SDavid du Colombier <td align=right>14407 3668*593dc095SDavid du Colombier <td> 3669*593dc095SDavid du Colombier <td align=right>11:08 3670*593dc095SDavid du Colombier <td> 3671*593dc095SDavid du Colombier <td> 3672*593dc095SDavid du Colombier</table></blockquote> 3673*593dc095SDavid du Colombier 3674*593dc095SDavid du Colombier<h3><a name="STC_acks"></a>Acknowledgments</h3> 3675*593dc095SDavid du Colombier 3676*593dc095SDavid du Colombier<p> 3677*593dc095SDavid du ColombierThis driver was copied from <b><tt>gdevcdj.c</tt></b> (Ghostscript 3.12), 3678*593dc095SDavid du Colombierwhich was contributed by George Cameron, Koert Zeilstra, and Eckhard 3679*593dc095SDavid du ColombierRueggeberg. Some of the ESC/P2 code was drawn from Richard Brown's 3680*593dc095SDavid du Colombier<b><tt>gdevescp.c</tt></b>. The POSIX interrupt code (compilation option 3681*593dc095SDavid du Colombier<b><tt>-DSTC_SIGNAL</tt></b>) is from Frederic Loyer. Several improvements 3682*593dc095SDavid du Colombierare based on discussions with Brian Converse, Bill Davidson, Gero Guenther, 3683*593dc095SDavid du ColombierJason Patterson, ? Rueschstroer, and Steven Singer. 3684*593dc095SDavid du Colombier 3685*593dc095SDavid du Colombier<p> 3686*593dc095SDavid du ColombierWhile I wish to thank everyone mentioned above, they are by no means 3687*593dc095SDavid du Colombierresponsible for bugs in the stcolor driver -- just for the features. 3688*593dc095SDavid du Colombier 3689*593dc095SDavid du Colombier<address> 3690*593dc095SDavid du ColombierGunther Hess<br> 3691*593dc095SDavid du ColombierRichard Wagner Strasse 112<br> 3692*593dc095SDavid du ColombierD-47057 Duisburg<br> 3693*593dc095SDavid du ColombierGermany<br> 3694*593dc095SDavid du Colombier+49 203 376273 telephone (MET evening hours)<br> 3695*593dc095SDavid du Colombier<<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>> 3696*593dc095SDavid du Colombier</address> 3697*593dc095SDavid du Colombier 3698*593dc095SDavid du Colombier<hr> 3699*593dc095SDavid du Colombier 3700*593dc095SDavid du Colombier<h2><a name="Uniprint"></a>uniprint, a flexible unified printer driver</h2> 3701*593dc095SDavid du Colombier 3702*593dc095SDavid du Colombier<p> 3703*593dc095SDavid du Colombier<b><tt>uniprint</tt></b> is a unified parametric driver by Gunther Hess 3704*593dc095SDavid du Colombier<<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>> for several 3705*593dc095SDavid du Colombierkinds of printers and devices, including 3706*593dc095SDavid du Colombier 3707*593dc095SDavid du Colombier<blockquote> 3708*593dc095SDavid du Colombier<ul> 3709*593dc095SDavid du Colombier<li>any Epson Stylus Color, Stylus, or Stylus Pro 3710*593dc095SDavid du Colombier<li>HP PCL/RTL 3711*593dc095SDavid du Colombier<li>Canon BubbleJet Color 610 3712*593dc095SDavid du Colombier<li>NEC P2X 3713*593dc095SDavid du Colombier<li>Sun raster file format 3714*593dc095SDavid du Colombier</ul></blockquote> 3715*593dc095SDavid du Colombier 3716*593dc095SDavid du Colombier<p> 3717*593dc095SDavid du ColombierThis driver is intended to <em>become</em> a unified printer driver. If you 3718*593dc095SDavid du Colombierconsider it ugly, please send me your suggestions for improvements. The 3719*593dc095SDavid du Colombierdriver will be updated with them. Thus the full explanation of the driver's 3720*593dc095SDavid du Colombiername is: 3721*593dc095SDavid du Colombier 3722*593dc095SDavid du Colombier<blockquote> 3723*593dc095SDavid du ColombierUgly- -> Updated- -> Unified Printer Driver 3724*593dc095SDavid du Colombier</blockquote> 3725*593dc095SDavid du Colombier 3726*593dc095SDavid du Colombier<p> 3727*593dc095SDavid du ColombierBut you probably want to know something about the functionality. 3728*593dc095SDavid du ColombierAt the time of this writing uniprint drives: 3729*593dc095SDavid du Colombier 3730*593dc095SDavid du Colombier<ul> 3731*593dc095SDavid du Colombier<li>NEC Pinwriter P2X (24-pin monochrome impact printer, ESC/P style) 3732*593dc095SDavid du Colombier<li>Several Epson Stylus Color models (ESC/P2 style) 3733*593dc095SDavid du Colombier<li>HP-DeskJet 550c (basic HP-RTL) 3734*593dc095SDavid du Colombier<li>Canon BJC 610 3735*593dc095SDavid du Colombier</ul> 3736*593dc095SDavid du Colombier 3737*593dc095SDavid du Colombier<p> 3738*593dc095SDavid du ColombierIt can be configured for various other printers without recompilation 3739*593dc095SDavid du Colombierand offers uncompressed (ugly) Sun rasterfiles as another format, but 3740*593dc095SDavid du Colombierthis format is intended for testing purposes rather than real use. 3741*593dc095SDavid du ColombierThe usage of this driver is quite simple. The typical command line looks 3742*593dc095SDavid du Colombierlike this: 3743*593dc095SDavid du Colombier 3744*593dc095SDavid du Colombier<blockquote> 3745*593dc095SDavid du Colombier<b><tt>gs @</tt></b>{MODEL}<b><tt>.upp -sOutputFile=</tt></b>{printable file}<b><tt> MyFile.ps -c quit</tt></b> 3746*593dc095SDavid du Colombier</blockquote> 3747*593dc095SDavid du Colombier 3748*593dc095SDavid du Colombier<p> 3749*593dc095SDavid du ColombierFor example, from my Linux box: 3750*593dc095SDavid du Colombier 3751*593dc095SDavid du Colombier<blockquote><b><tt> 3752*593dc095SDavid du Colombiergs @stc.upp -sOutputFile=/dev/lp1 tiger.eps -c quit 3753*593dc095SDavid du Colombier</tt></b></blockquote> 3754*593dc095SDavid du Colombier 3755*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 3756*593dc095SDavid du Colombier<tr><th colspan=6 bgcolor="#CCCC00"><hr><font size="+1">Unified Printer Parameter files distributed with Ghostscript</font><hr> 3757*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Canon BJC 610 (color, rendered) 3758*593dc095SDavid du Colombier<tr valign=top> <td> 3759*593dc095SDavid du Colombier <td><b><tt>bjc610a0.upp</tt></b> 3760*593dc095SDavid du Colombier <td> 3761*593dc095SDavid du Colombier <td>360×360dpi 3762*593dc095SDavid du Colombier <td> 3763*593dc095SDavid du Colombier <td>plain paper, high speed 3764*593dc095SDavid du Colombier<tr valign=top> <td> 3765*593dc095SDavid du Colombier <td><b><tt>bjc610a1.upp</tt></b> 3766*593dc095SDavid du Colombier <td> 3767*593dc095SDavid du Colombier <td>360×360dpi 3768*593dc095SDavid du Colombier <td> 3769*593dc095SDavid du Colombier <td>plain paper 3770*593dc095SDavid du Colombier<tr valign=top> <td> 3771*593dc095SDavid du Colombier <td><b><tt>bjc610a2.upp</tt></b> 3772*593dc095SDavid du Colombier <td> 3773*593dc095SDavid du Colombier <td>360×360dpi 3774*593dc095SDavid du Colombier <td> 3775*593dc095SDavid du Colombier <td>coated paper 3776*593dc095SDavid du Colombier<tr valign=top> <td> 3777*593dc095SDavid du Colombier <td><b><tt>bjc610a3.upp</tt></b> 3778*593dc095SDavid du Colombier <td> 3779*593dc095SDavid du Colombier <td>360×360dpi 3780*593dc095SDavid du Colombier <td> 3781*593dc095SDavid du Colombier <td>transparency film 3782*593dc095SDavid du Colombier<tr valign=top> <td> 3783*593dc095SDavid du Colombier <td><b><tt>bjc610a4.upp</tt></b> 3784*593dc095SDavid du Colombier <td> 3785*593dc095SDavid du Colombier <td>360×360dpi 3786*593dc095SDavid du Colombier <td> 3787*593dc095SDavid du Colombier <td>back print film 3788*593dc095SDavid du Colombier<tr valign=top> <td> 3789*593dc095SDavid du Colombier <td><b><tt>bjc610a5.upp</tt></b> 3790*593dc095SDavid du Colombier <td> 3791*593dc095SDavid du Colombier <td>360×360dpi 3792*593dc095SDavid du Colombier <td> 3793*593dc095SDavid du Colombier <td>fabric sheet 3794*593dc095SDavid du Colombier<tr valign=top> <td> 3795*593dc095SDavid du Colombier <td><b><tt>bjc610a6.upp</tt></b> 3796*593dc095SDavid du Colombier <td> 3797*593dc095SDavid du Colombier <td>360×360dpi 3798*593dc095SDavid du Colombier <td> 3799*593dc095SDavid du Colombier <td>glossy paper 3800*593dc095SDavid du Colombier<tr valign=top> <td> 3801*593dc095SDavid du Colombier <td><b><tt>bjc610a7.upp</tt></b> 3802*593dc095SDavid du Colombier <td> 3803*593dc095SDavid du Colombier <td>360×360dpi 3804*593dc095SDavid du Colombier <td> 3805*593dc095SDavid du Colombier <td>high gloss film 3806*593dc095SDavid du Colombier<tr valign=top> <td> 3807*593dc095SDavid du Colombier <td><b><tt>bjc610a8.upp</tt></b> 3808*593dc095SDavid du Colombier <td> 3809*593dc095SDavid du Colombier <td>360×360dpi 3810*593dc095SDavid du Colombier <td> 3811*593dc095SDavid du Colombier <td>high resolution paper 3812*593dc095SDavid du Colombier<tr> <td> 3813*593dc095SDavid du Colombier<tr valign=top> <td> 3814*593dc095SDavid du Colombier <td><b><tt>bjc610b1.upp</tt></b> 3815*593dc095SDavid du Colombier <td> 3816*593dc095SDavid du Colombier <td>720×720dpi 3817*593dc095SDavid du Colombier <td> 3818*593dc095SDavid du Colombier <td>plain paper 3819*593dc095SDavid du Colombier<tr valign=top> <td> 3820*593dc095SDavid du Colombier <td><b><tt>bjc610b2.upp</tt></b> 3821*593dc095SDavid du Colombier <td> 3822*593dc095SDavid du Colombier <td>720×720dpi 3823*593dc095SDavid du Colombier <td> 3824*593dc095SDavid du Colombier <td>coated paper 3825*593dc095SDavid du Colombier<tr valign=top> <td> 3826*593dc095SDavid du Colombier <td><b><tt>bjc610b3.upp</tt></b> 3827*593dc095SDavid du Colombier <td> 3828*593dc095SDavid du Colombier <td>720×720dpi 3829*593dc095SDavid du Colombier <td> 3830*593dc095SDavid du Colombier <td>transparency film 3831*593dc095SDavid du Colombier<tr valign=top> <td> 3832*593dc095SDavid du Colombier <td><b><tt>bjc610b4.upp</tt></b> 3833*593dc095SDavid du Colombier <td> 3834*593dc095SDavid du Colombier <td>720×720dpi 3835*593dc095SDavid du Colombier <td> 3836*593dc095SDavid du Colombier <td>back print film 3837*593dc095SDavid du Colombier<tr valign=top> <td> 3838*593dc095SDavid du Colombier <td><b><tt>bjc610b6.upp</tt></b> 3839*593dc095SDavid du Colombier <td> 3840*593dc095SDavid du Colombier <td>720×720dpi 3841*593dc095SDavid du Colombier <td> 3842*593dc095SDavid du Colombier <td>glossy paper 3843*593dc095SDavid du Colombier<tr valign=top> <td> 3844*593dc095SDavid du Colombier <td><b><tt>bjc610b7.upp</tt></b> 3845*593dc095SDavid du Colombier <td> 3846*593dc095SDavid du Colombier <td>720×720dpi 3847*593dc095SDavid du Colombier <td> 3848*593dc095SDavid du Colombier <td>high-gloss paper 3849*593dc095SDavid du Colombier<tr valign=top> <td> 3850*593dc095SDavid du Colombier <td><b><tt>bjc610b8.upp</tt></b> 3851*593dc095SDavid du Colombier <td> 3852*593dc095SDavid du Colombier <td>720×720dpi 3853*593dc095SDavid du Colombier <td> 3854*593dc095SDavid du Colombier <td>high resolution paper 3855*593dc095SDavid du Colombier<tr> <td> 3856*593dc095SDavid du Colombier<tr> <th align=left colspan=6>HP Ink-Printers 3857*593dc095SDavid du Colombier<tr valign=top> <td> 3858*593dc095SDavid du Colombier <td><b><tt>cdj550.upp</tt></b> 3859*593dc095SDavid du Colombier <td> 3860*593dc095SDavid du Colombier <td>300×300dpi 3861*593dc095SDavid du Colombier <td> 3862*593dc095SDavid du Colombier <td>32-bit CMYK 3863*593dc095SDavid du Colombier<tr valign=top> <td> 3864*593dc095SDavid du Colombier <td><b><tt>cdj690.upp</tt></b> 3865*593dc095SDavid du Colombier <td> 3866*593dc095SDavid du Colombier <td>300×300dpi 3867*593dc095SDavid du Colombier <td> 3868*593dc095SDavid du Colombier <td>Normal mode 3869*593dc095SDavid du Colombier<tr valign=top> <td> 3870*593dc095SDavid du Colombier <td><b><tt>cdj690ec.upp</tt></b> 3871*593dc095SDavid du Colombier <td> 3872*593dc095SDavid du Colombier <td>300×300dpi 3873*593dc095SDavid du Colombier <td> 3874*593dc095SDavid du Colombier <td>Economy mode 3875*593dc095SDavid du Colombier<tr valign=top> <td> 3876*593dc095SDavid du Colombier <td><b><tt>dnj750c.upp</tt></b> 3877*593dc095SDavid du Colombier <td> 3878*593dc095SDavid du Colombier <td>300×300dpi 3879*593dc095SDavid du Colombier <td> 3880*593dc095SDavid du Colombier <td>Color -- also good for 450C 3881*593dc095SDavid du Colombier<tr valign=top> <td> 3882*593dc095SDavid du Colombier <td><b><tt>dnj750m.upp</tt></b> 3883*593dc095SDavid du Colombier <td> 3884*593dc095SDavid du Colombier <td>600×600dpi 3885*593dc095SDavid du Colombier <td> 3886*593dc095SDavid du Colombier <td>Monochrome 3887*593dc095SDavid du Colombier<tr> <td> 3888*593dc095SDavid du Colombier<tr> <th align=left colspan=6>NEC P2X 3889*593dc095SDavid du Colombier<tr valign=top> <td> 3890*593dc095SDavid du Colombier <td><b><tt>necp2x.upp</tt></b> 3891*593dc095SDavid du Colombier <td> 3892*593dc095SDavid du Colombier <td>360×360dpi 3893*593dc095SDavid du Colombier <td> 3894*593dc095SDavid du Colombier <td>8-bit (Floyd-Steinberg) 3895*593dc095SDavid du Colombier<tr> <td> 3896*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Any Epson Stylus Color 3897*593dc095SDavid du Colombier<tr valign=top> <td> 3898*593dc095SDavid du Colombier <td><b><tt>stcany.upp</tt></b> 3899*593dc095SDavid du Colombier <td> 3900*593dc095SDavid du Colombier <td>360×360dpi 3901*593dc095SDavid du Colombier <td> 3902*593dc095SDavid du Colombier <td>4-bit, PostScript halftoning 3903*593dc095SDavid du Colombier<tr valign=top> <td> 3904*593dc095SDavid du Colombier <td><b><tt>stcany_h.upp</tt></b> 3905*593dc095SDavid du Colombier <td> 3906*593dc095SDavid du Colombier <td>720×720dpi 3907*593dc095SDavid du Colombier <td> 3908*593dc095SDavid du Colombier <td>4-bit, PostScript halftoning 3909*593dc095SDavid du Colombier<tr> <td> 3910*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Original Epson Stylus and Stylus Pro Color 3911*593dc095SDavid du Colombier<tr valign=top> <td> 3912*593dc095SDavid du Colombier <td><b><tt>stc.upp</tt></b> 3913*593dc095SDavid du Colombier <td> 3914*593dc095SDavid du Colombier <td>360×360dpi 3915*593dc095SDavid du Colombier <td> 3916*593dc095SDavid du Colombier <td>32-bit CMYK, 15-pin 3917*593dc095SDavid du Colombier<tr valign=top> <td> 3918*593dc095SDavid du Colombier <td><b><tt>stc_l.upp</tt></b> 3919*593dc095SDavid du Colombier <td> 3920*593dc095SDavid du Colombier <td>360×360dpi 3921*593dc095SDavid du Colombier <td> 3922*593dc095SDavid du Colombier <td>4-bit, PostScript halftoning, weaved noWeave 3923*593dc095SDavid du Colombier<tr valign=top> <td> 3924*593dc095SDavid du Colombier <td><b><tt>stc_h.upp</tt></b> 3925*593dc095SDavid du Colombier <td> 3926*593dc095SDavid du Colombier <td>720×720dpi 3927*593dc095SDavid du Colombier <td> 3928*593dc095SDavid du Colombier <td>32-bit CMYK, 15-pin Weave 3929*593dc095SDavid du Colombier<tr> <td> 3930*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color II 3931*593dc095SDavid du Colombier<tr valign=top> <td> 3932*593dc095SDavid du Colombier <td><b><tt>stc2.upp</tt></b> 3933*593dc095SDavid du Colombier <td> 3934*593dc095SDavid du Colombier <td>360×360dpi 3935*593dc095SDavid du Colombier <td> 3936*593dc095SDavid du Colombier <td>32-bit CMYK, 20-pin, Epson Stylus Color II(s) 3937*593dc095SDavid du Colombier<tr valign=top> <td> 3938*593dc095SDavid du Colombier <td><b><tt>stc2_h.upp</tt></b> 3939*593dc095SDavid du Colombier <td> 3940*593dc095SDavid du Colombier <td>720×720dpi 3941*593dc095SDavid du Colombier <td> 3942*593dc095SDavid du Colombier <td>32-bit CMYK, 20-pin, Epson Stylus Color II 3943*593dc095SDavid du Colombier<tr valign=top> <td> 3944*593dc095SDavid du Colombier <td><b><tt>stc2s_h.upp</tt></b> 3945*593dc095SDavid du Colombier <td> 3946*593dc095SDavid du Colombier <td>720×720dpi 3947*593dc095SDavid du Colombier <td> 3948*593dc095SDavid du Colombier <td>32-bit CMYK, 20-pin, Epson Stylus Color IIs 3949*593dc095SDavid du Colombier<tr> <td> 3950*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color 200 3951*593dc095SDavid du Colombier<tr valign=top> <td> 3952*593dc095SDavid du Colombier <td><b><tt>stc200.upp</tt></b> 3953*593dc095SDavid du Colombier <td> 3954*593dc095SDavid du Colombier <td>360×720dpi 3955*593dc095SDavid du Colombier <td> 3956*593dc095SDavid du Colombier <td>Plain Paper 3957*593dc095SDavid du Colombier<tr> <td> 3958*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color 300 3959*593dc095SDavid du Colombier<tr valign=top> <td> 3960*593dc095SDavid du Colombier <td><b><tt>stc300.upp</tt></b> 3961*593dc095SDavid du Colombier <td> 3962*593dc095SDavid du Colombier <td>360×360dpi 3963*593dc095SDavid du Colombier <td> 3964*593dc095SDavid du Colombier <td>32-bit CMYK, plain paper 3965*593dc095SDavid du Colombier<tr valign=top> <td> 3966*593dc095SDavid du Colombier <td><b><tt>stc300bl.upp</tt></b> 3967*593dc095SDavid du Colombier <td> 3968*593dc095SDavid du Colombier <td>180×180dpi 3969*593dc095SDavid du Colombier <td> 3970*593dc095SDavid du Colombier <td>black only, plain paper 3971*593dc095SDavid du Colombier<tr valign=top> <td> 3972*593dc095SDavid du Colombier <td><b><tt>stc300bm.upp</tt></b> 3973*593dc095SDavid du Colombier <td> 3974*593dc095SDavid du Colombier <td>360×360dpi 3975*593dc095SDavid du Colombier <td> 3976*593dc095SDavid du Colombier <td>black only, plain paper 3977*593dc095SDavid du Colombier<tr> <td> 3978*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color 500 (good transfer curves for plain paper) 3979*593dc095SDavid du Colombier<tr valign=top> <td> 3980*593dc095SDavid du Colombier <td><b><tt>stc500p.upp</tt></b> 3981*593dc095SDavid du Colombier <td> 3982*593dc095SDavid du Colombier <td>360×360dpi 3983*593dc095SDavid du Colombier <td> 3984*593dc095SDavid du Colombier <td>32-bit CMYK, noWeave, plain paper 3985*593dc095SDavid du Colombier<tr valign=top> <td> 3986*593dc095SDavid du Colombier <td><b><tt>stc500ph.upp</tt></b> 3987*593dc095SDavid du Colombier <td> 3988*593dc095SDavid du Colombier <td>720×720dpi 3989*593dc095SDavid du Colombier <td> 3990*593dc095SDavid du Colombier <td>32-bit CMYK, noWeave, plain paper 3991*593dc095SDavid du Colombier<tr> <td> 3992*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color 600, 32/90-inch weaving 3993*593dc095SDavid du Colombier<tr valign=top> <td> 3994*593dc095SDavid du Colombier <td><b><tt>stc600pl.upp</tt></b> 3995*593dc095SDavid du Colombier <td> 3996*593dc095SDavid du Colombier <td>360×360dpi 3997*593dc095SDavid du Colombier <td> 3998*593dc095SDavid du Colombier <td>32-bit CMYK, 32-pin, plain paper 3999*593dc095SDavid du Colombier<tr valign=top> <td> 4000*593dc095SDavid du Colombier <td><b><tt>stc600p.upp</tt></b> 4001*593dc095SDavid du Colombier <td> 4002*593dc095SDavid du Colombier <td>720×720dpi 4003*593dc095SDavid du Colombier <td> 4004*593dc095SDavid du Colombier <td>32-bit CMYK, 32-pin, plain paper 4005*593dc095SDavid du Colombier<tr valign=top> <td> 4006*593dc095SDavid du Colombier <td><b><tt>stc600ih.upp</tt></b> 4007*593dc095SDavid du Colombier <td> 4008*593dc095SDavid du Colombier <td>1440×720dpi 4009*593dc095SDavid du Colombier <td> 4010*593dc095SDavid du Colombier <td>32-bit CMYK, 30-pin, inkjet paper 4011*593dc095SDavid du Colombier<tr> <td> 4012*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color 640 4013*593dc095SDavid du Colombier<tr valign=top> <td> 4014*593dc095SDavid du Colombier <td><b><tt>stc640p.upp</tt></b> 4015*593dc095SDavid du Colombier <td> 4016*593dc095SDavid du Colombier <td>720×720dpi 4017*593dc095SDavid du Colombier <td> 4018*593dc095SDavid du Colombier <td>plain paper? 4019*593dc095SDavid du Colombier 4020*593dc095SDavid du Colombier 4021*593dc095SDavid du Colombier 4022*593dc095SDavid du Colombier<tr valign=top> <td> 4023*593dc095SDavid du Colombier <td><b><tt>st640p.upp</tt></b> 4024*593dc095SDavid du Colombier <td> 4025*593dc095SDavid du Colombier <td>720×720dpi 4026*593dc095SDavid du Colombier <td> 4027*593dc095SDavid du Colombier <td>CMYK, plain paper 4028*593dc095SDavid du Colombier<tr valign=top> <td> 4029*593dc095SDavid du Colombier <td><b><tt>st640pg.upp</tt></b> 4030*593dc095SDavid du Colombier <td> 4031*593dc095SDavid du Colombier <td>720×720dpi 4032*593dc095SDavid du Colombier <td> 4033*593dc095SDavid du Colombier <td>grayscale, plain paper 4034*593dc095SDavid du Colombier<tr valign=top> <td> 4035*593dc095SDavid du Colombier <td><b><tt>st640pl.upp</tt></b> 4036*593dc095SDavid du Colombier <td> 4037*593dc095SDavid du Colombier <td>360×360dpi 4038*593dc095SDavid du Colombier <td> 4039*593dc095SDavid du Colombier <td>CMYK, plain paper 4040*593dc095SDavid du Colombier<tr valign=top> <td> 4041*593dc095SDavid du Colombier <td><b><tt>st640plg.upp</tt></b> 4042*593dc095SDavid du Colombier <td> 4043*593dc095SDavid du Colombier <td>360×360dpi 4044*593dc095SDavid du Colombier <td> 4045*593dc095SDavid du Colombier <td>grayscale, plain paper 4046*593dc095SDavid du Colombier<tr valign=top> <td> 4047*593dc095SDavid du Colombier <td><b><tt>st640ih.upp</tt></b> 4048*593dc095SDavid du Colombier <td> 4049*593dc095SDavid du Colombier <td>1440×720dpi 4050*593dc095SDavid du Colombier <td> 4051*593dc095SDavid du Colombier <td>CMYK, inkjet paper 4052*593dc095SDavid du Colombier<tr valign=top> <td> 4053*593dc095SDavid du Colombier <td><b><tt>st640ihg.upp</tt></b> 4054*593dc095SDavid du Colombier <td> 4055*593dc095SDavid du Colombier <td>1440×720dpi 4056*593dc095SDavid du Colombier <td> 4057*593dc095SDavid du Colombier <td>grayscale, inkjet paper 4058*593dc095SDavid du Colombier 4059*593dc095SDavid du Colombier 4060*593dc095SDavid du Colombier 4061*593dc095SDavid du Colombier 4062*593dc095SDavid du Colombier 4063*593dc095SDavid du Colombier 4064*593dc095SDavid du Colombier<tr> <td> 4065*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Epson Stylus Color 800, 64/180-inch weaving 4066*593dc095SDavid du Colombier<tr valign=top> <td> 4067*593dc095SDavid du Colombier <td><b><tt>stc800pl.upp</tt></b> 4068*593dc095SDavid du Colombier <td> 4069*593dc095SDavid du Colombier <td>360×360dpi 4070*593dc095SDavid du Colombier <td> 4071*593dc095SDavid du Colombier <td>32-bit CMYK, 64-pin, plain paper 4072*593dc095SDavid du Colombier<tr valign=top> <td> 4073*593dc095SDavid du Colombier <td><b><tt>stc800p.upp</tt></b> 4074*593dc095SDavid du Colombier <td> 4075*593dc095SDavid du Colombier <td>720×720dpi 4076*593dc095SDavid du Colombier <td> 4077*593dc095SDavid du Colombier <td>32-bit CMYK, 64-pin, plain paper 4078*593dc095SDavid du Colombier<tr valign=top> <td> 4079*593dc095SDavid du Colombier <td><b><tt>stc800ih.upp</tt></b> 4080*593dc095SDavid du Colombier <td> 4081*593dc095SDavid du Colombier <td>1440×720dpi 4082*593dc095SDavid du Colombier <td> 4083*593dc095SDavid du Colombier <td>32-bit CMYK, 62-pin, inkjet paper 4084*593dc095SDavid du Colombier<tr valign=top> <td> 4085*593dc095SDavid du Colombier <td><b><tt>stc1520.upp</tt></b> 4086*593dc095SDavid du Colombier <td> 4087*593dc095SDavid du Colombier <td>1440×720dpi 4088*593dc095SDavid du Colombier <td> 4089*593dc095SDavid du Colombier <td>32-bit CMYK, 62-pin, inkjet paper 4090*593dc095SDavid du Colombier<tr> <td> 4091*593dc095SDavid du Colombier<tr> <th align=left colspan=6>Sun raster file 4092*593dc095SDavid du Colombier<tr valign=top> <td> 4093*593dc095SDavid du Colombier <td><b><tt>ras1.upp</tt></b> 4094*593dc095SDavid du Colombier <td> 4095*593dc095SDavid du Colombier <td>1-bit 4096*593dc095SDavid du Colombier <td> 4097*593dc095SDavid du Colombier <td>monochrome (Ghostscript) 4098*593dc095SDavid du Colombier<tr valign=top> <td> 4099*593dc095SDavid du Colombier <td><b><tt>ras3.upp</tt></b> 4100*593dc095SDavid du Colombier <td> 4101*593dc095SDavid du Colombier <td>3-bit 4102*593dc095SDavid du Colombier <td> 4103*593dc095SDavid du Colombier <td>RGB (Ghostscript) 4104*593dc095SDavid du Colombier<tr valign=top> <td> 4105*593dc095SDavid du Colombier <td><b><tt>ras4.upp</tt></b> 4106*593dc095SDavid du Colombier <td> 4107*593dc095SDavid du Colombier <td>4-bit 4108*593dc095SDavid du Colombier <td> 4109*593dc095SDavid du Colombier <td>CMYK (Ghostscript) 4110*593dc095SDavid du Colombier<tr valign=top> <td> 4111*593dc095SDavid du Colombier <td><b><tt>ras8m.upp</tt></b> 4112*593dc095SDavid du Colombier <td> 4113*593dc095SDavid du Colombier <td>8-bit 4114*593dc095SDavid du Colombier <td> 4115*593dc095SDavid du Colombier <td>grayscale (Floyd-Steinberg) 4116*593dc095SDavid du Colombier<tr valign=top> <td> 4117*593dc095SDavid du Colombier <td><b><tt>ras24.upp</tt></b> 4118*593dc095SDavid du Colombier <td> 4119*593dc095SDavid du Colombier <td>24-bit 4120*593dc095SDavid du Colombier <td> 4121*593dc095SDavid du Colombier <td>RGB (Floyd-Steinberg) 4122*593dc095SDavid du Colombier<tr valign=top> <td> 4123*593dc095SDavid du Colombier <td><b><tt>ras32.upp</tt></b> 4124*593dc095SDavid du Colombier <td> 4125*593dc095SDavid du Colombier <td>32-bit 4126*593dc095SDavid du Colombier <td> 4127*593dc095SDavid du Colombier <td>CMYK (CMYK-Floyd-Steinberg) 4128*593dc095SDavid du Colombier</table></blockquote> 4129*593dc095SDavid du Colombier 4130*593dc095SDavid du Colombier<p> 4131*593dc095SDavid du ColombierThanks to Danilo Beuche, Guido Classen, Mark Goldberg and Hans-Heinrich 4132*593dc095SDavid du ColombierViehmann for providing the files for the stc200, hp690, stc500 and the 4133*593dc095SDavid du Colombierstc640. Thanks to Michael Lossin <losse@germanymail.com> for the 4134*593dc095SDavid du Colombiernewer st640 parameter sets. 4135*593dc095SDavid du Colombier 4136*593dc095SDavid du Colombier<p> 4137*593dc095SDavid du ColombierPlease note the following: 4138*593dc095SDavid du Colombier 4139*593dc095SDavid du Colombier<blockquote><ul> 4140*593dc095SDavid du Colombier<li>Changing the resolution with Ghostscript's 4141*593dc095SDavid du Colombier<a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b> switch</a> is 4142*593dc095SDavid du Colombierusually not possible. 4143*593dc095SDavid du Colombier<li>For Epson Stylus Color models not listed above, the two 4144*593dc095SDavid du Colombier<b><tt>stc500</tt></b> variants are likely to work in addition to 4145*593dc095SDavid du Colombier<b><tt>stcany</tt></b>, but their gamma correction might be wrong. 4146*593dc095SDavid du Colombier</ul></blockquote> 4147*593dc095SDavid du Colombier 4148*593dc095SDavid du Colombier<h3><a name="Uni_state"></a>The state of this driver</h3> 4149*593dc095SDavid du Colombier 4150*593dc095SDavid du Colombier<p> 4151*593dc095SDavid du ColombierThe coding of <b><tt>uniprint</tt></b> was triggered by the requirements of 4152*593dc095SDavid du Colombierthe various Stylus Color models and some personal needs for HP and NEC 4153*593dc095SDavid du Colombierdrivers. Thus the Epson models are well represented among the distributed 4154*593dc095SDavid du Colombierparameter files. When this driver entered the beta test phase, three other 4155*593dc095SDavid du Colombierdrivers appreared on the scene that could be at least partially integrated 4156*593dc095SDavid du Colombierinto <b><tt>uniprint</tt></b>: <b><tt>cdj850</tt></b> by Uli Wortmann 4157*593dc095SDavid du Colombier(available at <a href="http://www.erdw.ethz.ch/~bonk/hp850/hp850.html">http://www.erdw.ethz.ch/~bonk/hp850/hp850.html</a>), 4158*593dc095SDavid du Colombier<b><tt>hpdj</tt></b> by Martin Lottermoser, and <b><tt>bjc610</tt></b> by 4159*593dc095SDavid du ColombierHelmut Riegler. 4160*593dc095SDavid du Colombier 4161*593dc095SDavid du Colombier<p> 4162*593dc095SDavid du ColombierUli addresses features of the more recent DeskJet models that will not be 4163*593dc095SDavid du Colombieravailable in <b><tt>uniprint</tt></b> soon. Martin taught me a lesson on 4164*593dc095SDavid du ColombierHP-PCL3 headers that will be available in <b><tt>uniprint</tt></b> 4165*593dc095SDavid du Colombiersoon. Helmut in turn followed an almost similar idea, but targetted 4166*593dc095SDavid du Colombierprimarily for printing on Canon printers from the pbmplus library. Starting 4167*593dc095SDavid du Colombierwith version 1.68 of uniprint, BJC support is available. Work on the 4168*593dc095SDavid du Colombier<b><tt>hpdj</tt></b> integration will start after the update of my website. 4169*593dc095SDavid du Colombier 4170*593dc095SDavid du Colombier<h3><a name="Uni_background"></a>Notes on <b><tt>uniprint</tt></b>'s background</h3> 4171*593dc095SDavid du Colombier 4172*593dc095SDavid du Colombier<p> 4173*593dc095SDavid du Colombier<b><tt>uniprint</tt></b> is actually an update of <b><tt>stcolor</tt></b>, 4174*593dc095SDavid du Colombierbut much more versatile than its predecessor; <b><tt>stcolor</tt></b>, in 4175*593dc095SDavid du Colombierits turn, started as a clone of the color DeskJet family of drivers 4176*593dc095SDavid du Colombier(<b><tt>cdj</tt></b>*). Finally, <b><tt>cdj</tt></b>* can be considered an 4177*593dc095SDavid du Colombieraddition of features to the simpler monochrome drivers of Ghostscript. This 4178*593dc095SDavid du Colombieraddition of features is useful to get an idea of the functionality of 4179*593dc095SDavid du Colombier<b><tt>uniprint</tt></b>: 4180*593dc095SDavid du Colombier 4181*593dc095SDavid du Colombier<blockquote> 4182*593dc095SDavid du Colombier<dl> 4183*593dc095SDavid du Colombier<dt>Monochrome to advanced color (<b><tt>cdj</tt></b>*): 4184*593dc095SDavid du Colombier<dd>This adds color mapping and rendering functions to the driver. 4185*593dc095SDavid du ColombierError diffusion is especially important for the quality of printing. 4186*593dc095SDavid du Colombier</dl> 4187*593dc095SDavid du Colombier 4188*593dc095SDavid du Colombier<dl> 4189*593dc095SDavid du Colombier<dt>HP color to Epson Color (<b><tt>stcolor</tt></b>) 4190*593dc095SDavid du Colombier<dd>The Epson Stylus Color offered two features simultaneously: it could 4191*593dc095SDavid du Colombierproduce 720×720dpi output and it could soak the paper. In other 4192*593dc095SDavid du Colombierwords, it required more color management features inside the driver. This 4193*593dc095SDavid du Colombieris still the major conceptual difference in the data generation for HP and 4194*593dc095SDavid du ColombierEpson printers. 4195*593dc095SDavid du Colombier</dl> 4196*593dc095SDavid du Colombier 4197*593dc095SDavid du Colombier<dl> 4198*593dc095SDavid du Colombier<dt>Weaving techniques (<b><tt>stcolor</tt></b>) 4199*593dc095SDavid du Colombier<dd>Besides the internal color management, the Stylus Color did not provide 4200*593dc095SDavid du Colombierenough buffer space to operate the printer fast at 720×720dpi. The 4201*593dc095SDavid du Colombieruse of weaving could yield triple the print speed. Weaving, also called 4202*593dc095SDavid du Colombierinterleaving, is present in some monochrome drivers too. The new thing in 4203*593dc095SDavid du Colombier<b><tt>stcolor</tt></b> was the combination with error diffusion. 4204*593dc095SDavid du ColombierUnfortunately the weaving was somehow hard-coded, as the problems with the 4205*593dc095SDavid du Colombiernewer members of the Stylus Color family of printers demonstrated. 4206*593dc095SDavid du Colombier</dl> 4207*593dc095SDavid du Colombier 4208*593dc095SDavid du Colombier<dl> 4209*593dc095SDavid du Colombier<dt>Generalized output format and weaving (<b><tt>uniprint</tt></b>) 4210*593dc095SDavid du Colombier<dd>The features mentioned above yield about 90% of 4211*593dc095SDavid du Colombier<b><tt>stcolor</tt></b>'s source code; only 10% is related to the 4212*593dc095SDavid du Colombierformatting of the output. The idea to make the output format switchable 4213*593dc095SDavid du Colombiercame up soon after completing <b><tt>stcolor</tt></b>, but its final design 4214*593dc095SDavid du Colombierwas triggered by the (personal) necessity to drive a NEC P2X and a 4215*593dc095SDavid du ColombierDesignjet 750c. 4216*593dc095SDavid du Colombier</dl></blockquote> 4217*593dc095SDavid du Colombier 4218*593dc095SDavid du Colombier<p> 4219*593dc095SDavid du ColombierThus <b><tt>uniprint</tt></b> accumulates almost any features that can be 4220*593dc095SDavid du Colombierfound among the other printer drivers, which clearly has some disadvantage 4221*593dc095SDavid du Colombierin processing speed -- true in particular of version 1.75, since it was 4222*593dc095SDavid du Colombiertargetted for functionality, and several speed-gaining features were 4223*593dc095SDavid du Colombier(knowingly) omitted. 4224*593dc095SDavid du Colombier 4225*593dc095SDavid du Colombier<p> 4226*593dc095SDavid du ColombierTo summarize and to introduce the terms used in the description of the 4227*593dc095SDavid du Colombierparameters, the features of <b><tt>uniprint</tt></b> that can be 4228*593dc095SDavid du Colombierparameterized are: 4229*593dc095SDavid du Colombier 4230*593dc095SDavid du Colombier<blockquote><ul> 4231*593dc095SDavid du Colombier<li>color mapping, 4232*593dc095SDavid du Colombier<li>color rendering (error diffusion or Floyd-Steinberg), 4233*593dc095SDavid du Colombier<li>output format, including 4234*593dc095SDavid du Colombier<li>weaving. 4235*593dc095SDavid du Colombier</ul></blockquote> 4236*593dc095SDavid du Colombier 4237*593dc095SDavid du Colombier<h3><a name="Uni_make_pfile"></a>Godzilla's guide to the creation of Unified Printer Parameter (<b><tt>.upp</tt></b>) files</h3> 4238*593dc095SDavid du Colombier 4239*593dc095SDavid du Colombier<p> 4240*593dc095SDavid du ColombierHere is one of the distributed parameter files (<b><tt>stc_l.upp</tt></b>) 4241*593dc095SDavid du Colombierwith some added comments. Also see the section that describes 4242*593dc095SDavid du Colombier<a href="#Uni_all_parameters">all <b><tt>uniprint</tt></b>'s parameters in 4243*593dc095SDavid du Colombierbrief</a>. 4244*593dc095SDavid du Colombier 4245*593dc095SDavid du Colombier<pre> 4246*593dc095SDavid du Colombier-supModel="Epson Stylus Color I (and PRO Series), 360x360DpI, noWeave" 4247*593dc095SDavid du Colombier-sDEVICE=uniprint -- Select the driver 4248*593dc095SDavid du Colombier-dNOPAUSE -- Useful with printers 4249*593dc095SDavid du Colombier-dSAFER -- Provides some security 4250*593dc095SDavid du Colombier-dupColorModel=/DeviceCMYK -- Selects the color mapping 4251*593dc095SDavid du Colombier-dupRendering=/ErrorDiffusion -- Selects the color rendering 4252*593dc095SDavid du Colombier-dupOutputFormat=/EscP2 -- Selects the output format 4253*593dc095SDavid du Colombier-r360x360 -- Adjusts the resolution 4254*593dc095SDavid du Colombier-dupMargins="{ 9.0 39.96 9.0 9.0}" -- Establishes (L/B/R/T margins in points) 4255*593dc095SDavid du Colombier-dupComponentBits="{1 1 1 1}" -- Map: bits per component (default: 8) 4256*593dc095SDavid du Colombier-dupWeaveYPasses=4 -- Weave: Y-passes (default: 1) 4257*593dc095SDavid du Colombier-dupOutputPins=15 -- Format/weave: scans per Command 4258*593dc095SDavid du Colombier-dupBeginPageCommand="< -- Goes to the printer 4259*593dc095SDavid du Colombier 1b40 1b40 -- ESC '@' ESC '@' -> dual reset 4260*593dc095SDavid du Colombier 1b2847 0100 01 -- ESC '(' 'G' 1 0 1 -> graphics 4261*593dc095SDavid du Colombier 1b2869 0100 00 -- ESC '(' 'i' 1 0 1 -> no HW weave 4262*593dc095SDavid du Colombier 1b2855 0100 0A -- ESC '(' 'U' 1 0 10 -> 360dpi 4263*593dc095SDavid du Colombier 1b5500 -- ESC 'U' 0 -> bidir print 4264*593dc095SDavid du Colombier 1b2843 0200 0000 -- ESC '(' 'C' 2 0 xx -> page length 4265*593dc095SDavid du Colombier 1b2863 0400 0000 0000 -- ESC '(' 'c' 4 0 xxxx -> margins 4266*593dc095SDavid du Colombier>" -- as it is, unless: 4267*593dc095SDavid du Colombier-dupAdjustPageLengthCommand -- Adjust page length in BOP requested 4268*593dc095SDavid du Colombier-dupAdjustTopMarginCommand -- Adjust top margin in BOP 4269*593dc095SDavid du Colombier-dupAdjustBottomMarginCommand -- Adjust bottom margin in BOP 4270*593dc095SDavid du Colombier-dupEndPageCommand="(\033@\014)" -- Last (but one) data to the printer 4271*593dc095SDavid du Colombier-dupAbortCommand="(\033@\15\12\12\12\12 Printout-Aborted\15\014)" 4272*593dc095SDavid du Colombier</pre> 4273*593dc095SDavid du Colombier 4274*593dc095SDavid du Colombier<p> 4275*593dc095SDavid du ColombierThat's short, and if one removes <b><tt>upWeaveYPasses</tt></b> and 4276*593dc095SDavid du Colombier<b><tt>upOutputPins</tt></b> it becomes shorter, almost 4277*593dc095SDavid du Colombier<b><tt>stcany.upp</tt></b>. This miniature size is because I am most 4278*593dc095SDavid du Colombierfamiliar with ESC/P2, and was able to add defaults for the omitted 4279*593dc095SDavid du Colombierparameters. Now a few notes about the parameters used in this example: 4280*593dc095SDavid du Colombier 4281*593dc095SDavid du Colombier<ul> 4282*593dc095SDavid du Colombier<li><b><tt>upModel</tt></b> is a string serving as a comment (and nothing else). 4283*593dc095SDavid du Colombier 4284*593dc095SDavid du Colombier<li><a href="Use.htm#Output_device"><b><tt>DEVICE</tt></b></a>, 4285*593dc095SDavid du Colombier<a href="Use.htm#NoPause"><b><tt>NOPAUSE</tt></b></a>, <a 4286*593dc095SDavid du Colombierhref="Use.htm#Safer"><b><tt>SAFER</tt></b></a> are well-known Ghostscript 4287*593dc095SDavid du Colombierparameters described in the <a href="Use.htm">usage documentation</a>. 4288*593dc095SDavid du Colombier 4289*593dc095SDavid du Colombier<li><b><tt>upColorModel</tt></b> is one of major <b><tt>uniprint</tt></b> 4290*593dc095SDavid du Colombierparameters: it selects the color mapping and in turn the PostScript color 4291*593dc095SDavid du Colombiermodel. It supports the devices <b><tt>/DeviceGray</tt></b>, <b><tt>/DeviceRGBW</tt></b>, <b><tt>/DeviceRGB</tt></b>, <b><tt>/DeviceCMYK</tt></b>, and <b><tt>/DeviceCMYKgenerate</tt></b>. 4292*593dc095SDavid du Colombier 4293*593dc095SDavid du Colombier<li><b><tt>upRendering</tt></b> selects the (color) rendering, supporting 4294*593dc095SDavid du Colombierthe values <b><tt>/ErrorDiffusion</tt></b> and <b><tt>/FSCMYK32</tt></b>. 4295*593dc095SDavid du Colombier<b><tt>/ErrorDiffusion</tt></b> is similar to <b><tt>fsmono</tt></b>, 4296*593dc095SDavid du Colombier<b><tt>fsrgb</tt></b> and <b><tt>fsx4</tt></b> of <b><tt>stcolor</tt></b>, 4297*593dc095SDavid du Colombierwhile <b><tt>/FSCMYK32</tt></b> is (almost) identical to 4298*593dc095SDavid du Colombier<b><tt>fscmyk</tt></b> and <b><tt>hscmyk</tt></b>, but is restricted to 4299*593dc095SDavid du Colombier32-bit data and should be used in conjunction with 4300*593dc095SDavid du Colombier<b><tt>/DeviceCMYKgenerate</tt></b>. 4301*593dc095SDavid du Colombier 4302*593dc095SDavid du Colombier<li><b><tt>upOutputFormat</tt></b> selects the output method, supporting the values 4303*593dc095SDavid du Colombier<b><tt>/SunRaster</tt></b>, <b><tt>/Epson</tt></b>, <b><tt>/EscP2</tt></b>, <b><tt>/EscP2XY</tt></b>, and<b><tt>/Pcl</tt></b>. 4304*593dc095SDavid du Colombier 4305*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 4306*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>/SunRaster</tt></b> 4307*593dc095SDavid du Colombier <td> 4308*593dc095SDavid du Colombier <td>creates Sun raster files and requires no other parameters 4309*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>/Epson</tt></b> 4310*593dc095SDavid du Colombier <td> 4311*593dc095SDavid du Colombier <td>is used for the elderly ESC/P format (used by many printers) 4312*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>/EscP2</tt></b> 4313*593dc095SDavid du Colombier <td> 4314*593dc095SDavid du Colombier <td>is used by more recent Epson printers (no X weaving supported) 4315*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>/EscP2XY</tt></b> 4316*593dc095SDavid du Colombier <td> 4317*593dc095SDavid du Colombier <td>supports X-Weaving, used with 1440dpi printers and in <b><tt>stc2s_h</tt></b> 4318*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>/Pcl</tt></b> 4319*593dc095SDavid du Colombier <td> 4320*593dc095SDavid du Colombier <td>HP PCL/RTL-style output formatter without weaving 4321*593dc095SDavid du Colombier</table></blockquote> 4322*593dc095SDavid du Colombier 4323*593dc095SDavid du Colombier<li><b><tt>-r360x360</tt></b> is Ghostscript's standard 4324*593dc095SDavid du Colombier<a href="Use.htm#Resolution_switch">resolution switch</a>. 4325*593dc095SDavid du Colombier 4326*593dc095SDavid du Colombier<li><b><tt>upMargins="{ 9.0 39.96 9.0 9.0}"</tt></b> 4327*593dc095SDavid du Colombierhas function similar to the Ghostscript parameter 4328*593dc095SDavid du Colombier<b><tt>.HWMargins</tt></b>: it sets the left, bottom, right, and top 4329*593dc095SDavid du Colombiermargins in points. <b><tt>uniprint</tt></b> provides this parameter to 4330*593dc095SDavid du Colombierenable automatic left-right exchange if <b><tt>upYFlip</tt></b> is active. 4331*593dc095SDavid du Colombier 4332*593dc095SDavid du Colombier<li><b><tt>upComponentBits</tt></b> is an array of integers that selects 4333*593dc095SDavid du Colombierthe bits stored in raster memory, by default 8 bits per component. In this 4334*593dc095SDavid du Colombierexample, 1 bit is selected for each component, thus turning down the 4335*593dc095SDavid du ColombierFloyd-Steinberg algorithm (but still carrying out the time-consuming 4336*593dc095SDavid du Colombiercomputation). The related parameter "<b><tt>upComponentShift</tt></b>" 4337*593dc095SDavid du Colombiercontrols positioning the components within raster memory. Each of the 4338*593dc095SDavid du Colombiernumbers given corresponds to a component which depends on the selected 4339*593dc095SDavid du Colombier"<b><tt>upColorModel</tt></b>": 4340*593dc095SDavid du Colombier 4341*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 4342*593dc095SDavid du Colombier<tr valign=top> <td align=center> 4343*593dc095SDavid du Colombier <td> 4344*593dc095SDavid du Colombier <td align=center><b><tt>/DeviceGray</tt></b> 4345*593dc095SDavid du Colombier <td> 4346*593dc095SDavid du Colombier <td align=center><b><tt>/DeviceRGBW</tt></b> 4347*593dc095SDavid du Colombier <td> 4348*593dc095SDavid du Colombier <td align=center><b><tt>/DeviceRGB</tt></b> 4349*593dc095SDavid du Colombier <td> 4350*593dc095SDavid du Colombier <td align=center><b><tt>/DeviceCMYK</tt></b> 4351*593dc095SDavid du Colombier <td> 4352*593dc095SDavid du Colombier <td align=center><b><tt>/DeviceCMYKgenerate</tt></b> 4353*593dc095SDavid du Colombier<tr> <td colspan=11><hr> 4354*593dc095SDavid du Colombier<tr valign=top> <td align=center>0 4355*593dc095SDavid du Colombier <td> 4356*593dc095SDavid du Colombier <td align=center>White 4357*593dc095SDavid du Colombier <td> 4358*593dc095SDavid du Colombier <td align=center>White 4359*593dc095SDavid du Colombier <td> 4360*593dc095SDavid du Colombier <td align=center>Red 4361*593dc095SDavid du Colombier <td> 4362*593dc095SDavid du Colombier <td align=center>Black 4363*593dc095SDavid du Colombier <td> 4364*593dc095SDavid du Colombier <td align=center>Black 4365*593dc095SDavid du Colombier<tr valign=top> <td align=center>1 4366*593dc095SDavid du Colombier <td> 4367*593dc095SDavid du Colombier <td align=center>-- 4368*593dc095SDavid du Colombier <td> 4369*593dc095SDavid du Colombier <td align=center>Red 4370*593dc095SDavid du Colombier <td> 4371*593dc095SDavid du Colombier <td align=center>Green 4372*593dc095SDavid du Colombier <td> 4373*593dc095SDavid du Colombier <td align=center>Cyan 4374*593dc095SDavid du Colombier <td> 4375*593dc095SDavid du Colombier <td align=center>Cyan 4376*593dc095SDavid du Colombier<tr valign=top> <td align=center>2 4377*593dc095SDavid du Colombier <td> 4378*593dc095SDavid du Colombier <td align=center>-- 4379*593dc095SDavid du Colombier <td> 4380*593dc095SDavid du Colombier <td align=center>Green 4381*593dc095SDavid du Colombier <td> 4382*593dc095SDavid du Colombier <td align=center>Blue 4383*593dc095SDavid du Colombier <td> 4384*593dc095SDavid du Colombier <td align=center>Magenta 4385*593dc095SDavid du Colombier <td> 4386*593dc095SDavid du Colombier <td align=center>Magenta 4387*593dc095SDavid du Colombier<tr valign=top> <td align=center>3 4388*593dc095SDavid du Colombier <td> 4389*593dc095SDavid du Colombier <td align=center>-- 4390*593dc095SDavid du Colombier <td> 4391*593dc095SDavid du Colombier <td align=center>Blue 4392*593dc095SDavid du Colombier <td> 4393*593dc095SDavid du Colombier <td align=center>-- 4394*593dc095SDavid du Colombier <td> 4395*593dc095SDavid du Colombier <td align=center>Yellow 4396*593dc095SDavid du Colombier <td> 4397*593dc095SDavid du Colombier <td align=center>Yellow 4398*593dc095SDavid du Colombier</table> 4399*593dc095SDavid du Colombier 4400*593dc095SDavid du Colombier<p> 4401*593dc095SDavid du ColombierThis order may not be suitable for some printers, so another parameter 4402*593dc095SDavid du Colombier"<b><tt>upOutputComponentOrder</tt></b>", also an array of integers, 4403*593dc095SDavid du Colombierselects the output order using the numbers on the left. 4404*593dc095SDavid du Colombier</blockquote> 4405*593dc095SDavid du Colombier 4406*593dc095SDavid du Colombier<p> 4407*593dc095SDavid du ColombierOne group of very important parameters not used in the example above 4408*593dc095SDavid du Colombierdeserves to be mentioned here: the transfer arrays, named 4409*593dc095SDavid du Colombier"<b><tt>up</tt><em>{color}</em><tt>Transfer</tt></b>", where 4410*593dc095SDavid du Colombier<b><em>{color}</em></b> is one of the names in the table above. These are 4411*593dc095SDavid du Colombierarrays of floats in the range 0.0 - 1.0 representing the color transfer 4412*593dc095SDavid du Colombierfunctions. They are used during mapping and rendering. In the simplest 4413*593dc095SDavid du Colombiercase, these arrays ensure an equidistant distribution of the stored values 4414*593dc095SDavid du Colombierwithin the device space (which means a nonlinear mapping from Ghostscript's 4415*593dc095SDavid du Colombierpoint of view). If the given array does not cover the entire range from 0 4416*593dc095SDavid du Colombierto 1, which applies for the Stylus Color family at high resolution for some 4417*593dc095SDavid du Colombiermedia, only the relevant part gets mapped to raster memory (meaning that 4418*593dc095SDavid du Colombieris's fully utilized) and the rendering takes care of the "overhang" (in 4419*593dc095SDavid du Colombierthis case the post-diffusion of 1-bit components makes sense). 4420*593dc095SDavid du Colombier 4421*593dc095SDavid du Colombier<p> 4422*593dc095SDavid du ColombierFinally an important note on the transfer arrays: for monochrome devices 4423*593dc095SDavid du Colombierthe stored component is <b><tt>White</tt></b>, which is the way PostScript 4424*593dc095SDavid du Colombierdefines these devices, but most printers require <b><tt>Black</tt></b>. 4425*593dc095SDavid du ColombierThus one has to provide a falling "<b><tt>upWhiteTransfer</tt></b>" for 4426*593dc095SDavid du Colombiersuch printers. 4427*593dc095SDavid du Colombier 4428*593dc095SDavid du Colombier<li><b><tt>upWeaveYPasses</tt></b> is an integer that gives the number of 4429*593dc095SDavid du Colombierprint head passes required to achieve the requested Ydpi. This makes sense 4430*593dc095SDavid du Colombieronly if 4431*593dc095SDavid du Colombier 4432*593dc095SDavid du Colombier<li><b><tt>upOutputPins</tt></b> is set to something greater than 1. Thus 4433*593dc095SDavid du Colombiermultiple pins or nozzles are transferred with a single command, and of 4434*593dc095SDavid du Colombiercourse such a command must be supported by the device. 4435*593dc095SDavid du Colombier 4436*593dc095SDavid du Colombier</ul> 4437*593dc095SDavid du Colombier 4438*593dc095SDavid du Colombier<p> 4439*593dc095SDavid du ColombierIf no other weave parameters are given, <b><tt>uniprint</tt></b> computes 4440*593dc095SDavid du Colombierseveral defaults which together do no weaving. The <b><tt>/Epson</tt></b> 4441*593dc095SDavid du Colombierand <b><tt>/EscP2XY</tt></b> formats take care of 4442*593dc095SDavid du Colombier"<b><tt>upWeaveXPasses</tt></b>" too. 4443*593dc095SDavid du Colombier 4444*593dc095SDavid du Colombier<ul> 4445*593dc095SDavid du Colombier 4446*593dc095SDavid du Colombier<li><b><tt>upBeginPageCommand</tt></b> represents the data transferred to 4447*593dc095SDavid du Colombierthe printer whenever a new page begins. Before that, 4448*593dc095SDavid du Colombier"<b><tt>upBeginJobCommand</tt></b>" is written to the device only once per 4449*593dc095SDavid du Colombieroutput file. (Intended for the HP PJL sequences). 4450*593dc095SDavid du Colombier 4451*593dc095SDavid du Colombier<li><b><tt>upAdjustBottomMarginCommand</tt></b>, 4452*593dc095SDavid du Colombier<b><tt>upAdjustMediaSize</tt></b>, 4453*593dc095SDavid du Colombier<b><tt>upAdjustPageLengthCommand</tt></b>, 4454*593dc095SDavid du Colombier<b><tt>upAdjustPageWidthCommand</tt></b>, 4455*593dc095SDavid du Colombier<b><tt>upAdjustResolutionCommand</tt></b>, and 4456*593dc095SDavid du Colombier<b><tt>upAdjustTopMarginCommand</tt></b> 4457*593dc095SDavid du Colombier 4458*593dc095SDavid du Colombier<p> 4459*593dc095SDavid du ColombierNormally <b><tt>uniprint</tt></b> does not change the 4460*593dc095SDavid du Colombier"<b><tt>upBeginPageCommand</tt></b>", nor does it provide a default. 4461*593dc095SDavid du ColombierHowever, if the above boolean values are set, the corresponding values are 4462*593dc095SDavid du Colombierchanged (provided that the code of the formatters supports this change and 4463*593dc095SDavid du Colombierthe commands to be adjusted are included in the BOP string). 4464*593dc095SDavid du Colombier 4465*593dc095SDavid du Colombier<li><b><tt>upEndPageCommand</tt></b> is the fixed termination sequence for 4466*593dc095SDavid du Colombiereach page, and of course there is an "<b><tt>upEndJobCommand</tt></b>" too. 4467*593dc095SDavid du Colombier 4468*593dc095SDavid du Colombier<li><b><tt>upAbortCommand</tt></b> is written if <b><tt>uniprint</tt></b>'s 4469*593dc095SDavid du Colombierinterrupt detection is enabled and a signal is caught. It replaces 4470*593dc095SDavid du Colombier"<b><tt>upEndPageCommand</tt></b>" and "<b><tt>upEndJobCommand</tt></b>", 4471*593dc095SDavid du Colombierthus allowing the indication of an aborted job. (Ghostscript gets an error 4472*593dc095SDavid du Colombierreturn from <b><tt>uniprint</tt></b> in this case, and abandons further 4473*593dc095SDavid du Colombierprocessing.) 4474*593dc095SDavid du Colombier 4475*593dc095SDavid du Colombier</ul> 4476*593dc095SDavid du Colombier 4477*593dc095SDavid du Colombier<p> 4478*593dc095SDavid du ColombierFor the ESC/P(2) formats all commands represent binary data, while for 4479*593dc095SDavid du Colombierthe PCL/RTL formatter some of them are formats for <b><tt>fprintf</tt></b>. These strings 4480*593dc095SDavid du Colombier<b><em>must</em></b> explicitly have a trailing "\0'. 4481*593dc095SDavid du Colombier 4482*593dc095SDavid du Colombier<p> 4483*593dc095SDavid du ColombierI should write more, but the only recommendation is to 4484*593dc095SDavid du Colombiertake a look at the various parameter files. Here are a few more hints. 4485*593dc095SDavid du Colombier 4486*593dc095SDavid du Colombier<ul> 4487*593dc095SDavid du Colombier<li>If the Driver rejects a configuration, nothing happens until 4488*593dc095SDavid du Colombier<b><tt>showpage</tt></b>; then an error is raised and a message with 4489*593dc095SDavid du Colombier"CALL-REJECTED upd_print_page..." is printed on stderr. 4490*593dc095SDavid du Colombier 4491*593dc095SDavid du Colombier<li><b><tt>uniprint</tt></b> has lots of messages that can be activated by 4492*593dc095SDavid du Colombiersetting bits in the preprocessor macro <b><tt>UPD_MESSAGES</tt></b>. I 4493*593dc095SDavid du Colombierusually use the compile-time option <b><tt>-DUPD_MESSAGES=0x17</tt></b> for 4494*593dc095SDavid du Colombierconfiguration development. (For the semantics, check the 4495*593dc095SDavid du Colombier<b><tt>UPD_M_</tt></b> macros in the source.) 4496*593dc095SDavid du Colombier 4497*593dc095SDavid du Colombier<li>A program "<b><tt>uninfo.ps</tt></b>" distributed with Ghostscript 4498*593dc095SDavid du Colombierdisplays interactively in alphabetical order the contents of the current 4499*593dc095SDavid du Colombierpagedevice dictionary. This includes any parameters generated or changed by 4500*593dc095SDavid du Colombier<b><tt>uniprint</tt></b>. 4501*593dc095SDavid du Colombier</ul> 4502*593dc095SDavid du Colombier 4503*593dc095SDavid du Colombier<h3><a name="Uni_all_parameters"></a>All parameters in brief</h3> 4504*593dc095SDavid du Colombier 4505*593dc095SDavid du Colombier<p> 4506*593dc095SDavid du ColombierThis table gives a brief explanation of every parameter known to 4507*593dc095SDavid du Colombier<b><tt>uniprint</tt></b>, listing them in alphabetical order. "[ ]" 4508*593dc095SDavid du Colombierdenotes that a parameter is an array, and "(RO)" that it is read-only. 4509*593dc095SDavid du Colombier 4510*593dc095SDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0> 4511*593dc095SDavid du Colombier<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">All <b><tt>uniprint</tt></b> parameters</font><hr> 4512*593dc095SDavid du Colombier<tr valign=bottom> 4513*593dc095SDavid du Colombier <th align=left>Parameter 4514*593dc095SDavid du Colombier <td> 4515*593dc095SDavid du Colombier <th align=left>Type 4516*593dc095SDavid du Colombier <td> 4517*593dc095SDavid du Colombier <th align=left>Use 4518*593dc095SDavid du Colombier<tr> <td colspan=5><hr> 4519*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAbortCommand</tt></b> 4520*593dc095SDavid du Colombier <td> 4521*593dc095SDavid du Colombier <td>String 4522*593dc095SDavid du Colombier <td> 4523*593dc095SDavid du Colombier <td>End of page and file on interrupt 4524*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAdjustBottomMarginCommand</tt></b> 4525*593dc095SDavid du Colombier <td> 4526*593dc095SDavid du Colombier <td>Bool 4527*593dc095SDavid du Colombier <td> 4528*593dc095SDavid du Colombier <td>Manipulate bottom margin in <b><tt>upBeginPageCommand</tt></b> 4529*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAdjustMediaSizeCommand</tt></b> 4530*593dc095SDavid du Colombier <td> 4531*593dc095SDavid du Colombier <td>Bool 4532*593dc095SDavid du Colombier <td> 4533*593dc095SDavid du Colombier <td>Manipulate <b><tt>Mediasize</tt></b> [intended] 4534*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAdjustPageLengthCommand</tt></b> 4535*593dc095SDavid du Colombier <td> 4536*593dc095SDavid du Colombier <td>Bool 4537*593dc095SDavid du Colombier <td> 4538*593dc095SDavid du Colombier <td>Manipulate page length in <b><tt>upBeginPageCommand</tt></b> 4539*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAdjustPageWidthCommand</tt></b> 4540*593dc095SDavid du Colombier <td> 4541*593dc095SDavid du Colombier <td>Bool 4542*593dc095SDavid du Colombier <td> 4543*593dc095SDavid du Colombier <td>Manipulate page width in <b><tt>upBeginPageCommand</tt></b> 4544*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAdjustResolutionCommand</tt></b> 4545*593dc095SDavid du Colombier <td> 4546*593dc095SDavid du Colombier <td>Bool 4547*593dc095SDavid du Colombier <td> 4548*593dc095SDavid du Colombier <td>Manipulate resolution 4549*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upAdjustTopMarginCommand</tt></b> 4550*593dc095SDavid du Colombier <td> 4551*593dc095SDavid du Colombier <td>Bool 4552*593dc095SDavid du Colombier <td> 4553*593dc095SDavid du Colombier <td>Manipulate top margin in <b><tt>upBeginPageCommand</tt></b> 4554*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upBeginJobCommand</tt></b> 4555*593dc095SDavid du Colombier <td> 4556*593dc095SDavid du Colombier <td>String 4557*593dc095SDavid du Colombier <td> 4558*593dc095SDavid du Colombier <td>Begin each output file 4559*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upBeginPageCommand</tt></b> 4560*593dc095SDavid du Colombier <td> 4561*593dc095SDavid du Colombier <td>String 4562*593dc095SDavid du Colombier <td> 4563*593dc095SDavid du Colombier <td>Begin each page 4564*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upBlackTransfer</tt></b> 4565*593dc095SDavid du Colombier <td> 4566*593dc095SDavid du Colombier <td>Float[ ] 4567*593dc095SDavid du Colombier <td> 4568*593dc095SDavid du Colombier <td>Black transfer (CMYK only!) 4569*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upBlueTransfer</tt></b> 4570*593dc095SDavid du Colombier <td> 4571*593dc095SDavid du Colombier <td>Float[ ] 4572*593dc095SDavid du Colombier <td> 4573*593dc095SDavid du Colombier <td>Blue transfer 4574*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upColorInfo</tt></b> 4575*593dc095SDavid du Colombier <td> 4576*593dc095SDavid du Colombier <td>Int[ ] 4577*593dc095SDavid du Colombier <td> 4578*593dc095SDavid du Colombier <td>struct <b><tt>gx_device_color_info</tt></b> 4579*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upColorModel</tt></b> 4580*593dc095SDavid du Colombier <td> 4581*593dc095SDavid du Colombier <td>Name 4582*593dc095SDavid du Colombier <td> 4583*593dc095SDavid du Colombier <td>Select color mapping 4584*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upColorModelInitialized</tt></b> 4585*593dc095SDavid du Colombier <td> 4586*593dc095SDavid du Colombier <td>Bool (RO) 4587*593dc095SDavid du Colombier <td> 4588*593dc095SDavid du Colombier <td>Color mapping OK 4589*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upComponentBits</tt></b> 4590*593dc095SDavid du Colombier <td> 4591*593dc095SDavid du Colombier <td>Int[ ] 4592*593dc095SDavid du Colombier <td> 4593*593dc095SDavid du Colombier <td>Bits stored per component 4594*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upComponentShift</tt></b> 4595*593dc095SDavid du Colombier <td> 4596*593dc095SDavid du Colombier <td>Int[ ] 4597*593dc095SDavid du Colombier <td> 4598*593dc095SDavid du Colombier <td>Positioning within <b><tt>gx_color_index</tt></b> 4599*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upCyanTransfer</tt></b> 4600*593dc095SDavid du Colombier <td> 4601*593dc095SDavid du Colombier <td>Float[ ] 4602*593dc095SDavid du Colombier <td> 4603*593dc095SDavid du Colombier <td>Cyan transfer 4604*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upEndJobCommand</tt></b> 4605*593dc095SDavid du Colombier <td> 4606*593dc095SDavid du Colombier <td>String 4607*593dc095SDavid du Colombier <td> 4608*593dc095SDavid du Colombier <td>End each file unless <b><tt>upAbortCommand</tt></b> 4609*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upEndPageCommand</tt></b> 4610*593dc095SDavid du Colombier <td> 4611*593dc095SDavid du Colombier <td>String 4612*593dc095SDavid du Colombier <td> 4613*593dc095SDavid du Colombier <td>End each page unless <b><tt>upAbortCommand</tt></b> 4614*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upErrorDetected</tt></b> 4615*593dc095SDavid du Colombier <td> 4616*593dc095SDavid du Colombier <td>Bool (RO) 4617*593dc095SDavid du Colombier <td> 4618*593dc095SDavid du Colombier <td>Severe (VM) error, not fully operational 4619*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upFSFixedDirection</tt></b> 4620*593dc095SDavid du Colombier <td> 4621*593dc095SDavid du Colombier <td>Bool 4622*593dc095SDavid du Colombier <td> 4623*593dc095SDavid du Colombier <td>Inhbits direction toggling in rendering 4624*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upFSProcessWhiteSpace</tt></b> 4625*593dc095SDavid du Colombier <td> 4626*593dc095SDavid du Colombier <td>Bool 4627*593dc095SDavid du Colombier <td> 4628*593dc095SDavid du Colombier <td>Causes white-space rendering 4629*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upFSReverseDirection</tt></b> 4630*593dc095SDavid du Colombier <td> 4631*593dc095SDavid du Colombier <td>Bool 4632*593dc095SDavid du Colombier <td> 4633*593dc095SDavid du Colombier <td>Run rendering in reverse (if fixed) 4634*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upFSZeroInit</tt></b> 4635*593dc095SDavid du Colombier <td> 4636*593dc095SDavid du Colombier <td>Bool 4637*593dc095SDavid du Colombier <td> 4638*593dc095SDavid du Colombier <td>Non-random rendering initialization 4639*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upFormatXabsolute</tt></b> 4640*593dc095SDavid du Colombier <td> 4641*593dc095SDavid du Colombier <td>Bool 4642*593dc095SDavid du Colombier <td> 4643*593dc095SDavid du Colombier <td>Write absolute X coordinates 4644*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upFormatYabsolute</tt></b> 4645*593dc095SDavid du Colombier <td> 4646*593dc095SDavid du Colombier <td>Bool 4647*593dc095SDavid du Colombier <td> 4648*593dc095SDavid du Colombier <td>Write absolute Y coordinates 4649*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upGreenTransfer</tt></b> 4650*593dc095SDavid du Colombier <td> 4651*593dc095SDavid du Colombier <td>Float[ ] 4652*593dc095SDavid du Colombier <td> 4653*593dc095SDavid du Colombier <td>Green transfer 4654*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upMagentaTransfer</tt></b> 4655*593dc095SDavid du Colombier <td> 4656*593dc095SDavid du Colombier <td>Float[ ] 4657*593dc095SDavid du Colombier <td> 4658*593dc095SDavid du Colombier <td>Magenta transfer 4659*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upMargins</tt></b> 4660*593dc095SDavid du Colombier <td> 4661*593dc095SDavid du Colombier <td>Float[ ] 4662*593dc095SDavid du Colombier <td> 4663*593dc095SDavid du Colombier <td>L/B/R/T margins in points 4664*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upModel</tt></b> 4665*593dc095SDavid du Colombier <td> 4666*593dc095SDavid du Colombier <td>String 4667*593dc095SDavid du Colombier <td> 4668*593dc095SDavid du Colombier <td>Comment string, holds some info 4669*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputAborted</tt></b> 4670*593dc095SDavid du Colombier <td> 4671*593dc095SDavid du Colombier <td>Bool (RO) 4672*593dc095SDavid du Colombier <td> 4673*593dc095SDavid du Colombier <td>Caught an interrupt 4674*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputBuffers</tt></b> 4675*593dc095SDavid du Colombier <td> 4676*593dc095SDavid du Colombier <td>Int 4677*593dc095SDavid du Colombier <td> 4678*593dc095SDavid du Colombier <td>Number of rendering buffers (2^<small><sup><b>N</b></sup></small>) 4679*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputComponentOrder</tt></b> 4680*593dc095SDavid du Colombier <td> 4681*593dc095SDavid du Colombier <td>Int[ ] 4682*593dc095SDavid du Colombier <td> 4683*593dc095SDavid du Colombier <td>Order of components when printing 4684*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputComponents</tt></b> 4685*593dc095SDavid du Colombier <td> 4686*593dc095SDavid du Colombier <td>Int 4687*593dc095SDavid du Colombier <td> 4688*593dc095SDavid du Colombier <td>Number of written components, not fully operational 4689*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputFormat</tt></b> 4690*593dc095SDavid du Colombier <td> 4691*593dc095SDavid du Colombier <td>Name 4692*593dc095SDavid du Colombier <td> 4693*593dc095SDavid du Colombier <td>Select output format 4694*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputFormatInitialized</tt></b> 4695*593dc095SDavid du Colombier <td> 4696*593dc095SDavid du Colombier <td>Bool (RO) 4697*593dc095SDavid du Colombier <td> 4698*593dc095SDavid du Colombier <td>Format data OK 4699*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputHeight</tt></b> 4700*593dc095SDavid du Colombier <td> 4701*593dc095SDavid du Colombier <td>Int 4702*593dc095SDavid du Colombier <td> 4703*593dc095SDavid du Colombier <td>Output height in pixels 4704*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputPins</tt></b> 4705*593dc095SDavid du Colombier <td> 4706*593dc095SDavid du Colombier <td>Int 4707*593dc095SDavid du Colombier <td> 4708*593dc095SDavid du Colombier <td>Number of pins / nozzles per command 4709*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputWidth</tt></b> 4710*593dc095SDavid du Colombier <td> 4711*593dc095SDavid du Colombier <td>Int 4712*593dc095SDavid du Colombier <td> 4713*593dc095SDavid du Colombier <td>Output width in pixels 4714*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputXOffset</tt></b> 4715*593dc095SDavid du Colombier <td> 4716*593dc095SDavid du Colombier <td>Int 4717*593dc095SDavid du Colombier <td> 4718*593dc095SDavid du Colombier <td>Offset in pixels, if <b><tt>upFormatXabsolute</tt></b> 4719*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputXStep</tt></b> 4720*593dc095SDavid du Colombier <td> 4721*593dc095SDavid du Colombier <td>Int 4722*593dc095SDavid du Colombier <td> 4723*593dc095SDavid du Colombier <td>Divisor or multiplier for X coords 4724*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputYOffset</tt></b> 4725*593dc095SDavid du Colombier <td> 4726*593dc095SDavid du Colombier <td>Int 4727*593dc095SDavid du Colombier <td> 4728*593dc095SDavid du Colombier <td>Offset in pixels, if <b><tt>upFormatYabsolute</tt></b> 4729*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upOutputYStep</tt></b> 4730*593dc095SDavid du Colombier <td> 4731*593dc095SDavid du Colombier <td>Int 4732*593dc095SDavid du Colombier <td> 4733*593dc095SDavid du Colombier <td>Divisor or multiplier for Y coords 4734*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upRasterBufferInitialized</tt></b> 4735*593dc095SDavid du Colombier <td> 4736*593dc095SDavid du Colombier <td>Bool (RO) 4737*593dc095SDavid du Colombier <td> 4738*593dc095SDavid du Colombier <td>GS buffer OK 4739*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upRedTransfer</tt></b> 4740*593dc095SDavid du Colombier <td> 4741*593dc095SDavid du Colombier <td>Float[ ] 4742*593dc095SDavid du Colombier <td> 4743*593dc095SDavid du Colombier <td>Red transfer 4744*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upRendering</tt></b> 4745*593dc095SDavid du Colombier <td> 4746*593dc095SDavid du Colombier <td>Name 4747*593dc095SDavid du Colombier <td> 4748*593dc095SDavid du Colombier <td>Select rendering algorithm 4749*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upRenderingInitialized</tt></b> 4750*593dc095SDavid du Colombier <td> 4751*593dc095SDavid du Colombier <td>Bool (RO) 4752*593dc095SDavid du Colombier <td> 4753*593dc095SDavid du Colombier <td>Rendering parameters OK 4754*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upSelectComponentCommands</tt></b> 4755*593dc095SDavid du Colombier <td> 4756*593dc095SDavid du Colombier <td>String[ ] 4757*593dc095SDavid du Colombier <td> 4758*593dc095SDavid du Colombier <td>Establish color (output order!) 4759*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upSetLineFeedCommand</tt></b> 4760*593dc095SDavid du Colombier <td> 4761*593dc095SDavid du Colombier <td>String 4762*593dc095SDavid du Colombier <td> 4763*593dc095SDavid du Colombier <td>Adjust linefeed (Epson only) 4764*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upVersion</tt></b> 4765*593dc095SDavid du Colombier <td> 4766*593dc095SDavid du Colombier <td>String (RO) 4767*593dc095SDavid du Colombier <td> 4768*593dc095SDavid du Colombier <td>Source code version 4769*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveFinalPins</tt></b> 4770*593dc095SDavid du Colombier <td> 4771*593dc095SDavid du Colombier <td>Int[ ] 4772*593dc095SDavid du Colombier <td> 4773*593dc095SDavid du Colombier <td>Number of bottom pins on EOP passes 4774*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveFinalScan</tt></b> 4775*593dc095SDavid du Colombier <td> 4776*593dc095SDavid du Colombier <td>Int 4777*593dc095SDavid du Colombier <td> 4778*593dc095SDavid du Colombier <td>Begin EOP passes (Y-coord) 4779*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveFinalXStarts</tt></b> 4780*593dc095SDavid du Colombier <td> 4781*593dc095SDavid du Colombier <td>Int[ ] 4782*593dc095SDavid du Colombier <td> 4783*593dc095SDavid du Colombier <td>X-pass indices for EOP passes 4784*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveFinalYFeeds</tt></b> 4785*593dc095SDavid du Colombier <td> 4786*593dc095SDavid du Colombier <td>Int[ ] 4787*593dc095SDavid du Colombier <td> 4788*593dc095SDavid du Colombier <td>Y increments for EOP passes 4789*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveInitialPins</tt></b> 4790*593dc095SDavid du Colombier <td> 4791*593dc095SDavid du Colombier <td>Int[ ] 4792*593dc095SDavid du Colombier <td> 4793*593dc095SDavid du Colombier <td>Number of top pins on BOP passes 4794*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveInitialScan</tt></b> 4795*593dc095SDavid du Colombier <td> 4796*593dc095SDavid du Colombier <td>Int 4797*593dc095SDavid du Colombier <td> 4798*593dc095SDavid du Colombier <td>End BOP passes (Y coord) 4799*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveInitialXStarts</tt></b> 4800*593dc095SDavid du Colombier <td> 4801*593dc095SDavid du Colombier <td>Int[ ] 4802*593dc095SDavid du Colombier <td> 4803*593dc095SDavid du Colombier <td>X-pass indices for BOP passes 4804*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveInitialYFeeds</tt></b> 4805*593dc095SDavid du Colombier <td> 4806*593dc095SDavid du Colombier <td>int[ ] 4807*593dc095SDavid du Colombier <td> 4808*593dc095SDavid du Colombier <td>Y increments for BOP passes 4809*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeavePasses</tt></b> 4810*593dc095SDavid du Colombier <td> 4811*593dc095SDavid du Colombier <td>Int 4812*593dc095SDavid du Colombier <td> 4813*593dc095SDavid du Colombier <td>XPasses × YPasses 4814*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveXPasses</tt></b> 4815*593dc095SDavid du Colombier <td> 4816*593dc095SDavid du Colombier <td>Int 4817*593dc095SDavid du Colombier <td> 4818*593dc095SDavid du Colombier <td>Number of X passes 4819*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveXStarts</tt></b> 4820*593dc095SDavid du Colombier <td> 4821*593dc095SDavid du Colombier <td>Int[ ] 4822*593dc095SDavid du Colombier <td> 4823*593dc095SDavid du Colombier <td>X-pass indices for normal passes 4824*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveYFeeds</tt></b> 4825*593dc095SDavid du Colombier <td> 4826*593dc095SDavid du Colombier <td>Int[ ] 4827*593dc095SDavid du Colombier <td> 4828*593dc095SDavid du Colombier <td>Y increments for normal passes 4829*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveYOffset</tt></b> 4830*593dc095SDavid du Colombier <td> 4831*593dc095SDavid du Colombier <td>Int 4832*593dc095SDavid du Colombier <td> 4833*593dc095SDavid du Colombier <td>Number of blank or incomplete scans at BOP 4834*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWeaveYPasses</tt></b> 4835*593dc095SDavid du Colombier <td> 4836*593dc095SDavid du Colombier <td>Int 4837*593dc095SDavid du Colombier <td> 4838*593dc095SDavid du Colombier <td>Number of X passes 4839*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWhiteTransfer</tt></b> 4840*593dc095SDavid du Colombier <td> 4841*593dc095SDavid du Colombier <td>Float[ ] 4842*593dc095SDavid du Colombier <td> 4843*593dc095SDavid du Colombier <td>White transfer (monochrome devices!) 4844*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWriteComponentCommands</tt></b> 4845*593dc095SDavid du Colombier <td> 4846*593dc095SDavid du Colombier <td>String[ ] 4847*593dc095SDavid du Colombier <td> 4848*593dc095SDavid du Colombier <td>Commands to write each component 4849*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upWroteData</tt></b> 4850*593dc095SDavid du Colombier <td> 4851*593dc095SDavid du Colombier <td>Bool (RO) 4852*593dc095SDavid du Colombier <td> 4853*593dc095SDavid du Colombier <td>Something (<b><tt>BeginJob</tt></b>) written to output 4854*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upXMoveCommand</tt></b> 4855*593dc095SDavid du Colombier <td> 4856*593dc095SDavid du Colombier <td>String 4857*593dc095SDavid du Colombier <td> 4858*593dc095SDavid du Colombier <td>X positioning command 4859*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upXStepCommand</tt></b> 4860*593dc095SDavid du Colombier <td> 4861*593dc095SDavid du Colombier <td>String 4862*593dc095SDavid du Colombier <td> 4863*593dc095SDavid du Colombier <td>Single step to the right 4864*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upYFlip</tt></b> 4865*593dc095SDavid du Colombier <td> 4866*593dc095SDavid du Colombier <td>Bool 4867*593dc095SDavid du Colombier <td> 4868*593dc095SDavid du Colombier <td>Flips output along the Y axis 4869*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upYMoveCommand</tt></b> 4870*593dc095SDavid du Colombier <td> 4871*593dc095SDavid du Colombier <td>String 4872*593dc095SDavid du Colombier <td> 4873*593dc095SDavid du Colombier <td>Y positioning command 4874*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upYStepCommand</tt></b> 4875*593dc095SDavid du Colombier <td> 4876*593dc095SDavid du Colombier <td>String 4877*593dc095SDavid du Colombier <td> 4878*593dc095SDavid du Colombier <td>Single step down 4879*593dc095SDavid du Colombier<tr valign=top> <td><b><tt>upYellowTransfer</tt></b> 4880*593dc095SDavid du Colombier <td> 4881*593dc095SDavid du Colombier <td>Float[ ] 4882*593dc095SDavid du Colombier <td> 4883*593dc095SDavid du Colombier <td>Yellow transfer 4884*593dc095SDavid du Colombier</table></blockquote> 4885*593dc095SDavid du Colombier 4886*593dc095SDavid du Colombier<h3><a name="Uni_honors"></a><b><tt>uniprint</tt></b>'s Roll of Honor</h3> 4887*593dc095SDavid du Colombier 4888*593dc095SDavid du Colombier<p> 4889*593dc095SDavid du ColombierI should mention all of the people who were involved in 4890*593dc095SDavid du Colombier<b><tt>stcolor</tt></b>'s evolution, but I've decided to start from scratch 4891*593dc095SDavid du Colombierhere for <b><tt>uniprint</tt></b>: 4892*593dc095SDavid du Colombier 4893*593dc095SDavid du Colombier<blockquote> 4894*593dc095SDavid du Colombier<dl> 4895*593dc095SDavid du Colombier<dt>John P. Beale 4896*593dc095SDavid du Colombier<dd>for testing the <b><tt>stc600</tt></b> modes 4897*593dc095SDavid du Colombier<dt>Bill Davidson 4898*593dc095SDavid du Colombier<dd>who triggered some weaving research and tested <b><tt>stc2s_h</tt></b> 4899*593dc095SDavid du Colombier<dt>L. Peter Deutsch 4900*593dc095SDavid du Colombier<dd>who triggered ease of configuration 4901*593dc095SDavid du Colombier<dt>Mark Goldberg 4902*593dc095SDavid du Colombier<dd>who prepared the <b><tt>stc500</tt></b> transfers 4903*593dc095SDavid du Colombier<dt>Scott F. Johnston and Scott J. Kramer 4904*593dc095SDavid du Colombier<dd>for testing the <b><tt>stc800</tt></b> modes 4905*593dc095SDavid du Colombier<dt>Martin Lottermoser 4906*593dc095SDavid du Colombier<dd>for his great commented H-P DeskJet driver 4907*593dc095SDavid du Colombier<dt>Helmut Riegler 4908*593dc095SDavid du Colombier<dd>for the BJC extension 4909*593dc095SDavid du Colombier<dt>Hans-Gerd Straeter 4910*593dc095SDavid du Colombier<dd>for some measured transfer curves and more 4911*593dc095SDavid du Colombier<dt>Uli Wortmann 4912*593dc095SDavid du Colombier<dd>for discussions and his <b><tt>cdj850</tt></b> driver 4913*593dc095SDavid du Colombier<dt>My family 4914*593dc095SDavid du Colombier<dd>for tolerating my printer-driver hacking 4915*593dc095SDavid du Colombier</dl> 4916*593dc095SDavid du Colombier</blockquote> 4917*593dc095SDavid du Colombier 4918*593dc095SDavid du Colombier<address> 4919*593dc095SDavid du ColombierGunther Hess<br> 4920*593dc095SDavid du ColombierDuesseldorfer Landstr. 16b<br> 4921*593dc095SDavid du ColombierD-47249 Duisburg<br> 4922*593dc095SDavid du ColombierGermany<br> 4923*593dc095SDavid du Colombier+49 203 376273 telephone (MET evening hours)<br> 4924*593dc095SDavid du Colombier<<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>> 4925*593dc095SDavid du Colombier</address> 4926*593dc095SDavid du Colombier<h3><a name="Uni_weaving_howto"></a><tt>Uniprint</tt> weaving parameters howto</h3> 4927*593dc095SDavid du ColombierThis section was contributed by Glenn Ramsey.<p> 4928*593dc095SDavid du Colombier<p>I wrote this because the documentation was very brief and I really struggled 4929*593dc095SDavid du Colombierwith it for a while, but it is very simple once you understand what is going 4930*593dc095SDavid du Colombieron. 4931*593dc095SDavid du Colombier<p>This only describes how to work out the Y parameters, I haven't looked 4932*593dc095SDavid du Colombierat the X parameters yet. 4933*593dc095SDavid du Colombier<ol> 4934*593dc095SDavid du Colombier<li> 4935*593dc095SDavid du Colombier<b>Determine the nozzle geometry (upOutputPins)</b> 4936*593dc095SDavid du Colombier<p> 4937*593dc095SDavid du ColombierYou need to know how many nozzles the printer has and the spacing between 4938*593dc095SDavid du Colombierthem. Usually you can find this out from the printer manual, or the printer 4939*593dc095SDavid du Colombiersupplier, but you may have to dissect a couple of printer output files 4940*593dc095SDavid du Colombierproduced with the driver supplied with the printer. There is a utility 4941*593dc095SDavid du Colombiercalled escp2ras<a href="#escp2ras"><sup>*</sup></a> that will help with that. 4942*593dc095SDavid du ColombierSometimes the term pin is used instead of nozzle but they mean the same thing. 4943*593dc095SDavid du Colombier<p>The number of nozzles will be the value assigned to the upOutputPins 4944*593dc095SDavid du Colombierparameter. 4945*593dc095SDavid du Colombier<p>Actually you don't have to print with all the pins available but for 4946*593dc095SDavid du Colombierthe purpose of demonstration I'll assume that we are using them all. 4947*593dc095SDavid du Colombier<p> 4948*593dc095SDavid du Colombier<a name="escp2ras"></a>* escp2ras is available from Gunther Hess' page at <a href="http://www-md.e-technik.uni-rostock.de/ma/gunther/gs/index.html">http://www-md.e-technik.uni-rostock.de/ma/gunther/gs/index.html</a> 4949*593dc095SDavid du Colombier</li> 4950*593dc095SDavid du Colombier<p> 4951*593dc095SDavid du Colombier<li><b>Determine how many passes are required (upWeaveYPasses)</b> 4952*593dc095SDavid du Colombier<p>The number of passes required is going to depend on the required resolution 4953*593dc095SDavid du Colombierand the nozzle spacing. 4954*593dc095SDavid du Colombier<blockquote> 4955*593dc095SDavid du Colombier<tt>passes = resolution * nozzle spacing 4956*593dc095SDavid du Colombier</tt> 4957*593dc095SDavid du Colombier</blockquote> 4958*593dc095SDavid du ColombierThis will be the value assigned to the upWeaveYPasses parameter. 4959*593dc095SDavid du Colombier<p>For example if the desired resolution is 360 dpi and the nozzles are 4960*593dc095SDavid du Colombierspaced at 1/90in then 360 * 1/90 = 4 passes are required. For 720 dpi 8 4961*593dc095SDavid du Colombierpasses would be required. The printer would, of course, have to be capable 4962*593dc095SDavid du Colombierof moving the paper in increments of either 360 or 720 dpi too. 4963*593dc095SDavid du Colombier</li> 4964*593dc095SDavid du Colombier<p> 4965*593dc095SDavid du Colombier<li> 4966*593dc095SDavid du Colombier<b>Determine the normal Y feed increment (upWeaveYFeeds)</b> 4967*593dc095SDavid du Colombier<p> 4968*593dc095SDavid du ColombierYou need to work out how much to feed the paper so that when the paper 4969*593dc095SDavid du Colombierhas moved by one head length in however many passes you have then each 4970*593dc095SDavid du Colombierrow space on the paper has been passed over by at least one nozzle. There 4971*593dc095SDavid du Colombierwill be one feed value for each pass and the feed values must comply with 4972*593dc095SDavid du Colombierthe following rules: 4973*593dc095SDavid du Colombier<blockquote> 4974*593dc095SDavid du Colombier<tt> 4975*593dc095SDavid du Colombier<p>sum of feeds = passes * nozzles 4976*593dc095SDavid du Colombier<br>feed%passes != 0 (feed is not exactly divisible by passes) 4977*593dc095SDavid du Colombier<br>sum of (nozzles - feed) = 0 4978*593dc095SDavid du Colombier</tt> 4979*593dc095SDavid du Colombier</blockquote> 4980*593dc095SDavid du Colombier<p>For example if passes=4 and nozzles=15, then sum of feeds=60. The feed 4981*593dc095SDavid du Colombiervalues could be 1,1,1,57 or 15,15,15,15 or 14,15,18,13. 4982*593dc095SDavid du Colombier<p>These values will be assigned to the upWeaveYFeeds parameter. 4983*593dc095SDavid du Colombier<p>You would need to experiment to see what combination looks best on the 4984*593dc095SDavid du Colombierprinter. 4985*593dc095SDavid du Colombier<p>I found it convenient to draw several lines of nozzles and then move 4986*593dc095SDavid du Colombierthem around to see how the different combinations would fill the paper. 4987*593dc095SDavid du ColombierA computer drawing tool makes this easier than pencil and paper (I used 4988*593dc095SDavid du ColombierDia, a GNOME app). The number of nozzles would probably be be a good place 4989*593dc095SDavid du Colombierto start. 4990*593dc095SDavid du Colombier<p>Remember that if the number of passes is more than 1 then the feed increment 4991*593dc095SDavid du Colombierwill be less than the nozzle spacing and <tt>passes × feed increment size</tt> 4992*593dc095SDavid du Colombiermust equal the physical distance between each nozzle. 4993*593dc095SDavid du Colombier</li> 4994*593dc095SDavid du Colombier<p> 4995*593dc095SDavid du Colombier<li> 4996*593dc095SDavid du Colombier<b>Determine the beginning of page pins (upWeaveInitialPins)</b> 4997*593dc095SDavid du Colombier<p> 4998*593dc095SDavid du ColombierThese values will be assigned to the upWeaveInitialPins parameter and are 4999*593dc095SDavid du Colombierthe numbers of nozzles to operate in each of the initial passes at the top 5000*593dc095SDavid du Colombierof a page. The nozzles that the values refer to are the topmost nozzles 5001*593dc095SDavid du Colombieron the head, nearest the top margin. If the image doesn't start at the 5002*593dc095SDavid du Colombiertop margin then uniprint doesn't use these feeds. 5003*593dc095SDavid du Colombier<p>I don't know a mathematical relation for this except that at least one 5004*593dc095SDavid du Colombierof the values must be the number of nozzles, but I'm sure that there must 5005*593dc095SDavid du Colombierbe one. I used a graphical method, the description that follows refers 5006*593dc095SDavid du Colombierto the ascii diagram in below. 5007*593dc095SDavid du Colombier<p>Draw a line of nozzles for each pass arranged as they would be using 5008*593dc095SDavid du Colombierthe normal Y feed increment determined in step 3. In the diagram below 5009*593dc095SDavid du Colombierthis would be passes 5-8. 5010*593dc095SDavid du Colombier<p>Draw a line of nozzles that would print just before the first normal 5011*593dc095SDavid du Colombierpass. The feed increment for this pass will be close to and most likely 5012*593dc095SDavid du Colombier1 or 2 units less than the feed increment of the last normal pass. In the 5013*593dc095SDavid du Colombierexample below this line is pass 4 and the feed increment is 13 whereas 5014*593dc095SDavid du Colombierthe normal feed increment is 15. 5015*593dc095SDavid du Colombier<p>Draw each pass before that with a small feed increment so that if all 5016*593dc095SDavid du Colombierof the nozzles appearing above the first nozzle of the first normal pass 5017*593dc095SDavid du Colombieroperate then all of the spaces will be filled. This feed increment is usually 5018*593dc095SDavid du Colombier1 except in cases where some jiggery pokery is going on to make the printer 5019*593dc095SDavid du Colombierprint at an apparent higher resolution than the nozzle diameter. 5020*593dc095SDavid du Colombier<p>Now select the nozzles that will operate in each of theses initial passes 5021*593dc095SDavid du Colombierso that the paper is filled. In each pass the nozzles must be adjacent 5022*593dc095SDavid du Colombierto each other and at least one of the passes will have all the nozzles 5023*593dc095SDavid du Colombieroperating. I suspect that for each combination of normal Y feed increments 5024*593dc095SDavid du Colombierthere will only be one set of valid beginning of page increments. 5025*593dc095SDavid du Colombier</li> 5026*593dc095SDavid du Colombier</ol> 5027*593dc095SDavid du Colombier<h4>Example: stc.upp from Aladdin Ghostscript 6.01</h4> 5028*593dc095SDavid du Colombier15 nozzles spaced at 1/90 in, 360 dpi requires 4 passes. 5029*593dc095SDavid du Colombier<blockquote><tt><pre> 5030*593dc095SDavid du Colombier-dupWeaveYPasses=4 5031*593dc095SDavid du Colombier-dupOutputPins=15 5032*593dc095SDavid du Colombier-dupWeaveYFeeds="{15 15 15 15}" 5033*593dc095SDavid du Colombier-dupWeaveInitialYFeeds="{1 1 1 13}" 5034*593dc095SDavid du Colombier-dupWeaveInitialPins="{ 4 15 11 7}" 5035*593dc095SDavid du Colombier</pre></tt></blockquote> 5036*593dc095SDavid du ColombierThe following diagram shows which nozzles operate during each pass. 5037*593dc095SDavid du Colombier<br>Passes 1-4 are beginning of page passes and passes 5-8 are normal passes. 5038*593dc095SDavid du Colombier<blockquote> 5039*593dc095SDavid du Colombier<p>x=nozzle operates, o=nozzle not used in this pass<tt></tt> 5040*593dc095SDavid du Colombier<p><tt> 1 2 3 4 5 6 7 8 - pass no</tt> 5041*593dc095SDavid du Colombier<br><tt>0 x</tt> 5042*593dc095SDavid du Colombier<br><tt>1 x</tt> 5043*593dc095SDavid du Colombier<br><tt>2 x</tt> 5044*593dc095SDavid du Colombier<br><tt>3 x</tt> 5045*593dc095SDavid du Colombier<br><tt>4 x</tt> 5046*593dc095SDavid du Colombier<br><tt>5 x</tt> 5047*593dc095SDavid du Colombier<br><tt>6 x</tt> 5048*593dc095SDavid du Colombier<br><tt>7 x</tt> 5049*593dc095SDavid du Colombier<br><tt>8 x</tt> 5050*593dc095SDavid du Colombier<br><tt>9 x</tt> 5051*593dc095SDavid du Colombier<br><tt>0 x</tt> 5052*593dc095SDavid du Colombier<br><tt>1 x</tt> 5053*593dc095SDavid du Colombier<br><tt>2 x</tt> 5054*593dc095SDavid du Colombier<br><tt>3 x</tt> 5055*593dc095SDavid du Colombier<br><tt>4 x</tt> 5056*593dc095SDavid du Colombier<br><tt>5 x</tt> 5057*593dc095SDavid du Colombier<br><tt>6 o x</tt> 5058*593dc095SDavid du Colombier<br><tt>7 x</tt> 5059*593dc095SDavid du Colombier<br><tt>8 x</tt> 5060*593dc095SDavid du Colombier<br><tt>9 x</tt> 5061*593dc095SDavid du Colombier<br><tt>0 o x</tt> 5062*593dc095SDavid du Colombier<br><tt>1 x</tt> 5063*593dc095SDavid du Colombier<br><tt>2 x</tt> 5064*593dc095SDavid du Colombier<br><tt>3 x</tt> 5065*593dc095SDavid du Colombier<br><tt>4 o x</tt> 5066*593dc095SDavid du Colombier<br><tt>5 x</tt> 5067*593dc095SDavid du Colombier<br><tt>6 x</tt> 5068*593dc095SDavid du Colombier<br><tt>7 x</tt> 5069*593dc095SDavid du Colombier<br><tt>8 o x</tt> 5070*593dc095SDavid du Colombier<br><tt>9 x</tt> 5071*593dc095SDavid du Colombier<br><tt>0 x</tt> 5072*593dc095SDavid du Colombier<br><tt>1 o x</tt> 5073*593dc095SDavid du Colombier<br><tt>2 o x</tt> 5074*593dc095SDavid du Colombier<br><tt>3 x</tt> 5075*593dc095SDavid du Colombier<br><tt>4 x</tt> 5076*593dc095SDavid du Colombier<br><tt>5 o x</tt> 5077*593dc095SDavid du Colombier<br><tt>6 o x</tt> 5078*593dc095SDavid du Colombier<br><tt>7 x</tt> 5079*593dc095SDavid du Colombier<br><tt>8 x</tt> 5080*593dc095SDavid du Colombier<br><tt>9 o x</tt> 5081*593dc095SDavid du Colombier<br><tt>0 o x</tt> 5082*593dc095SDavid du Colombier<br><tt>1 x</tt> 5083*593dc095SDavid du Colombier<br><tt>2 x</tt> 5084*593dc095SDavid du Colombier<br><tt>3 o x</tt> 5085*593dc095SDavid du Colombier<br><tt>4 o x</tt> 5086*593dc095SDavid du Colombier<br><tt>5 x</tt> 5087*593dc095SDavid du Colombier<br><tt>6 o 5088*593dc095SDavid du Colombierx</tt> 5089*593dc095SDavid du Colombier<br><tt>7 o x</tt> 5090*593dc095SDavid du Colombier<br><tt>8 o x</tt> 5091*593dc095SDavid du Colombier<br><tt>9 x</tt> 5092*593dc095SDavid du Colombier<br><tt>0 o 5093*593dc095SDavid du Colombierx</tt> 5094*593dc095SDavid du Colombier<br><tt>1 o x</tt> 5095*593dc095SDavid du Colombier<br><tt>2 o x</tt> 5096*593dc095SDavid du Colombier<br><tt>3 x</tt> 5097*593dc095SDavid du Colombier<br><tt>4 o 5098*593dc095SDavid du Colombierx</tt> 5099*593dc095SDavid du Colombier<br><tt>5 o x</tt> 5100*593dc095SDavid du Colombier<br><tt>6 o x</tt> 5101*593dc095SDavid du Colombier<br><tt>7 x</tt> 5102*593dc095SDavid du Colombier<br><tt>8 o 5103*593dc095SDavid du Colombierx</tt> 5104*593dc095SDavid du Colombier<br><tt>9 o x</tt> 5105*593dc095SDavid du Colombier<br><tt>0 x</tt> 5106*593dc095SDavid du Colombier<br><tt>1 5107*593dc095SDavid du Colombierx</tt> 5108*593dc095SDavid du Colombier<br><tt>2 5109*593dc095SDavid du Colombierx</tt> 5110*593dc095SDavid du Colombier<br><tt>3 x</tt> 5111*593dc095SDavid du Colombier<br><tt>4 x</tt> 5112*593dc095SDavid du Colombier<br><tt>5 5113*593dc095SDavid du Colombierx</tt> 5114*593dc095SDavid du Colombier<br><tt>6 5115*593dc095SDavid du Colombierx</tt> 5116*593dc095SDavid du Colombier<br><tt>7 x</tt> 5117*593dc095SDavid du Colombier<br><tt>8 x</tt> 5118*593dc095SDavid du Colombier<br><tt>9 5119*593dc095SDavid du Colombierx</tt> 5120*593dc095SDavid du Colombier<br><tt>0 5121*593dc095SDavid du Colombierx</tt> 5122*593dc095SDavid du Colombier<br><tt>1 x</tt> 5123*593dc095SDavid du Colombier<br><tt>2 x</tt> 5124*593dc095SDavid du Colombier<br><tt>3 5125*593dc095SDavid du Colombierx</tt> 5126*593dc095SDavid du Colombier<br><tt>4 5127*593dc095SDavid du Colombierx</tt> 5128*593dc095SDavid du Colombier<br><tt>5 x</tt> 5129*593dc095SDavid du Colombier<br><tt>6</tt> 5130*593dc095SDavid du Colombier<br><tt>7 5131*593dc095SDavid du Colombierx</tt> 5132*593dc095SDavid du Colombier<br><tt>8 5133*593dc095SDavid du Colombierx</tt> 5134*593dc095SDavid du Colombier<br><tt>9 x</tt> 5135*593dc095SDavid du Colombier<br><tt>0</tt> 5136*593dc095SDavid du Colombier<br><tt>1 5137*593dc095SDavid du Colombierx</tt> 5138*593dc095SDavid du Colombier<br><tt>2 5139*593dc095SDavid du Colombierx</tt> 5140*593dc095SDavid du Colombier<br><tt>3 x</tt> 5141*593dc095SDavid du Colombier<br><tt>4</tt> 5142*593dc095SDavid du Colombier<br><tt>5 5143*593dc095SDavid du Colombierx</tt> 5144*593dc095SDavid du Colombier<br><tt>6 5145*593dc095SDavid du Colombierx</tt> 5146*593dc095SDavid du Colombier<br><tt>7 x</tt> 5147*593dc095SDavid du Colombier<br><tt>8</tt> 5148*593dc095SDavid du Colombier<br><tt>9 5149*593dc095SDavid du Colombierx</tt> 5150*593dc095SDavid du Colombier<br><tt>0 5151*593dc095SDavid du Colombierx</tt> 5152*593dc095SDavid du Colombier<br><tt>1</tt> 5153*593dc095SDavid du Colombier<br><tt>2</tt> 5154*593dc095SDavid du Colombier<br><tt>3 5155*593dc095SDavid du Colombierx</tt> 5156*593dc095SDavid du Colombier<br><tt>4 5157*593dc095SDavid du Colombierx</tt> 5158*593dc095SDavid du Colombier<br><tt>5</tt> 5159*593dc095SDavid du Colombier<br><tt>6</tt> 5160*593dc095SDavid du Colombier<br><tt>7 5161*593dc095SDavid du Colombierx</tt> 5162*593dc095SDavid du Colombier<br><tt>8 5163*593dc095SDavid du Colombierx</tt> 5164*593dc095SDavid du Colombier<br><tt>9</tt> 5165*593dc095SDavid du Colombier<br><tt>0</tt> 5166*593dc095SDavid du Colombier<br><tt>1 5167*593dc095SDavid du Colombierx</tt> 5168*593dc095SDavid du Colombier<br><tt>2 5169*593dc095SDavid du Colombierx</tt> 5170*593dc095SDavid du Colombier<br><tt>3</tt> 5171*593dc095SDavid du Colombier<br><tt>4</tt> 5172*593dc095SDavid du Colombier<br><tt>5 5173*593dc095SDavid du Colombierx</tt> 5174*593dc095SDavid du Colombier<br><tt>6</tt> 5175*593dc095SDavid du Colombier<br><tt>7</tt> 5176*593dc095SDavid du Colombier<br><tt>8</tt> 5177*593dc095SDavid du Colombier<br><tt>9 5178*593dc095SDavid du Colombierx</tt> 5179*593dc095SDavid du Colombier<br><tt>0</tt> 5180*593dc095SDavid du Colombier<br><tt>1</tt> 5181*593dc095SDavid du Colombier<br><tt>2</tt> 5182*593dc095SDavid du Colombier<br><tt>3 5183*593dc095SDavid du Colombierx</tt> 5184*593dc095SDavid du Colombier<br><tt>4</tt> 5185*593dc095SDavid du Colombier<br><tt>5</tt> 5186*593dc095SDavid du Colombier<br><tt>6</tt> 5187*593dc095SDavid du Colombier<br><tt>7 5188*593dc095SDavid du Colombierx</tt> 5189*593dc095SDavid du Colombier</blockquote> 5190*593dc095SDavid du Colombier<p>These parameters would also work: 5191*593dc095SDavid du Colombier<blockquote><tt><pre> 5192*593dc095SDavid du Colombier-dupWeaveYPasses=4 5193*593dc095SDavid du Colombier-dupOutputPins=15 5194*593dc095SDavid du Colombier-dupWeaveYFeeds="{14 15 18 13}" 5195*593dc095SDavid du Colombier-dupWeaveInitialYFeeds="{1 1 1 13}" 5196*593dc095SDavid du Colombier-dupWeaveInitialPins="{ 4 11 7 15}" 5197*593dc095SDavid du Colombier</pre></tt></blockquote> 5198*593dc095SDavid du Colombier<p> 5199*593dc095SDavid du Colombier<hr> 5200*593dc095SDavid du Colombier<h3><a name="Uni_esc300"></a>Extension to <tt>uniprint</tt> for the Epson Stylus Color 300</h3> 5201*593dc095SDavid du ColombierThis section was contributed by Glenn Ramsey.<p> 5202*593dc095SDavid du ColombierThe Epson Stylus Color 300 uses a different command set to other Epson 5203*593dc095SDavid du ColombierStylus Color printers that use the ESC/P2 language. As far as I can 5204*593dc095SDavid du Colombiertell its commands are a subset of ESC/P2. In ESC/P2 the colour to be 5205*593dc095SDavid du Colombierprinted is selected by a 'set colour' command and then the data sent 5206*593dc095SDavid du Colombieris only printed in that colour until the colour is changed with another 5207*593dc095SDavid du Colombier'set colour' command. The Stylus Color 300 lacks this functionality. 5208*593dc095SDavid du ColombierThe data sent to the printer maps directly to the ink nozzles and colour 5209*593dc095SDavid du Colombierof an output scan line in the printed output is determined by the position 5210*593dc095SDavid du Colombierof the scan line within the data. This means that the driver must know 5211*593dc095SDavid du Colombierhow the nozzles are arranged and must format the output accordingly. 5212*593dc095SDavid du ColombierThe extension adds a format that I have called EscNozzleMap and adds some 5213*593dc095SDavid du Colombier additional parameters to uniprint.<br> 5214*593dc095SDavid du Colombier<ul> 5215*593dc095SDavid du Colombier <li><b><tt>upOutputFormat</tt></b>selects the output method, and should be set to the value 5216*593dc095SDavid du Colombier<b><tt>/EscNozzleMap</tt></b> to select this format. 5217*593dc095SDavid du Colombier <blockquote> 5218*593dc095SDavid du Colombier <table cellpadding="0" cellspacing="0"> 5219*593dc095SDavid du Colombier <tbody> 5220*593dc095SDavid du Colombier <tr valign="Top"> 5221*593dc095SDavid du Colombier <td><b><tt>/EscNozzleMap</tt></b></td> 5222*593dc095SDavid du Colombier <td> </td> 5223*593dc095SDavid du Colombier <td>produces output for the Epson Stylus Color 300 5224*593dc095SDavid du Colombier </td> 5225*593dc095SDavid du Colombier </tr> 5226*593dc095SDavid du Colombier <tbody> 5227*593dc095SDavid du Colombier </table> 5228*593dc095SDavid du Colombier </blockquote> 5229*593dc095SDavid du Colombier</ul> 5230*593dc095SDavid du Colombier 5231*593dc095SDavid du Colombier<blockquote> 5232*593dc095SDavid du Colombier <table cellpadding="0" cellspacing="0"> 5233*593dc095SDavid du Colombier <tbody> 5234*593dc095SDavid du Colombier <tr> 5235*593dc095SDavid du Colombier <th colspan="5" bgcolor="#cccc00"> 5236*593dc095SDavid du Colombier <hr><font size="+1"><b><tt>uniprint</tt></b> parameters for the 5237*593dc095SDavid du Colombier EscNozzleMap format</font> 5238*593dc095SDavid du Colombier <hr></th> 5239*593dc095SDavid du Colombier </tr> 5240*593dc095SDavid du Colombier <tr valign="Bottom"> 5241*593dc095SDavid du Colombier <th align="Left">Parameter 5242*593dc095SDavid du Colombier </th> 5243*593dc095SDavid du Colombier <td> 5244*593dc095SDavid du Colombier </td> 5245*593dc095SDavid du Colombier <th align="Left">Type 5246*593dc095SDavid du Colombier </th> 5247*593dc095SDavid du Colombier <td> 5248*593dc095SDavid du Colombier </td> 5249*593dc095SDavid du Colombier <th align="Left">Use 5250*593dc095SDavid du Colombier </th> 5251*593dc095SDavid du Colombier </tr> 5252*593dc095SDavid du Colombier <tr> 5253*593dc095SDavid du Colombier <td colspan="5"> 5254*593dc095SDavid du Colombier <hr></td> 5255*593dc095SDavid du Colombier </tr> 5256*593dc095SDavid du Colombier <tr valign="Top"> 5257*593dc095SDavid du Colombier <td><b><tt>upNozzleMapRowsPerPass</tt></b></td> 5258*593dc095SDavid du Colombier <td> 5259*593dc095SDavid du Colombier </td> 5260*593dc095SDavid du Colombier <td>Int 5261*593dc095SDavid du Colombier </td> 5262*593dc095SDavid du Colombier <td> 5263*593dc095SDavid du Colombier </td> 5264*593dc095SDavid du Colombier <td>output rows to generate for each pass of the head 5265*593dc095SDavid du Colombier </td> 5266*593dc095SDavid du Colombier </tr> 5267*593dc095SDavid du Colombier <tr valign="Top"> 5268*593dc095SDavid du Colombier <td><b><tt>upNozzleMapPatternRepeat</tt></b></td> 5269*593dc095SDavid du Colombier <td> 5270*593dc095SDavid du Colombier </td> 5271*593dc095SDavid du Colombier <td>Int 5272*593dc095SDavid du Colombier </td> 5273*593dc095SDavid du Colombier <td> 5274*593dc095SDavid du Colombier </td> 5275*593dc095SDavid du Colombier <td>no. of rows that correspond to the repeat pattern of the 5276*593dc095SDavid du Colombier nozzles 5277*593dc095SDavid du Colombier </td> 5278*593dc095SDavid du Colombier </tr> 5279*593dc095SDavid du Colombier <tr valign="Top"> 5280*593dc095SDavid du Colombier <td><b><tt>upNozzleMapRowMask</tt></b></td> 5281*593dc095SDavid du Colombier <td> 5282*593dc095SDavid du Colombier </td> 5283*593dc095SDavid du Colombier <td>Int[] 5284*593dc095SDavid du Colombier </td> 5285*593dc095SDavid du Colombier <td> 5286*593dc095SDavid du Colombier </td> 5287*593dc095SDavid du Colombier <td>mask indicating the colour of the nozzles 5288*593dc095SDavid du Colombier </td> 5289*593dc095SDavid du Colombier </tr> 5290*593dc095SDavid du Colombier <tr valign="Top"> 5291*593dc095SDavid du Colombier <td><b><tt>upNozzleMapMaskScanOffset</tt></b></td> 5292*593dc095SDavid du Colombier <td> 5293*593dc095SDavid du Colombier </td> 5294*593dc095SDavid du Colombier <td>Int[] 5295*593dc095SDavid du Colombier </td> 5296*593dc095SDavid du Colombier <td> 5297*593dc095SDavid du Colombier </td> 5298*593dc095SDavid du Colombier <td>mask indicating the physical position of the nozzles 5299*593dc095SDavid du Colombier </td> 5300*593dc095SDavid du Colombier </tr> 5301*593dc095SDavid du Colombier </tbody> 5302*593dc095SDavid du Colombier </table> 5303*593dc095SDavid du Colombier</blockquote> 5304*593dc095SDavid du Colombier 5305*593dc095SDavid du Colombier<h4>A more detailed description of the new parameters</h4> 5306*593dc095SDavid du Colombier<ul> 5307*593dc095SDavid du Colombier <li><b><tt>upNozzleMapRowsPerPass</tt></b><br> 5308*593dc095SDavid du Colombier The number of rows of data that are required to address all nozzles for a 5309*593dc095SDavid du Colombier single pass of the head. There will always be this number of rows of output 5310*593dc095SDavid du Colombier data generated. I'd expect it to be the same as the total number of nozzles but 5311*593dc095SDavid du Colombier it wouldn't break the formatter if it wasn't. So if you wanted to print with 5312*593dc095SDavid du Colombier only the 10th nozzle then row 10 would contain data corresponding to the bit 5313*593dc095SDavid du Colombier pattern and all of the others would be padded with zeros. 5314*593dc095SDavid du Colombier </li> 5315*593dc095SDavid du Colombier <li><b><tt>upNozzleMapPatternRepeat</tt></b><br> 5316*593dc095SDavid du Colombier The number of nozzles in each repeated group on the printing head. 5317*593dc095SDavid du Colombier This parameter must correspond with the length of the upNozzleMapRowMask array. 5318*593dc095SDavid du Colombier </li> 5319*593dc095SDavid du Colombier <li><b><tt>upNozzleMapRowMask</tt></b><br> 5320*593dc095SDavid du Colombier An array of integers that defines the colour of the nozzles on the 5321*593dc095SDavid du Colombier head and whether the nozzles will be used to print. The array index 5322*593dc095SDavid du Colombier defines the row index for the nozzle in the output data 5323*593dc095SDavid du Colombier and the value defines the colour of the nozzle. The mapping 5324*593dc095SDavid du Colombier of colours to values is defined in the table below. 5325*593dc095SDavid du Colombier <blockquote> 5326*593dc095SDavid du Colombier <table cellpadding="0" cellspacing="0"> 5327*593dc095SDavid du Colombier <tbody> 5328*593dc095SDavid du Colombier <tr valign="Bottom"> 5329*593dc095SDavid du Colombier <th align="Left">colour 5330*593dc095SDavid du Colombier </th> 5331*593dc095SDavid du Colombier <td> 5332*593dc095SDavid du Colombier </td> 5333*593dc095SDavid du Colombier <th align="center">mask value 5334*593dc095SDavid du Colombier </th> 5335*593dc095SDavid du Colombier </tr> 5336*593dc095SDavid du Colombier <tr> 5337*593dc095SDavid du Colombier <td colspan="5"> 5338*593dc095SDavid du Colombier <hr></td> 5339*593dc095SDavid du Colombier </tr> 5340*593dc095SDavid du Colombier <tr valign="Top" align="middle"> 5341*593dc095SDavid du Colombier <td><b><tt>K</tt></b></td> 5342*593dc095SDavid du Colombier <td> 5343*593dc095SDavid du Colombier </td> 5344*593dc095SDavid du Colombier <td>1 5345*593dc095SDavid du Colombier </td> 5346*593dc095SDavid du Colombier </tr> 5347*593dc095SDavid du Colombier <tr valign="Top" align="middle"> 5348*593dc095SDavid du Colombier <td><b><tt>C</tt></b></td> 5349*593dc095SDavid du Colombier <td> 5350*593dc095SDavid du Colombier </td> 5351*593dc095SDavid du Colombier <td>2 5352*593dc095SDavid du Colombier </tr> 5353*593dc095SDavid du Colombier <tr valign="Top" align="middle"> 5354*593dc095SDavid du Colombier <td><b><tt>M</tt></b></td> 5355*593dc095SDavid du Colombier <td> 5356*593dc095SDavid du Colombier </td> 5357*593dc095SDavid du Colombier <td>3 5358*593dc095SDavid du Colombier </td> 5359*593dc095SDavid du Colombier </tr> 5360*593dc095SDavid du Colombier <tr valign="Top" align="middle"> 5361*593dc095SDavid du Colombier <td><b><tt>Y</tt></b></td> 5362*593dc095SDavid du Colombier <td> 5363*593dc095SDavid du Colombier </td> 5364*593dc095SDavid du Colombier <td>4 5365*593dc095SDavid du Colombier </td> 5366*593dc095SDavid du Colombier </tr> 5367*593dc095SDavid du Colombier <tr valign="Top" align="middle"> 5368*593dc095SDavid du Colombier <td><b><tt>no data</tt></b></td> 5369*593dc095SDavid du Colombier <td> 5370*593dc095SDavid du Colombier </td> 5371*593dc095SDavid du Colombier <td>0 5372*593dc095SDavid du Colombier </td> 5373*593dc095SDavid du Colombier </tr> 5374*593dc095SDavid du Colombier </tbody> 5375*593dc095SDavid du Colombier </table> 5376*593dc095SDavid du Colombier </blockquote> 5377*593dc095SDavid du Colombier A value of 0 means that the nozzle is not used and the row in the output data will be 5378*593dc095SDavid du Colombier padded with zeros.<br> 5379*593dc095SDavid du Colombier </li> 5380*593dc095SDavid du Colombier <li><b><tt>upNozzleMapMaskScanOffset</tt></b><br> 5381*593dc095SDavid du Colombier An array of integers that defines the physical position of the nozzles relative 5382*593dc095SDavid du Colombier to the first nozzle in the repeated group. The relative distance is measured in 5383*593dc095SDavid du Colombier printed line widths and will be different for different printing resolutions. 5384*593dc095SDavid du Colombier This parameter is used because the physical spacing of the nozzles may not 5385*593dc095SDavid du Colombier correspond to their mapping in the output data. For example the ESC300 has nozzles 5386*593dc095SDavid du Colombier physically arranged something like this: 5387*593dc095SDavid du Colombier <table> 5388*593dc095SDavid du Colombier <tr> 5389*593dc095SDavid du Colombier <td bgcolor="#00ffff"> 5390*593dc095SDavid du Colombier </td> 5391*593dc095SDavid du Colombier <td bgcolor="#ffff00"> 5392*593dc095SDavid du Colombier </td> 5393*593dc095SDavid du Colombier <td bgcolor="#000000"> 5394*593dc095SDavid du Colombier </td> 5395*593dc095SDavid du Colombier <td bgcolor="#ff00ff"> 5396*593dc095SDavid du Colombier </td> 5397*593dc095SDavid du Colombier <td bgcolor="#000000"> 5398*593dc095SDavid du Colombier </td> 5399*593dc095SDavid du Colombier <td> 5400*593dc095SDavid du Colombier </td> 5401*593dc095SDavid du Colombier <td bgcolor="#000000"> 5402*593dc095SDavid du Colombier </td> 5403*593dc095SDavid du Colombier <td> 5404*593dc095SDavid du Colombier </td> 5405*593dc095SDavid du Colombier <td> 5406*593dc095SDavid du Colombier </td> 5407*593dc095SDavid du Colombier <td> 5408*593dc095SDavid du Colombier </td> 5409*593dc095SDavid du Colombier <td> 5410*593dc095SDavid du Colombier </td> 5411*593dc095SDavid du Colombier <td> 5412*593dc095SDavid du Colombier </td> 5413*593dc095SDavid du Colombier <td bgcolor="#00ffff"> 5414*593dc095SDavid du Colombier </td> 5415*593dc095SDavid du Colombier <td bgcolor="#ffff00"> 5416*593dc095SDavid du Colombier </td> 5417*593dc095SDavid du Colombier <td bgcolor="#000000"> 5418*593dc095SDavid du Colombier </td> 5419*593dc095SDavid du Colombier <td bgcolor="#ff00ff"> 5420*593dc095SDavid du Colombier </td> 5421*593dc095SDavid du Colombier <td bgcolor="#000000"> 5422*593dc095SDavid du Colombier </td> 5423*593dc095SDavid du Colombier <td> 5424*593dc095SDavid du Colombier </td> 5425*593dc095SDavid du Colombier <td bgcolor="#000000"> 5426*593dc095SDavid du Colombier </td> 5427*593dc095SDavid du Colombier <td bgcolor="#ffffff"> 5428*593dc095SDavid du Colombier </td> 5429*593dc095SDavid du Colombier </tr> 5430*593dc095SDavid du Colombier <td> 5431*593dc095SDavid du Colombier </td> 5432*593dc095SDavid du Colombier <td> 5433*593dc095SDavid du Colombier </td> 5434*593dc095SDavid du Colombier <td> 5435*593dc095SDavid du Colombier </td> 5436*593dc095SDavid du Colombier <td> 5437*593dc095SDavid du Colombier </td> 5438*593dc095SDavid du Colombier <td> 5439*593dc095SDavid du Colombier </td> 5440*593dc095SDavid du Colombier <td> 5441*593dc095SDavid du Colombier </td> 5442*593dc095SDavid du Colombier <td bgcolor="#00ffff"> 5443*593dc095SDavid du Colombier </td> 5444*593dc095SDavid du Colombier <td bgcolor="#ffff00"> 5445*593dc095SDavid du Colombier </td> 5446*593dc095SDavid du Colombier <td bgcolor="#000000"> 5447*593dc095SDavid du Colombier </td> 5448*593dc095SDavid du Colombier <td bgcolor="#ff00ff"> 5449*593dc095SDavid du Colombier </td> 5450*593dc095SDavid du Colombier <td bgcolor="#000000"> 5451*593dc095SDavid du Colombier </td> 5452*593dc095SDavid du Colombier <td> 5453*593dc095SDavid du Colombier </td> 5454*593dc095SDavid du Colombier <td bgcolor="#000000"> 5455*593dc095SDavid du Colombier </td> 5456*593dc095SDavid du Colombier <td> 5457*593dc095SDavid du Colombier </td> 5458*593dc095SDavid du Colombier <td> 5459*593dc095SDavid du Colombier </td> 5460*593dc095SDavid du Colombier <td> 5461*593dc095SDavid du Colombier </td> 5462*593dc095SDavid du Colombier <td> 5463*593dc095SDavid du Colombier </td> 5464*593dc095SDavid du Colombier <td> 5465*593dc095SDavid du Colombier </td> 5466*593dc095SDavid du Colombier <td bgcolor="#00ffff"> 5467*593dc095SDavid du Colombier </td> 5468*593dc095SDavid du Colombier <td bgcolor="#ffff00"> 5469*593dc095SDavid du Colombier </td> 5470*593dc095SDavid du Colombier <td>etc ... 5471*593dc095SDavid du Colombier </td> 5472*593dc095SDavid du Colombier 5473*593dc095SDavid du Colombier <tr> 5474*593dc095SDavid du Colombier </tr> 5475*593dc095SDavid du Colombier </table> 5476*593dc095SDavid du Colombier There is a one nozzle width space between the last two nozzles in each group. 5477*593dc095SDavid du Colombier In the output data the data for the last nozzle in the group would be in row 5 5478*593dc095SDavid du Colombier (numbering starts at 0) but the nozzle is physically positioned at 6 spaces from 5479*593dc095SDavid du Colombier the first nozzle. 5480*593dc095SDavid du Colombier</ul> 5481*593dc095SDavid du Colombier<h4>Example 1 - Epson Stylus Color 300 - 360 dpi colour</h4> 5482*593dc095SDavid du Colombier<blockquote><pre> 5483*593dc095SDavid du Colombier-dupWeaveYPasses=6 5484*593dc095SDavid du Colombier-dupOutputPins=11 5485*593dc095SDavid du Colombier-dupWeaveYFeeds="{ 11 11 11 11 11 11 }" 5486*593dc095SDavid du Colombier-dupWeaveInitialYFeeds="{ 1 1 1 1 1 7 }" 5487*593dc095SDavid du Colombier-dupWeaveInitialPins="{ 2 11 9 7 5 3 }" 5488*593dc095SDavid du Colombier-dupNozzleMapRowsPerPass=64 5489*593dc095SDavid du Colombier-dupNozzleMapPatternRepeat=6 5490*593dc095SDavid du Colombier-dupNozzleMapRowMask="{ 2 4 1 3 0 0 }" 5491*593dc095SDavid du Colombier-dupNozzleMapMaskScanOffset="{ 0 1 2 3 0 0 }" 5492*593dc095SDavid du Colombier</pre></blockquote> 5493*593dc095SDavid du ColombierThe weaving parameters are the same as for any other uniprint driver 5494*593dc095SDavid du Colombierbut they must be consistent with the nozzle map parameters. In this printer 5495*593dc095SDavid du Colombierthe coloured nozzles are spaced at 1/60" so 6 passes are required for 360 5496*593dc095SDavid du Colombierdpi resolution. 5497*593dc095SDavid du Colombier<p> 5498*593dc095SDavid du ColombierIn the example there are 64 rows of data required for each head pass. Each 5499*593dc095SDavid du Colombierrow must be completely filled with data for each pass so if certain nozzles 5500*593dc095SDavid du Colombierdo not print in the pass then the rows for those nozzles will be padded 5501*593dc095SDavid du Colombierwith zeroes. 5502*593dc095SDavid du Colombier<P> 5503*593dc095SDavid du ColombierThe row mask translates to "C Y K M 0 0" so in the output data rows 0,7,13,... 5504*593dc095SDavid du Colombierwill contain data for cyan, rows 1,8,14,... will contain data for yellow, etc. Rows 4,10,16,... 5505*593dc095SDavid du Colombierand 5, 11,15,... will always be padded with zeroes. The <i>upNozzleMapPatternRepeat</i> 5506*593dc095SDavid du Colombierparameter defines the length of the mask. 5507*593dc095SDavid du Colombier<p> 5508*593dc095SDavid du ColombierThe row mask is repeated for each group of <i>upNozzleMapPatternRepeat</i> rows 5509*593dc095SDavid du Colombierin the output data. In this case there are 64 rows so there will be 10 groups 5510*593dc095SDavid du Colombierof "C Y K M 0 0" followed by "C Y K M" which is equivalent to 11 output 5511*593dc095SDavid du Colombierpins. 5512*593dc095SDavid du Colombier<P> 5513*593dc095SDavid du ColombierThe <i>upNozzleMaskScanOffset</i> array indicates how the data from the scan 5514*593dc095SDavid du Colombierbuffer is mapped to the output data. The data is presented to the formatter 5515*593dc095SDavid du Colombieras a buffer of four colour scanlines. The index of the scanline being printed, 5516*593dc095SDavid du Colombierlets call it y, always corresponds, in this example, to the physical position of 5517*593dc095SDavid du Colombierthe cyan nozzle but since the nozzles are not on the same horizontal 5518*593dc095SDavid du Colombierline then the other colours for the current pass must come from other 5519*593dc095SDavid du Colombierscanlines in the scan buffer. The example is { 0 1 2 3 0 0 }, this means that 5520*593dc095SDavid du Colombierwhen printing a 4 colour image the magenta data would come from scanline y+3, 5521*593dc095SDavid du Colombierthe black from scanline y+2, etc. It would have been possible in this case 5522*593dc095SDavid du Colombierto use the array index instead of the <i>upNozzleMaskScanOffset</i> parameter 5523*593dc095SDavid du Colombierhowever the parameter is necessary to be able to use the full capability of the 5524*593dc095SDavid du Colombierprinter in black only mode. 5525*593dc095SDavid du Colombier 5526*593dc095SDavid du Colombier<h4>Example 2 - Epson Stylus Color 300 - 180 dpi black only</h4> 5527*593dc095SDavid du Colombier<blockquote> 5528*593dc095SDavid du Colombier<pre> 5529*593dc095SDavid du Colombier-dupMargins="{ 9.0 39.96 9.0 9.0}" 5530*593dc095SDavid du Colombier-dupWeaveYPasses=1 5531*593dc095SDavid du Colombier-dupOutputPins=31 5532*593dc095SDavid du Colombier-dupNozzleMapRowsPerPass=64 5533*593dc095SDavid du Colombier-dupNozzleMapPatternRepeat=6 5534*593dc095SDavid du Colombier-dupNozzleMapRowMask="{ 0 0 1 0 1 1}" 5535*593dc095SDavid du Colombier-dupNozzleMapMaskScanOffset="{ 0 0 0 0 1 2 }" 5536*593dc095SDavid du Colombier</pre> 5537*593dc095SDavid du Colombier</blockquote> 5538*593dc095SDavid du ColombierIn this example there is no weaving. 5539*593dc095SDavid du Colombier<p> 5540*593dc095SDavid du ColombierThe ESC300 has black nozzles evenly physically arranged as K K K but the data must 5541*593dc095SDavid du Colombierbe sent to the printer as 00K0KK. This is handled by the <i>upNozzleMapRowMask</i> 5542*593dc095SDavid du Colombierand <i>upNozzleMaskScanOffset</i> arrays. The <i>upNozzleMapRowMask</i> array is 5543*593dc095SDavid du Colombier{ 0 0 1 0 1 1} which translates to { 0 0 K 0 K K } so rows 0, 1 and 3 will always 5544*593dc095SDavid du Colombiercontain zeros and the other rows will contain data. 5545*593dc095SDavid du Colombier<p> 5546*593dc095SDavid du ColombierThe <i>upNozzleMaskScanOffset</i> array 5547*593dc095SDavid du Colombierin this case is { 0 0 0 0 1 2 } so if the data for the 1st nozzle comes from row 5548*593dc095SDavid du Colombiery in the scan buffer then the data for the 2nd and 3rd nozzles will come from rows 5549*593dc095SDavid du Colombiery+1 and y+2. 5550*593dc095SDavid du Colombier 5551*593dc095SDavid du Colombier<h4>Example 3 - Epson Stylus Color 300 - 360 dpi black only</h4> 5552*593dc095SDavid du Colombier<blockquote> 5553*593dc095SDavid du Colombier<pre> 5554*593dc095SDavid du Colombier-dupWeaveYPasses=2 5555*593dc095SDavid du Colombier-dupOutputPins=31 5556*593dc095SDavid du Colombier-dupWeaveYFeeds="{31 31}" 5557*593dc095SDavid du Colombier-dupWeaveInitialYFeeds="{1 31}" 5558*593dc095SDavid du Colombier-dupWeaveInitialPins="{16 31}" 5559*593dc095SDavid du Colombier-dupNozzleMapRowsPerPass=64 5560*593dc095SDavid du Colombier-dupNozzleMapPatternRepeat=6 5561*593dc095SDavid du Colombier-dupNozzleMapRowMask="{ 0 0 1 0 1 1}" 5562*593dc095SDavid du Colombier-dupNozzleMapMaskScanOffset="{ 0 0 0 0 2 4 }" 5563*593dc095SDavid du Colombier</pre> 5564*593dc095SDavid du Colombier</blockquote> 5565*593dc095SDavid du ColombierIn this example 2 weave passes are required to achieve the desired resolution. 5566*593dc095SDavid du Colombier<p> 5567*593dc095SDavid du ColombierThe <i>upNozzleMaskScanOffset</i> array in this case is { 0 0 0 0 2 4 } because 5568*593dc095SDavid du Colombierthere are two weave passes so if the data for the first nozzle comes from row y 5569*593dc095SDavid du Colombierin the scan buffer then the data for the 2nd and 3rd nozzles must come from rows 5570*593dc095SDavid du Colombiery+(1*2) and y+(2*2). 5571*593dc095SDavid du Colombier<p> 5572*593dc095SDavid du Colombier<address> 5573*593dc095SDavid du ColombierGlenn Ramsey<br> 5574*593dc095SDavid du Colombierglennr at users.sourceforge.net<br> 5575*593dc095SDavid du ColombierFebruary 2001 5576*593dc095SDavid du Colombier</address> 5577*593dc095SDavid du Colombier<br> 5578*593dc095SDavid du Colombier 5579*593dc095SDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== --> 5580*593dc095SDavid du Colombier<hr> 5581*593dc095SDavid du Colombier 5582*593dc095SDavid du Colombier<p> 5583*593dc095SDavid du Colombier<small>Copyright © 2002 artofocode LLC. All rights reserved.</small> 5584*593dc095SDavid du Colombier 5585*593dc095SDavid du Colombier<p> 5586*593dc095SDavid du Colombier<small> 5587*593dc095SDavid du ColombierThis software is provided AS-IS with no warranty, either express or 5588*593dc095SDavid du Colombierimplied. 5589*593dc095SDavid du Colombier 5590*593dc095SDavid du ColombierThis software is distributed under license and may not be copied, 5591*593dc095SDavid du Colombiermodified or distributed except as expressly authorized under the terms 5592*593dc095SDavid du Colombierof the license contained in the file LICENSE in this distribution. 5593*593dc095SDavid du Colombier 5594*593dc095SDavid du ColombierFor more information about licensing, please refer to 5595*593dc095SDavid du Colombierhttp://www.ghostscript.com/licensing/. For information on 5596*593dc095SDavid du Colombiercommercial licensing, go to http://www.artifex.com/licensing/ or 5597*593dc095SDavid du Colombiercontact Artifex Software, Inc., 101 Lucas Valley Road #110, 5598*593dc095SDavid du ColombierSan Rafael, CA 94903, U.S.A., +1(415)492-9861. 5599*593dc095SDavid du Colombier</small> 5600*593dc095SDavid du Colombier 5601*593dc095SDavid du Colombier<p> 5602*593dc095SDavid du Colombier<small>Ghostscript version 8.53, 20 October 2005 5603*593dc095SDavid du Colombier 5604*593dc095SDavid du Colombier<!-- [3.0 end visible trailer] ============================================= --> 5605*593dc095SDavid du Colombier 5606*593dc095SDavid du Colombier</body> 5607*593dc095SDavid du Colombier</html> 5608