xref: /plan9/sys/src/cmd/gs/doc/Deprecated.htm (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
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 &lt;<a
152*593dc095SDavid du Colombierhref="mailto:uliw@erdw.ethz.ch">uliw@erdw.ethz.ch</a>&gt;, 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>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;&nbsp;&nbsp;
185*593dc095SDavid du Colombier	<td>Version 1.0
186*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
187*593dc095SDavid du Colombier	<td>&nbsp;
188*593dc095SDavid du Colombier<tr valign=top>	<td>25.08.97
189*593dc095SDavid du Colombier	<td>&nbsp;
190*593dc095SDavid du Colombier	<td>Version 1.2
191*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
197*593dc095SDavid du Colombier	<td>Version 1.3
198*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
203*593dc095SDavid du Colombier	<td>&nbsp;
204*593dc095SDavid du Colombier	<td>&nbsp;
205*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;&nbsp;&nbsp;
219*593dc095SDavid du Colombier	<td>0
220*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
221*593dc095SDavid du Colombier	<td>plain paper [default]
222*593dc095SDavid du Colombier<tr valign=top>	<td>
223*593dc095SDavid du Colombier	<td>&nbsp;
224*593dc095SDavid du Colombier	<td>1
225*593dc095SDavid du Colombier	<td>&nbsp;
226*593dc095SDavid du Colombier	<td>bond paper
227*593dc095SDavid du Colombier<tr valign=top>	<td>
228*593dc095SDavid du Colombier	<td>&nbsp;
229*593dc095SDavid du Colombier	<td>2
230*593dc095SDavid du Colombier	<td>&nbsp;
231*593dc095SDavid du Colombier	<td>special paper
232*593dc095SDavid du Colombier<tr valign=top>	<td>
233*593dc095SDavid du Colombier	<td>&nbsp;
234*593dc095SDavid du Colombier	<td>3
235*593dc095SDavid du Colombier	<td>&nbsp;
236*593dc095SDavid du Colombier	<td>glossy film
237*593dc095SDavid du Colombier<tr valign=top>	<td>
238*593dc095SDavid du Colombier	<td>&nbsp;
239*593dc095SDavid du Colombier	<td>4
240*593dc095SDavid du Colombier	<td>&nbsp;
241*593dc095SDavid du Colombier	<td>transparency film
242*593dc095SDavid du Colombier<tr valign=top>	<td>
243*593dc095SDavid du Colombier	<td>&nbsp;
244*593dc095SDavid du Colombier	<td>&nbsp;
245*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
251*593dc095SDavid du Colombier	<td>-1
252*593dc095SDavid du Colombier	<td>&nbsp;
253*593dc095SDavid du Colombier	<td>draft
254*593dc095SDavid du Colombier<tr valign=top>	<td>
255*593dc095SDavid du Colombier	<td>&nbsp;
256*593dc095SDavid du Colombier	<td>0
257*593dc095SDavid du Colombier	<td>&nbsp;
258*593dc095SDavid du Colombier	<td>normal [default]
259*593dc095SDavid du Colombier<tr valign=top>	<td>
260*593dc095SDavid du Colombier	<td>&nbsp;
261*593dc095SDavid du Colombier	<td>1
262*593dc095SDavid du Colombier	<td>&nbsp;
263*593dc095SDavid du Colombier	<td>presentation
264*593dc095SDavid du Colombier<tr valign=top>	<td><b><tt>-dRetStatus=</tt></b>
265*593dc095SDavid du Colombier	<td>&nbsp;
266*593dc095SDavid du Colombier	<td>0
267*593dc095SDavid du Colombier	<td>&nbsp;
268*593dc095SDavid du Colombier	<td>C-RET off
269*593dc095SDavid du Colombier<tr valign=top>	<td>
270*593dc095SDavid du Colombier	<td>&nbsp;
271*593dc095SDavid du Colombier	<td>1
272*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
276*593dc095SDavid du Colombier	<td>3.0
277*593dc095SDavid du Colombier	<td>&nbsp;
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 (&gt; 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&nbsp;-a&nbsp;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 &lt;<a href="mailto:uliw@erdw.ethz.ch">uliw@erdw.ethz.ch</a>&gt;
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 &lt;<a
353*593dc095SDavid du Colombierhref="mailto:hp880@gelhaus.net">hp880@gelhaus.net</a>&gt;, 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>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;&nbsp;&nbsp;
381*593dc095SDavid du Colombier	<td>Version 1.3
382*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
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>&nbsp;
386*593dc095SDavid du Colombier	<td>Version 1.4beta
387*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;&nbsp;&nbsp;
399*593dc095SDavid du Colombier	<td>0
400*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
401*593dc095SDavid du Colombier	<td>plain paper [default]
402*593dc095SDavid du Colombier<tr valign=top>	<td>
403*593dc095SDavid du Colombier	<td>&nbsp;
404*593dc095SDavid du Colombier	<td>1
405*593dc095SDavid du Colombier	<td>&nbsp;
406*593dc095SDavid du Colombier	<td>bond paper
407*593dc095SDavid du Colombier<tr valign=top>	<td>
408*593dc095SDavid du Colombier	<td>&nbsp;
409*593dc095SDavid du Colombier	<td>2
410*593dc095SDavid du Colombier	<td>&nbsp;
411*593dc095SDavid du Colombier	<td>special paper
412*593dc095SDavid du Colombier<tr valign=top>	<td>
413*593dc095SDavid du Colombier	<td>&nbsp;
414*593dc095SDavid du Colombier	<td>3
415*593dc095SDavid du Colombier	<td>&nbsp;
416*593dc095SDavid du Colombier	<td>glossy film
417*593dc095SDavid du Colombier<tr valign=top>	<td>
418*593dc095SDavid du Colombier	<td>&nbsp;
419*593dc095SDavid du Colombier	<td>4
420*593dc095SDavid du Colombier	<td>&nbsp;
421*593dc095SDavid du Colombier	<td>transparency film
422*593dc095SDavid du Colombier<tr valign=top>	<td>
423*593dc095SDavid du Colombier	<td>&nbsp;
424*593dc095SDavid du Colombier	<td>&nbsp;
425*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
431*593dc095SDavid du Colombier	<td>-1
432*593dc095SDavid du Colombier	<td>&nbsp;
433*593dc095SDavid du Colombier	<td>draft
434*593dc095SDavid du Colombier<tr valign=top>	<td>
435*593dc095SDavid du Colombier	<td>&nbsp;
436*593dc095SDavid du Colombier	<td>0
437*593dc095SDavid du Colombier	<td>&nbsp;
438*593dc095SDavid du Colombier	<td>normal [default]
439*593dc095SDavid du Colombier<tr valign=top>	<td>
440*593dc095SDavid du Colombier	<td>&nbsp;
441*593dc095SDavid du Colombier	<td>1
442*593dc095SDavid du Colombier	<td>&nbsp;
443*593dc095SDavid du Colombier	<td>presentation
444*593dc095SDavid du Colombier<tr valign=top>	<td><b><tt>-dMasterGamma=</tt></b>
445*593dc095SDavid du Colombier	<td>&nbsp;
446*593dc095SDavid du Colombier	<td>3.0
447*593dc095SDavid du Colombier	<td>&nbsp;
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 &lt;<a href="mailto:hp880@gelhaus.net">mailto:hp880@gelhaus.net</a>&gt;
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>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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&nbsp;-sDEVICE=cDeskJet&nbsp;-dBitsPerPixel=16&nbsp;-dDepletion=1&nbsp;-dShingling=2&nbsp;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>&nbsp;&nbsp;&nbsp;
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>&nbsp;
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>&nbsp;&nbsp;&nbsp;&nbsp;
640*593dc095SDavid du Colombier	<th align=left>Type
641*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
642*593dc095SDavid du Colombier	<th align=left>&nbsp;
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>&nbsp;
646*593dc095SDavid du Colombier	<td><b><tt>int</tt></b>
647*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
651*593dc095SDavid du Colombier	<td><b><tt>int</tt></b>
652*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
656*593dc095SDavid du Colombier	<td><b><tt>int</tt></b>
657*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;&nbsp;&nbsp;&nbsp;
668*593dc095SDavid du Colombier	<th align=left>Type
669*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;
674*593dc095SDavid du Colombier	<td><b><tt>int</tt></b>
675*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
679*593dc095SDavid du Colombier	<td><b><tt>int</tt></b>
680*593dc095SDavid du Colombier	<td>&nbsp;
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&times;300dpi resolution.  Those that
768*593dc095SDavid du Colombierprint in colour are strictly 300&times;300dpi in colour mode, while in mono
769*593dc095SDavid du Colombiermode there is a pseudo 600&times;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 &lt;<a
819*593dc095SDavid du Colombierhref="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>&gt;.
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: &lt;<a
1038*593dc095SDavid du Colombierhref="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>&gt;
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(&lt;<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>&gt;, 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&nbsp;bj200.dev&nbsp;bjc600.dev&nbsp;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>&nbsp;&nbsp;&nbsp;
1197*593dc095SDavid du Colombier	<th align=left><b><tt>Colors</tt></b>
1198*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
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>&nbsp;
1203*593dc095SDavid du Colombier	<td align=center>4
1204*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1208*593dc095SDavid du Colombier	<td align=center>4
1209*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1213*593dc095SDavid du Colombier	<td align=center>3
1214*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1224*593dc095SDavid du Colombier	<td align=center>4
1225*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1231*593dc095SDavid du Colombier	<td align=center>4
1232*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1236*593dc095SDavid du Colombier	<td align=center>3
1237*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1244*593dc095SDavid du Colombier	<td align=center>1
1245*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1249*593dc095SDavid du Colombier	<td align=center>1
1250*593dc095SDavid du Colombier	<td>&nbsp;
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&nbsp;&times;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>&nbsp;&nbsp;&nbsp;&nbsp;
1309*593dc095SDavid du Colombier	<th align=left><b><tt>Colors</tt></b>
1310*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
1311*593dc095SDavid du Colombier	<th align=left>&nbsp;
1312*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
1313*593dc095SDavid du Colombier	<th align=left>Color model
1314*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;
1319*593dc095SDavid du Colombier	<td align=center>4
1320*593dc095SDavid du Colombier	<td>&nbsp;
1321*593dc095SDavid du Colombier	<td>&nbsp;
1322*593dc095SDavid du Colombier	<td align=center>&nbsp;
1323*593dc095SDavid du Colombier	<td>CMYK
1324*593dc095SDavid du Colombier	<td>&nbsp;
1325*593dc095SDavid du Colombier	<td>F-S
1326*593dc095SDavid du Colombier<tr valign=top>	<td>24
1327*593dc095SDavid du Colombier	<td>&nbsp;
1328*593dc095SDavid du Colombier	<td align=center>4
1329*593dc095SDavid du Colombier	<td>&nbsp;
1330*593dc095SDavid du Colombier	<td><b>*</b>
1331*593dc095SDavid du Colombier	<td align=center>&nbsp;
1332*593dc095SDavid du Colombier	<td>CMYK
1333*593dc095SDavid du Colombier	<td>&nbsp;
1334*593dc095SDavid du Colombier	<td>F-S
1335*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
1336*593dc095SDavid du Colombier	<td>&nbsp;
1337*593dc095SDavid du Colombier	<td align=center>3
1338*593dc095SDavid du Colombier	<td>&nbsp;
1339*593dc095SDavid du Colombier	<td>&nbsp;
1340*593dc095SDavid du Colombier	<td align=center>&nbsp;
1341*593dc095SDavid du Colombier	<td>RGB
1342*593dc095SDavid du Colombier	<td>&nbsp;
1343*593dc095SDavid du Colombier	<td>F-S
1344*593dc095SDavid du Colombier<tr valign=top>	<td>16
1345*593dc095SDavid du Colombier	<td>&nbsp;
1346*593dc095SDavid du Colombier	<td align=center>4
1347*593dc095SDavid du Colombier	<td>&nbsp;
1348*593dc095SDavid du Colombier	<td>&nbsp;
1349*593dc095SDavid du Colombier	<td align=center>&nbsp;
1350*593dc095SDavid du Colombier	<td>CMYK
1351*593dc095SDavid du Colombier	<td>&nbsp;
1352*593dc095SDavid du Colombier	<td>GS, F-S
1353*593dc095SDavid du Colombier<tr valign=top>	<td>8
1354*593dc095SDavid du Colombier	<td>&nbsp;
1355*593dc095SDavid du Colombier	<td align=center>4
1356*593dc095SDavid du Colombier	<td>&nbsp;
1357*593dc095SDavid du Colombier	<td><b>*</b>
1358*593dc095SDavid du Colombier	<td align=center>&nbsp;
1359*593dc095SDavid du Colombier	<td>CMYK
1360*593dc095SDavid du Colombier	<td>&nbsp;
1361*593dc095SDavid du Colombier	<td>GS
1362*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
1363*593dc095SDavid du Colombier	<td>&nbsp;
1364*593dc095SDavid du Colombier	<td align=center>3
1365*593dc095SDavid du Colombier	<td>&nbsp;
1366*593dc095SDavid du Colombier	<td>&nbsp;
1367*593dc095SDavid du Colombier	<td align=center>&nbsp;
1368*593dc095SDavid du Colombier	<td>RGB
1369*593dc095SDavid du Colombier	<td>&nbsp;
1370*593dc095SDavid du Colombier	<td>GS
1371*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
1372*593dc095SDavid du Colombier	<td>&nbsp;
1373*593dc095SDavid du Colombier	<td align=center>1
1374*593dc095SDavid du Colombier	<td>&nbsp;
1375*593dc095SDavid du Colombier	<td>&nbsp;
1376*593dc095SDavid du Colombier	<td align=center>&nbsp;
1377*593dc095SDavid du Colombier	<td>K (CMYK)
1378*593dc095SDavid du Colombier	<td>&nbsp;
1379*593dc095SDavid du Colombier	<td>F-S
1380*593dc095SDavid du Colombier<tr valign=top>	<td>1
1381*593dc095SDavid du Colombier	<td>&nbsp;
1382*593dc095SDavid du Colombier	<td align=center>1
1383*593dc095SDavid du Colombier	<td>&nbsp;
1384*593dc095SDavid du Colombier	<td><b>*</b>
1385*593dc095SDavid du Colombier	<td align=center>&nbsp;
1386*593dc095SDavid du Colombier	<td>K (CMYK)
1387*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1415*593dc095SDavid du Colombier	<td>&nbsp;
1416*593dc095SDavid du Colombier	<td>&nbsp;
1417*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;&nbsp;
1421*593dc095SDavid du Colombier	<th>Type
1422*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
1423*593dc095SDavid du Colombier	<td>32
1424*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
1425*593dc095SDavid du Colombier	<td>24
1426*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
1427*593dc095SDavid du Colombier	<td>16
1428*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
1429*593dc095SDavid du Colombier	<td>8
1430*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
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>&nbsp;
1435*593dc095SDavid du Colombier	<td>CMYK
1436*593dc095SDavid du Colombier	<td>&nbsp;
1437*593dc095SDavid du Colombier	<td><b>V</b>
1438*593dc095SDavid du Colombier	<td>&nbsp;
1439*593dc095SDavid du Colombier	<td><b>*</b>
1440*593dc095SDavid du Colombier	<td>&nbsp;
1441*593dc095SDavid du Colombier	<td><b>V</b>
1442*593dc095SDavid du Colombier	<td>&nbsp;
1443*593dc095SDavid du Colombier	<td><b>V</b>
1444*593dc095SDavid du Colombier	<td>&nbsp;
1445*593dc095SDavid du Colombier	<td>&nbsp;
1446*593dc095SDavid du Colombier<tr valign=top>	<td>3
1447*593dc095SDavid du Colombier	<td>&nbsp;
1448*593dc095SDavid du Colombier	<td>RGB
1449*593dc095SDavid du Colombier	<td>&nbsp;
1450*593dc095SDavid du Colombier	<td>&nbsp;
1451*593dc095SDavid du Colombier	<td>&nbsp;
1452*593dc095SDavid du Colombier	<td><b>*</b>
1453*593dc095SDavid du Colombier	<td>&nbsp;
1454*593dc095SDavid du Colombier	<td>&nbsp;
1455*593dc095SDavid du Colombier	<td>&nbsp;
1456*593dc095SDavid du Colombier	<td><b>V</b>
1457*593dc095SDavid du Colombier	<td>&nbsp;
1458*593dc095SDavid du Colombier	<td>&nbsp;
1459*593dc095SDavid du Colombier<tr valign=top>	<td>1
1460*593dc095SDavid du Colombier	<td>&nbsp;
1461*593dc095SDavid du Colombier	<td>K
1462*593dc095SDavid du Colombier	<td>&nbsp;
1463*593dc095SDavid du Colombier	<td>&nbsp;
1464*593dc095SDavid du Colombier	<td>&nbsp;
1465*593dc095SDavid du Colombier	<td>&nbsp;
1466*593dc095SDavid du Colombier	<td>&nbsp;
1467*593dc095SDavid du Colombier	<td>&nbsp;
1468*593dc095SDavid du Colombier	<td>&nbsp;
1469*593dc095SDavid du Colombier	<td><b>V</b>
1470*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;&nbsp;
1534*593dc095SDavid du Colombier	<th align=left><b><tt>bjc600</tt></b>
1535*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
1536*593dc095SDavid du Colombier	<th align=left><b><tt>bjc800</tt></b>
1537*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
1538*593dc095SDavid du Colombier	<th align=left>&nbsp;
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>&nbsp;
1542*593dc095SDavid du Colombier	<td>&nbsp;
1543*593dc095SDavid du Colombier	<td>&nbsp;
1544*593dc095SDavid du Colombier	<td align=center><b>X</b>
1545*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1549*593dc095SDavid du Colombier	<td align=center><b>X</b>
1550*593dc095SDavid du Colombier	<td>&nbsp;
1551*593dc095SDavid du Colombier	<td align=center><b>X</b>
1552*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1556*593dc095SDavid du Colombier	<td align=center><b>X</b>
1557*593dc095SDavid du Colombier	<td>&nbsp;
1558*593dc095SDavid du Colombier	<td align=center><b>X</b>
1559*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
1563*593dc095SDavid du Colombier	<td align=center><b>X</b>
1564*593dc095SDavid du Colombier	<td>&nbsp;
1565*593dc095SDavid du Colombier	<td align=center><b>X</b>
1566*593dc095SDavid du Colombier	<td>&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
1679*593dc095SDavid du Colombier<b><tt>*DefaultPageSize: Letter<br></tt></b>
1680*593dc095SDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
1681*593dc095SDavid du Colombier<b><tt>*DefaultRegion: Letter<br></tt></b>
1682*593dc095SDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
1683*593dc095SDavid du Colombier<b><tt>*DefaultImageableArea: Letter</tt></b><br>
1684*593dc095SDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<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&nbsp;"currentpagedevice&nbsp;/VersionString&nbsp;get&nbsp;=="&nbsp;|&nbsp;gs&nbsp;-q&nbsp;-sDEVICE=bjc600&nbsp;-
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 &lt;<a
1732*593dc095SDavid du Colombierhref="mailto:yoshio@nak.math.keio.ac.jp">yoshio@nak.math.keio.ac.jp</a>&gt;
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&lt;<a href="mailto:david@donald.concordia.ca">david@donald.concordia.ca</a>&gt;,
1741*593dc095SDavid du ColombierRobert M. Kenney &lt;<a href="mailto:rmk@unh.edu">rmk@unh.edu</a>&gt;,
1742*593dc095SDavid du ColombierJames McPherson
1743*593dc095SDavid du Colombier&lt;<a href="mailto:someone@erols.com">someone@erols.com</a>&gt;
1744*593dc095SDavid du Colombierand Ian Thurlbeck
1745*593dc095SDavid du Colombier&lt;<a href="mailto:ian@stams.strath.ac.uk">ian@stams.strath.ac.uk</a>&gt;
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&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt; 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&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;, 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>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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&nbsp;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&nbsp;@&nbsp;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 &amp; 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>&nbsp;&nbsp;&nbsp;&nbsp;
1991*593dc095SDavid du Colombier	<th valign=bottom align=left><b><tt>escp_Band</tt></b>
1992*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
1993*593dc095SDavid du Colombier	<th valign=bottom align=left>Weave usable
1994*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
1995*593dc095SDavid du Colombier	<th valign=bottom align=left><b><tt>escp_Band</tt></b> &amp;<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>&nbsp;
1999*593dc095SDavid du Colombier	<td>15
2000*593dc095SDavid du Colombier	<td>&nbsp;
2001*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>
2002*593dc095SDavid du Colombier	<td>&nbsp;
2003*593dc095SDavid du Colombier	<td>&nbsp;
2004*593dc095SDavid du Colombier<tr valign=top>	<td>180x180
2005*593dc095SDavid du Colombier	<td>&nbsp;
2006*593dc095SDavid du Colombier	<td>1 , 8, 24
2007*593dc095SDavid du Colombier	<td>&nbsp;
2008*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
2009*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2013*593dc095SDavid du Colombier	<td>&nbsp;
2014*593dc095SDavid du Colombier	<td>&nbsp;
2015*593dc095SDavid du Colombier	<td>&nbsp;
2016*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2020*593dc095SDavid du Colombier	<td>&nbsp;
2021*593dc095SDavid du Colombier	<td>&nbsp;
2022*593dc095SDavid du Colombier	<td>&nbsp;
2023*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2027*593dc095SDavid du Colombier	<td>15
2028*593dc095SDavid du Colombier	<td>&nbsp;
2029*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>
2030*593dc095SDavid du Colombier	<td>&nbsp;
2031*593dc095SDavid du Colombier	<td>&nbsp;
2032*593dc095SDavid du Colombier<tr valign=top>	<td>360x180
2033*593dc095SDavid du Colombier	<td>&nbsp;
2034*593dc095SDavid du Colombier	<td>1, 8, 24
2035*593dc095SDavid du Colombier	<td>&nbsp;
2036*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
2037*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2041*593dc095SDavid du Colombier	<td>1, 8, 24
2042*593dc095SDavid du Colombier	<td>&nbsp;
2043*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
2044*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2048*593dc095SDavid du Colombier	<td>&nbsp;
2049*593dc095SDavid du Colombier	<td>&nbsp;
2050*593dc095SDavid du Colombier	<td>&nbsp;
2051*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2055*593dc095SDavid du Colombier	<td>15
2056*593dc095SDavid du Colombier	<td>&nbsp;
2057*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>
2058*593dc095SDavid du Colombier	<td>&nbsp;
2059*593dc095SDavid du Colombier	<td>&nbsp;
2060*593dc095SDavid du Colombier<tr valign=top>	<td>720x180
2061*593dc095SDavid du Colombier	<td>&nbsp;
2062*593dc095SDavid du Colombier	<td>&nbsp;
2063*593dc095SDavid du Colombier	<td>&nbsp;
2064*593dc095SDavid du Colombier	<td>&nbsp;
2065*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2069*593dc095SDavid du Colombier	<td>&nbsp;
2070*593dc095SDavid du Colombier	<td>&nbsp;
2071*593dc095SDavid du Colombier	<td>&nbsp;
2072*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2076*593dc095SDavid du Colombier	<td>1
2077*593dc095SDavid du Colombier	<td>&nbsp;
2078*593dc095SDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
2079*593dc095SDavid du Colombier	<td>&nbsp;
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 &lt;jason@reflections.com.au&gt;
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>&nbsp;&nbsp;
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>&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;&nbsp;&nbsp;&nbsp;
2259*593dc095SDavid du Colombier	<td><b><tt>fsmono</tt></b>
2260*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
2261*593dc095SDavid du Colombier	<td><b><tt>******************</tt></b>
2262*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2263*593dc095SDavid du Colombier	<td><b><tt>gsmono</tt></b>
2264*593dc095SDavid du Colombier	<td>&nbsp;
2265*593dc095SDavid du Colombier	<td><b><tt>**********</tt></b>
2266*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2267*593dc095SDavid du Colombier	<td>&nbsp;
2268*593dc095SDavid du Colombier	<td>&nbsp;
2269*593dc095SDavid du Colombier	<td><b><tt>0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;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>&nbsp;
2273*593dc095SDavid du Colombier	<td><b><tt>fscmyk</tt></b>
2274*593dc095SDavid du Colombier	<td>&nbsp;
2275*593dc095SDavid du Colombier	<td><b><tt>*******************</tt></b>
2276*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2277*593dc095SDavid du Colombier	<td><b><tt>hscmyk</tt></b>
2278*593dc095SDavid du Colombier	<td>&nbsp;
2279*593dc095SDavid du Colombier	<td><b><tt>*******************</tt></b>
2280*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2281*593dc095SDavid du Colombier	<td><b><tt>fsrgb</tt></b>
2282*593dc095SDavid du Colombier	<td>&nbsp;
2283*593dc095SDavid du Colombier	<td><b><tt>******************</tt></b>
2284*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2285*593dc095SDavid du Colombier	<td><b><tt>fs2</tt></b>
2286*593dc095SDavid du Colombier	<td>&nbsp;
2287*593dc095SDavid du Colombier	<td><b><tt>*****************</tt></b>
2288*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2289*593dc095SDavid du Colombier	<td><b><tt>gsrgb</tt></b>
2290*593dc095SDavid du Colombier	<td>&nbsp;
2291*593dc095SDavid du Colombier	<td><b><tt>**********</tt></b>
2292*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2293*593dc095SDavid du Colombier	<td><b><tt>gscmyk</tt></b>
2294*593dc095SDavid du Colombier	<td>&nbsp;
2295*593dc095SDavid du Colombier	<td><b><tt>*********</tt></b>
2296*593dc095SDavid du Colombier<tr>	<td>&nbsp;
2297*593dc095SDavid du Colombier	<td>&nbsp;
2298*593dc095SDavid du Colombier	<td>&nbsp;
2299*593dc095SDavid du Colombier	<td><b><tt>0&nbsp;1&nbsp;2&nbsp;3&nbsp;4&nbsp;5&nbsp;6&nbsp;7&nbsp;8&nbsp;9&nbsp;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>&nbsp;
2326*593dc095SDavid du Colombier	<td align=center>Transfer
2327*593dc095SDavid du Colombier	<td colspan=3>&nbsp;
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>=&gt;
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>=&gt;
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>&nbsp;
2341*593dc095SDavid du Colombier	<td>|
2342*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2347*593dc095SDavid du Colombier	<td>|
2348*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
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>&nbsp;
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) &amp;&amp; (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) &amp;&amp; (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) &amp;&amp; (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 &gt; 0) &amp;&amp; ColorAdjustMatrix_present) { =&gt; 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 &times; 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>&nbsp;
2497*593dc095SDavid du Colombier	<td>&nbsp;
2498*593dc095SDavid du Colombier	<th colspan=5>Cyan<hr>
2499*593dc095SDavid du Colombier	<td>&nbsp;
2500*593dc095SDavid du Colombier	<th colspan=5>Magenta<hr>
2501*593dc095SDavid du Colombier<tr valign=top>	<th>CI/15
2502*593dc095SDavid du Colombier	<td>&nbsp;
2503*593dc095SDavid du Colombier	<th>gs_color_values
2504*593dc095SDavid du Colombier	<td>&nbsp;
2505*593dc095SDavid du Colombier	<th>CI
2506*593dc095SDavid du Colombier	<td>&nbsp;
2507*593dc095SDavid du Colombier	<th>Ink
2508*593dc095SDavid du Colombier	<td>&nbsp;
2509*593dc095SDavid du Colombier	<th>gs_color_values
2510*593dc095SDavid du Colombier	<td>&nbsp;
2511*593dc095SDavid du Colombier	<th>CI
2512*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2517*593dc095SDavid du Colombier	<td align=center>0.000 - 0.062
2518*593dc095SDavid du Colombier	<td>&nbsp;
2519*593dc095SDavid du Colombier	<td align=right>0
2520*593dc095SDavid du Colombier	<td>&nbsp;
2521*593dc095SDavid du Colombier	<td align=center>0.000
2522*593dc095SDavid du Colombier	<td>&nbsp;
2523*593dc095SDavid du Colombier	<td align=center>-0.123 - 0.123
2524*593dc095SDavid du Colombier	<td>&nbsp;
2525*593dc095SDavid du Colombier	<td align=right>0
2526*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2530*593dc095SDavid du Colombier	<td align=center>0.063 - 0.125
2531*593dc095SDavid du Colombier	<td>&nbsp;
2532*593dc095SDavid du Colombier	<td align=right>1
2533*593dc095SDavid du Colombier	<td>&nbsp;
2534*593dc095SDavid du Colombier	<td align=center>0.067
2535*593dc095SDavid du Colombier	<td>&nbsp;
2536*593dc095SDavid du Colombier	<td align=center>0.123 - 0.299
2537*593dc095SDavid du Colombier	<td>&nbsp;
2538*593dc095SDavid du Colombier	<td align=right>1
2539*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2543*593dc095SDavid du Colombier	<td align=center>0.125 - 0.187
2544*593dc095SDavid du Colombier	<td>&nbsp;
2545*593dc095SDavid du Colombier	<td align=right>2
2546*593dc095SDavid du Colombier	<td>&nbsp;
2547*593dc095SDavid du Colombier	<td align=center>0.133
2548*593dc095SDavid du Colombier	<td>&nbsp;
2549*593dc095SDavid du Colombier	<td align=center>0.299 - 0.365
2550*593dc095SDavid du Colombier	<td>&nbsp;
2551*593dc095SDavid du Colombier	<td align=right>2
2552*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2556*593dc095SDavid du Colombier	<td align=center>0.188 - 0.250
2557*593dc095SDavid du Colombier	<td>&nbsp;
2558*593dc095SDavid du Colombier	<td align=right>3
2559*593dc095SDavid du Colombier	<td>&nbsp;
2560*593dc095SDavid du Colombier	<td align=center>0.200
2561*593dc095SDavid du Colombier	<td>&nbsp;
2562*593dc095SDavid du Colombier	<td align=center>0.365 - 0.392
2563*593dc095SDavid du Colombier	<td>&nbsp;
2564*593dc095SDavid du Colombier	<td align=right>3
2565*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2569*593dc095SDavid du Colombier	<td align=center>0.250 - 0.312
2570*593dc095SDavid du Colombier	<td>&nbsp;
2571*593dc095SDavid du Colombier	<td align=right>4
2572*593dc095SDavid du Colombier	<td>&nbsp;
2573*593dc095SDavid du Colombier	<td align=center>0.267
2574*593dc095SDavid du Colombier	<td>&nbsp;
2575*593dc095SDavid du Colombier	<td align=center>0.392 - 0.420
2576*593dc095SDavid du Colombier	<td>&nbsp;
2577*593dc095SDavid du Colombier	<td align=right>4
2578*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2582*593dc095SDavid du Colombier	<td align=center>0.313 - 0.375
2583*593dc095SDavid du Colombier	<td>&nbsp;
2584*593dc095SDavid du Colombier	<td align=right>5
2585*593dc095SDavid du Colombier	<td>&nbsp;
2586*593dc095SDavid du Colombier	<td align=center>0.333
2587*593dc095SDavid du Colombier	<td>&nbsp;
2588*593dc095SDavid du Colombier	<td align=center>0.420 - 0.447
2589*593dc095SDavid du Colombier	<td>&nbsp;
2590*593dc095SDavid du Colombier	<td align=right>5
2591*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2595*593dc095SDavid du Colombier	<td align=center>0.375 - 0.437
2596*593dc095SDavid du Colombier	<td>&nbsp;
2597*593dc095SDavid du Colombier	<td align=right>6
2598*593dc095SDavid du Colombier	<td>&nbsp;
2599*593dc095SDavid du Colombier	<td align=center>0.400
2600*593dc095SDavid du Colombier	<td>&nbsp;
2601*593dc095SDavid du Colombier	<td align=center>0.447 - 0.475
2602*593dc095SDavid du Colombier	<td>&nbsp;
2603*593dc095SDavid du Colombier	<td align=right>6
2604*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2608*593dc095SDavid du Colombier	<td align=center>0.438 - 0.500
2609*593dc095SDavid du Colombier	<td>&nbsp;
2610*593dc095SDavid du Colombier	<td align=right>7
2611*593dc095SDavid du Colombier	<td>&nbsp;
2612*593dc095SDavid du Colombier	<td align=center>0.467
2613*593dc095SDavid du Colombier	<td>&nbsp;
2614*593dc095SDavid du Colombier	<td align=center>0.475 - 0.502
2615*593dc095SDavid du Colombier	<td>&nbsp;
2616*593dc095SDavid du Colombier	<td align=right>7
2617*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2621*593dc095SDavid du Colombier	<td align=center>0.500 - 0.562
2622*593dc095SDavid du Colombier	<td>&nbsp;
2623*593dc095SDavid du Colombier	<td align=right>8
2624*593dc095SDavid du Colombier	<td>&nbsp;
2625*593dc095SDavid du Colombier	<td align=center>0.533
2626*593dc095SDavid du Colombier	<td>&nbsp;
2627*593dc095SDavid du Colombier	<td align=center>0.502 - 0.529
2628*593dc095SDavid du Colombier	<td>&nbsp;
2629*593dc095SDavid du Colombier	<td align=right>8
2630*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2634*593dc095SDavid du Colombier	<td align=center>0.563 - 0.625
2635*593dc095SDavid du Colombier	<td>&nbsp;
2636*593dc095SDavid du Colombier	<td align=right>9
2637*593dc095SDavid du Colombier	<td>&nbsp;
2638*593dc095SDavid du Colombier	<td align=center>0.600
2639*593dc095SDavid du Colombier	<td>&nbsp;
2640*593dc095SDavid du Colombier	<td align=center>0.529 - 0.557
2641*593dc095SDavid du Colombier	<td>&nbsp;
2642*593dc095SDavid du Colombier	<td align=right>9
2643*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2647*593dc095SDavid du Colombier	<td align=center>0.625 - 0.687
2648*593dc095SDavid du Colombier	<td>&nbsp;
2649*593dc095SDavid du Colombier	<td align=right>10
2650*593dc095SDavid du Colombier	<td>&nbsp;
2651*593dc095SDavid du Colombier	<td align=center>0.667
2652*593dc095SDavid du Colombier	<td>&nbsp;
2653*593dc095SDavid du Colombier	<td align=center>0.557 - 0.584
2654*593dc095SDavid du Colombier	<td>&nbsp;
2655*593dc095SDavid du Colombier	<td align=right>10
2656*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2660*593dc095SDavid du Colombier	<td align=center>0.688 - 0.750
2661*593dc095SDavid du Colombier	<td>&nbsp;
2662*593dc095SDavid du Colombier	<td align=right>11
2663*593dc095SDavid du Colombier	<td>&nbsp;
2664*593dc095SDavid du Colombier	<td align=center>0.733
2665*593dc095SDavid du Colombier	<td>&nbsp;
2666*593dc095SDavid du Colombier	<td align=center>0.584 - 0.612
2667*593dc095SDavid du Colombier	<td>&nbsp;
2668*593dc095SDavid du Colombier	<td align=right>11
2669*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2673*593dc095SDavid du Colombier	<td align=center>0.750 - 0.812
2674*593dc095SDavid du Colombier	<td>&nbsp;
2675*593dc095SDavid du Colombier	<td align=right>12
2676*593dc095SDavid du Colombier	<td>&nbsp;
2677*593dc095SDavid du Colombier	<td align=center>0.800
2678*593dc095SDavid du Colombier	<td>&nbsp;
2679*593dc095SDavid du Colombier	<td align=center>0.612 - 0.639
2680*593dc095SDavid du Colombier	<td>&nbsp;
2681*593dc095SDavid du Colombier	<td align=right>12
2682*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2686*593dc095SDavid du Colombier	<td align=center>0.813 - 0.875
2687*593dc095SDavid du Colombier	<td>&nbsp;
2688*593dc095SDavid du Colombier	<td align=right>13
2689*593dc095SDavid du Colombier	<td>&nbsp;
2690*593dc095SDavid du Colombier	<td align=center>0.867
2691*593dc095SDavid du Colombier	<td>&nbsp;
2692*593dc095SDavid du Colombier	<td align=center>0.639 - 0.715
2693*593dc095SDavid du Colombier	<td>&nbsp;
2694*593dc095SDavid du Colombier	<td align=right>13
2695*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2699*593dc095SDavid du Colombier	<td align=center>0.875 - 0.937
2700*593dc095SDavid du Colombier	<td>&nbsp;
2701*593dc095SDavid du Colombier	<td align=right>14
2702*593dc095SDavid du Colombier	<td>&nbsp;
2703*593dc095SDavid du Colombier	<td align=center>0.933
2704*593dc095SDavid du Colombier	<td>&nbsp;
2705*593dc095SDavid du Colombier	<td align=center>0.715 - 0.889
2706*593dc095SDavid du Colombier	<td>&nbsp;
2707*593dc095SDavid du Colombier	<td align=right>14
2708*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2712*593dc095SDavid du Colombier	<td align=center>0.938 - 1.000
2713*593dc095SDavid du Colombier	<td>&nbsp;
2714*593dc095SDavid du Colombier	<td align=right>15
2715*593dc095SDavid du Colombier	<td>&nbsp;
2716*593dc095SDavid du Colombier	<td align=center>1.000
2717*593dc095SDavid du Colombier	<td>&nbsp;
2718*593dc095SDavid du Colombier	<td align=center>0.889 - 1.111
2719*593dc095SDavid du Colombier	<td>&nbsp;
2720*593dc095SDavid du Colombier	<td align=right>15
2721*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2741*593dc095SDavid du Colombier	<td>&nbsp;
2742*593dc095SDavid du Colombier	<th colspan=5>Yellow<hr>
2743*593dc095SDavid du Colombier	<td>&nbsp;
2744*593dc095SDavid du Colombier	<th colspan=5>Black<hr>
2745*593dc095SDavid du Colombier<tr valign=top>	<th>CI/15
2746*593dc095SDavid du Colombier	<td>&nbsp;
2747*593dc095SDavid du Colombier	<th>gs_color_values
2748*593dc095SDavid du Colombier	<td>&nbsp;
2749*593dc095SDavid du Colombier	<th>CI
2750*593dc095SDavid du Colombier	<td>&nbsp;
2751*593dc095SDavid du Colombier	<th>Ink
2752*593dc095SDavid du Colombier	<td>&nbsp;
2753*593dc095SDavid du Colombier	<th>gs_color_values
2754*593dc095SDavid du Colombier	<td>&nbsp;
2755*593dc095SDavid du Colombier	<th>CI
2756*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2761*593dc095SDavid du Colombier	<td align=center>0.000 - 0.062
2762*593dc095SDavid du Colombier	<td>&nbsp;
2763*593dc095SDavid du Colombier	<td align=right>0
2764*593dc095SDavid du Colombier	<td>&nbsp;
2765*593dc095SDavid du Colombier	<td align=center>0.000
2766*593dc095SDavid du Colombier	<td>&nbsp;
2767*593dc095SDavid du Colombier	<td align=center>-0.123 - 0.123
2768*593dc095SDavid du Colombier	<td>&nbsp;
2769*593dc095SDavid du Colombier	<td align=right>0
2770*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2774*593dc095SDavid du Colombier	<td align=center>0.063 - 0.125
2775*593dc095SDavid du Colombier	<td>&nbsp;
2776*593dc095SDavid du Colombier	<td align=right>1
2777*593dc095SDavid du Colombier	<td>&nbsp;
2778*593dc095SDavid du Colombier	<td align=center>0.018
2779*593dc095SDavid du Colombier	<td>&nbsp;
2780*593dc095SDavid du Colombier	<td align=center>0.123 - 0.299
2781*593dc095SDavid du Colombier	<td>&nbsp;
2782*593dc095SDavid du Colombier	<td align=right>1
2783*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2787*593dc095SDavid du Colombier	<td align=center>0.125 - 0.187
2788*593dc095SDavid du Colombier	<td>&nbsp;
2789*593dc095SDavid du Colombier	<td align=right>2
2790*593dc095SDavid du Colombier	<td>&nbsp;
2791*593dc095SDavid du Colombier	<td align=center>0.036
2792*593dc095SDavid du Colombier	<td>&nbsp;
2793*593dc095SDavid du Colombier	<td align=center>0.299 - 0.365
2794*593dc095SDavid du Colombier	<td>&nbsp;
2795*593dc095SDavid du Colombier	<td align=right>2
2796*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2800*593dc095SDavid du Colombier	<td align=center>0.188 - 0.250
2801*593dc095SDavid du Colombier	<td>&nbsp;
2802*593dc095SDavid du Colombier	<td align=right>3
2803*593dc095SDavid du Colombier	<td>&nbsp;
2804*593dc095SDavid du Colombier	<td align=center>0.054
2805*593dc095SDavid du Colombier	<td>&nbsp;
2806*593dc095SDavid du Colombier	<td align=center>0.365 - 0.392
2807*593dc095SDavid du Colombier	<td>&nbsp;
2808*593dc095SDavid du Colombier	<td align=right>3
2809*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2813*593dc095SDavid du Colombier	<td align=center>0.250 - 0.312
2814*593dc095SDavid du Colombier	<td>&nbsp;
2815*593dc095SDavid du Colombier	<td align=right>4
2816*593dc095SDavid du Colombier	<td>&nbsp;
2817*593dc095SDavid du Colombier	<td align=center>0.072
2818*593dc095SDavid du Colombier	<td>&nbsp;
2819*593dc095SDavid du Colombier	<td align=center>0.392 - 0.420
2820*593dc095SDavid du Colombier	<td>&nbsp;
2821*593dc095SDavid du Colombier	<td align=right>4
2822*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2826*593dc095SDavid du Colombier	<td align=center>0.313 - 0.375
2827*593dc095SDavid du Colombier	<td>&nbsp;
2828*593dc095SDavid du Colombier	<td align=right>5
2829*593dc095SDavid du Colombier	<td>&nbsp;
2830*593dc095SDavid du Colombier	<td align=center>0.090
2831*593dc095SDavid du Colombier	<td>&nbsp;
2832*593dc095SDavid du Colombier	<td align=center>0.420 - 0.447
2833*593dc095SDavid du Colombier	<td>&nbsp;
2834*593dc095SDavid du Colombier	<td align=right>5
2835*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2839*593dc095SDavid du Colombier	<td align=center>0.375 - 0.437
2840*593dc095SDavid du Colombier	<td>&nbsp;
2841*593dc095SDavid du Colombier	<td align=right>6
2842*593dc095SDavid du Colombier	<td>&nbsp;
2843*593dc095SDavid du Colombier	<td align=center>0.252
2844*593dc095SDavid du Colombier	<td>&nbsp;
2845*593dc095SDavid du Colombier	<td align=center>0.447 - 0.475
2846*593dc095SDavid du Colombier	<td>&nbsp;
2847*593dc095SDavid du Colombier	<td align=right>6
2848*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2852*593dc095SDavid du Colombier	<td align=center>0.438 - 0.500
2853*593dc095SDavid du Colombier	<td>&nbsp;
2854*593dc095SDavid du Colombier	<td align=right>7
2855*593dc095SDavid du Colombier	<td>&nbsp;
2856*593dc095SDavid du Colombier	<td align=center>0.414
2857*593dc095SDavid du Colombier	<td>&nbsp;
2858*593dc095SDavid du Colombier	<td align=center>0.475 - 0.502
2859*593dc095SDavid du Colombier	<td>&nbsp;
2860*593dc095SDavid du Colombier	<td align=right>7
2861*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2865*593dc095SDavid du Colombier	<td align=center>0.500 - 0.562
2866*593dc095SDavid du Colombier	<td>&nbsp;
2867*593dc095SDavid du Colombier	<td align=right>8
2868*593dc095SDavid du Colombier	<td>&nbsp;
2869*593dc095SDavid du Colombier	<td align=center>0.576
2870*593dc095SDavid du Colombier	<td>&nbsp;
2871*593dc095SDavid du Colombier	<td align=center>0.502 - 0.529
2872*593dc095SDavid du Colombier	<td>&nbsp;
2873*593dc095SDavid du Colombier	<td align=right>8
2874*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2878*593dc095SDavid du Colombier	<td align=center>0.563 - 0.625
2879*593dc095SDavid du Colombier	<td>&nbsp;
2880*593dc095SDavid du Colombier	<td align=right>9
2881*593dc095SDavid du Colombier	<td>&nbsp;
2882*593dc095SDavid du Colombier	<td align=center>0.738
2883*593dc095SDavid du Colombier	<td>&nbsp;
2884*593dc095SDavid du Colombier	<td align=center>0.529 - 0.557
2885*593dc095SDavid du Colombier	<td>&nbsp;
2886*593dc095SDavid du Colombier	<td align=right>9
2887*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2891*593dc095SDavid du Colombier	<td align=center>0.625 - 0.687
2892*593dc095SDavid du Colombier	<td>&nbsp;
2893*593dc095SDavid du Colombier	<td align=right>10
2894*593dc095SDavid du Colombier	<td>&nbsp;
2895*593dc095SDavid du Colombier	<td align=center>0.900
2896*593dc095SDavid du Colombier	<td>&nbsp;
2897*593dc095SDavid du Colombier	<td align=center>0.557 - 0.584
2898*593dc095SDavid du Colombier	<td>&nbsp;
2899*593dc095SDavid du Colombier	<td align=right>10
2900*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2904*593dc095SDavid du Colombier	<td align=center>0.688 - 0.750
2905*593dc095SDavid du Colombier	<td>&nbsp;
2906*593dc095SDavid du Colombier	<td align=right>11
2907*593dc095SDavid du Colombier	<td>&nbsp;
2908*593dc095SDavid du Colombier	<td align=center>0.920
2909*593dc095SDavid du Colombier	<td>&nbsp;
2910*593dc095SDavid du Colombier	<td align=center>0.584 - 0.612
2911*593dc095SDavid du Colombier	<td>&nbsp;
2912*593dc095SDavid du Colombier	<td align=right>11
2913*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2917*593dc095SDavid du Colombier	<td align=center>0.750 - 0.812
2918*593dc095SDavid du Colombier	<td>&nbsp;
2919*593dc095SDavid du Colombier	<td align=right>12
2920*593dc095SDavid du Colombier	<td>&nbsp;
2921*593dc095SDavid du Colombier	<td align=center>0.940
2922*593dc095SDavid du Colombier	<td>&nbsp;
2923*593dc095SDavid du Colombier	<td align=center>0.612 - 0.639
2924*593dc095SDavid du Colombier	<td>&nbsp;
2925*593dc095SDavid du Colombier	<td align=right>12
2926*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2930*593dc095SDavid du Colombier	<td align=center>0.813 - 0.875
2931*593dc095SDavid du Colombier	<td>&nbsp;
2932*593dc095SDavid du Colombier	<td align=right>13
2933*593dc095SDavid du Colombier	<td>&nbsp;
2934*593dc095SDavid du Colombier	<td align=center>0.960
2935*593dc095SDavid du Colombier	<td>&nbsp;
2936*593dc095SDavid du Colombier	<td align=center>0.639 - 0.715
2937*593dc095SDavid du Colombier	<td>&nbsp;
2938*593dc095SDavid du Colombier	<td align=right>13
2939*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2943*593dc095SDavid du Colombier	<td align=center>0.875 - 0.937
2944*593dc095SDavid du Colombier	<td>&nbsp;
2945*593dc095SDavid du Colombier	<td align=right>14
2946*593dc095SDavid du Colombier	<td>&nbsp;
2947*593dc095SDavid du Colombier	<td align=center>0.980
2948*593dc095SDavid du Colombier	<td>&nbsp;
2949*593dc095SDavid du Colombier	<td align=center>0.715 - 0.889
2950*593dc095SDavid du Colombier	<td>&nbsp;
2951*593dc095SDavid du Colombier	<td align=right>14
2952*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
2956*593dc095SDavid du Colombier	<td align=center>0.938 - 1.000
2957*593dc095SDavid du Colombier	<td>&nbsp;
2958*593dc095SDavid du Colombier	<td align=right>15
2959*593dc095SDavid du Colombier	<td>&nbsp;
2960*593dc095SDavid du Colombier	<td align=center>1.000
2961*593dc095SDavid du Colombier	<td>&nbsp;
2962*593dc095SDavid du Colombier	<td align=center>0.889 - 1.111
2963*593dc095SDavid du Colombier	<td>&nbsp;
2964*593dc095SDavid du Colombier	<td align=right>15
2965*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3043*593dc095SDavid du Colombier	<td>&nbsp;
3044*593dc095SDavid du Colombier	<th valign=bottom colspan=7>Weaving<hr>
3045*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
3046*593dc095SDavid du Colombier	<th valign=bottom colspan=7>noWeave<hr>
3047*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3048*593dc095SDavid du Colombier	<th>Pass
3049*593dc095SDavid du Colombier	<th>1
3050*593dc095SDavid du Colombier	<td>&nbsp;
3051*593dc095SDavid du Colombier	<th>2
3052*593dc095SDavid du Colombier	<td>&nbsp;
3053*593dc095SDavid du Colombier	<th>3
3054*593dc095SDavid du Colombier	<td>&nbsp;
3055*593dc095SDavid du Colombier	<th>4
3056*593dc095SDavid du Colombier	<td>&nbsp;
3057*593dc095SDavid du Colombier	<th>1
3058*593dc095SDavid du Colombier	<td>&nbsp;
3059*593dc095SDavid du Colombier	<th>2
3060*593dc095SDavid du Colombier	<td>&nbsp;
3061*593dc095SDavid du Colombier	<th>3
3062*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3067*593dc095SDavid du Colombier	<td align=center>jet 0
3068*593dc095SDavid du Colombier	<td>&nbsp;
3069*593dc095SDavid du Colombier	<td align=center>--
3070*593dc095SDavid du Colombier	<td>&nbsp;
3071*593dc095SDavid du Colombier	<td align=center>--
3072*593dc095SDavid du Colombier	<td>&nbsp;
3073*593dc095SDavid du Colombier	<td align=center>--
3074*593dc095SDavid du Colombier	<td>&nbsp;
3075*593dc095SDavid du Colombier	<td align=center>jet 0
3076*593dc095SDavid du Colombier	<td>&nbsp;
3077*593dc095SDavid du Colombier	<td align=center>--
3078*593dc095SDavid du Colombier	<td>&nbsp;
3079*593dc095SDavid du Colombier	<td align=center>--
3080*593dc095SDavid du Colombier	<td>&nbsp;
3081*593dc095SDavid du Colombier	<td align=center>--
3082*593dc095SDavid du Colombier<tr valign=top>	<td align=center>1
3083*593dc095SDavid du Colombier	<td>&nbsp;
3084*593dc095SDavid du Colombier	<td align=center>--
3085*593dc095SDavid du Colombier	<td>&nbsp;
3086*593dc095SDavid du Colombier	<td align=center>jet 1
3087*593dc095SDavid du Colombier	<td>&nbsp;
3088*593dc095SDavid du Colombier	<td align=center>--
3089*593dc095SDavid du Colombier	<td>&nbsp;
3090*593dc095SDavid du Colombier	<td align=center>--
3091*593dc095SDavid du Colombier	<td>&nbsp;
3092*593dc095SDavid du Colombier	<td align=center>--
3093*593dc095SDavid du Colombier	<td>&nbsp;
3094*593dc095SDavid du Colombier	<td align=center>jet 0
3095*593dc095SDavid du Colombier	<td>&nbsp;
3096*593dc095SDavid du Colombier	<td align=center>--
3097*593dc095SDavid du Colombier	<td>&nbsp;
3098*593dc095SDavid du Colombier	<td align=center>--
3099*593dc095SDavid du Colombier<tr valign=top>	<td align=center>2
3100*593dc095SDavid du Colombier	<td>&nbsp;
3101*593dc095SDavid du Colombier	<td align=center>--
3102*593dc095SDavid du Colombier	<td>&nbsp;
3103*593dc095SDavid du Colombier	<td align=center>--
3104*593dc095SDavid du Colombier	<td>&nbsp;
3105*593dc095SDavid du Colombier	<td align=center>jet 2
3106*593dc095SDavid du Colombier	<td>&nbsp;
3107*593dc095SDavid du Colombier	<td align=center>--
3108*593dc095SDavid du Colombier	<td>&nbsp;
3109*593dc095SDavid du Colombier	<td align=center>--
3110*593dc095SDavid du Colombier	<td>&nbsp;
3111*593dc095SDavid du Colombier	<td align=center>--
3112*593dc095SDavid du Colombier	<td>&nbsp;
3113*593dc095SDavid du Colombier	<td align=center>jet 0
3114*593dc095SDavid du Colombier	<td>&nbsp;
3115*593dc095SDavid du Colombier	<td align=center>--
3116*593dc095SDavid du Colombier<tr valign=top>	<td align=center>3
3117*593dc095SDavid du Colombier	<td>&nbsp;
3118*593dc095SDavid du Colombier	<td align=center>--
3119*593dc095SDavid du Colombier	<td>&nbsp;
3120*593dc095SDavid du Colombier	<td align=center>--
3121*593dc095SDavid du Colombier	<td>&nbsp;
3122*593dc095SDavid du Colombier	<td align=center>--
3123*593dc095SDavid du Colombier	<td>&nbsp;
3124*593dc095SDavid du Colombier	<td align=center>jet 3
3125*593dc095SDavid du Colombier	<td>&nbsp;
3126*593dc095SDavid du Colombier	<td align=center>--
3127*593dc095SDavid du Colombier	<td>&nbsp;
3128*593dc095SDavid du Colombier	<td align=center>--
3129*593dc095SDavid du Colombier	<td>&nbsp;
3130*593dc095SDavid du Colombier	<td align=center>--
3131*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3135*593dc095SDavid du Colombier	<td align=center>jet 1
3136*593dc095SDavid du Colombier	<td>&nbsp;
3137*593dc095SDavid du Colombier	<td align=center>--
3138*593dc095SDavid du Colombier	<td>&nbsp;
3139*593dc095SDavid du Colombier	<td align=center>--
3140*593dc095SDavid du Colombier	<td>&nbsp;
3141*593dc095SDavid du Colombier	<td align=center>--
3142*593dc095SDavid du Colombier	<td>&nbsp;
3143*593dc095SDavid du Colombier	<td align=center>jet 1
3144*593dc095SDavid du Colombier	<td>&nbsp;
3145*593dc095SDavid du Colombier	<td align=center>--
3146*593dc095SDavid du Colombier	<td>&nbsp;
3147*593dc095SDavid du Colombier	<td align=center>--
3148*593dc095SDavid du Colombier	<td>&nbsp;
3149*593dc095SDavid du Colombier	<td align=center>--
3150*593dc095SDavid du Colombier<tr valign=top>	<td align=center>5
3151*593dc095SDavid du Colombier	<td>&nbsp;
3152*593dc095SDavid du Colombier	<td align=center>--
3153*593dc095SDavid du Colombier	<td>&nbsp;
3154*593dc095SDavid du Colombier	<td align=center>jet 2
3155*593dc095SDavid du Colombier	<td>&nbsp;
3156*593dc095SDavid du Colombier	<td align=center>--
3157*593dc095SDavid du Colombier	<td>&nbsp;
3158*593dc095SDavid du Colombier	<td align=center>--
3159*593dc095SDavid du Colombier	<td>&nbsp;
3160*593dc095SDavid du Colombier	<td align=center>--
3161*593dc095SDavid du Colombier	<td>&nbsp;
3162*593dc095SDavid du Colombier	<td align=center>jet 1
3163*593dc095SDavid du Colombier	<td>&nbsp;
3164*593dc095SDavid du Colombier	<td align=center>--
3165*593dc095SDavid du Colombier	<td>&nbsp;
3166*593dc095SDavid du Colombier	<td align=center>--
3167*593dc095SDavid du Colombier<tr valign=top>	<td align=center>6
3168*593dc095SDavid du Colombier	<td>&nbsp;
3169*593dc095SDavid du Colombier	<td align=center>--
3170*593dc095SDavid du Colombier	<td>&nbsp;
3171*593dc095SDavid du Colombier	<td align=center>--
3172*593dc095SDavid du Colombier	<td>&nbsp;
3173*593dc095SDavid du Colombier	<td align=center>jet 3
3174*593dc095SDavid du Colombier	<td>&nbsp;
3175*593dc095SDavid du Colombier	<td align=center>--
3176*593dc095SDavid du Colombier	<td>&nbsp;
3177*593dc095SDavid du Colombier	<td align=center>--
3178*593dc095SDavid du Colombier	<td>&nbsp;
3179*593dc095SDavid du Colombier	<td align=center>--
3180*593dc095SDavid du Colombier	<td>&nbsp;
3181*593dc095SDavid du Colombier	<td align=center>jet 1
3182*593dc095SDavid du Colombier	<td>&nbsp;
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&times;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&times;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 - &lt; 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&nbsp;.&nbsp;3&nbsp;10&nbsp;10&nbsp;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&nbsp;.&nbsp;1&nbsp;40&nbsp;10&nbsp;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&nbsp;.&nbsp;1&nbsp;10&nbsp;10&nbsp;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&nbsp;.&nbsp;0&nbsp;40&nbsp;10&nbsp;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>&nbsp;
3337*593dc095SDavid du Colombier	<td>&nbsp;
3338*593dc095SDavid du Colombier	<th><b><tt>golfer.ps</tt></b>
3339*593dc095SDavid du Colombier	<td>&nbsp;
3340*593dc095SDavid du Colombier	<th><b><tt>colorcir.ps</tt></b>
3341*593dc095SDavid du Colombier	<td>&nbsp;
3342*593dc095SDavid du Colombier	<th><b><tt>drawing.ps</tt></b>
3343*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3348*593dc095SDavid du Colombier	<td>572751/48.180u
3349*593dc095SDavid du Colombier	<td>&nbsp;
3350*593dc095SDavid du Colombier	<td>643374/41.690u
3351*593dc095SDavid du Colombier	<td>&nbsp;
3352*593dc095SDavid du Colombier	<td>90142/46.180u/1:50
3353*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3357*593dc095SDavid du Colombier	<td>559593/46.810u
3358*593dc095SDavid du Colombier	<td>&nbsp;
3359*593dc095SDavid du Colombier	<td>669966/44.960u
3360*593dc095SDavid du Colombier	<td>&nbsp;
3361*593dc095SDavid du Colombier	<td>296168/48.160u/1:30
3362*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3366*593dc095SDavid du Colombier	<td>590999/56.060u
3367*593dc095SDavid du Colombier	<td>&nbsp;
3368*593dc095SDavid du Colombier	<td>754276/42.890u
3369*593dc095SDavid du Colombier	<td>&nbsp;
3370*593dc095SDavid du Colombier	<td>338885/47.060u/1:50
3371*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3379*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
3422*593dc095SDavid du Colombier	<th colspan=3>Print mode
3423*593dc095SDavid du Colombier	<td>&nbsp;
3424*593dc095SDavid du Colombier	<th>Size KB
3425*593dc095SDavid du Colombier	<td>&nbsp;
3426*593dc095SDavid du Colombier	<th>Time
3427*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
3432*593dc095SDavid du Colombier	<td>mono
3433*593dc095SDavid du Colombier	<td>&nbsp;
3434*593dc095SDavid du Colombier	<td align=right>-/uni
3435*593dc095SDavid du Colombier	<td>&nbsp;
3436*593dc095SDavid du Colombier	<td align=right>358
3437*593dc095SDavid du Colombier	<td>&nbsp;
3438*593dc095SDavid du Colombier	<td align=right>1:15
3439*593dc095SDavid du Colombier	<td>&nbsp;
3440*593dc095SDavid du Colombier	<td>&nbsp;
3441*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3442*593dc095SDavid du Colombier	<td>&nbsp;
3443*593dc095SDavid du Colombier	<td align=right>&nbsp;
3444*593dc095SDavid du Colombier	<td>&nbsp;
3445*593dc095SDavid du Colombier	<td align=right>-/bi
3446*593dc095SDavid du Colombier	<td>&nbsp;
3447*593dc095SDavid du Colombier	<td align=right>358
3448*593dc095SDavid du Colombier	<td>&nbsp;
3449*593dc095SDavid du Colombier	<td align=right>0:45
3450*593dc095SDavid du Colombier	<td>&nbsp;
3451*593dc095SDavid du Colombier	<td>&nbsp;
3452*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3453*593dc095SDavid du Colombier	<td>&nbsp;
3454*593dc095SDavid du Colombier	<td align=right>&nbsp;
3455*593dc095SDavid du Colombier	<td>&nbsp;
3456*593dc095SDavid du Colombier	<td align=right>micro/bi
3457*593dc095SDavid du Colombier	<td>&nbsp;
3458*593dc095SDavid du Colombier	<td align=right>205
3459*593dc095SDavid du Colombier	<td>&nbsp;
3460*593dc095SDavid du Colombier	<td align=right>0:45
3461*593dc095SDavid du Colombier	<td>&nbsp;
3462*593dc095SDavid du Colombier	<td>Not weaving
3463*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3464*593dc095SDavid du Colombier	<td>&nbsp;
3465*593dc095SDavid du Colombier	<td align=right>&nbsp;
3466*593dc095SDavid du Colombier	<td>&nbsp;
3467*593dc095SDavid du Colombier	<td align=right>soft/bi
3468*593dc095SDavid du Colombier	<td>&nbsp;
3469*593dc095SDavid du Colombier	<td align=right>179
3470*593dc095SDavid du Colombier	<td>&nbsp;
3471*593dc095SDavid du Colombier	<td align=right>1:25
3472*593dc095SDavid du Colombier	<td>&nbsp;
3473*593dc095SDavid du Colombier	<td>&nbsp;
3474*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3475*593dc095SDavid du Colombier	<td>&nbsp;
3476*593dc095SDavid du Colombier	<td>color
3477*593dc095SDavid du Colombier	<td>&nbsp;
3478*593dc095SDavid du Colombier	<td align=right>-/bi
3479*593dc095SDavid du Colombier	<td>&nbsp;
3480*593dc095SDavid du Colombier	<td align=right>641
3481*593dc095SDavid du Colombier	<td>&nbsp;
3482*593dc095SDavid du Colombier	<td align=right>2:45
3483*593dc095SDavid du Colombier	<td>&nbsp;
3484*593dc095SDavid du Colombier	<td>&nbsp;
3485*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3486*593dc095SDavid du Colombier	<td>&nbsp;
3487*593dc095SDavid du Colombier	<td align=right>&nbsp;
3488*593dc095SDavid du Colombier	<td>&nbsp;
3489*593dc095SDavid du Colombier	<td align=right>soft/bi
3490*593dc095SDavid du Colombier	<td>&nbsp;
3491*593dc095SDavid du Colombier	<td align=right>556
3492*593dc095SDavid du Colombier	<td>&nbsp;
3493*593dc095SDavid du Colombier	<td align=right>1:32
3494*593dc095SDavid du Colombier	<td>&nbsp;
3495*593dc095SDavid du Colombier	<td>&nbsp;
3496*593dc095SDavid du Colombier<tr valign=top>	<td>360x360
3497*593dc095SDavid du Colombier	<td>&nbsp;
3498*593dc095SDavid du Colombier	<td>mono
3499*593dc095SDavid du Colombier	<td>&nbsp;
3500*593dc095SDavid du Colombier	<td align=right>-/uni
3501*593dc095SDavid du Colombier	<td>&nbsp;
3502*593dc095SDavid du Colombier	<td align=right>269
3503*593dc095SDavid du Colombier	<td>&nbsp;
3504*593dc095SDavid du Colombier	<td align=right>0:50
3505*593dc095SDavid du Colombier	<td>&nbsp;
3506*593dc095SDavid du Colombier	<td>Monochrome text
3507*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3508*593dc095SDavid du Colombier	<td>&nbsp;
3509*593dc095SDavid du Colombier	<td align=right>&nbsp;
3510*593dc095SDavid du Colombier	<td>&nbsp;
3511*593dc095SDavid du Colombier	<td align=right>-/bi
3512*593dc095SDavid du Colombier	<td>&nbsp;
3513*593dc095SDavid du Colombier	<td align=right>269
3514*593dc095SDavid du Colombier	<td>&nbsp;
3515*593dc095SDavid du Colombier	<td align=right>0:35
3516*593dc095SDavid du Colombier	<td>&nbsp;
3517*593dc095SDavid du Colombier	<td>Monochrome text
3518*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3519*593dc095SDavid du Colombier	<td>&nbsp;
3520*593dc095SDavid du Colombier	<td align=right>&nbsp;
3521*593dc095SDavid du Colombier	<td>&nbsp;
3522*593dc095SDavid du Colombier	<td align=right>micro/bi
3523*593dc095SDavid du Colombier	<td>&nbsp;
3524*593dc095SDavid du Colombier	<td align=right>269
3525*593dc095SDavid du Colombier	<td>&nbsp;
3526*593dc095SDavid du Colombier	<td align=right>2:25
3527*593dc095SDavid du Colombier	<td>&nbsp;
3528*593dc095SDavid du Colombier	<td>Monochrome text
3529*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3530*593dc095SDavid du Colombier	<td>&nbsp;
3531*593dc095SDavid du Colombier	<td align=right>&nbsp;
3532*593dc095SDavid du Colombier	<td>&nbsp;
3533*593dc095SDavid du Colombier	<td align=right>soft/uni
3534*593dc095SDavid du Colombier	<td>&nbsp;
3535*593dc095SDavid du Colombier	<td align=right>250
3536*593dc095SDavid du Colombier	<td>&nbsp;
3537*593dc095SDavid du Colombier	<td align=right>3:15
3538*593dc095SDavid du Colombier	<td>&nbsp;
3539*593dc095SDavid du Colombier	<td>Monochrome text
3540*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3541*593dc095SDavid du Colombier	<td>&nbsp;
3542*593dc095SDavid du Colombier	<td align=right>&nbsp;
3543*593dc095SDavid du Colombier	<td>&nbsp;
3544*593dc095SDavid du Colombier	<td align=right>soft/bi
3545*593dc095SDavid du Colombier	<td>&nbsp;
3546*593dc095SDavid du Colombier	<td align=right>250
3547*593dc095SDavid du Colombier	<td>&nbsp;
3548*593dc095SDavid du Colombier	<td align=right>1:55
3549*593dc095SDavid du Colombier	<td>&nbsp;
3550*593dc095SDavid du Colombier	<td>Monochrome text
3551*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3552*593dc095SDavid du Colombier	<td>&nbsp;
3553*593dc095SDavid du Colombier	<td>color
3554*593dc095SDavid du Colombier	<td>&nbsp;
3555*593dc095SDavid du Colombier	<td align=right>-/bi
3556*593dc095SDavid du Colombier	<td>&nbsp;
3557*593dc095SDavid du Colombier	<td align=right>346
3558*593dc095SDavid du Colombier	<td>&nbsp;
3559*593dc095SDavid du Colombier	<td align=right>1:00
3560*593dc095SDavid du Colombier	<td>&nbsp;
3561*593dc095SDavid du Colombier	<td>Sparse-color page, visible displacements
3562*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3563*593dc095SDavid du Colombier	<td>&nbsp;
3564*593dc095SDavid du Colombier	<td align=right>&nbsp;
3565*593dc095SDavid du Colombier	<td>&nbsp;
3566*593dc095SDavid du Colombier	<td align=right>micro/bi
3567*593dc095SDavid du Colombier	<td>&nbsp;
3568*593dc095SDavid du Colombier	<td align=right>346
3569*593dc095SDavid du Colombier	<td>&nbsp;
3570*593dc095SDavid du Colombier	<td align=right>1:50
3571*593dc095SDavid du Colombier	<td>&nbsp;
3572*593dc095SDavid du Colombier	<td>Sparse-color page, looks buggy -- printer?
3573*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3574*593dc095SDavid du Colombier	<td>&nbsp;
3575*593dc095SDavid du Colombier	<td align=right>&nbsp;
3576*593dc095SDavid du Colombier	<td>&nbsp;
3577*593dc095SDavid du Colombier	<td align=right>soft/bi
3578*593dc095SDavid du Colombier	<td>&nbsp;
3579*593dc095SDavid du Colombier	<td align=right>294
3580*593dc095SDavid du Colombier	<td>&nbsp;
3581*593dc095SDavid du Colombier	<td align=right>1:30
3582*593dc095SDavid du Colombier	<td>&nbsp;
3583*593dc095SDavid du Colombier	<td>Sparse-color page, O.K.
3584*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3585*593dc095SDavid du Colombier	<td>&nbsp;
3586*593dc095SDavid du Colombier	<td align=right>&nbsp;
3587*593dc095SDavid du Colombier	<td>&nbsp;
3588*593dc095SDavid du Colombier	<td align=right>-/bi
3589*593dc095SDavid du Colombier	<td>&nbsp;
3590*593dc095SDavid du Colombier	<td align=right>2218
3591*593dc095SDavid du Colombier	<td>&nbsp;
3592*593dc095SDavid du Colombier	<td align=right>2:45
3593*593dc095SDavid du Colombier	<td>&nbsp;
3594*593dc095SDavid du Colombier	<td>Visible stripes
3595*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3596*593dc095SDavid du Colombier	<td>&nbsp;
3597*593dc095SDavid du Colombier	<td align=right>&nbsp;
3598*593dc095SDavid du Colombier	<td>&nbsp;
3599*593dc095SDavid du Colombier	<td align=right>micro/bi
3600*593dc095SDavid du Colombier	<td>&nbsp;
3601*593dc095SDavid du Colombier	<td align=right>5171
3602*593dc095SDavid du Colombier	<td>&nbsp;
3603*593dc095SDavid du Colombier	<td align=right>3:17
3604*593dc095SDavid du Colombier	<td>&nbsp;
3605*593dc095SDavid du Colombier	<td>&nbsp;
3606*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3607*593dc095SDavid du Colombier	<td>&nbsp;
3608*593dc095SDavid du Colombier	<td align=right>&nbsp;
3609*593dc095SDavid du Colombier	<td>&nbsp;
3610*593dc095SDavid du Colombier	<td align=right>soft/bi
3611*593dc095SDavid du Colombier	<td>&nbsp;
3612*593dc095SDavid du Colombier	<td align=right>3675
3613*593dc095SDavid du Colombier	<td>&nbsp;
3614*593dc095SDavid du Colombier	<td align=right>3:05
3615*593dc095SDavid du Colombier	<td>&nbsp;
3616*593dc095SDavid du Colombier	<td>&nbsp;
3617*593dc095SDavid du Colombier<tr valign=top>	<td>360x720
3618*593dc095SDavid du Colombier	<td>&nbsp;
3619*593dc095SDavid du Colombier	<td>mono
3620*593dc095SDavid du Colombier	<td>&nbsp;
3621*593dc095SDavid du Colombier	<td align=right>soft/bi
3622*593dc095SDavid du Colombier	<td>&nbsp;
3623*593dc095SDavid du Colombier	<td align=right>2761
3624*593dc095SDavid du Colombier	<td>&nbsp;
3625*593dc095SDavid du Colombier	<td align=right>5:40
3626*593dc095SDavid du Colombier	<td>&nbsp;
3627*593dc095SDavid du Colombier	<td>&nbsp;
3628*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3629*593dc095SDavid du Colombier	<td>&nbsp;
3630*593dc095SDavid du Colombier	<td>color
3631*593dc095SDavid du Colombier	<td>&nbsp;
3632*593dc095SDavid du Colombier	<td align=right>soft/bi
3633*593dc095SDavid du Colombier	<td>&nbsp;
3634*593dc095SDavid du Colombier	<td align=right>7789
3635*593dc095SDavid du Colombier	<td>&nbsp;
3636*593dc095SDavid du Colombier	<td align=right>6:15
3637*593dc095SDavid du Colombier	<td>&nbsp;
3638*593dc095SDavid du Colombier	<td>Just a small difference!
3639*593dc095SDavid du Colombier<tr valign=top>	<td>720x360
3640*593dc095SDavid du Colombier	<td>&nbsp;
3641*593dc095SDavid du Colombier	<td>color
3642*593dc095SDavid du Colombier	<td>&nbsp;
3643*593dc095SDavid du Colombier	<td align=right>soft/bi
3644*593dc095SDavid du Colombier	<td>&nbsp;
3645*593dc095SDavid du Colombier	<td align=right>7182
3646*593dc095SDavid du Colombier	<td>&nbsp;
3647*593dc095SDavid du Colombier	<td align=right>5:40
3648*593dc095SDavid du Colombier	<td>&nbsp;
3649*593dc095SDavid du Colombier	<td>&nbsp;
3650*593dc095SDavid du Colombier<tr valign=top>	<td>720x720
3651*593dc095SDavid du Colombier	<td>&nbsp;
3652*593dc095SDavid du Colombier	<td>color
3653*593dc095SDavid du Colombier	<td>&nbsp;
3654*593dc095SDavid du Colombier	<td align=right>micro/bi
3655*593dc095SDavid du Colombier	<td>&nbsp;
3656*593dc095SDavid du Colombier	<td align=right>14748
3657*593dc095SDavid du Colombier	<td>&nbsp;
3658*593dc095SDavid du Colombier	<td align=right>30:26
3659*593dc095SDavid du Colombier	<td>&nbsp;
3660*593dc095SDavid du Colombier	<td>Actually beyond printer's capabilities
3661*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3662*593dc095SDavid du Colombier	<td>&nbsp;
3663*593dc095SDavid du Colombier	<td align=right>&nbsp;
3664*593dc095SDavid du Colombier	<td>&nbsp;
3665*593dc095SDavid du Colombier	<td align=right>soft/bi
3666*593dc095SDavid du Colombier	<td>&nbsp;
3667*593dc095SDavid du Colombier	<td align=right>14407
3668*593dc095SDavid du Colombier	<td>&nbsp;
3669*593dc095SDavid du Colombier	<td align=right>11:08
3670*593dc095SDavid du Colombier	<td>&nbsp;
3671*593dc095SDavid du Colombier	<td>&nbsp;
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&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
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&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt; 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- -&gt; Updated- -&gt; 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>&nbsp;&nbsp;&nbsp;&nbsp;
3759*593dc095SDavid du Colombier	<td><b><tt>bjc610a0.upp</tt></b>
3760*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
3761*593dc095SDavid du Colombier	<td>360&times;360dpi
3762*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;
3763*593dc095SDavid du Colombier	<td>plain paper, high speed
3764*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3765*593dc095SDavid du Colombier	<td><b><tt>bjc610a1.upp</tt></b>
3766*593dc095SDavid du Colombier	<td>&nbsp;
3767*593dc095SDavid du Colombier	<td>360&times;360dpi
3768*593dc095SDavid du Colombier	<td>&nbsp;
3769*593dc095SDavid du Colombier	<td>plain paper
3770*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3771*593dc095SDavid du Colombier	<td><b><tt>bjc610a2.upp</tt></b>
3772*593dc095SDavid du Colombier	<td>&nbsp;
3773*593dc095SDavid du Colombier	<td>360&times;360dpi
3774*593dc095SDavid du Colombier	<td>&nbsp;
3775*593dc095SDavid du Colombier	<td>coated paper
3776*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3777*593dc095SDavid du Colombier	<td><b><tt>bjc610a3.upp</tt></b>
3778*593dc095SDavid du Colombier	<td>&nbsp;
3779*593dc095SDavid du Colombier	<td>360&times;360dpi
3780*593dc095SDavid du Colombier	<td>&nbsp;
3781*593dc095SDavid du Colombier	<td>transparency film
3782*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3783*593dc095SDavid du Colombier	<td><b><tt>bjc610a4.upp</tt></b>
3784*593dc095SDavid du Colombier	<td>&nbsp;
3785*593dc095SDavid du Colombier	<td>360&times;360dpi
3786*593dc095SDavid du Colombier	<td>&nbsp;
3787*593dc095SDavid du Colombier	<td>back print film
3788*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3789*593dc095SDavid du Colombier	<td><b><tt>bjc610a5.upp</tt></b>
3790*593dc095SDavid du Colombier	<td>&nbsp;
3791*593dc095SDavid du Colombier	<td>360&times;360dpi
3792*593dc095SDavid du Colombier	<td>&nbsp;
3793*593dc095SDavid du Colombier	<td>fabric sheet
3794*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3795*593dc095SDavid du Colombier	<td><b><tt>bjc610a6.upp</tt></b>
3796*593dc095SDavid du Colombier	<td>&nbsp;
3797*593dc095SDavid du Colombier	<td>360&times;360dpi
3798*593dc095SDavid du Colombier	<td>&nbsp;
3799*593dc095SDavid du Colombier	<td>glossy paper
3800*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3801*593dc095SDavid du Colombier	<td><b><tt>bjc610a7.upp</tt></b>
3802*593dc095SDavid du Colombier	<td>&nbsp;
3803*593dc095SDavid du Colombier	<td>360&times;360dpi
3804*593dc095SDavid du Colombier	<td>&nbsp;
3805*593dc095SDavid du Colombier	<td>high gloss film
3806*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3807*593dc095SDavid du Colombier	<td><b><tt>bjc610a8.upp</tt></b>
3808*593dc095SDavid du Colombier	<td>&nbsp;
3809*593dc095SDavid du Colombier	<td>360&times;360dpi
3810*593dc095SDavid du Colombier	<td>&nbsp;
3811*593dc095SDavid du Colombier	<td>high resolution paper
3812*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3813*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3814*593dc095SDavid du Colombier	<td><b><tt>bjc610b1.upp</tt></b>
3815*593dc095SDavid du Colombier	<td>&nbsp;
3816*593dc095SDavid du Colombier	<td>720&times;720dpi
3817*593dc095SDavid du Colombier	<td>&nbsp;
3818*593dc095SDavid du Colombier	<td>plain paper
3819*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3820*593dc095SDavid du Colombier	<td><b><tt>bjc610b2.upp</tt></b>
3821*593dc095SDavid du Colombier	<td>&nbsp;
3822*593dc095SDavid du Colombier	<td>720&times;720dpi
3823*593dc095SDavid du Colombier	<td>&nbsp;
3824*593dc095SDavid du Colombier	<td>coated paper
3825*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3826*593dc095SDavid du Colombier	<td><b><tt>bjc610b3.upp</tt></b>
3827*593dc095SDavid du Colombier	<td>&nbsp;
3828*593dc095SDavid du Colombier	<td>720&times;720dpi
3829*593dc095SDavid du Colombier	<td>&nbsp;
3830*593dc095SDavid du Colombier	<td>transparency film
3831*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3832*593dc095SDavid du Colombier	<td><b><tt>bjc610b4.upp</tt></b>
3833*593dc095SDavid du Colombier	<td>&nbsp;
3834*593dc095SDavid du Colombier	<td>720&times;720dpi
3835*593dc095SDavid du Colombier	<td>&nbsp;
3836*593dc095SDavid du Colombier	<td>back print film
3837*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3838*593dc095SDavid du Colombier	<td><b><tt>bjc610b6.upp</tt></b>
3839*593dc095SDavid du Colombier	<td>&nbsp;
3840*593dc095SDavid du Colombier	<td>720&times;720dpi
3841*593dc095SDavid du Colombier	<td>&nbsp;
3842*593dc095SDavid du Colombier	<td>glossy paper
3843*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3844*593dc095SDavid du Colombier	<td><b><tt>bjc610b7.upp</tt></b>
3845*593dc095SDavid du Colombier	<td>&nbsp;
3846*593dc095SDavid du Colombier	<td>720&times;720dpi
3847*593dc095SDavid du Colombier	<td>&nbsp;
3848*593dc095SDavid du Colombier	<td>high-gloss paper
3849*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3850*593dc095SDavid du Colombier	<td><b><tt>bjc610b8.upp</tt></b>
3851*593dc095SDavid du Colombier	<td>&nbsp;
3852*593dc095SDavid du Colombier	<td>720&times;720dpi
3853*593dc095SDavid du Colombier	<td>&nbsp;
3854*593dc095SDavid du Colombier	<td>high resolution paper
3855*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3856*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>HP Ink-Printers
3857*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3858*593dc095SDavid du Colombier	<td><b><tt>cdj550.upp</tt></b>
3859*593dc095SDavid du Colombier	<td>&nbsp;
3860*593dc095SDavid du Colombier	<td>300&times;300dpi
3861*593dc095SDavid du Colombier	<td>&nbsp;
3862*593dc095SDavid du Colombier	<td>32-bit CMYK
3863*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3864*593dc095SDavid du Colombier	<td><b><tt>cdj690.upp</tt></b>
3865*593dc095SDavid du Colombier	<td>&nbsp;
3866*593dc095SDavid du Colombier	<td>300&times;300dpi
3867*593dc095SDavid du Colombier	<td>&nbsp;
3868*593dc095SDavid du Colombier	<td>Normal mode
3869*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3870*593dc095SDavid du Colombier	<td><b><tt>cdj690ec.upp</tt></b>
3871*593dc095SDavid du Colombier	<td>&nbsp;
3872*593dc095SDavid du Colombier	<td>300&times;300dpi
3873*593dc095SDavid du Colombier	<td>&nbsp;
3874*593dc095SDavid du Colombier	<td>Economy mode
3875*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3876*593dc095SDavid du Colombier	<td><b><tt>dnj750c.upp</tt></b>
3877*593dc095SDavid du Colombier	<td>&nbsp;
3878*593dc095SDavid du Colombier	<td>300&times;300dpi
3879*593dc095SDavid du Colombier	<td>&nbsp;
3880*593dc095SDavid du Colombier	<td>Color -- also good for 450C
3881*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3882*593dc095SDavid du Colombier	<td><b><tt>dnj750m.upp</tt></b>
3883*593dc095SDavid du Colombier	<td>&nbsp;
3884*593dc095SDavid du Colombier	<td>600&times;600dpi
3885*593dc095SDavid du Colombier	<td>&nbsp;
3886*593dc095SDavid du Colombier	<td>Monochrome
3887*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3888*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>NEC P2X
3889*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3890*593dc095SDavid du Colombier	<td><b><tt>necp2x.upp</tt></b>
3891*593dc095SDavid du Colombier	<td>&nbsp;
3892*593dc095SDavid du Colombier	<td>360&times;360dpi
3893*593dc095SDavid du Colombier	<td>&nbsp;
3894*593dc095SDavid du Colombier	<td>8-bit (Floyd-Steinberg)
3895*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3896*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>Any Epson Stylus Color
3897*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3898*593dc095SDavid du Colombier	<td><b><tt>stcany.upp</tt></b>
3899*593dc095SDavid du Colombier	<td>&nbsp;
3900*593dc095SDavid du Colombier	<td>360&times;360dpi
3901*593dc095SDavid du Colombier	<td>&nbsp;
3902*593dc095SDavid du Colombier	<td>4-bit, PostScript halftoning
3903*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3904*593dc095SDavid du Colombier	<td><b><tt>stcany_h.upp</tt></b>
3905*593dc095SDavid du Colombier	<td>&nbsp;
3906*593dc095SDavid du Colombier	<td>720&times;720dpi
3907*593dc095SDavid du Colombier	<td>&nbsp;
3908*593dc095SDavid du Colombier	<td>4-bit, PostScript halftoning
3909*593dc095SDavid du Colombier<tr>	<td>&nbsp;
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>&nbsp;
3912*593dc095SDavid du Colombier	<td><b><tt>stc.upp</tt></b>
3913*593dc095SDavid du Colombier	<td>&nbsp;
3914*593dc095SDavid du Colombier	<td>360&times;360dpi
3915*593dc095SDavid du Colombier	<td>&nbsp;
3916*593dc095SDavid du Colombier	<td>32-bit CMYK, 15-pin
3917*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3918*593dc095SDavid du Colombier	<td><b><tt>stc_l.upp</tt></b>
3919*593dc095SDavid du Colombier	<td>&nbsp;
3920*593dc095SDavid du Colombier	<td>360&times;360dpi
3921*593dc095SDavid du Colombier	<td>&nbsp;
3922*593dc095SDavid du Colombier	<td>4-bit, PostScript halftoning, weaved noWeave
3923*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3924*593dc095SDavid du Colombier	<td><b><tt>stc_h.upp</tt></b>
3925*593dc095SDavid du Colombier	<td>&nbsp;
3926*593dc095SDavid du Colombier	<td>720&times;720dpi
3927*593dc095SDavid du Colombier	<td>&nbsp;
3928*593dc095SDavid du Colombier	<td>32-bit CMYK, 15-pin Weave
3929*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3930*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color II
3931*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3932*593dc095SDavid du Colombier	<td><b><tt>stc2.upp</tt></b>
3933*593dc095SDavid du Colombier	<td>&nbsp;
3934*593dc095SDavid du Colombier	<td>360&times;360dpi
3935*593dc095SDavid du Colombier	<td>&nbsp;
3936*593dc095SDavid du Colombier	<td>32-bit CMYK, 20-pin, Epson Stylus Color II(s)
3937*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3938*593dc095SDavid du Colombier	<td><b><tt>stc2_h.upp</tt></b>
3939*593dc095SDavid du Colombier	<td>&nbsp;
3940*593dc095SDavid du Colombier	<td>720&times;720dpi
3941*593dc095SDavid du Colombier	<td>&nbsp;
3942*593dc095SDavid du Colombier	<td>32-bit CMYK, 20-pin, Epson Stylus Color II
3943*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3944*593dc095SDavid du Colombier	<td><b><tt>stc2s_h.upp</tt></b>
3945*593dc095SDavid du Colombier	<td>&nbsp;
3946*593dc095SDavid du Colombier	<td>720&times;720dpi
3947*593dc095SDavid du Colombier	<td>&nbsp;
3948*593dc095SDavid du Colombier	<td>32-bit CMYK, 20-pin, Epson Stylus Color IIs
3949*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3950*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 200
3951*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3952*593dc095SDavid du Colombier	<td><b><tt>stc200.upp</tt></b>
3953*593dc095SDavid du Colombier	<td>&nbsp;
3954*593dc095SDavid du Colombier	<td>360&times;720dpi
3955*593dc095SDavid du Colombier	<td>&nbsp;
3956*593dc095SDavid du Colombier	<td>Plain Paper
3957*593dc095SDavid du Colombier<tr>	<td>&nbsp;
3958*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 300
3959*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3960*593dc095SDavid du Colombier	<td><b><tt>stc300.upp</tt></b>
3961*593dc095SDavid du Colombier	<td>&nbsp;
3962*593dc095SDavid du Colombier	<td>360&times;360dpi
3963*593dc095SDavid du Colombier	<td>&nbsp;
3964*593dc095SDavid du Colombier	<td>32-bit CMYK, plain paper
3965*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3966*593dc095SDavid du Colombier	<td><b><tt>stc300bl.upp</tt></b>
3967*593dc095SDavid du Colombier	<td>&nbsp;
3968*593dc095SDavid du Colombier	<td>180&times;180dpi
3969*593dc095SDavid du Colombier	<td>&nbsp;
3970*593dc095SDavid du Colombier	<td>black only, plain paper
3971*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3972*593dc095SDavid du Colombier	<td><b><tt>stc300bm.upp</tt></b>
3973*593dc095SDavid du Colombier	<td>&nbsp;
3974*593dc095SDavid du Colombier	<td>360&times;360dpi
3975*593dc095SDavid du Colombier	<td>&nbsp;
3976*593dc095SDavid du Colombier	<td>black only, plain paper
3977*593dc095SDavid du Colombier<tr>	<td>&nbsp;
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>&nbsp;
3980*593dc095SDavid du Colombier	<td><b><tt>stc500p.upp</tt></b>
3981*593dc095SDavid du Colombier	<td>&nbsp;
3982*593dc095SDavid du Colombier	<td>360&times;360dpi
3983*593dc095SDavid du Colombier	<td>&nbsp;
3984*593dc095SDavid du Colombier	<td>32-bit CMYK, noWeave, plain paper
3985*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
3986*593dc095SDavid du Colombier	<td><b><tt>stc500ph.upp</tt></b>
3987*593dc095SDavid du Colombier	<td>&nbsp;
3988*593dc095SDavid du Colombier	<td>720&times;720dpi
3989*593dc095SDavid du Colombier	<td>&nbsp;
3990*593dc095SDavid du Colombier	<td>32-bit CMYK, noWeave, plain paper
3991*593dc095SDavid du Colombier<tr>	<td>&nbsp;
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>&nbsp;
3994*593dc095SDavid du Colombier	<td><b><tt>stc600pl.upp</tt></b>
3995*593dc095SDavid du Colombier	<td>&nbsp;
3996*593dc095SDavid du Colombier	<td>360&times;360dpi
3997*593dc095SDavid du Colombier	<td>&nbsp;
3998*593dc095SDavid du Colombier	<td>32-bit CMYK, 32-pin, plain paper
3999*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4000*593dc095SDavid du Colombier	<td><b><tt>stc600p.upp</tt></b>
4001*593dc095SDavid du Colombier	<td>&nbsp;
4002*593dc095SDavid du Colombier	<td>720&times;720dpi
4003*593dc095SDavid du Colombier	<td>&nbsp;
4004*593dc095SDavid du Colombier	<td>32-bit CMYK, 32-pin, plain paper
4005*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4006*593dc095SDavid du Colombier	<td><b><tt>stc600ih.upp</tt></b>
4007*593dc095SDavid du Colombier	<td>&nbsp;
4008*593dc095SDavid du Colombier	<td>1440&times;720dpi
4009*593dc095SDavid du Colombier	<td>&nbsp;
4010*593dc095SDavid du Colombier	<td>32-bit CMYK, 30-pin, inkjet paper
4011*593dc095SDavid du Colombier<tr>	<td>&nbsp;
4012*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 640
4013*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4014*593dc095SDavid du Colombier	<td><b><tt>stc640p.upp</tt></b>
4015*593dc095SDavid du Colombier	<td>&nbsp;
4016*593dc095SDavid du Colombier	<td>720&times;720dpi
4017*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4023*593dc095SDavid du Colombier	<td><b><tt>st640p.upp</tt></b>
4024*593dc095SDavid du Colombier	<td>&nbsp;
4025*593dc095SDavid du Colombier	<td>720&times;720dpi
4026*593dc095SDavid du Colombier	<td>&nbsp;
4027*593dc095SDavid du Colombier	<td>CMYK, plain paper
4028*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4029*593dc095SDavid du Colombier	<td><b><tt>st640pg.upp</tt></b>
4030*593dc095SDavid du Colombier	<td>&nbsp;
4031*593dc095SDavid du Colombier	<td>720&times;720dpi
4032*593dc095SDavid du Colombier	<td>&nbsp;
4033*593dc095SDavid du Colombier	<td>grayscale, plain paper
4034*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4035*593dc095SDavid du Colombier	<td><b><tt>st640pl.upp</tt></b>
4036*593dc095SDavid du Colombier	<td>&nbsp;
4037*593dc095SDavid du Colombier	<td>360&times;360dpi
4038*593dc095SDavid du Colombier	<td>&nbsp;
4039*593dc095SDavid du Colombier	<td>CMYK, plain paper
4040*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4041*593dc095SDavid du Colombier	<td><b><tt>st640plg.upp</tt></b>
4042*593dc095SDavid du Colombier	<td>&nbsp;
4043*593dc095SDavid du Colombier	<td>360&times;360dpi
4044*593dc095SDavid du Colombier	<td>&nbsp;
4045*593dc095SDavid du Colombier	<td>grayscale, plain paper
4046*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4047*593dc095SDavid du Colombier	<td><b><tt>st640ih.upp</tt></b>
4048*593dc095SDavid du Colombier	<td>&nbsp;
4049*593dc095SDavid du Colombier	<td>1440&times;720dpi
4050*593dc095SDavid du Colombier	<td>&nbsp;
4051*593dc095SDavid du Colombier	<td>CMYK, inkjet paper
4052*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4053*593dc095SDavid du Colombier	<td><b><tt>st640ihg.upp</tt></b>
4054*593dc095SDavid du Colombier	<td>&nbsp;
4055*593dc095SDavid du Colombier	<td>1440&times;720dpi
4056*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
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>&nbsp;
4067*593dc095SDavid du Colombier	<td><b><tt>stc800pl.upp</tt></b>
4068*593dc095SDavid du Colombier	<td>&nbsp;
4069*593dc095SDavid du Colombier	<td>360&times;360dpi
4070*593dc095SDavid du Colombier	<td>&nbsp;
4071*593dc095SDavid du Colombier	<td>32-bit CMYK, 64-pin, plain paper
4072*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4073*593dc095SDavid du Colombier	<td><b><tt>stc800p.upp</tt></b>
4074*593dc095SDavid du Colombier	<td>&nbsp;
4075*593dc095SDavid du Colombier	<td>720&times;720dpi
4076*593dc095SDavid du Colombier	<td>&nbsp;
4077*593dc095SDavid du Colombier	<td>32-bit CMYK, 64-pin, plain paper
4078*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4079*593dc095SDavid du Colombier	<td><b><tt>stc800ih.upp</tt></b>
4080*593dc095SDavid du Colombier	<td>&nbsp;
4081*593dc095SDavid du Colombier	<td>1440&times;720dpi
4082*593dc095SDavid du Colombier	<td>&nbsp;
4083*593dc095SDavid du Colombier	<td>32-bit CMYK, 62-pin, inkjet paper
4084*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4085*593dc095SDavid du Colombier	<td><b><tt>stc1520.upp</tt></b>
4086*593dc095SDavid du Colombier	<td>&nbsp;
4087*593dc095SDavid du Colombier	<td>1440&times;720dpi
4088*593dc095SDavid du Colombier	<td>&nbsp;
4089*593dc095SDavid du Colombier	<td>32-bit CMYK, 62-pin, inkjet paper
4090*593dc095SDavid du Colombier<tr>	<td>&nbsp;
4091*593dc095SDavid du Colombier<tr>	<th align=left colspan=6>Sun raster file
4092*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4093*593dc095SDavid du Colombier	<td><b><tt>ras1.upp</tt></b>
4094*593dc095SDavid du Colombier	<td>&nbsp;
4095*593dc095SDavid du Colombier	<td>1-bit
4096*593dc095SDavid du Colombier	<td>&nbsp;
4097*593dc095SDavid du Colombier	<td>monochrome (Ghostscript)
4098*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4099*593dc095SDavid du Colombier	<td><b><tt>ras3.upp</tt></b>
4100*593dc095SDavid du Colombier	<td>&nbsp;
4101*593dc095SDavid du Colombier	<td>3-bit
4102*593dc095SDavid du Colombier	<td>&nbsp;
4103*593dc095SDavid du Colombier	<td>RGB (Ghostscript)
4104*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4105*593dc095SDavid du Colombier	<td><b><tt>ras4.upp</tt></b>
4106*593dc095SDavid du Colombier	<td>&nbsp;
4107*593dc095SDavid du Colombier	<td>4-bit
4108*593dc095SDavid du Colombier	<td>&nbsp;
4109*593dc095SDavid du Colombier	<td>CMYK (Ghostscript)
4110*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4111*593dc095SDavid du Colombier	<td><b><tt>ras8m.upp</tt></b>
4112*593dc095SDavid du Colombier	<td>&nbsp;
4113*593dc095SDavid du Colombier	<td>8-bit
4114*593dc095SDavid du Colombier	<td>&nbsp;
4115*593dc095SDavid du Colombier	<td>grayscale (Floyd-Steinberg)
4116*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4117*593dc095SDavid du Colombier	<td><b><tt>ras24.upp</tt></b>
4118*593dc095SDavid du Colombier	<td>&nbsp;
4119*593dc095SDavid du Colombier	<td>24-bit
4120*593dc095SDavid du Colombier	<td>&nbsp;
4121*593dc095SDavid du Colombier	<td>RGB (Floyd-Steinberg)
4122*593dc095SDavid du Colombier<tr valign=top>	<td>&nbsp;
4123*593dc095SDavid du Colombier	<td><b><tt>ras32.upp</tt></b>
4124*593dc095SDavid du Colombier	<td>&nbsp;
4125*593dc095SDavid du Colombier	<td>32-bit
4126*593dc095SDavid du Colombier	<td>&nbsp;
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 &lt;losse@germanymail.com&gt; 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&times;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&times;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="&lt;              -- Goes to the printer
4259*593dc095SDavid du Colombier  1b40   1b40                        -- ESC '@' ESC '@'    -&gt; dual reset
4260*593dc095SDavid du Colombier  1b2847 0100 01                     -- ESC '(' 'G' 1 0 1  -&gt; graphics
4261*593dc095SDavid du Colombier  1b2869 0100 00                     -- ESC '(' 'i' 1 0 1  -&gt; no HW weave
4262*593dc095SDavid du Colombier  1b2855 0100 0A                     -- ESC '(' 'U' 1 0 10 -&gt; 360dpi
4263*593dc095SDavid du Colombier  1b5500                             -- ESC 'U'  0         -&gt; bidir print
4264*593dc095SDavid du Colombier  1b2843 0200 0000                   -- ESC '(' 'C' 2 0 xx -&gt; page length
4265*593dc095SDavid du Colombier  1b2863 0400 0000 0000              -- ESC '(' 'c' 4 0 xxxx -&gt; margins
4266*593dc095SDavid du Colombier&gt;"                                   -- 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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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="{&nbsp;9.0&nbsp;39.96&nbsp;9.0&nbsp;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>&nbsp;
4343*593dc095SDavid du Colombier	<td>&nbsp;
4344*593dc095SDavid du Colombier	<td align=center><b><tt>/DeviceGray</tt></b>
4345*593dc095SDavid du Colombier	<td>&nbsp;
4346*593dc095SDavid du Colombier	<td align=center><b><tt>/DeviceRGBW</tt></b>
4347*593dc095SDavid du Colombier	<td>&nbsp;
4348*593dc095SDavid du Colombier	<td align=center><b><tt>/DeviceRGB</tt></b>
4349*593dc095SDavid du Colombier	<td>&nbsp;
4350*593dc095SDavid du Colombier	<td align=center><b><tt>/DeviceCMYK</tt></b>
4351*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4356*593dc095SDavid du Colombier	<td align=center>White
4357*593dc095SDavid du Colombier	<td>&nbsp;
4358*593dc095SDavid du Colombier	<td align=center>White
4359*593dc095SDavid du Colombier	<td>&nbsp;
4360*593dc095SDavid du Colombier	<td align=center>Red
4361*593dc095SDavid du Colombier	<td>&nbsp;
4362*593dc095SDavid du Colombier	<td align=center>Black
4363*593dc095SDavid du Colombier	<td>&nbsp;
4364*593dc095SDavid du Colombier	<td align=center>Black
4365*593dc095SDavid du Colombier<tr valign=top>	<td align=center>1
4366*593dc095SDavid du Colombier	<td>&nbsp;
4367*593dc095SDavid du Colombier	<td align=center>--
4368*593dc095SDavid du Colombier	<td>&nbsp;
4369*593dc095SDavid du Colombier	<td align=center>Red
4370*593dc095SDavid du Colombier	<td>&nbsp;
4371*593dc095SDavid du Colombier	<td align=center>Green
4372*593dc095SDavid du Colombier	<td>&nbsp;
4373*593dc095SDavid du Colombier	<td align=center>Cyan
4374*593dc095SDavid du Colombier	<td>&nbsp;
4375*593dc095SDavid du Colombier	<td align=center>Cyan
4376*593dc095SDavid du Colombier<tr valign=top>	<td align=center>2
4377*593dc095SDavid du Colombier	<td>&nbsp;
4378*593dc095SDavid du Colombier	<td align=center>--
4379*593dc095SDavid du Colombier	<td>&nbsp;
4380*593dc095SDavid du Colombier	<td align=center>Green
4381*593dc095SDavid du Colombier	<td>&nbsp;
4382*593dc095SDavid du Colombier	<td align=center>Blue
4383*593dc095SDavid du Colombier	<td>&nbsp;
4384*593dc095SDavid du Colombier	<td align=center>Magenta
4385*593dc095SDavid du Colombier	<td>&nbsp;
4386*593dc095SDavid du Colombier	<td align=center>Magenta
4387*593dc095SDavid du Colombier<tr valign=top>	<td align=center>3
4388*593dc095SDavid du Colombier	<td>&nbsp;
4389*593dc095SDavid du Colombier	<td align=center>--
4390*593dc095SDavid du Colombier	<td>&nbsp;
4391*593dc095SDavid du Colombier	<td align=center>Blue
4392*593dc095SDavid du Colombier	<td>&nbsp;
4393*593dc095SDavid du Colombier	<td align=center>--
4394*593dc095SDavid du Colombier	<td>&nbsp;
4395*593dc095SDavid du Colombier	<td align=center>Yellow
4396*593dc095SDavid du Colombier	<td>&nbsp;
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.  "[&nbsp;]"
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>&nbsp;
4515*593dc095SDavid du Colombier	<th align=left>Type
4516*593dc095SDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
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>&nbsp;
4521*593dc095SDavid du Colombier	<td>String
4522*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4526*593dc095SDavid du Colombier	<td>Bool
4527*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4531*593dc095SDavid du Colombier	<td>Bool
4532*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4536*593dc095SDavid du Colombier	<td>Bool
4537*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4541*593dc095SDavid du Colombier	<td>Bool
4542*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4546*593dc095SDavid du Colombier	<td>Bool
4547*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4551*593dc095SDavid du Colombier	<td>Bool
4552*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4556*593dc095SDavid du Colombier	<td>String
4557*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4561*593dc095SDavid du Colombier	<td>String
4562*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4566*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4567*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4571*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4572*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4576*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4577*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4581*593dc095SDavid du Colombier	<td>Name
4582*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4586*593dc095SDavid du Colombier	<td>Bool (RO)
4587*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4591*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4592*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4596*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4597*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4601*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4602*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4606*593dc095SDavid du Colombier	<td>String
4607*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4611*593dc095SDavid du Colombier	<td>String
4612*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4616*593dc095SDavid du Colombier	<td>Bool (RO)
4617*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4621*593dc095SDavid du Colombier	<td>Bool
4622*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4626*593dc095SDavid du Colombier	<td>Bool
4627*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4631*593dc095SDavid du Colombier	<td>Bool
4632*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4636*593dc095SDavid du Colombier	<td>Bool
4637*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4641*593dc095SDavid du Colombier	<td>Bool
4642*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4646*593dc095SDavid du Colombier	<td>Bool
4647*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4651*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4652*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4656*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4657*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4661*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4662*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4666*593dc095SDavid du Colombier	<td>String
4667*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4671*593dc095SDavid du Colombier	<td>Bool (RO)
4672*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4676*593dc095SDavid du Colombier	<td>Int
4677*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4681*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4682*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4686*593dc095SDavid du Colombier	<td>Int
4687*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4691*593dc095SDavid du Colombier	<td>Name
4692*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4696*593dc095SDavid du Colombier	<td>Bool (RO)
4697*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4701*593dc095SDavid du Colombier	<td>Int
4702*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4706*593dc095SDavid du Colombier	<td>Int
4707*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4711*593dc095SDavid du Colombier	<td>Int
4712*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4716*593dc095SDavid du Colombier	<td>Int
4717*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4721*593dc095SDavid du Colombier	<td>Int
4722*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4726*593dc095SDavid du Colombier	<td>Int
4727*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4731*593dc095SDavid du Colombier	<td>Int
4732*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4736*593dc095SDavid du Colombier	<td>Bool (RO)
4737*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4741*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4742*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4746*593dc095SDavid du Colombier	<td>Name
4747*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4751*593dc095SDavid du Colombier	<td>Bool (RO)
4752*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4756*593dc095SDavid du Colombier	<td>String[&nbsp;]
4757*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4761*593dc095SDavid du Colombier	<td>String
4762*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4766*593dc095SDavid du Colombier	<td>String (RO)
4767*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4771*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4772*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4776*593dc095SDavid du Colombier	<td>Int
4777*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4781*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4782*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4786*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4787*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4791*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4792*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4796*593dc095SDavid du Colombier	<td>Int
4797*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4801*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4802*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4806*593dc095SDavid du Colombier	<td>int[&nbsp;]
4807*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4811*593dc095SDavid du Colombier	<td>Int
4812*593dc095SDavid du Colombier	<td>&nbsp;
4813*593dc095SDavid du Colombier	<td>XPasses &times; YPasses
4814*593dc095SDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveXPasses</tt></b>
4815*593dc095SDavid du Colombier	<td>&nbsp;
4816*593dc095SDavid du Colombier	<td>Int
4817*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4821*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4822*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4826*593dc095SDavid du Colombier	<td>Int[&nbsp;]
4827*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4831*593dc095SDavid du Colombier	<td>Int
4832*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4836*593dc095SDavid du Colombier	<td>Int
4837*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4841*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4842*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4846*593dc095SDavid du Colombier	<td>String[&nbsp;]
4847*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4851*593dc095SDavid du Colombier	<td>Bool (RO)
4852*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4856*593dc095SDavid du Colombier	<td>String
4857*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4861*593dc095SDavid du Colombier	<td>String
4862*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4866*593dc095SDavid du Colombier	<td>Bool
4867*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4871*593dc095SDavid du Colombier	<td>String
4872*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4876*593dc095SDavid du Colombier	<td>String
4877*593dc095SDavid du Colombier	<td>&nbsp;
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>&nbsp;
4881*593dc095SDavid du Colombier	<td>Float[&nbsp;]
4882*593dc095SDavid du Colombier	<td>&nbsp;
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&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
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 &times; 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>&nbsp; 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&nbsp;&nbsp; x</tt>
5043*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5044*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5045*593dc095SDavid du Colombier<br><tt>4 x</tt>
5046*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp; x</tt>
5047*593dc095SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5048*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5049*593dc095SDavid du Colombier<br><tt>8 x</tt>
5050*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp; x</tt>
5051*593dc095SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5052*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5053*593dc095SDavid du Colombier<br><tt>2 x</tt>
5054*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp; x</tt>
5055*593dc095SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5056*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5057*593dc095SDavid du Colombier<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5058*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp; x</tt>
5059*593dc095SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5060*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5061*593dc095SDavid du Colombier<br><tt>0 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5062*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp; x</tt>
5063*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5064*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5065*593dc095SDavid du Colombier<br><tt>4 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5066*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp; x</tt>
5067*593dc095SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5068*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5069*593dc095SDavid du Colombier<br><tt>8 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5070*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp; x</tt>
5071*593dc095SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5072*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5073*593dc095SDavid du Colombier<br><tt>2 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5074*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp; x</tt>
5075*593dc095SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5076*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5077*593dc095SDavid du Colombier<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5078*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp; x</tt>
5079*593dc095SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5080*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5081*593dc095SDavid du Colombier<br><tt>0 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5082*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp; x</tt>
5083*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5084*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5085*593dc095SDavid du Colombier<br><tt>4 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5086*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp; x</tt>
5087*593dc095SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5088*593dc095SDavid du Colombierx</tt>
5089*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5090*593dc095SDavid du Colombier<br><tt>8 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5091*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp; x</tt>
5092*593dc095SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5093*593dc095SDavid du Colombierx</tt>
5094*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5095*593dc095SDavid du Colombier<br><tt>2 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5096*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp; x</tt>
5097*593dc095SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5098*593dc095SDavid du Colombierx</tt>
5099*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5100*593dc095SDavid du Colombier<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5101*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp; x</tt>
5102*593dc095SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5103*593dc095SDavid du Colombierx</tt>
5104*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5105*593dc095SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5106*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5107*593dc095SDavid du Colombierx</tt>
5108*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5109*593dc095SDavid du Colombierx</tt>
5110*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5111*593dc095SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5112*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5113*593dc095SDavid du Colombierx</tt>
5114*593dc095SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5115*593dc095SDavid du Colombierx</tt>
5116*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5117*593dc095SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5118*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5119*593dc095SDavid du Colombierx</tt>
5120*593dc095SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5121*593dc095SDavid du Colombierx</tt>
5122*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5123*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5124*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5125*593dc095SDavid du Colombierx</tt>
5126*593dc095SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5127*593dc095SDavid du Colombierx</tt>
5128*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5129*593dc095SDavid du Colombier<br><tt>6</tt>
5130*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5131*593dc095SDavid du Colombierx</tt>
5132*593dc095SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5133*593dc095SDavid du Colombierx</tt>
5134*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5135*593dc095SDavid du Colombier<br><tt>0</tt>
5136*593dc095SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5137*593dc095SDavid du Colombierx</tt>
5138*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5139*593dc095SDavid du Colombierx</tt>
5140*593dc095SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5141*593dc095SDavid du Colombier<br><tt>4</tt>
5142*593dc095SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5143*593dc095SDavid du Colombierx</tt>
5144*593dc095SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5145*593dc095SDavid du Colombierx</tt>
5146*593dc095SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5147*593dc095SDavid du Colombier<br><tt>8</tt>
5148*593dc095SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5149*593dc095SDavid du Colombierx</tt>
5150*593dc095SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5155*593dc095SDavid du Colombierx</tt>
5156*593dc095SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5161*593dc095SDavid du Colombierx</tt>
5162*593dc095SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5167*593dc095SDavid du Colombierx</tt>
5168*593dc095SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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>&nbsp;</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>&nbsp;
5244*593dc095SDavid du Colombier	</td>
5245*593dc095SDavid du Colombier        <th align="Left">Type
5246*593dc095SDavid du Colombier	</th>
5247*593dc095SDavid du Colombier        <td>&nbsp;&nbsp;&nbsp;
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>&nbsp;
5259*593dc095SDavid du Colombier	</td>
5260*593dc095SDavid du Colombier        <td>Int
5261*593dc095SDavid du Colombier	</td>
5262*593dc095SDavid du Colombier        <td>&nbsp;
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>&nbsp;
5270*593dc095SDavid du Colombier	</td>
5271*593dc095SDavid du Colombier        <td>Int
5272*593dc095SDavid du Colombier	</td>
5273*593dc095SDavid du Colombier        <td>&nbsp;
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>&nbsp;
5282*593dc095SDavid du Colombier	</td>
5283*593dc095SDavid du Colombier        <td>Int[]
5284*593dc095SDavid du Colombier	</td>
5285*593dc095SDavid du Colombier        <td>&nbsp;
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>&nbsp;
5293*593dc095SDavid du Colombier	</td>
5294*593dc095SDavid du Colombier        <td>Int[]
5295*593dc095SDavid du Colombier	</td>
5296*593dc095SDavid du Colombier        <td>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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>&nbsp;
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">&nbsp;
5390*593dc095SDavid du Colombier      </td>
5391*593dc095SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
5392*593dc095SDavid du Colombier      </td>
5393*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5394*593dc095SDavid du Colombier      </td>
5395*593dc095SDavid du Colombier      <td bgcolor="#ff00ff">&nbsp;
5396*593dc095SDavid du Colombier      </td>
5397*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5398*593dc095SDavid du Colombier      </td>
5399*593dc095SDavid du Colombier      <td>&nbsp;
5400*593dc095SDavid du Colombier      </td>
5401*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5402*593dc095SDavid du Colombier      </td>
5403*593dc095SDavid du Colombier      <td>&nbsp;
5404*593dc095SDavid du Colombier      </td>
5405*593dc095SDavid du Colombier      <td>&nbsp;
5406*593dc095SDavid du Colombier      </td>
5407*593dc095SDavid du Colombier      <td>&nbsp;
5408*593dc095SDavid du Colombier      </td>
5409*593dc095SDavid du Colombier      <td>&nbsp;
5410*593dc095SDavid du Colombier      </td>
5411*593dc095SDavid du Colombier      <td>&nbsp;
5412*593dc095SDavid du Colombier      </td>
5413*593dc095SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
5414*593dc095SDavid du Colombier      </td>
5415*593dc095SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
5416*593dc095SDavid du Colombier      </td>
5417*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5418*593dc095SDavid du Colombier      </td>
5419*593dc095SDavid du Colombier      <td bgcolor="#ff00ff">&nbsp;
5420*593dc095SDavid du Colombier      </td>
5421*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5422*593dc095SDavid du Colombier      </td>
5423*593dc095SDavid du Colombier      <td>&nbsp;
5424*593dc095SDavid du Colombier      </td>
5425*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5426*593dc095SDavid du Colombier      </td>
5427*593dc095SDavid du Colombier      <td bgcolor="#ffffff">&nbsp;
5428*593dc095SDavid du Colombier      </td>
5429*593dc095SDavid du Colombier    </tr>
5430*593dc095SDavid du Colombier      <td>&nbsp;
5431*593dc095SDavid du Colombier      </td>
5432*593dc095SDavid du Colombier      <td>&nbsp;
5433*593dc095SDavid du Colombier      </td>
5434*593dc095SDavid du Colombier      <td>&nbsp;
5435*593dc095SDavid du Colombier      </td>
5436*593dc095SDavid du Colombier      <td>&nbsp;
5437*593dc095SDavid du Colombier      </td>
5438*593dc095SDavid du Colombier      <td>&nbsp;
5439*593dc095SDavid du Colombier      </td>
5440*593dc095SDavid du Colombier      <td>&nbsp;
5441*593dc095SDavid du Colombier      </td>
5442*593dc095SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
5443*593dc095SDavid du Colombier      </td>
5444*593dc095SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
5445*593dc095SDavid du Colombier      </td>
5446*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5447*593dc095SDavid du Colombier      </td>
5448*593dc095SDavid du Colombier      <td bgcolor="#ff00ff">&nbsp;
5449*593dc095SDavid du Colombier      </td>
5450*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5451*593dc095SDavid du Colombier      </td>
5452*593dc095SDavid du Colombier      <td>&nbsp;
5453*593dc095SDavid du Colombier      </td>
5454*593dc095SDavid du Colombier      <td bgcolor="#000000">&nbsp;
5455*593dc095SDavid du Colombier      </td>
5456*593dc095SDavid du Colombier      <td>&nbsp;
5457*593dc095SDavid du Colombier      </td>
5458*593dc095SDavid du Colombier      <td>&nbsp;
5459*593dc095SDavid du Colombier      </td>
5460*593dc095SDavid du Colombier      <td>&nbsp;
5461*593dc095SDavid du Colombier      </td>
5462*593dc095SDavid du Colombier      <td>&nbsp;
5463*593dc095SDavid du Colombier      </td>
5464*593dc095SDavid du Colombier      <td>&nbsp;
5465*593dc095SDavid du Colombier      </td>
5466*593dc095SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
5467*593dc095SDavid du Colombier      </td>
5468*593dc095SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
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 &copy; 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