xref: /plan9/sys/src/cmd/gs/doc/Devices.htm (revision 3ff48bf5ed603850fcd251ddf13025d23d693782)
1*3ff48bf5SDavid du Colombier<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
27dd7cddfSDavid du Colombier<html>
37dd7cddfSDavid du Colombier<head>
47dd7cddfSDavid du Colombier<title>Details of Ghostscript output devices</title>
5*3ff48bf5SDavid du Colombier<!-- $Id: Devices.htm,v 1.34.2.4 2002/02/01 05:31:24 raph Exp $ -->
67dd7cddfSDavid du Colombier<!-- Originally: devices.txt -->
7*3ff48bf5SDavid du Colombier<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
87dd7cddfSDavid du Colombier</head>
97dd7cddfSDavid du Colombier
107dd7cddfSDavid du Colombier<body>
117dd7cddfSDavid du Colombier<!-- [1.0 begin visible header] ============================================ -->
127dd7cddfSDavid du Colombier
137dd7cddfSDavid du Colombier<!-- [1.1 begin headline] ================================================== -->
147dd7cddfSDavid du Colombier
15*3ff48bf5SDavid du Colombier<h1>Details of Ghostscript output devices</h1>
167dd7cddfSDavid du Colombier
177dd7cddfSDavid du Colombier<!-- [1.1 end headline] ==================================================== -->
187dd7cddfSDavid du Colombier
197dd7cddfSDavid du Colombier<!-- [1.2 begin table of contents] ========================================= -->
207dd7cddfSDavid du Colombier
217dd7cddfSDavid du Colombier<h2>Table of contents</h2>
227dd7cddfSDavid du Colombier
237dd7cddfSDavid du Colombier<blockquote><ul>
247dd7cddfSDavid du Colombier<li><a href="#Measurements">Notes on measurements</a>
25*3ff48bf5SDavid du Colombier<li><a href="#IJS">IJS - Inkjet and other raster devices</a>
267dd7cddfSDavid du Colombier<li><a href="#Win">MS Windows printers</a>
27*3ff48bf5SDavid du Colombier<li><a href="#File_formats">File formats</a>
28*3ff48bf5SDavid du Colombier<ul>
297dd7cddfSDavid du Colombier<li><a href="#JFIF">JPEG file format (JFIF)</a>
30*3ff48bf5SDavid du Colombier<li><a href="#TIFF">TIFF file formats</a>
31*3ff48bf5SDavid du Colombier</ul>
32*3ff48bf5SDavid du Colombier<li><a href="#Display_devices">Display devices</a>
33*3ff48bf5SDavid du Colombier<ul>
34*3ff48bf5SDavid du Colombier<li><a href="#x11_devices">X Window System</a>
35*3ff48bf5SDavid du Colombier</ul>
36*3ff48bf5SDavid du Colombier<li><a href="#HP_ijs">HP Deskjet official drivers</a>
377dd7cddfSDavid du Colombier<li><a href="#HP8_color_inkjet">H-P 8xx, 1100, and 1600 color inkjet printers</a>
387dd7cddfSDavid du Colombier<ul>
397dd7cddfSDavid du Colombier<li><a href="#HP8_gdevcd8">Drivers contained in <b><tt>gdevcd8.c</tt></b></a>
407dd7cddfSDavid du Colombier<li><a href="#HP8_further_documentation">Further documentation</a>
417dd7cddfSDavid du Colombier</ul>
427dd7cddfSDavid du Colombier<li><a href="#HP880_color_inkjet">H-P 812, 815, 832, 880, 882, 895, and 970 color inkjet printers</a>
437dd7cddfSDavid du Colombier<ul>
447dd7cddfSDavid du Colombier<li><a href="#HP880_gdevcd8">Drivers contained in <b><tt>gdevcd8.c</tt></b></a>
457dd7cddfSDavid du Colombier<li><a href="#HP880_further_documentation">Further documentation</a>
467dd7cddfSDavid du Colombier</ul>
477dd7cddfSDavid du Colombier<li><a href="#HP_color_inkjet">Other H-P color inkjet printers</a>
487dd7cddfSDavid du Colombier<ul>
497dd7cddfSDavid du Colombier<li><a href="#HP_gdevcdj">Drivers contained in <b><tt>gdevcdj.c</tt></b></a>
507dd7cddfSDavid du Colombier<li><a href="#HP_paper_size">Default paper size</a>
517dd7cddfSDavid du Colombier<li><a href="#HP_limits">Deskjet physical limits</a>
527dd7cddfSDavid du Colombier<li><a href="#HP_command_line">Printer properties (command-line parameters)</a>
537dd7cddfSDavid du Colombier<ul>
547dd7cddfSDavid du Colombier<li><a href="#HP_bpp">Bits per pixel</a>
557dd7cddfSDavid du Colombier<li><a href="#HP_deskjet_properties">Deskjet properties</a>
567dd7cddfSDavid du Colombier<li><a href="#HP_paintjet_properties">Paintjet XL300 / Paintjet XL properties</a>
577dd7cddfSDavid du Colombier</ul>
587dd7cddfSDavid du Colombier<li><a href="#HP_gamma">Gamma correction</a>
597dd7cddfSDavid du Colombier<li><a href="#HP_resolution_enhance">HP's resolution-enhanced mode for Inkjet printers</a>
607dd7cddfSDavid du Colombier<li><a href="#HP_tips">General tips</a>
617dd7cddfSDavid du Colombier</ul>
62*3ff48bf5SDavid du Colombier<li><a href="#BJC_8200">Canon BJC-8200 printer</a>
63*3ff48bf5SDavid du Colombier<li><a href="#BJC">Other Canon BubbleJet (BJC) printers</a>
647dd7cddfSDavid du Colombier<ul>
657dd7cddfSDavid du Colombier<li><a href="#BJC_history">History</a>
667dd7cddfSDavid du Colombier<li><a href="#BJC_build">Configuring and building the BJC drivers</a>
677dd7cddfSDavid du Colombier<ul>
687dd7cddfSDavid du Colombier<li><a href="#BJC_defaults">Modify values in <b><tt>gdevbjc.h</tt></b></a>
697dd7cddfSDavid du Colombier<li><a href="#BJC_CMYK_RGB">CMYK-to-RGB color conversion</a>
707dd7cddfSDavid du Colombier<li><a href="#BJC_vertical_centering">Vertical centering of the printable area</a>
717dd7cddfSDavid du Colombier<li><a href="#BJC_margins">Page margins</a>
727dd7cddfSDavid du Colombier<li><a href="#BJC_compile">Makefile and compilation</a>
737dd7cddfSDavid du Colombier</ul>
747dd7cddfSDavid du Colombier<li><a href="#BJC_usage">Use of the drivers</a>
757dd7cddfSDavid du Colombier<ul>
767dd7cddfSDavid du Colombier<li><a href="#BJC_options">Supported Options and Defaults</a>
777dd7cddfSDavid du Colombier<li><a href="#BJC_device_info">Device information</a>
787dd7cddfSDavid du Colombier<li><a href="#BJC_HW_margins">Hardware margins</a>
797dd7cddfSDavid du Colombier<li><a href="#BJC_PPD">PostScript printer description (PPD) files</a>
807dd7cddfSDavid du Colombier<li><a href="#BJC_PPD_custom">Customizing the PPD files</a>
817dd7cddfSDavid du Colombier</ul>
827dd7cddfSDavid du Colombier<li><a href="#BJC_bugs">How to report problems</a>
837dd7cddfSDavid du Colombier<li><a href="#BJC_acks">Acknowledgements</a>
847dd7cddfSDavid du Colombier</ul>
857dd7cddfSDavid du Colombier<li><a href="#STC_epson_stylus">Epson Stylus color printer (see also <b><tt>uniprint</tt></b>)</a>
867dd7cddfSDavid du Colombier<ul>
877dd7cddfSDavid du Colombier<li><a href="#STC_usage">Usage</a>
887dd7cddfSDavid du Colombier<li><a href="#STC_options">Options</a>
897dd7cddfSDavid du Colombier<li><a href="#STC_FAQ">Application note and FAQ</a>
907dd7cddfSDavid du Colombier<ul>
917dd7cddfSDavid du Colombier<li><a href="#STC_FAQ_A3">Support for A3 paper</a>
927dd7cddfSDavid du Colombier<li><a href="#STC_FAQ_margins">Margins, PageSize</a>
937dd7cddfSDavid du Colombier<li><a href="#STC_FAQ_II_IIS_1500">Stylus Color II / IIs and 1500</a>
947dd7cddfSDavid du Colombier</ul>
957dd7cddfSDavid du Colombier<li><a href="#STC_recommendations">Recommendations</a>
967dd7cddfSDavid du Colombier<ul>
977dd7cddfSDavid du Colombier<li><a href="#STC_dither_experiment">Color dithering experiments with <b><tt>gdevstc</tt></b> 1.21</a>
987dd7cddfSDavid du Colombier</ul>
997dd7cddfSDavid du Colombier<li><a href="#STC_color_transform">Color transformation</a>
1007dd7cddfSDavid du Colombier<li><a href="#STC_CAM"><b><tt>ColorAdjustMatrix</tt></b></a>
1017dd7cddfSDavid du Colombier<li><a href="#STC_RGBCMYK_coding">RGB / CMYK coding and transfer, and <b><tt>BitsPerPixel</tt></b></a>
1027dd7cddfSDavid du Colombier<li><a href="#What_is_weaving">What is weaving?</a>
1037dd7cddfSDavid du Colombier<li><a href="#STC_print_modes">Print mode parameters</a>
1047dd7cddfSDavid du Colombier<ul>
1057dd7cddfSDavid du Colombier<li><a href="#STC_unidirectional"><b><tt>Unidirectional</tt></b></a>
1067dd7cddfSDavid 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>
1077dd7cddfSDavid du Colombier<li><a href="#STC_model"><b><tt>Model</tt></b></a>
1087dd7cddfSDavid du Colombier</ul>
1097dd7cddfSDavid du Colombier<li><a href="#STC_Pitfalls">Bugs and pitfalls</a>
1107dd7cddfSDavid du Colombier<li><a href="#STC_Tests">Tests</a>
1117dd7cddfSDavid du Colombier<ul>
1127dd7cddfSDavid du Colombier<li><a href="#STC_OutputCodes">The various OutputCodes</a>
1137dd7cddfSDavid du Colombier<li><a href="#STC_printing_time">Printing time related to other options</a>
1147dd7cddfSDavid du Colombier</ul>
1157dd7cddfSDavid du Colombier<li><a href="#STC_acks">Acknowledgments</a>
1167dd7cddfSDavid du Colombier</ul>
1177dd7cddfSDavid du Colombier<li><a href="#Uniprint">uniprint, a flexible unified printer driver</a>
1187dd7cddfSDavid du Colombier<ul>
1197dd7cddfSDavid du Colombier<li><a href="#Uni_state">The state of this driver</a>
1207dd7cddfSDavid du Colombier<li><a href="#Uni_background">Notes on <b><tt>uniprint</tt></b>'s background</a>
1217dd7cddfSDavid 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>
1227dd7cddfSDavid du Colombier<li><a href="#Uni_all_parameters">All parameters in brief</a>
123*3ff48bf5SDavid du Colombier<li><a href="#Uni_honors"><b><tt>Uniprint</tt></b>'s Roll of Honor</a>
124*3ff48bf5SDavid du Colombier<li><a href="#Uni_weaving_howto"><b><tt>Uniprint</tt></b> weaving parameters howto</a></li>
125*3ff48bf5SDavid du Colombier<li><a href="#Uni_esc300">Extension to <b><tt>uniprint</tt></b> for the Epson Stylus Color 300</a></li>
1267dd7cddfSDavid du Colombier</ul>
1277dd7cddfSDavid du Colombier<li><a href="#SPARCprinter">Sun SPARCprinter</a>
1287dd7cddfSDavid du Colombier<ul>
1297dd7cddfSDavid du Colombier<li><a href="#SPARC_install">Installation</a>
1307dd7cddfSDavid du Colombier<li><a href="#SPARC_problems">Problems</a>
1317dd7cddfSDavid du Colombier</ul>
1327dd7cddfSDavid du Colombier<li><a href="#Apple">Apple dot matrix printer</a>
1337dd7cddfSDavid du Colombier</ul></blockquote>
1347dd7cddfSDavid du Colombier
1357dd7cddfSDavid du Colombier<!-- [1.2 end table of contents] =========================================== -->
1367dd7cddfSDavid du Colombier
1377dd7cddfSDavid du Colombier<!-- [1.3 begin hint] ====================================================== -->
1387dd7cddfSDavid du Colombier
1397dd7cddfSDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript
1407dd7cddfSDavid du Colombieroverview</a>.  You may also be interested in <a href="Make.htm">how to
1417dd7cddfSDavid du Colombierbuild Ghostscript</a> and <a href="Install.htm">install it</a>, as well as
1427dd7cddfSDavid du Colombierthe description of the <a href="Drivers.htm">driver interface</a>.
1437dd7cddfSDavid du Colombier
1447dd7cddfSDavid du Colombier<!-- [1.3 end hint] ======================================================== -->
1457dd7cddfSDavid du Colombier
1467dd7cddfSDavid du Colombier<hr>
1477dd7cddfSDavid du Colombier
1487dd7cddfSDavid du Colombier<!-- [1.0 end visible header] ============================================== -->
1497dd7cddfSDavid du Colombier
1507dd7cddfSDavid du Colombier<!-- [2.0 begin contents] ================================================== -->
1517dd7cddfSDavid du Colombier
152*3ff48bf5SDavid du Colombier<h2><a name="Measurements"></a>Notes on measurements</h2>
1537dd7cddfSDavid du Colombier
1547dd7cddfSDavid du Colombier<p>
1557dd7cddfSDavid du ColombierSeveral different important kinds of measures appear throughout this
1567dd7cddfSDavid du Colombierdocument: inches, centimeters and millimeters, points, and bits per pixel.
1577dd7cddfSDavid du Colombier
1587dd7cddfSDavid du Colombier<dl>
1597dd7cddfSDavid du Colombier<dt><b>Inches</b>
1607dd7cddfSDavid du Colombier<dd>1 inch equals 2.54 centimeters.  The inch measure is sometimes
1617dd7cddfSDavid du Colombierrepresented by "<b>in</b>" or a quotation mark (<b>&quot;</b>) to the right
162*3ff48bf5SDavid du Colombierof a measure, like <b>8.5in</b> or <b>8.5""</b>.  Dots per inch,
1637dd7cddfSDavid du Colombier"<b>dpi</b>", are the common measure of printing resolution for dot-matrix,
1647dd7cddfSDavid du Colombierlaser, and ink-jet printers.  U.S. "letter" paper is exactly
1657dd7cddfSDavid du Colombier8.5in&times;11in, approximately 21.6cm&times;27.9cm.  (See in the usage
1667dd7cddfSDavid du Colombierdocumentation all the <a href="Use.htm#Known_paper_sizes">paper sizes
1677dd7cddfSDavid du Colombierpredefined in Ghostscript</a>.)
1687dd7cddfSDavid du Colombier
1697dd7cddfSDavid du Colombier<dt><b>Centimeters</b> and <b>millimeters</b>
1707dd7cddfSDavid du Colombier<dd>ISO standard paper sizes such as A4 and A3 are commonly represented in
1717dd7cddfSDavid du Colombierthe SI units of centimeters and millimeters.  Centimeters are abbreviated
1727dd7cddfSDavid du Colombier"<b><tt>cm</tt></b>", millimeters "<b><tt>mm</tt></b>".  ISO A4 paper is
1737dd7cddfSDavid du Colombierquite close to 21.0&times;29.7 centimeters (approximately 8.3&times;11.7
1747dd7cddfSDavid du Colombierinches).
1757dd7cddfSDavid du Colombier
1767dd7cddfSDavid du Colombier<dt><b>Points</b>
1777dd7cddfSDavid du Colombier<dd>Points are a measure traditionally used in the printing trade and now
1787dd7cddfSDavid du Colombierin PostScript, which specifies exactly 72 points per inch (approximately
1797dd7cddfSDavid du Colombier28.35 per centimeter).  The <a href="Use.htm#Known_paper_sizes">paper sizes
1807dd7cddfSDavid du Colombierknown to Ghostscript</a> are defined in the initialization file
1817dd7cddfSDavid du Colombier<b><tt>gs_statd.ps</tt></b> in terms of points.
1827dd7cddfSDavid du Colombier
1837dd7cddfSDavid du Colombier<dt><b>Bits per pixel</b>
1847dd7cddfSDavid du Colombier<dd>Commonly abbreviated "<b><tt>bpp</tt></b>".
1857dd7cddfSDavid du Colombier</dl>
1867dd7cddfSDavid du Colombier
1877dd7cddfSDavid du Colombier<hr>
1887dd7cddfSDavid du Colombier
189*3ff48bf5SDavid du Colombier<h2><a name="IJS"></a>IJS - Inkjet and other raster devices</h2>
1907dd7cddfSDavid du Colombier
191*3ff48bf5SDavid du Colombier<p>
192*3ff48bf5SDavid du ColombierIJS is a relatively new initiative to improve the quality and ease of
193*3ff48bf5SDavid du Colombieruse of inkjet printing with Ghostscript. Using IJS, you can add new
194*3ff48bf5SDavid du Colombierdrivers, or upgrade existing ones, without recompiling Ghostscript.
195*3ff48bf5SDavid du ColombierAll driver authors are encouraged to adapt their drivers for IJS, and
196*3ff48bf5SDavid du Colombierif there is an IJS driver available for your printer, it should be
197*3ff48bf5SDavid du Colombieryour first choice.
198*3ff48bf5SDavid du Colombier</p>
199*3ff48bf5SDavid du Colombier
200*3ff48bf5SDavid du Colombier<p>Please see the <a href="http://www.linuxprinting.org/ijs/">IJS web
201*3ff48bf5SDavid du Colombierpage</a> for more information about IJS, including a listing of
202*3ff48bf5SDavid du ColombierIJS-compatible drivers.
203*3ff48bf5SDavid du Colombier</p>
204*3ff48bf5SDavid du Colombier
205*3ff48bf5SDavid du Colombier<p>
206*3ff48bf5SDavid du ColombierA typical command line for IJS is:
207*3ff48bf5SDavid du Colombier</p>
208*3ff48bf5SDavid du Colombier
209*3ff48bf5SDavid du Colombier<blockquote>
210*3ff48bf5SDavid du Colombier<b><tt>
211*3ff48bf5SDavid du Colombiergs -DSAFER -sDEVICE=ijs -sIjsServer=hpijs
212*3ff48bf5SDavid du Colombier -sDeviceManufacturer=HEWLETT-PACKARD -sDeviceModel='DESKJET 990'
213*3ff48bf5SDavid du Colombier -DIjsUseOutputFD -sOutputFile=/dev/usb/lp1 -DNOPAUSE --
214*3ff48bf5SDavid du Colombier examples/tiger.eps
215*3ff48bf5SDavid du Colombier</tt></b>
216*3ff48bf5SDavid du Colombier</blockquote>
217*3ff48bf5SDavid du Colombier
218*3ff48bf5SDavid du Colombier
219*3ff48bf5SDavid du Colombier<p>
220*3ff48bf5SDavid du ColombierIndividual IJS command line parameters are as follows:
221*3ff48bf5SDavid du Colombier</p>
222*3ff48bf5SDavid du Colombier
223*3ff48bf5SDavid du Colombier<dl>
224*3ff48bf5SDavid du Colombier<dt><b><tt>-sIjsServer=</tt></b><em>{path}</em>
225*3ff48bf5SDavid du Colombier<dd>Sets the pathname for the IJS server (ie printer driver).
226*3ff48bf5SDavid du ColombierGhostscript will spawn a new process for this driver, and communicate
227*3ff48bf5SDavid du Colombierwith it using the IJS protocol. The pathname need not be absolute,
228*3ff48bf5SDavid du Colombieras the PATH environment variable is searched, but it's probably a good
229*3ff48bf5SDavid du Colombieridea for robustness and security. Note also that if -dSAFER is not
230*3ff48bf5SDavid du Colombierspecified, it's possible for PostScript code to set this parameter,
231*3ff48bf5SDavid du Colombierso it can cause arbitrary code to be executed. See the section on <a
232*3ff48bf5SDavid du Colombierhref="Use.htm#Security">Security</a> for more information.
233*3ff48bf5SDavid du Colombier</dl>
234*3ff48bf5SDavid du Colombier
235*3ff48bf5SDavid du Colombier<dl>
236*3ff48bf5SDavid du Colombier<dt><b><tt>-sDeviceManufacturer=</tt></b><em>{name}</em>
237*3ff48bf5SDavid du Colombier<dt><b><tt>-sDeviceModel=</tt></b><em>{name}</em>
238*3ff48bf5SDavid du Colombier<dd>These parameters select the device according to IEEE-1284 standard
239*3ff48bf5SDavid du Colombierdevice ID strings. In general, consult the documentation for the
240*3ff48bf5SDavid du Colombierdriver to find the appropriate settings. Note that, if the value
241*3ff48bf5SDavid du Colombiercontains a space, you'll want to quote the value in your shell, as
242*3ff48bf5SDavid du Colombierin the example above.
243*3ff48bf5SDavid du Colombier</dl>
244*3ff48bf5SDavid du Colombier
245*3ff48bf5SDavid du Colombier<dl>
246*3ff48bf5SDavid du Colombier<dt><b><tt>-sIjsParams=</tt></b><em>{params}</em>
247*3ff48bf5SDavid du Colombier<dd>This parameter allows you to set arbitrary IJS parameters on
248*3ff48bf5SDavid du Colombierthe IJS driver. The format is a comma-separated list of
249*3ff48bf5SDavid du Colombier<b><tt>key=value</tt></b> pairs. If it is necessary to send a
250*3ff48bf5SDavid du Colombiervalue containing a comma or backslash, it can be escaped with
251*3ff48bf5SDavid du Colombiera backslash. Thus, <b><tt>'-sIjsParams=Foo=bar,Baz=a\,b'</tt></b> sets
252*3ff48bf5SDavid du Colombierthe parameter Foo to "bar", and Baz to "a,b".
253*3ff48bf5SDavid du Colombier</dl>
254*3ff48bf5SDavid du Colombier
255*3ff48bf5SDavid du Colombier<dl>
256*3ff48bf5SDavid du Colombier<dt><b><tt>-dIjsUseOutputFD</tt></b>
257*3ff48bf5SDavid du Colombier<dd>This flag indicates that Ghostscript should open the output file
258*3ff48bf5SDavid du Colombierand pass a file descriptor to the server. If not set, Ghostscript
259*3ff48bf5SDavid du Colombiersimply passes the filename set in OutputFile to the server. In most
260*3ff48bf5SDavid du Colombiercases, this flag won't matter, but if you have a driver which works
261*3ff48bf5SDavid du Colombieronly with OutputFD (such as hpijs 1.0.2), or if you're using the
262*3ff48bf5SDavid du Colombier-sOutputFile="|cmd" syntax, you'll need to set it.
263*3ff48bf5SDavid du Colombier</dl>
264*3ff48bf5SDavid du Colombier
265*3ff48bf5SDavid du Colombier<dl>
266*3ff48bf5SDavid du Colombier<dt><b><tt>-dBitsPerSample=</tt></b><em>N</em>
267*3ff48bf5SDavid du Colombier<dd>This parameter controls the number of bits per sample. The
268*3ff48bf5SDavid du Colombierdefault value of 8 should be appropriate for most work. For monochrome
269*3ff48bf5SDavid du Colombierimages, use -dBitsPerSample=1.
270*3ff48bf5SDavid du Colombier</dl>
271*3ff48bf5SDavid du Colombier
272*3ff48bf5SDavid du Colombier<p>Generic Ghostscript options that are particularly relevant for IJS
273*3ff48bf5SDavid du Colombierare summarized below:
274*3ff48bf5SDavid du Colombier</p>
275*3ff48bf5SDavid du Colombier
276*3ff48bf5SDavid du Colombier<dl>
277*3ff48bf5SDavid du Colombier<dt><b><tt>-r</tt></b><em>number</em>
278*3ff48bf5SDavid du Colombier<br><b><tt>-r</tt></b><em>number1</em><b><tt>x</tt></b><em>number2</em>
279*3ff48bf5SDavid du Colombier<dd>Sets the resolution, in dpi. If the resolution is not specified,
280*3ff48bf5SDavid du ColombierGhostscript queries the IJS server to determine the preferred resolution.
281*3ff48bf5SDavid du ColombierWhen the resolution is specified, it overrides the value (if any)
282*3ff48bf5SDavid du Colombierpreferred by the IJS server.
283*3ff48bf5SDavid du Colombier</dl>
284*3ff48bf5SDavid du Colombier
285*3ff48bf5SDavid du Colombier<dl>
286*3ff48bf5SDavid du Colombier<dt><b><tt>-dDuplex</tt></b>
287*3ff48bf5SDavid du Colombier<dt><b><tt>-dTumble</tt></b>
288*3ff48bf5SDavid du Colombier<dd>These flags enable duplex (two-sided) printing. Tumble controls
289*3ff48bf5SDavid du Colombierthe orientation. When Tumble is false, the pages
290*3ff48bf5SDavid du Colombierare oriented suitably at the left or right. When Tumble is true,
291*3ff48bf5SDavid du Colombierthe pages are oriented suitably for binding at the top or
292*3ff48bf5SDavid du Colombierbottom.
293*3ff48bf5SDavid du Colombier</dl>
294*3ff48bf5SDavid du Colombier
295*3ff48bf5SDavid du Colombier<dl>
296*3ff48bf5SDavid du Colombier<dt><b><tt>-sProcessColorModel=</tt></b><em>{name}</em>
297*3ff48bf5SDavid du Colombier<dd>Use this flag to select the process color model. Suitable values
298*3ff48bf5SDavid du Colombierinclude DeviceGray, DeviceRGB, and DeviceCMYK.
299*3ff48bf5SDavid du Colombier</dl>
300*3ff48bf5SDavid du Colombier
301*3ff48bf5SDavid du Colombier<h3>Building IJS</h3>
302*3ff48bf5SDavid du Colombier
303*3ff48bf5SDavid du Colombier<p> IJS is included by default on Unix gcc builds, and also in
304*3ff48bf5SDavid du Colombierautoconf'ed builds. Others may need some makefile tweaking. First,
305*3ff48bf5SDavid du Colombiermake sure the IJS device is selected:
306*3ff48bf5SDavid du Colombier
307*3ff48bf5SDavid du Colombier<blockquote>
308*3ff48bf5SDavid du ColombierDEVICE_DEVS2=$(DD)ijs.dev
309*3ff48bf5SDavid du Colombier</blockquote>
310*3ff48bf5SDavid du Colombier
311*3ff48bf5SDavid du Colombier<p> Next, make sure that the path and execution type are set in
312*3ff48bf5SDavid du Colombierthe toplevel makefile. The values for Unix are as follows:
313*3ff48bf5SDavid du Colombier
314*3ff48bf5SDavid du Colombier<blockquote>
315*3ff48bf5SDavid du ColombierIJSSRCDIR=ijs
316*3ff48bf5SDavid du ColombierIJSEXECTYPE=unix
317*3ff48bf5SDavid du Colombier</blockquote>
318*3ff48bf5SDavid du Colombier
319*3ff48bf5SDavid du Colombier<p> At present, "unix" and "win" are the only supported values for
320*3ff48bf5SDavid du ColombierIJSEXECTYPE. If neither sounds appropriate for your system, it's
321*3ff48bf5SDavid du Colombierpossible that more porting work is needed.
322*3ff48bf5SDavid du Colombier
323*3ff48bf5SDavid du Colombier<p> Last, make sure that ijs.mak is included in the toplevel makefile.
324*3ff48bf5SDavid du ColombierIt should be present right after the include of icclib.mak.
325*3ff48bf5SDavid du Colombier
326*3ff48bf5SDavid du Colombier<p> IJS is not inherently platform-specific. We're very much interested
327*3ff48bf5SDavid du Colombierin taking patches from people who have ported it to non-mainstream
328*3ff48bf5SDavid du Colombierplatforms. And once it's built, you won't have to recompile Ghostscript
329*3ff48bf5SDavid du Colombierto support new drivers!
330*3ff48bf5SDavid du Colombier
331*3ff48bf5SDavid du Colombier<h2><a name="Win"></a>MS Windows printers</h2>
3329a747e4fSDavid du Colombier
3337dd7cddfSDavid du Colombier<p>
3347dd7cddfSDavid du ColombierThis section was written by Russell Lang, the author of Ghostscript's
3357dd7cddfSDavid du ColombierMS&nbsp;Windows-specific printer driver, and updated by
3367dd7cddfSDavid du Colombier<a href="mailto:Pierre.Arnaud@opac.ch">Pierre Arnaud</a>,
3377dd7cddfSDavid du Colombierthe current maintainer.
3387dd7cddfSDavid du Colombier</p>
3397dd7cddfSDavid du Colombier
3407dd7cddfSDavid du Colombier<p>
3417dd7cddfSDavid du ColombierThe <b><tt>mswinpr2</tt></b> device uses MS&nbsp;Windows printer drivers, and
3427dd7cddfSDavid du Colombierthus should work with any printer with device-independent bitmap (DIB)
3437dd7cddfSDavid du Colombierraster capabilities. The printer resolution cannot be selected directly
3447dd7cddfSDavid du Colombierusing PostScript commands from Ghostscript: use the printer setup in the
3457dd7cddfSDavid du ColombierControl Panel instead. It is however possible to specify a maximum resolution
3467dd7cddfSDavid du Colombierfor the printed document (see below).
3477dd7cddfSDavid du Colombier</p>
3487dd7cddfSDavid du Colombier
3497dd7cddfSDavid du Colombier<p>
3507dd7cddfSDavid du ColombierIf no Windows printer name is specified in <b><tt>-sOutputFile</tt></b>,
3517dd7cddfSDavid du ColombierGhostscript prompts for a Windows printer using the standard Print Setup
3527dd7cddfSDavid du Colombierdialog box.  You must set the orientation to Portrait and the page size to
3537dd7cddfSDavid du Colombierthat expected by Ghostscript; otherwise the image will be clipped.
3547dd7cddfSDavid du ColombierGhostscript sets the physical device size to that of the Windows printer
3557dd7cddfSDavid du Colombierdriver, but it does not update the PostScript clipping path.
3567dd7cddfSDavid du Colombier</p>
3577dd7cddfSDavid du Colombier
3587dd7cddfSDavid du Colombier<p>
3597dd7cddfSDavid du ColombierIf a Windows printer name is specified in <b><tt>-sOutputFile</tt></b> using
3607dd7cddfSDavid du Colombierthe format <tt>"\\spool\printer_name"</tt>, for instance
3617dd7cddfSDavid du Colombier</p>
3627dd7cddfSDavid du Colombier
3637dd7cddfSDavid du Colombier<blockquote><b><tt>
3647dd7cddfSDavid du Colombiergs ... -sOutputFile="\\spool\Apple LaserWriter II NT"
3657dd7cddfSDavid du Colombier</tt></b></blockquote>
3667dd7cddfSDavid du Colombier
3677dd7cddfSDavid du Colombier<p>
3687dd7cddfSDavid du Colombierthen Ghostscript attempts to open the Windows printer without prompting
3697dd7cddfSDavid du Colombier(except, of course, if the printer is connected to <b><tt>FILE:</tt></b>).
3707dd7cddfSDavid du ColombierGhostscript attempts to set the Windows printer page size and orientation
3717dd7cddfSDavid du Colombierto match that expected by Ghostscript, but doesn't always succeed.  It uses
3727dd7cddfSDavid du Colombierthis algorithm:
3737dd7cddfSDavid du Colombier</p>
3747dd7cddfSDavid du Colombier
3757dd7cddfSDavid du Colombier<ol>
3767dd7cddfSDavid du Colombier<li>If the requested page size matches one of the Windows standard page
3777dd7cddfSDavid du Colombiersizes +/- 2mm, request that standard size.</li>
3787dd7cddfSDavid du Colombier
3797dd7cddfSDavid du Colombier<li>Otherwise if the requested page size matches one of the Windows
3807dd7cddfSDavid du Colombierstandard page sizes in landscape mode, ask for that standard size in
3817dd7cddfSDavid du Colombierlandscape.</li>
3827dd7cddfSDavid du Colombier
3837dd7cddfSDavid du Colombier<li>Otherwise ask for the page size by specifying only its dimensions.</li>
3847dd7cddfSDavid du Colombier
3857dd7cddfSDavid du Colombier<li>Merge the requests above with the defaults.  If the printer driver
3867dd7cddfSDavid du Colombierignores the requested paper size, no error is generated: it will print on
3877dd7cddfSDavid du Colombierthe wrong paper size.</li>
3887dd7cddfSDavid du Colombier
3897dd7cddfSDavid du Colombier<li>Open the Windows printer with the merged orientation and size.</li>
3907dd7cddfSDavid du Colombier</ol>
3917dd7cddfSDavid du Colombier
3927dd7cddfSDavid du Colombier<p>
3937dd7cddfSDavid du ColombierThe Ghostscript physical device size is updated to match the Windows
3947dd7cddfSDavid du Colombierprinter physical device.
3957dd7cddfSDavid du Colombier</p>
3967dd7cddfSDavid du Colombier
397*3ff48bf5SDavid du Colombier<h3><a name="Win_properties"></a>Supported command-line parameters</h3>
3987dd7cddfSDavid du Colombier
3997dd7cddfSDavid du Colombier<p>
4007dd7cddfSDavid du ColombierThe <b><tt>mswinpr2</tt></b> device supports a limited number of command-line
4017dd7cddfSDavid du Colombierparameters (e.g. it does not support setting the printer resolution). The
4027dd7cddfSDavid du Colombierrecognized parameters are the following:
4037dd7cddfSDavid du Colombier</p>
4047dd7cddfSDavid du Colombier
4057dd7cddfSDavid du Colombier<blockquote>
4067dd7cddfSDavid du Colombier<dl>
4077dd7cddfSDavid du Colombier<dt><b><tt>-sDEVICE=mswinpr2</tt></b></dt>
4087dd7cddfSDavid du Colombier<dd>Selects the MS&nbsp;Windows printer device. If Ghostscript was not
4097dd7cddfSDavid du Colombiercompiled with this device as the default output device, you have to specify
4107dd7cddfSDavid du Colombierit on the command line.</dd>
4117dd7cddfSDavid du Colombier
4127dd7cddfSDavid du Colombier<dt><b><tt>-dNoCancel</tt></b></dt>
4137dd7cddfSDavid du Colombier<dd>Hides the progress dialog, which shows the percent of the document page
4147dd7cddfSDavid du Colombieralready processed and also provides a <em>cancel</em> button. This option
4157dd7cddfSDavid du Colombieris useful if GS is intended to print pages in the background, without any
4167dd7cddfSDavid du Colombieruser intervention.</dd>
4177dd7cddfSDavid du Colombier
4187dd7cddfSDavid du Colombier<dt><b><tt>-sOutputFile=</tt></b><b>"\\spool\<em>printer_name</em>"</b></dt>
4197dd7cddfSDavid du Colombier<dd>Specifies which printer should be used. The <em>printer_name</em> should be
4207dd7cddfSDavid du Colombiertyped exactly as it appears in the Printers control panel, including spaces.</dd>
4217dd7cddfSDavid du Colombier
4227dd7cddfSDavid du Colombier</dl>
4237dd7cddfSDavid du Colombier</blockquote>
4247dd7cddfSDavid du Colombier
425*3ff48bf5SDavid du Colombier<h3><a name="Win_options"></a>Supported options (device properties)</h3>
4267dd7cddfSDavid du Colombier
4277dd7cddfSDavid du Colombier<p>
4287dd7cddfSDavid du ColombierSeveral extra options exist which cannot be set through the command-line,
4297dd7cddfSDavid du Colombierbut only by executing the appropriate PostScript setup code. These options
4307dd7cddfSDavid du Colombiercan be set through the inclusion of a setup file on the command-line:
4317dd7cddfSDavid du Colombier</p>
4327dd7cddfSDavid du Colombier
4337dd7cddfSDavid du Colombier<blockquote><b><tt>
4347dd7cddfSDavid du Colombiergs ... setup.ps ...
4357dd7cddfSDavid du Colombier</tt></b></blockquote>
4367dd7cddfSDavid du Colombier
4377dd7cddfSDavid du Colombier<p>
4387dd7cddfSDavid du ColombierThe <tt>setup.ps</tt> file is responsible for the device selection, therefore
4397dd7cddfSDavid du Colombieryou should not specify the <b><tt>-sDEVICE=mswinpr2</tt></b> option on the
4407dd7cddfSDavid du Colombiercommand-line if you are using such a setup file. Here is an example of such
4417dd7cddfSDavid du Colombiera setup file:
4427dd7cddfSDavid du Colombier</p>
4437dd7cddfSDavid du Colombier
4447dd7cddfSDavid du Colombier<blockquote><pre>
4457dd7cddfSDavid du Colombiermark
4467dd7cddfSDavid du Colombier  /NoCancel      true                       % don't show the cancel dialog
4477dd7cddfSDavid du Colombier  /BitsPerPixel  4                          % force 4 bits/pixel
4487dd7cddfSDavid du Colombier  /UserSettings
4497dd7cddfSDavid du Colombier    &lt;&lt;
4507dd7cddfSDavid du Colombier      /DocumentName  (Ghostscript document) % name for the Windows spooler
4517dd7cddfSDavid du Colombier      /MaxResolution 360                    % maximum document resolution
4527dd7cddfSDavid du Colombier    &gt;&gt;
4537dd7cddfSDavid du Colombier  (mswinpr2) finddevice                     % select the Windows device driver
4547dd7cddfSDavid du Colombier  putdeviceprops
4557dd7cddfSDavid du Colombiersetdevice
4567dd7cddfSDavid du Colombier</pre></blockquote>
4577dd7cddfSDavid du Colombier
4587dd7cddfSDavid du Colombier<p>
4597dd7cddfSDavid du ColombierThis example disables the progress dialog (same as the <tt><b>-dNoCancel</b></tt>
4607dd7cddfSDavid du Colombieroption), forces a 4 bits/pixel output resolution and specifies additional user
4617dd7cddfSDavid du Colombiersettings, such as the document name (which will be displayed by the Windows
4627dd7cddfSDavid du Colombierspooler for the queued document) and the maximum resolution (here 360&nbsp;dpi).
4637dd7cddfSDavid du ColombierIt then finds and selects an instance of the MS&nbsp;Windows device printer
4647dd7cddfSDavid du Colombierand activates it. This will show the standard printer dialog, since no
4657dd7cddfSDavid du Colombier<tt><b>/OutputFile</b></tt> property was specified.
4667dd7cddfSDavid du Colombier</p>
4677dd7cddfSDavid du Colombier
4687dd7cddfSDavid du Colombier<p>
4697dd7cddfSDavid du ColombierThe following options are available:
4707dd7cddfSDavid du Colombier</p>
4717dd7cddfSDavid du Colombier
4727dd7cddfSDavid du Colombier<blockquote>
4737dd7cddfSDavid du Colombier<dl>
474*3ff48bf5SDavid du Colombier<dt><b><tt>/NoCancel <em>boolean</em></tt></b></dt>
4757dd7cddfSDavid du Colombier<dd>Disables (hides) the progress dialog when set to <em><tt>true</tt></em> or
476*3ff48bf5SDavid du Colombiershow the progress dialog if not set or set to <em><tt>false</tt></em>.</dd>
4777dd7cddfSDavid du Colombier
478*3ff48bf5SDavid du Colombier<dt><b><tt>/OutputFile <em>string</em></tt></b></dt>
4797dd7cddfSDavid du Colombier<dd>Specifies which printer should be used. The string should be of the form
4807dd7cddfSDavid du Colombier<tt><b>\\spool\<em>printer_name</em></b></tt>, where the <em>printer_name</em> should be
481*3ff48bf5SDavid du Colombiertyped exactly as it appears in the Printers control panel, including spaces.</dd>
4827dd7cddfSDavid du Colombier
483*3ff48bf5SDavid du Colombier<dt><b><tt>/QueryUser <em>integer</em></tt></b></dt>
4847dd7cddfSDavid du Colombier<dd>Shows the standard printer dialog (<tt><b>1</b></tt> or any other value),
4857dd7cddfSDavid du Colombiershows the <em>printer setup dialog</em> (<tt><b>2</b></tt>) or selects the
486*3ff48bf5SDavid du Colombier<em>default Windows printer</em> without any user interaction (<tt><b>3</b></tt>).</dd>
4877dd7cddfSDavid du Colombier
488*3ff48bf5SDavid du Colombier<dt><b><tt>/BitsPerPixel <em>integer</em></tt></b></dt>
4897dd7cddfSDavid du Colombier<dd>Sets the device depth to the specified bits per pixel. Currently supported
4907dd7cddfSDavid du Colombiervalues are <tt><b>1</b></tt> (monochrome), <tt><b>4</b></tt> (CMYK with screening
4917dd7cddfSDavid du Colombierhandled by Ghostscript) and <tt><b>24</b></tt> (True Color, dithering handled by
492*3ff48bf5SDavid du Colombierthe Windows printer driver; this option can produce huge print jobs).</dd>
4937dd7cddfSDavid du Colombier
494*3ff48bf5SDavid du Colombier<dt><b><tt>/UserSettings <em>dict</em></tt></b></dt>
4957dd7cddfSDavid du Colombier<dd>Sets additional options, defined in a dictionary. The following properties can
496*3ff48bf5SDavid du Colombierbe set:
4977dd7cddfSDavid du Colombier
4987dd7cddfSDavid du Colombier<dl>
499*3ff48bf5SDavid du Colombier<dt><b><tt>/DocumentName <em>string</em></tt></b></dt>
5007dd7cddfSDavid du Colombier<dd>Defines the user friendly document name which will be displayed by the
501*3ff48bf5SDavid du ColombierWindows spooler.</dd>
5027dd7cddfSDavid du Colombier
503*3ff48bf5SDavid du Colombier<dt><b><tt>/DocumentRange <em>[n1 n2]</em></tt></b></dt>
5047dd7cddfSDavid du Colombier<dd>Defines the range of pages contained in the document. This information can
505*3ff48bf5SDavid du Colombierbe used by the printer dialog, in conjunction with the following property.</dd>
5067dd7cddfSDavid du Colombier
507*3ff48bf5SDavid du Colombier<dt><b><tt>/SelectedRange <em>[n1 n2]</em></tt></b></dt>
5087dd7cddfSDavid du Colombier<dd>Defines the selected range of pages. This information will be displayed in
5097dd7cddfSDavid du Colombierthe printer dialog and will be updated after the user interaction. A PostScript
510*3ff48bf5SDavid du Colombierprogram could check these values and print only the selected page range.</dd>
5117dd7cddfSDavid du Colombier
512*3ff48bf5SDavid du Colombier<dt><b><tt>/MaxResolution <em>dpi</em></tt></b></dt>
5137dd7cddfSDavid du Colombier<dd>Specifies the maximum tolerated output resolution. If the selected printer has
5147dd7cddfSDavid du Colombiera higher resolution than <tt><b>dpi</b></tt>, then Ghostscript will render the
5157dd7cddfSDavid du Colombierdocument with a submultiple of the printer resolution. For example, if
5167dd7cddfSDavid du Colombier<tt><b>MaxResolution</b></tt> is set to 360 and the output printer supports
5177dd7cddfSDavid du Colombierup to 1200 dpi, then Ghostscript renders the document with an internal
5187dd7cddfSDavid du Colombierresolution of 1200/4=300 dpi. This can be very useful to reduce the memory
5197dd7cddfSDavid du Colombierrequirements when printing in True Color on some high resolution ink-jet color
520*3ff48bf5SDavid du Colombierprinters.</dd>
5217dd7cddfSDavid du Colombier
522*3ff48bf5SDavid du Colombier</dl></dd>
5237dd7cddfSDavid du Colombier
5247dd7cddfSDavid du Colombier</dl>
5257dd7cddfSDavid du Colombier</blockquote>
5267dd7cddfSDavid du Colombier
5277dd7cddfSDavid du Colombier<p>
5287dd7cddfSDavid du ColombierThese properties can be queried through the <tt><b>currentpagedevice</b></tt>
5297dd7cddfSDavid du Colombieroperator. The following PostScript code snippet shows how to do it for some
5307dd7cddfSDavid du Colombierof the properties:
5317dd7cddfSDavid du Colombier</p>
5327dd7cddfSDavid du Colombier
5337dd7cddfSDavid du Colombier<blockquote><pre>
5347dd7cddfSDavid du Colombiercurrentpagedevice /BitsPerPixel get ==  % displays the selected depth
5357dd7cddfSDavid du Colombier
5367dd7cddfSDavid du Colombiercurrentpagedevice /UserSettings get     % get the additional options..
5377dd7cddfSDavid du Colombier/us exch def                            % ..and assign them to a variable
5387dd7cddfSDavid du Colombier
5397dd7cddfSDavid du Colombierus /DocumentName get ==     % displays the document name
5407dd7cddfSDavid du Colombierus /SelectedRange get ==    % displays the selected page range
5417dd7cddfSDavid du Colombier
5427dd7cddfSDavid du Colombier% other misc. informations (don't rely on them)
5437dd7cddfSDavid du Colombier
5447dd7cddfSDavid du Colombierus /Color get ==            % 1 => monochrome output, 2 => color output
5457dd7cddfSDavid du Colombierus /PrintCopies get ==      % displays the number of copies requested
5467dd7cddfSDavid du Colombier</pre></blockquote>
5477dd7cddfSDavid du Colombier
5487dd7cddfSDavid du Colombier<p>
5497dd7cddfSDavid du ColombierThere are a few undocumented informations stored in the <tt><b>UserSettings</b></tt>
5507dd7cddfSDavid du Colombierdictionary. You should not rely on them. Their use is still experimental and
5517dd7cddfSDavid du Colombierthey could be removed in a future version.
5527dd7cddfSDavid du Colombier</p>
5537dd7cddfSDavid du Colombier
554*3ff48bf5SDavid du Colombier<h3><a name="Win_duplex"></a>Duplex printing</h3>
5557dd7cddfSDavid du Colombier
5567dd7cddfSDavid du Colombier<p>
5577dd7cddfSDavid du ColombierIf the Windows printer supports the duplex printing feature, then it will
5587dd7cddfSDavid du Colombieralso be available through the <b><tt>mswinpr2</tt></b> device. You can query
5597dd7cddfSDavid du Colombierfor this support through the <b><tt>/Duplex</tt></b> propery of the
5607dd7cddfSDavid du Colombier<b><tt>currentpagedevice</tt></b>. If it returns <b><tt>null</tt></b>, then
5617dd7cddfSDavid du Colombierthe feature is not supported by the selected printer. Otherwise, <b><tt>true</tt></b>
5627dd7cddfSDavid du Colombiermeans that the printer is currently set up to print on both faces of the paper
5637dd7cddfSDavid du Colombierand <b><tt>false</tt></b> that it is not, but that it can.
5647dd7cddfSDavid du Colombier</p>
5657dd7cddfSDavid du Colombier
5667dd7cddfSDavid du Colombier<p>
5677dd7cddfSDavid du ColombierThe following example shows how to print on both faces of the paper (using
5687dd7cddfSDavid du Colombierthe long side of the paper as the reference):
5697dd7cddfSDavid du Colombier</p>
5707dd7cddfSDavid du Colombier
5717dd7cddfSDavid du Colombier<blockquote><pre>
5727dd7cddfSDavid du Colombier&lt;&lt; /Duplex true /Tumble false &gt;&gt; setpagedevice
5737dd7cddfSDavid du Colombier</pre></blockquote>
5747dd7cddfSDavid du Colombier
5757dd7cddfSDavid du Colombier<p>
5767dd7cddfSDavid du Colombier</p>
5777dd7cddfSDavid du Colombier
578*3ff48bf5SDavid du Colombier
5797dd7cddfSDavid du Colombier<hr>
5807dd7cddfSDavid du Colombier
581*3ff48bf5SDavid du Colombier<h2><a name="File_formats"></a>File formats</h2>
582*3ff48bf5SDavid du Colombier
583*3ff48bf5SDavid du Colombier<h3><a name="JFIF"></a>JPEG file format (JFIF)</h3>
5847dd7cddfSDavid du Colombier
5857dd7cddfSDavid du Colombier<p>
5867dd7cddfSDavid du ColombierGhostscript includes output drivers that can produce <a
5877dd7cddfSDavid du Colombierhref="http://www.ijg.org/">Independent JPEG Group</a> JFIF (JPEG File
5887dd7cddfSDavid du ColombierInterchange Format) files from PostScript images.  <b>Please note</b> that
5897dd7cddfSDavid du ColombierJPEG is a compression method specifically intended for continuous-tone
5907dd7cddfSDavid du Colombierimages such as photographs, not for graphics, and it is therefore quite
5917dd7cddfSDavid du Colombierunsuitable for the vast majority of page images produced with PostScript,
5927dd7cddfSDavid du Colombierwhich should be saved in a form better for graphics, such as
593*3ff48bf5SDavid du Colombier<a href="http://www.libpng.org/pub/png/">Portable Network Graphics</a>
594*3ff48bf5SDavid du Colombier(PNG) format.  If you get crummy-looking JPEG files, don't blame
595*3ff48bf5SDavid du ColombierGhostscript; instead consult a reference about uses and abuses of JPEG,
596*3ff48bf5SDavid du Colombiersuch as the JPEG FAQ
5977dd7cddfSDavid du Colombier
5987dd7cddfSDavid du Colombier<blockquote>
5997dd7cddfSDavid du Colombier<a href="http://www.faqs.org/faqs/jpeg-faq/">http://www.faqs.org/faqs/jpeg-faq/</a>
6007dd7cddfSDavid du Colombier</blockquote>
6017dd7cddfSDavid du Colombier
6027dd7cddfSDavid du Colombier<p>
6037dd7cddfSDavid du ColombierYou can use the JPEG output drivers -- <b><tt>jpeg</tt></b> to produce
6047dd7cddfSDavid du Colombiercolor JPEG files and <b><tt>jpeggray</tt></b> for grayscale JPEGs -- the
6057dd7cddfSDavid du Colombiersame as other file-format drivers: by specifying the device name and an
6067dd7cddfSDavid du Colombieroutput file name, for example
6077dd7cddfSDavid du Colombier
6087dd7cddfSDavid du Colombier<blockquote><b><tt>
6097dd7cddfSDavid du Colombiergs -sDEVICE=jpeg -sOutputFile=foo.jpg foo.ps
6107dd7cddfSDavid du Colombier</tt></b></blockquote>
6117dd7cddfSDavid du Colombier
6127dd7cddfSDavid du Colombier<p>
6137dd7cddfSDavid du ColombierYou can also use the <a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b>
6147dd7cddfSDavid du Colombierswitch</a> to specify the imaging resolution and thus the output file's
6157dd7cddfSDavid du Colombiersize in pixels.  The default resolution is normally 72&times;72dpi.
6167dd7cddfSDavid du Colombier
6177dd7cddfSDavid du Colombier<p>
6187dd7cddfSDavid du ColombierThe JPEG devices support several special parameters to control the JPEG
6197dd7cddfSDavid du Colombier"quality setting" (DCT quantization level).
6207dd7cddfSDavid du Colombier
6217dd7cddfSDavid du Colombier<blockquote>
6227dd7cddfSDavid du Colombier<dl>
6237dd7cddfSDavid du Colombier<dt><b><tt>-dJPEGQ=</tt></b><b><em>N</em></b> (integer from 0 to 100, default 75)
6247dd7cddfSDavid du Colombier<dd>Set the quality level <b><em>N</em></b> according to the widely used
6257dd7cddfSDavid du ColombierIJG quality scale, which balances the extent of compression against the
6267dd7cddfSDavid du Colombierfidelity of the image when reconstituted.  Lower values drop more
6277dd7cddfSDavid du Colombierinformation from the image to achieve higher compression, and therefore
6287dd7cddfSDavid du Colombierhave lower quality when reconstituted.
6297dd7cddfSDavid du Colombier
6307dd7cddfSDavid du Colombier<dt><b><tt>-dQFactor=</tt></b><b><em>M</em></b> (float from 0.0 to 1.0)
6317dd7cddfSDavid du Colombier<dd>Adobe's QFactor quality scale, which you may use in place of
6327dd7cddfSDavid du Colombier<b><tt>JPEGQ</tt></b> above.  The QFactor scale is used by PostScript's
6337dd7cddfSDavid du ColombierDCTEncode filter but is nearly unheard-of elsewhere.
6347dd7cddfSDavid du Colombier</dl>
6357dd7cddfSDavid du Colombier</blockquote>
6367dd7cddfSDavid du Colombier
6377dd7cddfSDavid du Colombier<p>
6387dd7cddfSDavid du ColombierAt this writing the default JPEG quality level of 75 is equivalent to
6397dd7cddfSDavid du Colombier<b><tt>-dQFactor=0.5</tt></b>, but the JPEG default might change in the
6407dd7cddfSDavid du Colombierfuture.  The JPEG drivers could be extended to support additional JPEG
6417dd7cddfSDavid du Colombiercompression options, such as the other DCTEncode filter parameters, but so
6427dd7cddfSDavid du Colombierfar they haven't been.
6437dd7cddfSDavid du Colombier
644*3ff48bf5SDavid du Colombier<h3><a name="TIFF"></a>TIFF file formats</h3>
645*3ff48bf5SDavid du Colombier
646*3ff48bf5SDavid du Colombier<p>
647*3ff48bf5SDavid du ColombierThere are two unrelated sets of TIFF drivers.  There are two color TIFF
648*3ff48bf5SDavid du Colombierdrivers that produce uncompressed output:
649*3ff48bf5SDavid du Colombier
650*3ff48bf5SDavid du Colombier<blockquote>
651*3ff48bf5SDavid du Colombier<dl>
652*3ff48bf5SDavid du Colombier<dt><b><tt>tiff12nc</tt></b>
653*3ff48bf5SDavid du Colombier<dd>Produces 12-bit RGB output (4 bits per component).
654*3ff48bf5SDavid du Colombier<dt><b><tt>tiff24nc</tt></b>
655*3ff48bf5SDavid du Colombier<dd>Produces 24-bit RGB output (8 bits per component).
656*3ff48bf5SDavid du Colombier</dl>
657*3ff48bf5SDavid du Colombier</blockquote>
658*3ff48bf5SDavid du Colombier
659*3ff48bf5SDavid du Colombier<p>
660*3ff48bf5SDavid du ColombierThe remaining TIFF drivers all produce black-and-white output with different
661*3ff48bf5SDavid du Colombiercompression modes:
662*3ff48bf5SDavid du Colombier
663*3ff48bf5SDavid du Colombier<blockquote>
664*3ff48bf5SDavid du Colombier<dl>
665*3ff48bf5SDavid du Colombier<dt><b><tt>tiffcrle</tt></b>
666*3ff48bf5SDavid du Colombier<dd>G3 fax encoding with no EOLs
667*3ff48bf5SDavid du Colombier<dt><b><tt>tiffg3</tt></b>
668*3ff48bf5SDavid du Colombier<dd>G3 fax encoding with EOLs
669*3ff48bf5SDavid du Colombier<dt><b><tt>tiffg32d</tt></b>
670*3ff48bf5SDavid du Colombier<dd>2-D G3 fax encoding
671*3ff48bf5SDavid du Colombier<dt><b><tt>tiffg4</tt></b>
672*3ff48bf5SDavid du Colombier<dd>G4 fax encoding
673*3ff48bf5SDavid du Colombier<dt><b><tt>tifflzw</tt></b>
674*3ff48bf5SDavid du Colombier<dd>LZW-compatible (tag = 5) compression
675*3ff48bf5SDavid du Colombier<dt><b><tt>tiffpack</tt></b>
676*3ff48bf5SDavid du Colombier<dd>PackBits (tag = 32773) compression
677*3ff48bf5SDavid du Colombier</dl>
678*3ff48bf5SDavid du Colombier</blockquote>
679*3ff48bf5SDavid du Colombier
680*3ff48bf5SDavid du Colombier<p>
681*3ff48bf5SDavid du ColombierThe black-and-white TIFF drivers support creation of files that are
682*3ff48bf5SDavid du Colombiercomprised of more than a single strip.  Multi-strip files reduce the memory
683*3ff48bf5SDavid du Colombierrequirement on the reader, since readers need only store and process one
684*3ff48bf5SDavid du Colombierstrip at a time.  These drivers provide two parameters beyond the standard
685*3ff48bf5SDavid du Colombierset:
686*3ff48bf5SDavid du Colombier
687*3ff48bf5SDavid du Colombier<blockquote>
688*3ff48bf5SDavid du Colombier<dl>
689*3ff48bf5SDavid du Colombier<dt><b><tt>-dMaxStripSize=</tt><em>N</em></b> (non-negative integer; default = 0)
690*3ff48bf5SDavid du Colombier<dd>Set the maximum (uncompressed) size of a strip.
691*3ff48bf5SDavid du Colombier
692*3ff48bf5SDavid du Colombier<dt><b><tt>-dAdjustWidth=</tt><em>true|false</em></b> (Boolean; default =
693*3ff48bf5SDavid du Colombiertrue)
694*3ff48bf5SDavid du Colombier<dd>If true, then if the requested page width is close to either A4 (1728
695*3ff48bf5SDavid du Colombiercolumns) or B4 (2048 columns), set the page width to A4 or B4 respectively.
696*3ff48bf5SDavid du Colombier</dl></blockquote>
697*3ff48bf5SDavid du Colombier
698*3ff48bf5SDavid du Colombier<p>
699*3ff48bf5SDavid du ColombierThe TIFF 6.0 specification, Section 7, page 27, recommends that the size of
700*3ff48bf5SDavid du Colombiereach strip be about 8 Kbytes.  As an example, to generate the 'tiger' in
701*3ff48bf5SDavid du Colombiertiffg4 format that has the recommended strip size, use:
702*3ff48bf5SDavid du Colombier
703*3ff48bf5SDavid du Colombier<blockquote><pre>
704*3ff48bf5SDavid du Colombiergs -sDEVICE=tiffg4 -sOutputFile=tiger.tif -dMaxStripSize=8192 examples/tiger.ps
705*3ff48bf5SDavid du Colombier</pre></blockquote>
706*3ff48bf5SDavid du Colombier
707*3ff48bf5SDavid du Colombier<p>
708*3ff48bf5SDavid du ColombierIf the value of the <b><tt>MaxStripSize</tt></b> parameter is smaller than a
709*3ff48bf5SDavid du Colombiersingle image row, then no error will be generated, and the TIFF file will be
710*3ff48bf5SDavid du Colombiergenerated correctly using one row per strip.  Note that smaller strip sizes
711*3ff48bf5SDavid du Colombierincrease the size of the file by increasing the size of the StripOffsets and
712*3ff48bf5SDavid du ColombierStripByteCounts tables, and by reducing the effectiveness of the compression
713*3ff48bf5SDavid du Colombierwhich must start over for each strip.
714*3ff48bf5SDavid du Colombier
715*3ff48bf5SDavid du Colombier<p>
716*3ff48bf5SDavid du ColombierIf the value of MaxStripSize is 0 (the default), then the entire image will
717*3ff48bf5SDavid du Colombierbe a single strip.
718*3ff48bf5SDavid du Colombier
719*3ff48bf5SDavid du Colombier
7207dd7cddfSDavid du Colombier<hr>
7217dd7cddfSDavid du Colombier
722*3ff48bf5SDavid du Colombier<h2><a name="Display_devices"></a>Display Devices</h2>
723*3ff48bf5SDavid du Colombier
724*3ff48bf5SDavid du Colombier<p>
725*3ff48bf5SDavid du ColombierGhostscript is often used for screen display of postscript and pdf documents.
726*3ff48bf5SDavid du ColombierIn many cases, a client or 'viewer' application calls the ghostscript engine
727*3ff48bf5SDavid du Colombierto do the rasterization and handles the display of the resulting image itself,
728*3ff48bf5SDavid du Colombierbut it is also possible to invoke ghostscript directly and select an output
729*3ff48bf5SDavid du Colombierdevice which directly handles displaying the image on screen.
730*3ff48bf5SDavid du Colombier
731*3ff48bf5SDavid du Colombier<p>
732*3ff48bf5SDavid du ColombierThis section describes the various display-oriented devices that are available
733*3ff48bf5SDavid du Colombierin ghostscript.
734*3ff48bf5SDavid du Colombier
735*3ff48bf5SDavid du Colombier<h3><a name="x11_devices"></a>X Window System</h3>
736*3ff48bf5SDavid du Colombier
737*3ff48bf5SDavid du Colombier<p>
738*3ff48bf5SDavid du ColombierPerhaps the most common use of of a display device is with the X Window System
739*3ff48bf5SDavid du Colombieron unix-like systems. It is the default device on the command line client on
740*3ff48bf5SDavid du Colombiersuch systems, and is used more creatively by the gv client application.
741*3ff48bf5SDavid du Colombier
742*3ff48bf5SDavid du Colombier<p>
743*3ff48bf5SDavid du ColombierThe available devices are:
744*3ff48bf5SDavid du Colombier
745*3ff48bf5SDavid du Colombier<dl>
746*3ff48bf5SDavid du Colombier<dt><b>x11</b>
747*3ff48bf5SDavid du Colombier<dd>This is the default device, handling display on X11R6.
748*3ff48bf5SDavid du Colombier
749*3ff48bf5SDavid du Colombier<dt><b>x11alpha</b>
750*3ff48bf5SDavid du Colombier<dd>This is the x11 device, but with antialiasing. It is equivalent to
751*3ff48bf5SDavid du Colombierinvoking the x11 device with the options <tt>-dGraphicsAlphaBits=4
752*3ff48bf5SDavid du Colombier-dTextAlphaBits=4 -dMaxBitmap=50000000</tt>.
753*3ff48bf5SDavid du Colombier
754*3ff48bf5SDavid du Colombier<dt><b>x11cmyk</b>
755*3ff48bf5SDavid du Colombier<dd>This device rasterizes the image in the CMKY color space, then flattens
756*3ff48bf5SDavid du Colombierit to RGB for display. It's intended for testing only.
757*3ff48bf5SDavid du Colombier
758*3ff48bf5SDavid du Colombier<dt><b>x11mono</b>
759*3ff48bf5SDavid du Colombier<dd>This is a strict black-and-white device for 1-bit monochrome displays.
760*3ff48bf5SDavid du Colombier
761*3ff48bf5SDavid du Colombier<dt><b>x11gray2</b>
762*3ff48bf5SDavid du Colombier<dd>This is a device for 2 bpp (4-level) monochrome displays.
763*3ff48bf5SDavid du Colombier
764*3ff48bf5SDavid du Colombier<dt><b>x11gray4</b>
765*3ff48bf5SDavid du Colombier<dd>This is a device for 4 bpp (16-level) monochrome displays.
766*3ff48bf5SDavid du Colombier</dl>
767*3ff48bf5SDavid du Colombier
768*3ff48bf5SDavid du Colombier
769*3ff48bf5SDavid du Colombier<hr>
770*3ff48bf5SDavid du Colombier
771*3ff48bf5SDavid du Colombier<h2><a name="HP_ijs"></a>HP Deskjet official drivers</h2>
772*3ff48bf5SDavid du Colombier
773*3ff48bf5SDavid du Colombier<p>
774*3ff48bf5SDavid du ColombierHP provides official drivers for many of their Deskjet printer models.
775*3ff48bf5SDavid du ColombierIn order to use these drivers, you will need the HP Inkjet Server as
776*3ff48bf5SDavid du Colombierwell as Ghostscript, available from <a
777*3ff48bf5SDavid du Colombierhref="http://hpinkjet.sourceforge.net">http://hpinkjet.sourceforge.net</a>.
778*3ff48bf5SDavid du ColombierThis version of Ghostscript includes the patch from version 0.97 of
779*3ff48bf5SDavid du Colombierthe hpijs software. If you are installing hpijs from an RPM, you will
780*3ff48bf5SDavid du Colombieronly need the hpijs RPM, not the ghostscript-hpijs one, as the code
781*3ff48bf5SDavid du Colombierneeded to work with hpijs is already included.
782*3ff48bf5SDavid du Colombier
783*3ff48bf5SDavid du Colombier<p>
784*3ff48bf5SDavid du ColombierNote that newer version of the hpijs drivers support the IJS protocol.
785*3ff48bf5SDavid du ColombierIf you can, you should consider using the ijs driver instead. Among
786*3ff48bf5SDavid du Colombierother things, the hpijs Ghostscript driver is Unix-only, and is untested
787*3ff48bf5SDavid du Colombieron older Unix platforms.
788*3ff48bf5SDavid du Colombier
789*3ff48bf5SDavid du Colombier<p>
790*3ff48bf5SDavid du ColombierAs of the 0.97 version, hpijs supports the following printer models:
791*3ff48bf5SDavid du Colombier
792*3ff48bf5SDavid du Colombier<dl><dt><b>e-Series:</b>
793*3ff48bf5SDavid du Colombier <dd>e-20
794*3ff48bf5SDavid du Colombier<dt><b>DeskJet 350C Series:</b>
795*3ff48bf5SDavid du Colombier <dd>350C
796*3ff48bf5SDavid du Colombier<dt><b>DeskJet 600C Series:</b>
797*3ff48bf5SDavid du Colombier <dd>600C, 660C, 670/672C, 670TV, 680/682C
798*3ff48bf5SDavid du Colombier<dt><b>DeskJet 600C Series Photo:</b>
799*3ff48bf5SDavid du Colombier <dd>610/612C, 640/648C, 690/692/693/694/695/697C
800*3ff48bf5SDavid du Colombier<dt><b>DeskJet 630C Series:</b>
801*3ff48bf5SDavid du Colombier <dd>630/632C
802*3ff48bf5SDavid du Colombier<dt><b>DeskJet 800C Series:</b>
803*3ff48bf5SDavid du Colombier <dd>810/812C, 830/832C, 840/842/843C, 880/882C, 895C
804*3ff48bf5SDavid du Colombier<dt><b>DeskJet 900C Series, PhotoSmart::</b>
805*3ff48bf5SDavid du Colombier <dd>930/932C, 950/952C, 970C, PhotoSmart 1000/1100
806*3ff48bf5SDavid du Colombier<dt><b>DeskJet 990C, PhotoSmart:</b>
807*3ff48bf5SDavid du Colombier <dd>960C, 980C, 990C, PhotoSmart 1215/1218
808*3ff48bf5SDavid du Colombier</ul>
809*3ff48bf5SDavid du Colombier
810*3ff48bf5SDavid du Colombier<p>You will need to add the following line to your makefile:
811*3ff48bf5SDavid du Colombier
812*3ff48bf5SDavid du Colombier<blockquote>
813*3ff48bf5SDavid du ColombierDEVICE_DEVS2=$(DD)DJ630.dev $(DD)DJ6xx.dev $(DD)DJ6xxP.dev $(DD)DJ8xx.dev $(DD)DJ9xx.dev $(DD)DJ9xxVIP.dev $(DD)AP21xx.dev
814*3ff48bf5SDavid du Colombier</blockquote>
815*3ff48bf5SDavid du Colombier
816*3ff48bf5SDavid du Colombier<p>
817*3ff48bf5SDavid du ColombierPlease see <a
818*3ff48bf5SDavid du Colombierhref="http://hpinkjet.sourceforge.net">http://hpinkjet.sourceforge.net</a>
819*3ff48bf5SDavid du Colombierfor more information about this driver. Thanks to the folks at HP,
820*3ff48bf5SDavid du Colombierespecially David Suffield for making this driver available and working to
821*3ff48bf5SDavid du Colombierintegrate it with Ghostscript.
822*3ff48bf5SDavid du Colombier
823*3ff48bf5SDavid du Colombier<hr>
824*3ff48bf5SDavid du Colombier
825*3ff48bf5SDavid du Colombier<h2><a name="HP8_color_inkjet"></a>H-P 8xx, 1100, and 1600 color inkjet printers</h2>
8267dd7cddfSDavid du Colombier
8277dd7cddfSDavid du Colombier<p>
8287dd7cddfSDavid du ColombierThis section, written by Uli Wortmann &lt;<a
8297dd7cddfSDavid du Colombierhref="mailto:uliw@erdw.ethz.ch">uliw@erdw.ethz.ch</a>&gt;, deals with the
8307dd7cddfSDavid du ColombierDeskJet 670, 690, 850, 855, 870, 890, 1100, and 1600.
8317dd7cddfSDavid du Colombier
832*3ff48bf5SDavid du Colombier<h3><a name="HP8_gdevcd8"></a>Drivers contained in <b><tt>gdevcd8.c</tt></b></h3>
8337dd7cddfSDavid du Colombier
8347dd7cddfSDavid du Colombier<p>
8357dd7cddfSDavid du ColombierThe source module <b><tt>gdevcd8.c</tt></b> contains four generic drivers:
8367dd7cddfSDavid du Colombier
8377dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
8387dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj670</tt></b>
8397dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
8407dd7cddfSDavid du Colombier	<td>HP DeskJet 670 and 690
8417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj850</tt></b>
8427dd7cddfSDavid du Colombier	<td>&nbsp;
8437dd7cddfSDavid du Colombier	<td>HP DeskJet 850, 855, 870, and 1100
8447dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj890</tt></b>
8457dd7cddfSDavid du Colombier	<td>&nbsp;
8467dd7cddfSDavid du Colombier	<td>HP DeskJet 890
8477dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj1600</tt></b>
8487dd7cddfSDavid du Colombier	<td>&nbsp;
8497dd7cddfSDavid du Colombier	<td>HP DeskJet 1600
8507dd7cddfSDavid du Colombier</table></blockquote>
8517dd7cddfSDavid du Colombier
852*3ff48bf5SDavid du Colombier<h3><a name="HP8_further_documentation"></a>Further documentation</h3>
8537dd7cddfSDavid du Colombier
8547dd7cddfSDavid du Colombier<p>
8557dd7cddfSDavid du Colombier<b>Credits:</b> Much of the driver is based on ideas derived from the
8567dd7cddfSDavid du Colombiercdj550 driver of George Cameron. The support for the hp670, hp690, hp890
8577dd7cddfSDavid du Colombierand hp1600 was added by Martin Gerbershagen.
8587dd7cddfSDavid du Colombier
8597dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
8607dd7cddfSDavid du Colombier<tr valign=top>	<td>11.11.96
8617dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
8627dd7cddfSDavid du Colombier	<td>Version 1.0
8637dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
8647dd7cddfSDavid du Colombier	<td>&nbsp;
8657dd7cddfSDavid du Colombier<tr valign=top>	<td>25.08.97
8667dd7cddfSDavid du Colombier	<td>&nbsp;
8677dd7cddfSDavid du Colombier	<td>Version 1.2
8687dd7cddfSDavid du Colombier	<td>&nbsp;
8697dd7cddfSDavid du Colombier	<td>Resolved all but one of the known bugs, introduced a couple of
8707dd7cddfSDavid du Colombier	perfomance improvements. Complete new color-transfer-function
8717dd7cddfSDavid du Colombier	handling (see gamma).
8727dd7cddfSDavid du Colombier<tr valign=top>	<td>01.06.98
8737dd7cddfSDavid du Colombier	<td>&nbsp;
8747dd7cddfSDavid du Colombier	<td>Version 1.3
8757dd7cddfSDavid du Colombier	<td>&nbsp;
8767dd7cddfSDavid du Colombier	<td>Due to the most welcome contribution of Martin Gerbershagen
8777dd7cddfSDavid du Colombier	(ger@ulm.temic.de), support for the hp670, hp690 and hp890 and
8787dd7cddfSDavid du Colombier	hp1600 has been added. Martin has also resolved all known bugs.
8797dd7cddfSDavid du Colombier<tr valign=top> <td>&nbsp;
8807dd7cddfSDavid du Colombier	<td>&nbsp;
8817dd7cddfSDavid du Colombier	<td>&nbsp;
8827dd7cddfSDavid du Colombier	<td>&nbsp;
8837dd7cddfSDavid du Colombier	<td>Problems:Dark colors are still pale.
8847dd7cddfSDavid du Colombier</table></blockquote>
8857dd7cddfSDavid du Colombier
8867dd7cddfSDavid du Colombier<p>
8877dd7cddfSDavid du ColombierThe hp690 is supported through the hp670 device, the hp855, hp870 and the
8887dd7cddfSDavid du Colombierhp1100 through the hp850 device.  The driver needs no longer special
8897dd7cddfSDavid du Colombierswitches to be invoked except <b><tt>-sDEVICE=cdj850</tt></b>,
8907dd7cddfSDavid du Colombier<b><tt>-sDEVICE=CDJ890</tt></b>, <b><tt>-sDEVICE=CDJ670</tt></b>, or
8917dd7cddfSDavid du Colombier<b><tt>-sDevice=CDJ1600</tt></b>.  The following switches are supported.
8927dd7cddfSDavid du Colombier
8937dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
8947dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dPapertype=</tt></b>
8957dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
8967dd7cddfSDavid du Colombier	<td>0
8977dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
8987dd7cddfSDavid du Colombier	<td>plain paper [default]
8997dd7cddfSDavid du Colombier<tr valign=top>	<td>
9007dd7cddfSDavid du Colombier	<td>&nbsp;
9017dd7cddfSDavid du Colombier	<td>1
9027dd7cddfSDavid du Colombier	<td>&nbsp;
9037dd7cddfSDavid du Colombier	<td>bond paper
9047dd7cddfSDavid du Colombier<tr valign=top>	<td>
9057dd7cddfSDavid du Colombier	<td>&nbsp;
9067dd7cddfSDavid du Colombier	<td>2
9077dd7cddfSDavid du Colombier	<td>&nbsp;
9087dd7cddfSDavid du Colombier	<td>special paper
9097dd7cddfSDavid du Colombier<tr valign=top>	<td>
9107dd7cddfSDavid du Colombier	<td>&nbsp;
9117dd7cddfSDavid du Colombier	<td>3
9127dd7cddfSDavid du Colombier	<td>&nbsp;
9137dd7cddfSDavid du Colombier	<td>glossy film
9147dd7cddfSDavid du Colombier<tr valign=top>	<td>
9157dd7cddfSDavid du Colombier	<td>&nbsp;
9167dd7cddfSDavid du Colombier	<td>4
9177dd7cddfSDavid du Colombier	<td>&nbsp;
9187dd7cddfSDavid du Colombier	<td>transparency film
9197dd7cddfSDavid du Colombier<tr valign=top>	<td>
9207dd7cddfSDavid du Colombier	<td>&nbsp;
9217dd7cddfSDavid du Colombier	<td>&nbsp;
9227dd7cddfSDavid du Colombier	<td>&nbsp;
9237dd7cddfSDavid du Colombier	<td>Currently the lookup tables are unsuited for printing on
9247dd7cddfSDavid du Colombier	special paper or transparencies. For these please revert to the
9257dd7cddfSDavid du Colombier	gamma functions.
9267dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dQuality=</tt></b>
9277dd7cddfSDavid du Colombier	<td>&nbsp;
9287dd7cddfSDavid du Colombier	<td>-1
9297dd7cddfSDavid du Colombier	<td>&nbsp;
9307dd7cddfSDavid du Colombier	<td>draft
9317dd7cddfSDavid du Colombier<tr valign=top>	<td>
9327dd7cddfSDavid du Colombier	<td>&nbsp;
9337dd7cddfSDavid du Colombier	<td>0
9347dd7cddfSDavid du Colombier	<td>&nbsp;
9357dd7cddfSDavid du Colombier	<td>normal [default]
9367dd7cddfSDavid du Colombier<tr valign=top>	<td>
9377dd7cddfSDavid du Colombier	<td>&nbsp;
9387dd7cddfSDavid du Colombier	<td>1
9397dd7cddfSDavid du Colombier	<td>&nbsp;
9407dd7cddfSDavid du Colombier	<td>presentation
9417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dRetStatus=</tt></b>
9427dd7cddfSDavid du Colombier	<td>&nbsp;
9437dd7cddfSDavid du Colombier	<td>0
9447dd7cddfSDavid du Colombier	<td>&nbsp;
9457dd7cddfSDavid du Colombier	<td>C-RET off
9467dd7cddfSDavid du Colombier<tr valign=top>	<td>
9477dd7cddfSDavid du Colombier	<td>&nbsp;
9487dd7cddfSDavid du Colombier	<td>1
9497dd7cddfSDavid du Colombier	<td>&nbsp;
9507dd7cddfSDavid du Colombier	<td>C-RET on [default]
9517dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dMasterGamma=</tt></b>
9527dd7cddfSDavid du Colombier	<td>&nbsp;
9537dd7cddfSDavid du Colombier	<td>3.0
9547dd7cddfSDavid du Colombier	<td>&nbsp;
9557dd7cddfSDavid du Colombier	<td>[default = 1.0]
9567dd7cddfSDavid du Colombier</table></blockquote>
9577dd7cddfSDavid du Colombier
9587dd7cddfSDavid du Colombier<blockquote>
9597dd7cddfSDavid du Colombier<b>Note:</b> To take advantage of the calibrated color-transfer functions,
9607dd7cddfSDavid du Colombierbe sure not to have any gamma statements left! If you need to (i.e., for
9617dd7cddfSDavid du Colombieroverhead transparencies), you still can use the gamma functions, but they
9627dd7cddfSDavid du Colombierwill override the built-in calibration. To use gamma in the traditional
9637dd7cddfSDavid du Colombierway, set MasterGamma to any value greater than 1.0 and less than 10.0. To
9647dd7cddfSDavid du Colombieradjust individual gamma values, you have to additionally set MasterGamma to
9657dd7cddfSDavid du Colombiera value greater than 1.0 and less than 10.0.  With the next release, gamma
9667dd7cddfSDavid du Colombierfunctions will be dropped.
9677dd7cddfSDavid du Colombier</blockquote>
9687dd7cddfSDavid du Colombier
9697dd7cddfSDavid du Colombier<p>
9707dd7cddfSDavid du ColombierWhen using the driver, be aware that printing at 600dpi involves
9717dd7cddfSDavid du Colombierprocessing large amounts of data (&gt; 188MB !). Therefore the
9727dd7cddfSDavid du Colombierdriver is not what you would expect to be a fast driver ;-)
9737dd7cddfSDavid du ColombierThis is no problem when printing a full-sized color page (because
9747dd7cddfSDavid du Colombierprinting itself is slow), but it's really annoying if you print only
9757dd7cddfSDavid du Colombiertext pages. Maybe I can optimize the code for text-only pages in a
9767dd7cddfSDavid du Colombierlater release. Right now, it is recommended to use the highest
9777dd7cddfSDavid du Colombierpossible optimisation level your compiler offers.
9787dd7cddfSDavid du ColombierFor the time being, use the cdj550 device with <b><tt>-sBitsPerPixel=3</tt></b>
9797dd7cddfSDavid du Colombierfor fast proof prints. If you simply want to print 600dpi BW data,
9807dd7cddfSDavid du Colombieruse the cdj550 device with <b><tt>-sBitsPerPixel=8</tt></b> (or 1).
9817dd7cddfSDavid du Colombier
9827dd7cddfSDavid du Colombier<p>
9837dd7cddfSDavid du ColombierSince the printer itself is slow, it may help to set the process priority
9847dd7cddfSDavid du Colombierof the gs process to "regular" or even less. On a 486/100MHz this is still
9857dd7cddfSDavid du Colombiersufficient to maintain a continuous data flow.  Note to OS/2 users: simply
9867dd7cddfSDavid du Colombierput the gs window into the background or minimize it. Also make sure that
9877dd7cddfSDavid du Colombier<b><tt>print01.sys</tt></b> is invoked without the <b><tt>/irq</tt></b>
9887dd7cddfSDavid du Colombierswitch (great speed improvement under Warp4).
9897dd7cddfSDavid du Colombier
9907dd7cddfSDavid du Colombier<p>
9917dd7cddfSDavid du ColombierThe printer default settings compensate for dot-gain by a calibrated
9927dd7cddfSDavid du Colombiercolor-transfer function. If this appears to be too light for your business
9937dd7cddfSDavid du Colombiergraphs, or for overhead transparencies, feel free to set
9947dd7cddfSDavid du Colombier<b><tt>-dMasterGamma=1.7</tt></b>.  Furthermore, you may tweak the gamma
9957dd7cddfSDavid du Colombiervalues independently by setting <b><tt>-dGammaValC</tt></b>,
9967dd7cddfSDavid du Colombier<b><tt>-dGammaValM</tt></b>, <b><tt>-dGammaValY</tt></b> or
9977dd7cddfSDavid du Colombier<b><tt>-dGammaValK</tt></b> (if not set, the values default to
9987dd7cddfSDavid du Colombier<b><tt>MasterGamma</tt></b>). This will only work when
9997dd7cddfSDavid du Colombier<b><tt>-dMasterGamma</tt></b> is set to a value greater than 1.0.
10007dd7cddfSDavid du Colombier
10017dd7cddfSDavid du Colombier<p>
10027dd7cddfSDavid du ColombierFurther information, bugs, tips etc, can be found at my website.  To learn
10037dd7cddfSDavid du Colombiermore about gamma, see
10047dd7cddfSDavid 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>.
10057dd7cddfSDavid du Colombier
10067dd7cddfSDavid du Colombier<p>
10077dd7cddfSDavid du ColombierDepending on how you transfer the files, under UNIX you may need to remove
10087dd7cddfSDavid du Colombierthe CRs of the CR-LF sequence used for end-of-line on DOS-based (MS
10097dd7cddfSDavid du ColombierWindows-based) systems.  You can do this in unpacking the files with <b><tt>unzip&nbsp;-a&nbsp;hp850.zip</tt></b>.
10107dd7cddfSDavid du Colombier
10117dd7cddfSDavid du Colombier<p>
10127dd7cddfSDavid du ColombierTo compile with gs5.x or later, simply add to your makefile
10137dd7cddfSDavid du Colombier<blockquote>
10147dd7cddfSDavid du ColombierDEVICE_DEVS4=cdj850.dev cdj670.dev cdj890.dev cdj1600.dev
10157dd7cddfSDavid du Colombier</blockquote>
10167dd7cddfSDavid du Colombier
10177dd7cddfSDavid du Colombier<p>
10187dd7cddfSDavid du ColombierHave fun!
10197dd7cddfSDavid du Colombier
10207dd7cddfSDavid du Colombier<p>
10217dd7cddfSDavid du ColombierUli &lt;<a href="mailto:uliw@erdw.ethz.ch">uliw@erdw.ethz.ch</a>&gt;
10227dd7cddfSDavid du Colombier<br><a href="http://www.erdw.ethz.ch/~bonk/">http://www.erdw.ethz.ch/~bonk/</a>
10237dd7cddfSDavid du Colombier
10247dd7cddfSDavid du Colombier<hr>
10257dd7cddfSDavid du Colombier
1026*3ff48bf5SDavid du Colombier<h2><a name="HP880_color_inkjet"></a>H-P 812, 815, 832, 880, 882, 895, and 970 color inkjet printers</h2>
10277dd7cddfSDavid du Colombier
10287dd7cddfSDavid du Colombier<p>
10297dd7cddfSDavid du ColombierThis section, written by Matthew Gelhaus &lt;<a
1030*3ff48bf5SDavid du Colombierhref="mailto:hp880@gelhaus.net">hp880@gelhaus.net</a>&gt;, deals with the
10317dd7cddfSDavid du ColombierDeskJet 812, 815, 832, 880, 882, 895, and 970.
10327dd7cddfSDavid du Colombier
10337dd7cddfSDavid du Colombier<p>
10347dd7cddfSDavid du ColombierThis is a modified version of the <a href="#HP8_color_inkjet">HP8xx driver</a>
10357dd7cddfSDavid du Colombierwritten by Uli Wortmann.  More information and download are available at
1036*3ff48bf5SDavid du Colombier<a href="http://www.gelhaus.net/hp880c/">http://www.gelhaus.net/hp880c/</a>.
10377dd7cddfSDavid du Colombier
1038*3ff48bf5SDavid du Colombier<h3><a name="HP880_gdevcd8"></a>Drivers contained in <b><tt>gdevcd8.c</tt></b></h3>
10397dd7cddfSDavid du Colombier
10407dd7cddfSDavid du Colombier<p>
10417dd7cddfSDavid du ColombierThe source module <b><tt>gdevcd8.c</tt></b> contains one generic driver:
10427dd7cddfSDavid du Colombier
10437dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
10447dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj880</tt></b>
10457dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
10467dd7cddfSDavid du Colombier	<td>HP DeskJet 812, 815, 832, 880, 882, 895, and 970
10477dd7cddfSDavid du Colombier</table></blockquote>
10487dd7cddfSDavid du Colombier
1049*3ff48bf5SDavid du Colombier<h3><a name="HP880_further_documentation"></a>Further documentation</h3>
10507dd7cddfSDavid du Colombier
10517dd7cddfSDavid du Colombier<p>
10527dd7cddfSDavid du Colombier<b>Credits:</b> This driver is based on the cdj850 driver by Uli Wortmann, and shares the same
10537dd7cddfSDavid du Colombierinternal structure, although the PCL3+ interpretation has changed.
10547dd7cddfSDavid du Colombier
10557dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
10567dd7cddfSDavid du Colombier<tr valign=top>	<td>15.03.99
10577dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
10587dd7cddfSDavid du Colombier	<td>Version 1.3
10597dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
10607dd7cddfSDavid du Colombier	<td>Initial version, based on Version 1.3 of Uli Wortmann's driver.
10617dd7cddfSDavid du Colombier<tr valign=top>	<td>26.02.00
10627dd7cddfSDavid du Colombier	<td>&nbsp;
10637dd7cddfSDavid du Colombier	<td>Version 1.4beta
10647dd7cddfSDavid du Colombier	<td>&nbsp;
10657dd7cddfSDavid du Colombier	<td>Greatly improved color handling & dithering, but not yet complete enough
10667dd7cddfSDavid du Colombier	to use for text.
10677dd7cddfSDavid du Colombier</table></blockquote>
10687dd7cddfSDavid du Colombier
10697dd7cddfSDavid du Colombier<p>
10707dd7cddfSDavid du ColombierAll printers are supported through the cdj880 device.  Invoke with
10717dd7cddfSDavid du Colombier<b><tt>-sDEVICE=cdj880</tt></b>.  The following switches are supported.
10727dd7cddfSDavid du Colombier
10737dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
10747dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dPapertype=</tt></b>
10757dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
10767dd7cddfSDavid du Colombier	<td>0
10777dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
10787dd7cddfSDavid du Colombier	<td>plain paper [default]
10797dd7cddfSDavid du Colombier<tr valign=top>	<td>
10807dd7cddfSDavid du Colombier	<td>&nbsp;
10817dd7cddfSDavid du Colombier	<td>1
10827dd7cddfSDavid du Colombier	<td>&nbsp;
10837dd7cddfSDavid du Colombier	<td>bond paper
10847dd7cddfSDavid du Colombier<tr valign=top>	<td>
10857dd7cddfSDavid du Colombier	<td>&nbsp;
10867dd7cddfSDavid du Colombier	<td>2
10877dd7cddfSDavid du Colombier	<td>&nbsp;
10887dd7cddfSDavid du Colombier	<td>special paper
10897dd7cddfSDavid du Colombier<tr valign=top>	<td>
10907dd7cddfSDavid du Colombier	<td>&nbsp;
10917dd7cddfSDavid du Colombier	<td>3
10927dd7cddfSDavid du Colombier	<td>&nbsp;
10937dd7cddfSDavid du Colombier	<td>glossy film
10947dd7cddfSDavid du Colombier<tr valign=top>	<td>
10957dd7cddfSDavid du Colombier	<td>&nbsp;
10967dd7cddfSDavid du Colombier	<td>4
10977dd7cddfSDavid du Colombier	<td>&nbsp;
10987dd7cddfSDavid du Colombier	<td>transparency film
10997dd7cddfSDavid du Colombier<tr valign=top>	<td>
11007dd7cddfSDavid du Colombier	<td>&nbsp;
11017dd7cddfSDavid du Colombier	<td>&nbsp;
11027dd7cddfSDavid du Colombier	<td>&nbsp;
11037dd7cddfSDavid du Colombier	<td>Currently the lookup tables are unsuited for printing on
11047dd7cddfSDavid du Colombier	special paper or transparencies. For these please revert to the
11057dd7cddfSDavid du Colombier	gamma functions.
11067dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dQuality=</tt></b>
11077dd7cddfSDavid du Colombier	<td>&nbsp;
11087dd7cddfSDavid du Colombier	<td>-1
11097dd7cddfSDavid du Colombier	<td>&nbsp;
11107dd7cddfSDavid du Colombier	<td>draft
11117dd7cddfSDavid du Colombier<tr valign=top>	<td>
11127dd7cddfSDavid du Colombier	<td>&nbsp;
11137dd7cddfSDavid du Colombier	<td>0
11147dd7cddfSDavid du Colombier	<td>&nbsp;
11157dd7cddfSDavid du Colombier	<td>normal [default]
11167dd7cddfSDavid du Colombier<tr valign=top>	<td>
11177dd7cddfSDavid du Colombier	<td>&nbsp;
11187dd7cddfSDavid du Colombier	<td>1
11197dd7cddfSDavid du Colombier	<td>&nbsp;
11207dd7cddfSDavid du Colombier	<td>presentation
11217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>-dMasterGamma=</tt></b>
11227dd7cddfSDavid du Colombier	<td>&nbsp;
11237dd7cddfSDavid du Colombier	<td>3.0
11247dd7cddfSDavid du Colombier	<td>&nbsp;
11257dd7cddfSDavid du Colombier	<td>[default = 1.0]
11267dd7cddfSDavid du Colombier</table></blockquote>
11277dd7cddfSDavid du Colombier
11287dd7cddfSDavid du Colombier<p>
11297dd7cddfSDavid du ColombierThe printer default settings compensate for dot-gain by a pre-defined
11307dd7cddfSDavid du Colombiercolor-transfer function. If this appears to be too light for your business
11317dd7cddfSDavid du Colombiergraphs, or for overhead transparencies, feel free to set
11327dd7cddfSDavid du Colombier<b><tt>-dMasterGamma=1.7</tt></b>.  Furthermore, you may tweak the gamma
11337dd7cddfSDavid du Colombiervalues independently by setting <b><tt>-dGammaValC</tt></b>,
11347dd7cddfSDavid du Colombier<b><tt>-dGammaValM</tt></b>, <b><tt>-dGammaValY</tt></b> or
11357dd7cddfSDavid du Colombier<b><tt>-dGammaValK</tt></b> (if not set, the values default to
11367dd7cddfSDavid du Colombier<b><tt>MasterGamma</tt></b>). This will only work when
11377dd7cddfSDavid du Colombier<b><tt>-dMasterGamma</tt></b> is set to a value greater than 1.0.
11387dd7cddfSDavid du Colombier
11397dd7cddfSDavid du Colombier<p>
11407dd7cddfSDavid du ColombierFurther information, bugs, tips etc, can be found at my website.
11417dd7cddfSDavid du Colombier
11427dd7cddfSDavid du Colombier<p>
11437dd7cddfSDavid du ColombierTo compile with gs6.x or later, simply add to your makefile
11447dd7cddfSDavid du Colombier<blockquote>
11457dd7cddfSDavid du ColombierDEVICE_DEVS4=$(DD)cdj880.dev
11467dd7cddfSDavid du Colombier</blockquote>
11477dd7cddfSDavid du Colombier
11487dd7cddfSDavid du Colombier<p>
1149*3ff48bf5SDavid du ColombierMatthew Gelhaus &lt;<a href="mailto:hp880@gelhaus.net">mailto:hp880@gelhaus.net</a>&gt;
1150*3ff48bf5SDavid du Colombier<br><a href="http://www.gelhaus.net/hp880c/">http://www.gelhaus.net/hp880c/</a>
11517dd7cddfSDavid du Colombier
11527dd7cddfSDavid du Colombier<hr>
11537dd7cddfSDavid du Colombier
1154*3ff48bf5SDavid du Colombier<h2><a name="HP_color_inkjet"></a>H-P color inkjet printers</h2>
11557dd7cddfSDavid du Colombier
11567dd7cddfSDavid du Colombier<p>
11577dd7cddfSDavid du ColombierThis section, written by George Cameron, deals with the DeskJet 500C,
11587dd7cddfSDavid du ColombierDeskJet 550C, PaintJet, PaintJet XL, PaintJet XL300, the DEC LJ250
11597dd7cddfSDavid du Colombieroperating in PaintJet-compatible mode.
11607dd7cddfSDavid du Colombier
1161*3ff48bf5SDavid du Colombier<h3><a name="HP_gdevcdj"></a>Drivers contained in <b><tt>gdevcdj.c</tt></b></h3>
11627dd7cddfSDavid du Colombier
11637dd7cddfSDavid du Colombier<p>
11647dd7cddfSDavid du ColombierThe source module <b><tt>gdevcdj.c</tt></b> contains six generic drivers:
11657dd7cddfSDavid du Colombier
11667dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
11677dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj500</tt></b>
11687dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
11697dd7cddfSDavid du Colombier	<td>HP DeskJet 500C and 540C
11707dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>cdj550</tt></b>
11717dd7cddfSDavid du Colombier	<td>&nbsp;
11727dd7cddfSDavid du Colombier	<td>HP DeskJet 550C, 560C, 660C, 660Cse
11737dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>pjxl300</tt></b>
11747dd7cddfSDavid du Colombier	<td>&nbsp;
11757dd7cddfSDavid du Colombier	<td>HP PaintJet XL300, DeskJet 1200C, and CopyJet
11767dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>pjtest</tt></b>
11777dd7cddfSDavid du Colombier	<td>&nbsp;
11787dd7cddfSDavid du Colombier	<td>HP PaintJet
11797dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>pjxltest</tt></b>
11807dd7cddfSDavid du Colombier	<td>&nbsp;
11817dd7cddfSDavid du Colombier	<td>HP PaintJet XL
11827dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>declj250</tt></b>
11837dd7cddfSDavid du Colombier	<td>&nbsp;
11847dd7cddfSDavid du Colombier	<td>DEC LJ250
11857dd7cddfSDavid du Colombier</table></blockquote>
11867dd7cddfSDavid du Colombier
11877dd7cddfSDavid du Colombier<p>
11887dd7cddfSDavid du ColombierAll these drivers have 8-bit (monochrome), 16-bit and 24-bit (colour) and
11897dd7cddfSDavid du Colombierfor the DJ 550C, 32-bit (colour, CMYK mode) options in addition to standard
11907dd7cddfSDavid du Colombiercolour and mono drivers.  It is also possible to set various
11917dd7cddfSDavid du Colombierprinter-specific parameters from the command line, for example
11927dd7cddfSDavid du Colombier
11937dd7cddfSDavid du Colombier<blockquote><b><tt>
11947dd7cddfSDavid du Colombiergs&nbsp;-sDEVICE=cDeskJet&nbsp;-dBitsPerPixel=16&nbsp;-dDepletion=1&nbsp;-dShingling=2&nbsp;tiger.ps
11957dd7cddfSDavid du Colombier</tt></b></blockquote>
11967dd7cddfSDavid du Colombier
11977dd7cddfSDavid du Colombier<p>
11987dd7cddfSDavid du Colombier<b>Note:</b> the old names <b><tt>cDeskJet</tt></b>,
11997dd7cddfSDavid du Colombier<b><tt>cdjcolor</tt></b> and <b><tt>cdjmono</tt></b> drivers have been
12007dd7cddfSDavid du Colombierretained; however, their functionality duplicates that available using the
12017dd7cddfSDavid du Colombierdrivers above (and <b><tt>cDeskJet</tt></b> is identical to
12027dd7cddfSDavid du Colombier<b><tt>cdj500</tt></b>).  That is, we can use
12037dd7cddfSDavid du Colombier
12047dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
12057dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>gs -sDEVICE=cdj500 -dBitsPerPixel=24</tt></b>
12067dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
12077dd7cddfSDavid du Colombier	<td>for <b><tt>cdjcolor</tt></b>, and
12087dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>gs -sDEVICE=cdj500 -dBitsPerPixel=1</tt></b>
12097dd7cddfSDavid du Colombier	<td>&nbsp;
12107dd7cddfSDavid du Colombier	<td>for <b><tt>cdjmono</tt></b>
12117dd7cddfSDavid du Colombier</table></blockquote>
12127dd7cddfSDavid du Colombier
1213*3ff48bf5SDavid du Colombier<h3><a name="HP_paper_size"></a>Default paper size</h3>
12147dd7cddfSDavid du Colombier
12157dd7cddfSDavid du Colombier<p>
12167dd7cddfSDavid du ColombierIf the preprocessor symbol <b><tt>A4</tt></b> is defined, the default paper
12177dd7cddfSDavid du Colombiersize is ISO A4; otherwise it is U.S. letter size (see about
12187dd7cddfSDavid du Colombier<a href="Use.htm#Known_paper_sizes">paper sizes</a> in the usage
1219*3ff48bf5SDavid du Colombierdocumentation).  You can <a href="Use.htm#Paper_size">specify other paper
12207dd7cddfSDavid du Colombiersizes</a> on the command line, including A3 for the PaintJet XL and
12217dd7cddfSDavid du ColombierPaintJet XL300, as also explained in the usage documentation.
12227dd7cddfSDavid du Colombier
1223*3ff48bf5SDavid du Colombier<h3><a name="HP_limits"></a>DeskJet physical limits</h3>
12247dd7cddfSDavid du Colombier
12257dd7cddfSDavid du Colombier<p>
12267dd7cddfSDavid du ColombierThe DeskJet's maximum printing width is 2400 dots, or 8 inches
12277dd7cddfSDavid du Colombier(20.32cm). The printer manuals say that the maximum recommended printing
12287dd7cddfSDavid du Colombierheight on the page is 10.3 inches (26.16cm), but since this is obviously
12297dd7cddfSDavid du Colombiernot true for A4 paper, and I have been unable to detect any problems in
12307dd7cddfSDavid du Colombierprinting longer page lengths, this would seem to be a rather artificial
12317dd7cddfSDavid du Colombierrestriction.
12327dd7cddfSDavid du Colombier
12337dd7cddfSDavid du Colombier<p>
12347dd7cddfSDavid du ColombierAll DeskJets have 0.5 inches (1.27cm) of unprintable bottom margin, due to the mechanical
12357dd7cddfSDavid du Colombierarrangement used to grab the paper.  Side margins are approximately 0.25 inches (0.64cm)
12367dd7cddfSDavid du Colombierfor U.S. letter paper, and 0.15 inches (0.38cm) for A4.
12377dd7cddfSDavid du Colombier
1238*3ff48bf5SDavid du Colombier<h4><a name="HP_command_line"></a>Printer properties (command-line parameters)</h4>
12397dd7cddfSDavid du Colombier
12407dd7cddfSDavid du Colombier<p>
12417dd7cddfSDavid du ColombierSeveral printer "properties" have been implemented for these printers.
12427dd7cddfSDavid du ColombierThose available so far are all integer quantities, and thus may be
12437dd7cddfSDavid du Colombierspecified, for instance, like
12447dd7cddfSDavid du Colombier
12457dd7cddfSDavid du Colombier<blockquote>
12467dd7cddfSDavid du Colombier<b><tt>gs -dBitsPerPixel=32 -dShingling=1</tt></b> ...
12477dd7cddfSDavid du Colombier</blockquote>
12487dd7cddfSDavid du Colombier
12497dd7cddfSDavid du Colombier<p>
12507dd7cddfSDavid du Colombierwhich sets the <b><tt>BitsPerPixel</tt></b> parameter to 32 and the
12517dd7cddfSDavid du Colombier<b><tt>Shingling</tt></b> parameter to 1.
12527dd7cddfSDavid du Colombier
1253*3ff48bf5SDavid du Colombier<h4><a name="HP_bpp"></a>Bits per pixel</h4>
12547dd7cddfSDavid du Colombier
12557dd7cddfSDavid du Colombier<p>
12567dd7cddfSDavid du ColombierIf the preprocessor symbol <b><tt>BITSPERPIXEL</tt></b> is defined as an
12577dd7cddfSDavid du Colombierinteger (see below for the range of allowable values), that number defines
12587dd7cddfSDavid du Colombierthe default bits per pixel (bit depth) for the generic drivers.  If the
12597dd7cddfSDavid du Colombiersymbol is undefined, the default is 24 bits per pixel.  It is, of course,
12607dd7cddfSDavid du Colombierstill possible to specify the value from the command line as described
12617dd7cddfSDavid du Colombierbelow.  Note also that the <b><tt>cDeskJet</tt></b>,
12627dd7cddfSDavid du Colombier<b><tt>cdjcolor</tt></b> and <b><tt>cdjmono</tt></b> drivers are unaffected
12637dd7cddfSDavid du Colombierby setting this symbol, as their default settings are predefined to be 1, 3
12647dd7cddfSDavid du Colombierand 24 respectively.
12657dd7cddfSDavid du Colombier
12667dd7cddfSDavid du Colombier<p>
12677dd7cddfSDavid du ColombierAll of the drivers in <b><tt>gdevcdj.c</tt></b> accept a command line
12687dd7cddfSDavid du Colombieroption to set the <b><tt>BitsPerPixel</tt></b> property.  This gives
12697dd7cddfSDavid du Colombierconsiderable flexibility in choosing various tradeoffs among speed,
12707dd7cddfSDavid du Colombierquality, colour, etc.  The valid numbers are:
12717dd7cddfSDavid du Colombier
12727dd7cddfSDavid du Colombier<blockquote><dl compact>
12737dd7cddfSDavid du Colombier<dt><b>1</b>
12747dd7cddfSDavid du Colombier<dd>A standard Ghostscript monochrome driver, using black ink (by
12757dd7cddfSDavid du Colombierinstalling the separate mono cartridge in the case of the DeskJet 500C, or
12767dd7cddfSDavid du Colombierautomatically for the other printers).
12777dd7cddfSDavid du Colombier
12787dd7cddfSDavid du Colombier<dt><b>3</b>
12797dd7cddfSDavid du Colombier<dd>A standard Ghostscript colour driver, using internal dithering.  This
12807dd7cddfSDavid du Colombieris fast to compute and to print, but the clustered dithering can lose some
12817dd7cddfSDavid du Colombierdetail and colour fidelity.
12827dd7cddfSDavid du Colombier
12837dd7cddfSDavid du Colombier<dt><b>8</b>
12847dd7cddfSDavid du Colombier<dd>An "error-diffusion" monochrome driver which uses Floyd-Steinberg
12857dd7cddfSDavid du Colombierdithering to print greyscale images.  The patterns are much more randomised
12867dd7cddfSDavid du Colombierthan with the normal clustered dithering, but the data files can be much
12877dd7cddfSDavid du Colombierlarger and somewhat slower to print.
12887dd7cddfSDavid du Colombier
12897dd7cddfSDavid du Colombier<dt><b>16</b>
12907dd7cddfSDavid du Colombier<dd>A "cheaper" version of the 24-bit driver, which generates
12917dd7cddfSDavid du ColombierFloyd-Steinberg colour dithered output using the minimum memory (this may
12927dd7cddfSDavid du Colombierbe helpful when using Ghostscript has not been compiled using a 16-bit
12937dd7cddfSDavid du Colombierbuild environment).  The quality can be almost as good as the 24-bit
12947dd7cddfSDavid du Colombierversion.
12957dd7cddfSDavid du Colombier
12967dd7cddfSDavid du Colombier<dt><b>24</b>
12977dd7cddfSDavid du Colombier<dd>A high-quality colour driver using Floyd-Steinberg dithering for
12987dd7cddfSDavid du Colombiermaximum detail and colour range.  However, it is very memory-intensive, and
12997dd7cddfSDavid du Colombierthus can be slow to compute.  It tends to produce rather larger raw data
13007dd7cddfSDavid du Colombierfiles, so they can also take longer to print.
13017dd7cddfSDavid du Colombier
13027dd7cddfSDavid du Colombier<dt><b>32</b>
13037dd7cddfSDavid du Colombier<dd>Only for the DeskJet 550C, which uses the black cartridge and the
13047dd7cddfSDavid du Colombiercolour cartridge simultaneously (that is, CMYK printing). This printer can
13057dd7cddfSDavid du Colombierboth be faster and give higher quality than the DeskJet 500C, because of
13067dd7cddfSDavid du Colombierthe true black ink. (Note that the 24-bit mode also permits CMYK printing
13077dd7cddfSDavid du Colombieron this printer, and uses less memory.  Any differences between 24-bit and
13087dd7cddfSDavid du Colombier32-bit should be small.)
13097dd7cddfSDavid du Colombier</dl></blockquote>
13107dd7cddfSDavid du Colombier
1311*3ff48bf5SDavid du Colombier<h4><a name="HP_DeskJet_properties"></a>DeskJet properties</h4>
13127dd7cddfSDavid du Colombier
13137dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
13147dd7cddfSDavid du Colombier<tr valign=bottom>
13157dd7cddfSDavid du Colombier	<th align=left>Name
13167dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
13177dd7cddfSDavid du Colombier	<th align=left>Type
13187dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
13197dd7cddfSDavid du Colombier	<th align=left>&nbsp;
13207dd7cddfSDavid du Colombier<tr>	<td colspan=5><hr>
13217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>BlackCorrect</tt></b>
13227dd7cddfSDavid du Colombier	<td>&nbsp;
13237dd7cddfSDavid du Colombier	<td><b><tt>int</tt></b>
13247dd7cddfSDavid du Colombier	<td>&nbsp;
13257dd7cddfSDavid 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).
13267dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Shingling</tt></b>
13277dd7cddfSDavid du Colombier	<td>&nbsp;
13287dd7cddfSDavid du Colombier	<td><b><tt>int</tt></b>
13297dd7cddfSDavid du Colombier	<td>&nbsp;
13307dd7cddfSDavid du Colombier	<td>Interlaced, multi-pass printing: 0 = none, 1 = 50%, 2 = 25%, 2 is best and slowest.
13317dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Depletion</tt></b>
13327dd7cddfSDavid du Colombier	<td>&nbsp;
13337dd7cddfSDavid du Colombier	<td><b><tt>int</tt></b>
13347dd7cddfSDavid du Colombier	<td>&nbsp;
13357dd7cddfSDavid du Colombier	<td>"Intelligent" dot-removal: 0 = none, 1 = 25%, 2 = 50%, 1 best for graphics? Use 0 for transparencies.
13367dd7cddfSDavid du Colombier</table></blockquote>
13377dd7cddfSDavid du Colombier
1338*3ff48bf5SDavid du Colombier<h4><a name="HP_PaintJet_properties"></a>PaintJet XL300 / PaintJet XL properties</h4>
13397dd7cddfSDavid du Colombier
13407dd7cddfSDavid du Colombier<blockquote>
13417dd7cddfSDavid du Colombier<table cellpadding=0 cellspacing=0>
13427dd7cddfSDavid du Colombier<tr valign=bottom>
13437dd7cddfSDavid du Colombier	<th align=left>Name
13447dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
13457dd7cddfSDavid du Colombier	<th align=left>Type
13467dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
13477dd7cddfSDavid du Colombier	<th align=left>
13487dd7cddfSDavid du Colombier<tr>	<td colspan=5><hr>
13497dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>PrintQuality</tt></b>
13507dd7cddfSDavid du Colombier	<td>&nbsp;
13517dd7cddfSDavid du Colombier	<td><b><tt>int</tt></b>
13527dd7cddfSDavid du Colombier	<td>&nbsp;
13537dd7cddfSDavid 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
13547dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>RenderType</tt></b>
13557dd7cddfSDavid du Colombier	<td>&nbsp;
13567dd7cddfSDavid du Colombier	<td><b><tt>int</tt></b>
13577dd7cddfSDavid du Colombier	<td>&nbsp;
13587dd7cddfSDavid du Colombier	<td><dl compact>
13597dd7cddfSDavid du Colombier		<dt><b>0</b><dd>driver does dithering
13607dd7cddfSDavid du Colombier		<dt><b>1</b><dd>snap to primaries
13617dd7cddfSDavid du Colombier		<dt><b>2</b><dd>snap black to white, others to black
13627dd7cddfSDavid du Colombier		<dt><b>3</b><dd>ordered dither
13637dd7cddfSDavid du Colombier		<dt><b>4</b><dd>error diffusion
13647dd7cddfSDavid du Colombier		<dt><b>5</b><dd>monochrome ordered dither
13657dd7cddfSDavid du Colombier		<dt><b>6</b><dd>monochrome error diffusion
13667dd7cddfSDavid du Colombier		<dt><b>7</b><dd>cluster ordered dither
13677dd7cddfSDavid du Colombier		<dt><b>8</b><dd>monochrome cluster ordered dither
13687dd7cddfSDavid du Colombier		<dt><b>9</b><dd>user-defined dither (not supported)
13697dd7cddfSDavid du Colombier		<dt><b>10</b><dd>monochrome user-defined dither ns.
13707dd7cddfSDavid du Colombier		</dl>
13717dd7cddfSDavid du Colombier</table>
13727dd7cddfSDavid du Colombier
13737dd7cddfSDavid du Colombier<p>
13747dd7cddfSDavid du ColombierThe PaintJet (non-XL) has no additional properties.
13757dd7cddfSDavid du Colombier
13767dd7cddfSDavid du Colombier</blockquote>
13777dd7cddfSDavid du Colombier
1378*3ff48bf5SDavid du Colombier<h3><a name="HP_gamma"></a>Gamma correction</h3>
13797dd7cddfSDavid du Colombier
13807dd7cddfSDavid du Colombier<p>
13817dd7cddfSDavid du ColombierOne consequence of using Floyd-Steinberg dithering rather than Ghostscript's
13827dd7cddfSDavid du Colombierdefault clustered ordered dither is that it is much more obvious that the
13837dd7cddfSDavid du Colombierink dots are rather larger on the page than their nominal 1/180-inch or 1/300-inch
13847dd7cddfSDavid du Colombiersize (clustering the dots tends to minimise this effect).  Thus it is often
13857dd7cddfSDavid du Colombierthe case that the printed result is rather too dark.  A simple empirical
13867dd7cddfSDavid du Colombiercorrection for this may be achieved by preceding the actual PostScript
13877dd7cddfSDavid du Colombierfile to be printed by a short file which effectively sets the gamma for
13887dd7cddfSDavid du Colombierthe device, such as
13897dd7cddfSDavid du Colombier
13907dd7cddfSDavid du Colombier<blockquote><b><tt>
13917dd7cddfSDavid du Colombiergs ... gamma.ps colorpic.ps -c quit
13927dd7cddfSDavid du Colombier</tt></b></blockquote>
13937dd7cddfSDavid du Colombier
13947dd7cddfSDavid du Colombier<p>
13957dd7cddfSDavid du Colombierwhere <b><tt>gamma.ps</tt></b> is
13967dd7cddfSDavid du Colombier
13977dd7cddfSDavid du Colombier<blockquote>
13987dd7cddfSDavid du Colombier<pre>%!
13997dd7cddfSDavid du Colombier/.fixtransfer {
14007dd7cddfSDavid du Colombier  currentcolortransfer 4 {
14017dd7cddfSDavid du Colombier    mark exch
14027dd7cddfSDavid du Colombier    dup type dup /arraytype eq exch /packedarraytype eq or
14037dd7cddfSDavid du Colombier    1 index xcheck and { /exec load } if
14047dd7cddfSDavid du Colombier    0.333 /exp load
14057dd7cddfSDavid du Colombier    ] cvx 4 1 roll
14067dd7cddfSDavid du Colombier  } repeat setcolortransfer
14077dd7cddfSDavid du Colombier} bind odef
14087dd7cddfSDavid du Colombier.fixtransfer
14097dd7cddfSDavid du Colombier/setpagedevice { setpagedevice .fixtransfer } bind odef</pre>
14107dd7cddfSDavid du Colombier</blockquote>
14117dd7cddfSDavid du Colombier
14127dd7cddfSDavid du Colombier<p>
14137dd7cddfSDavid du ColombierThis does the gamma correction <b><em>after</em></b> whatever correction
14147dd7cddfSDavid du Colombierthe device might be doing already.  To do the correction
14157dd7cddfSDavid du Colombier<b><em>before</em></b> the current correction,
14167dd7cddfSDavid du Colombier
14177dd7cddfSDavid du Colombier<blockquote>
14187dd7cddfSDavid du Colombier<pre>%!
14197dd7cddfSDavid du Colombier/.fixtransfer {
14207dd7cddfSDavid du Colombier  currentcolortransfer 4 {
14217dd7cddfSDavid du Colombier    mark 0.333 /exp load 4 -1 roll
14227dd7cddfSDavid du Colombier    dup type dup /arraytype eq exch /packedarraytype eq or
14237dd7cddfSDavid du Colombier    1 index xcheck and { /exec load } if
14247dd7cddfSDavid du Colombier    ] cvx 4 1 roll
14257dd7cddfSDavid du Colombier  } repeat setcolortransfer
14267dd7cddfSDavid du Colombier} bind odef
14277dd7cddfSDavid du Colombier.fixtransfer
14287dd7cddfSDavid du Colombier/setpagedevice { setpagedevice .fixtransfer } bind odef</pre>
14297dd7cddfSDavid du Colombier</blockquote>
14307dd7cddfSDavid du Colombier
14317dd7cddfSDavid du Colombier<p>
14327dd7cddfSDavid du ColombierThis example sets the gamma for R, G, and B to 3, which seems to work
14337dd7cddfSDavid du Colombierreasonably well in practice.
14347dd7cddfSDavid du Colombier
1435*3ff48bf5SDavid du Colombier<h3><a name="HP_resolution_enhance"></a>HP's resolution-enhanced mode for Inkjet printers</h3>
14367dd7cddfSDavid du Colombier
14377dd7cddfSDavid du Colombier<p>
14387dd7cddfSDavid du ColombierThis feature is available on HP's more recent inkjet printers, including
14397dd7cddfSDavid du Colombierthe DeskJet 520 (mono), 540 (mono or colour) and 560C (mono and colour).
14407dd7cddfSDavid du ColombierThe colour and monochrome drivers for the HP DeskJet 550c are (probably)
14417dd7cddfSDavid du Colombierthe best you will get for use with Ghostscript, for the following reasons.
14427dd7cddfSDavid du Colombier
14437dd7cddfSDavid du Colombier<p>
14447dd7cddfSDavid du ColombierThese printers do not offer true 600&times;300dpi resolution.  Those that
14457dd7cddfSDavid du Colombierprint in colour are strictly 300&times;300dpi in colour mode, while in mono
14467dd7cddfSDavid du Colombiermode there is a pseudo 600&times;300dpi mode with the restriction that you
14477dd7cddfSDavid du Colombiercan't print two adjacent dots.  In effect what you have is 600dpi dot
14487dd7cddfSDavid du Colombierpositioning, but on average you don't get more dots per line.  This
14497dd7cddfSDavid du Colombierprovides the possibility, for instance, to have sharper character outlines,
14507dd7cddfSDavid du Colombierbecause you can place dots on the edges nearer to their ideal positions.
14517dd7cddfSDavid du ColombierThis is why it is worth doing.
14527dd7cddfSDavid du Colombier
14537dd7cddfSDavid du Colombier<p>
14547dd7cddfSDavid du ColombierHowever, HP will not support user-level programming of this
14557dd7cddfSDavid du Colombierresolution-enhanced mode, one reason being that (I understand) all the dot
14567dd7cddfSDavid du Colombierspacing has to be done by the driver, and if you get it wrong, you can
14577dd7cddfSDavid du Colombieractually damage the print head.
14587dd7cddfSDavid du Colombier
14597dd7cddfSDavid du Colombier<p>
14607dd7cddfSDavid du ColombierTo summarise, you may lose a smidgin of (potential) text clarity using the
14617dd7cddfSDavid du Colombier550c drivers (<b><tt>cdj550</tt></b>, <b><tt>cdjcolor</tt></b>,
14627dd7cddfSDavid du Colombier<b><tt>cdjmono</tt></b> etc.), but other than that, they are the ones for
14637dd7cddfSDavid du Colombierthe job.
14647dd7cddfSDavid du Colombier
1465*3ff48bf5SDavid du Colombier<h3><a name="HP_tips"></a>General tips</h3>
14667dd7cddfSDavid du Colombier
14677dd7cddfSDavid du Colombier<p>
14687dd7cddfSDavid du ColombierFor all the printers above, the choice of paper is critically important to
14697dd7cddfSDavid du Colombierthe final results.  The printer manuals suggest type of paper, but in
14707dd7cddfSDavid du Colombiergeneral, smoother, less fibrous types give better results.  In particular,
14717dd7cddfSDavid du Colombierthe special ink-jet paper can make a big difference: colours are brighter,
14727dd7cddfSDavid du Colombierbut most importantly, there is almost no colour bleed, even with adjacent
14737dd7cddfSDavid du Colombierareas of very heavy inking.  Similarly the special coated transparencies
14747dd7cddfSDavid du Colombieralso work well (and ordinary transparencies do not work at all!).
14757dd7cddfSDavid du Colombier
14767dd7cddfSDavid du Colombier<p>
14777dd7cddfSDavid du ColombierThe Unix procedure <a href="Unix-lpr.htm"><b><tt>unix-lpr.sh</tt></b></a>
14787dd7cddfSDavid du Colombierprovides one example of setting up a multi-option colour PostScript
14797dd7cddfSDavid du Colombier<b><tt>lpr</tt></b> queue on Unix systems, and includes the ability to
14807dd7cddfSDavid du Colombierchoose a range of different colour options and printer accounting and error
14817dd7cddfSDavid du Colombierlogging.
14827dd7cddfSDavid du Colombier
14837dd7cddfSDavid du Colombier<p>
14847dd7cddfSDavid du Colombier<b>Caveat emptor!</b> It is not always easy for me to test all of these
14857dd7cddfSDavid du Colombierdrivers, as the only colour printer I have here is the DeskJet 500C. I rely
14867dd7cddfSDavid du Colombieron others to test drivers for the additional machines and report their
14877dd7cddfSDavid du Colombierfindings back to me.
14887dd7cddfSDavid du Colombier
14897dd7cddfSDavid du Colombier<hr>
14907dd7cddfSDavid du Colombier
1491*3ff48bf5SDavid du Colombier<h2><a name="BJC_8200"></a>Canon BJC-8200 printer</h2>
1492*3ff48bf5SDavid du Colombier
1493*3ff48bf5SDavid du Colombier<p>
1494*3ff48bf5SDavid du ColombierThis section was contributed by the author of the <b><tt>uniprint</tt></b>
1495*3ff48bf5SDavid du Colombierconfiguration files for the Canon BJC-8200, Stephan C. Buchert &lt;<a
1496*3ff48bf5SDavid du Colombierhref="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>&gt;.
1497*3ff48bf5SDavid du ColombierThese files also handle the Japanese Canon F850 printer.
1498*3ff48bf5SDavid du Colombier
1499*3ff48bf5SDavid du Colombier<p>
1500*3ff48bf5SDavid du ColombierWarning: Usage of this program is neither supported nor endorsed by
1501*3ff48bf5SDavid du Colombierthe Canon corporation. Please see the Ghostscript <a
1502*3ff48bf5SDavid du Colombierhref="Public.htm">license</a> regarding warranty.
1503*3ff48bf5SDavid du Colombier
1504*3ff48bf5SDavid du Colombier<h3>Introduction</h3>
1505*3ff48bf5SDavid du Colombier
1506*3ff48bf5SDavid du Colombier<p>
1507*3ff48bf5SDavid du ColombierThe Canon Bubble Jet printer BJC-8200 is designed for printing digital
1508*3ff48bf5SDavid du Colombierphotos and halftone images. Software drivers for Windows 95-2000 and Mac are
1509*3ff48bf5SDavid du Colombierusually included and can be downloaded from the Canon web sites like
1510*3ff48bf5SDavid du Colombier<a href="http://consumer.usa.canon.com/bjc/bjc8200/">http://consumer.usa.canon.com/bjc/bjc8200/</a>
1511*3ff48bf5SDavid du Colombierfor the US market. If these drivers cannot be used for some reason, then at
1512*3ff48bf5SDavid du Colombierpresent Ghostscript is probably the alternative giving the best results.
1513*3ff48bf5SDavid du Colombier
1514*3ff48bf5SDavid du Colombier<p>
1515*3ff48bf5SDavid du ColombierThe BJC-8200 has features not found among the specs of earlier bubble jet
1516*3ff48bf5SDavid du Colombiermodels (except the even more advanced BJC-8500) and is advertised to offer:
1517*3ff48bf5SDavid du Colombier
1518*3ff48bf5SDavid du Colombier<ol>
1519*3ff48bf5SDavid du Colombier
1520*3ff48bf5SDavid du Colombier<li>microfine droplet technology;
1521*3ff48bf5SDavid du Colombier
1522*3ff48bf5SDavid du Colombier<li>support for printing on a new type of paper, Photo Paper Pro;
1523*3ff48bf5SDavid du Colombier
1524*3ff48bf5SDavid du Colombier<li>a printhead capable of printing up to 1200 DpI;
1525*3ff48bf5SDavid du Colombier
1526*3ff48bf5SDavid du Colombier<li>individual ink tanks for 6 colors;
1527*3ff48bf5SDavid du Colombier
1528*3ff48bf5SDavid du Colombier<li>an internal status monitor reporting low ink back to a driver;
1529*3ff48bf5SDavid du Colombier
1530*3ff48bf5SDavid du Colombier<li>an optional color scanner cartridge for up to 600 DpI resolution.
1531*3ff48bf5SDavid du Colombier
1532*3ff48bf5SDavid du Colombier</ol>
1533*3ff48bf5SDavid du Colombier
1534*3ff48bf5SDavid du Colombier<p>
1535*3ff48bf5SDavid du ColombierAccess to features 5 and 6 requires use of the original Canon drivers for
1536*3ff48bf5SDavid du Colombierthe foreseeable future. This README is about getting the printer features
1537*3ff48bf5SDavid du Colombier1-3 working with Ghostscript. No (re)compilation of Ghostscript is normally
1538*3ff48bf5SDavid du Colombierrequired.
1539*3ff48bf5SDavid du Colombier
1540*3ff48bf5SDavid du Colombier<p>
1541*3ff48bf5SDavid du ColombierGhostscript comes with a relatively highly configurable driver, called
1542*3ff48bf5SDavid du Colombier<a href="#Uniprint">uniprint</a>, for printers which understand raster
1543*3ff48bf5SDavid du Colombierimages in various propriety formats. Most options for this driver are
1544*3ff48bf5SDavid du Colombierusually organized into files having the suffix ".upp." Ghostscript
1545*3ff48bf5SDavid du Colombierversions >= 5.10 (or even earlier) include such uniprint control files
1546*3ff48bf5SDavid du Colombierfor the Canon BJC-610. They work also well for some other Canon Bubble
1547*3ff48bf5SDavid du ColombierJet models, for example for my BJC-35vII. But when using them for a
1548*3ff48bf5SDavid du ColombierBJC-8200 the result is unsatisfactory.
1549*3ff48bf5SDavid du Colombier
1550*3ff48bf5SDavid du Colombier<h3>The uniprint control files for the BJC-8200</h3>
1551*3ff48bf5SDavid du Colombier
1552*3ff48bf5SDavid du Colombier<p>
1553*3ff48bf5SDavid du ColombierAfter some experimenting with the options for uniprint I have obtained quite
1554*3ff48bf5SDavid du Colombiersatisfactory prints with my printer(*). This distribution includes six new
1555*3ff48bf5SDavid du Colombieruniprint control files:
1556*3ff48bf5SDavid du Colombier
1557*3ff48bf5SDavid du Colombier<ul>
1558*3ff48bf5SDavid du Colombier<li>bj8pp12f.upp
1559*3ff48bf5SDavid du Colombier<li>bj8hg12f.upp
1560*3ff48bf5SDavid du Colombier<li>bj8gc12f.upp
1561*3ff48bf5SDavid du Colombier<li>bj8oh06n.upp
1562*3ff48bf5SDavid du Colombier<li>bj8ts06n.upp
1563*3ff48bf5SDavid du Colombier<li>bj8pa06n.upp
1564*3ff48bf5SDavid du Colombier</ul>
1565*3ff48bf5SDavid du Colombier
1566*3ff48bf5SDavid du Colombier<p>
1567*3ff48bf5SDavid du ColombierThey are included in Ghostscript >=6.21. For older versions you can put
1568*3ff48bf5SDavid du Colombierthem anywhere in the Ghostscript search path (type "gs -h" to see the
1569*3ff48bf5SDavid du Colombierpath), but should perhaps add the files to the directory with the
1570*3ff48bf5SDavid du Colombierother *.upp files. This is "/usr/share/ghostscript/gs6.01/lib" in my
1571*3ff48bf5SDavid du ColombierRedHat 6.1 Linux box with Aladdin Ghostscript 6.01.
1572*3ff48bf5SDavid du Colombier
1573*3ff48bf5SDavid du Colombier<p>
1574*3ff48bf5SDavid du ColombierHere is an explanation of my file name convention: the prefix "bj8" should
1575*3ff48bf5SDavid du Colombierperhaps be used for the Canon BJC-8200 and compatible (like the Japanese
1576*3ff48bf5SDavid du ColombierF850 and perhaps the non-Japanese BJC-8500) models. The next two letters
1577*3ff48bf5SDavid du Colombierindicate the print media:
1578*3ff48bf5SDavid du Colombier
1579*3ff48bf5SDavid du Colombier<ul>
1580*3ff48bf5SDavid du Colombier<li>pp "Photo Paper Pro"
1581*3ff48bf5SDavid du Colombier<li>hg "High Gloss Photo Film"
1582*3ff48bf5SDavid du Colombier<li>gc "Glossy Photo Cards"
1583*3ff48bf5SDavid du Colombier<li>oh "OHP transparencies"
1584*3ff48bf5SDavid du Colombier<li>ts "T-shirt transfer"
1585*3ff48bf5SDavid du Colombier<li>pa "Plain Paper"
1586*3ff48bf5SDavid du Colombier</ul>
1587*3ff48bf5SDavid du Colombier
1588*3ff48bf5SDavid du Colombier<p>
1589*3ff48bf5SDavid du ColombierThe numbers at positions 6 and 7 indicate the resolution
1590*3ff48bf5SDavid du Colombier
1591*3ff48bf5SDavid du Colombier<ul>
1592*3ff48bf5SDavid du Colombier<li>12   1200x1200 DpIxDpI
1593*3ff48bf5SDavid du Colombier<li>06    600x600  DpIxDpI
1594*3ff48bf5SDavid du Colombier</ul>
1595*3ff48bf5SDavid du Colombier
1596*3ff48bf5SDavid du Colombier<p>
1597*3ff48bf5SDavid du ColombierThe last letter stands for a quality factor that effects also the print
1598*3ff48bf5SDavid du Colombierspeed (presumably related to the number of passes that the printhead makes).
1599*3ff48bf5SDavid du Colombier
1600*3ff48bf5SDavid du Colombier<ul>
1601*3ff48bf5SDavid du Colombier<li>f   highest quality
1602*3ff48bf5SDavid du Colombier<li>n   normal quality
1603*3ff48bf5SDavid du Colombier</ul>
1604*3ff48bf5SDavid du Colombier
1605*3ff48bf5SDavid du Colombier<p>
1606*3ff48bf5SDavid du ColombierPrinting a postcard size (~10x15 cm^2) image at 1200x1200 DpI^2 takes about
1607*3ff48bf5SDavid du Colombier3 minutes. The output of Ghostscript is then typically 4-5 MByte. The
1608*3ff48bf5SDavid du Colombierbootleneck seems to be the transfer of the raster image in run-length
1609*3ff48bf5SDavid du Colombierencoded Canon format to the printer (via the parallel port on my system) or
1610*3ff48bf5SDavid du Colombierthe printer's speed, not Ghostscript or the uniprint renderer.
1611*3ff48bf5SDavid du Colombier
1612*3ff48bf5SDavid du Colombier<h3>Further Optimization for the Canon BJC-8200</h3>
1613*3ff48bf5SDavid du Colombier
1614*3ff48bf5SDavid du ColombierSo far I have only experimented with the printer initialization code at the
1615*3ff48bf5SDavid du Colombierbeginning of each page (-dupBeginPageCommand) and the resolution (-r). Other
1616*3ff48bf5SDavid du Colombieroptions, particularly the transfer arrays (-dupBlackTransfer,
1617*3ff48bf5SDavid du Colombier-dupCyanTransfer, -dupMagentaTransfer, -dupYellowTransfer) and the margins
1618*3ff48bf5SDavid du Colombier(-dupMargins) were simply copied from the files for the BJC-610, but they
1619*3ff48bf5SDavid du Colombiermay need to be changed for optimized performance.
1620*3ff48bf5SDavid du Colombier
1621*3ff48bf5SDavid du Colombier<p>
1622*3ff48bf5SDavid du ColombierHere is information useful for changing or adding uniprint control files for
1623*3ff48bf5SDavid du Colombierthe BJC-8200:
1624*3ff48bf5SDavid du Colombier
1625*3ff48bf5SDavid du Colombier<p>
1626*3ff48bf5SDavid du ColombierIn "-dupBeginPageCommand=..." use the line
1627*3ff48bf5SDavid du Colombier
1628*3ff48bf5SDavid du Colombier<blockquote>
1629*3ff48bf5SDavid du Colombier   1b28 64 0400 04b0 04b0
1630*3ff48bf5SDavid du Colombier</blockquote>
1631*3ff48bf5SDavid du Colombier
1632*3ff48bf5SDavid du Colombier<p>
1633*3ff48bf5SDavid du Colombierfor 1200x1200 resolution, and
1634*3ff48bf5SDavid du Colombier
1635*3ff48bf5SDavid du Colombier<blockquote>
1636*3ff48bf5SDavid du Colombier   1b28 64 0400 0258 0258
1637*3ff48bf5SDavid du Colombier</blockquote>
1638*3ff48bf5SDavid du Colombier
1639*3ff48bf5SDavid du Colombier<p>
1640*3ff48bf5SDavid du Colombierfor 600x600. The "-r" option in the control file must of course match this
1641*3ff48bf5SDavid du Colombierline. Other resolutions might work as well, but I didn't try.
1642*3ff48bf5SDavid du Colombier
1643*3ff48bf5SDavid du Colombier<p>
1644*3ff48bf5SDavid du ColombierCrucial are the numbers in the lines like
1645*3ff48bf5SDavid du Colombier
1646*3ff48bf5SDavid du Colombier<blockquote><pre>
1647*3ff48bf5SDavid du Colombier   1b28 63 0300 3005 04
1648*3ff48bf5SDavid du Colombier                   ^  ^
1649*3ff48bf5SDavid du Colombier       Plain Paper 0  4 Highest quality
1650*3ff48bf5SDavid du Colombier  OHP transparency 2  .
1651*3ff48bf5SDavid du Colombier  T-shirt transfer 3  .
1652*3ff48bf5SDavid du Colombier Glossy Photo Film 5  .
1653*3ff48bf5SDavid du Colombier  High Gloss Paper 6  0 Lowest quality
1654*3ff48bf5SDavid du Colombier   Photo Paper Pro 9
1655*3ff48bf5SDavid du Colombier</pre></blockquote>
1656*3ff48bf5SDavid du Colombier
1657*3ff48bf5SDavid du Colombier<h3>Outlook</h3>
1658*3ff48bf5SDavid du Colombier
1659*3ff48bf5SDavid du Colombier<p>
1660*3ff48bf5SDavid du ColombierPresently uniprint can use the black (K), cyan (C), magenta (M), and
1661*3ff48bf5SDavid du Colombieryellow (Y) colors in the BJC-8200. The unused colors are photo (or
1662*3ff48bf5SDavid du Colombierlight) cyan (c) and magenta (m). Also the Canon driver seems to use
1663*3ff48bf5SDavid du Colombieronly CMYK, for example when printing on Photo Paper Pro in "Camera" or
1664*3ff48bf5SDavid du Colombier"SuperPhoto" mode. These modes supposedly produce prints of the best
1665*3ff48bf5SDavid du Colombierquality that the Canon driver can offer. Other modes of Canon driver
1666*3ff48bf5SDavid du Colombierdo use up to all six color cartridges (CMYKcm). Therefore expanding
1667*3ff48bf5SDavid du Colombieruniprint's capabilities for six colors would be interesting, but it may
1668*3ff48bf5SDavid du Colombiernot increase the output quality of 6-color printers such as the
1669*3ff48bf5SDavid du ColombierBJC-8200 drastically.
1670*3ff48bf5SDavid du Colombier
1671*3ff48bf5SDavid du Colombier<p>
1672*3ff48bf5SDavid du ColombierMore control files for uniprint could be added in order to offer more
1673*3ff48bf5SDavid du Colombierversatility for controlling the BJC-8200 within a Ghostscript
1674*3ff48bf5SDavid du Colombierinstallation. The number of possible combinations for media type, resolution
1675*3ff48bf5SDavid du Colombierand print quality factor is very large, many combinations would not make
1676*3ff48bf5SDavid du Colombiermuch sense, many might be used here and there, but relatively rarely. The
1677*3ff48bf5SDavid du Colombieruser would have to remember a name for each combination that is used.
1678*3ff48bf5SDavid du Colombier
1679*3ff48bf5SDavid du Colombier<p>
1680*3ff48bf5SDavid du ColombierA better way would be to let the user patch optionally a user owned or
1681*3ff48bf5SDavid du Colombiersystem wide uniprint control file before each print via some print
1682*3ff48bf5SDavid du Colombiertool. This is similar to the approach taken by Canon with their driver for
1683*3ff48bf5SDavid du ColombierWindows. Similarly a uniprint tool could also incorporate other functions
1684*3ff48bf5SDavid du Colombiersuch as printing test and demo pages and the low ink warning once the
1685*3ff48bf5SDavid du Colombierprotocol for this is known. Clearly it would be difficult to code such a
1686*3ff48bf5SDavid du Colombieruniprint tool for all the platforms where Ghostscript is running.
1687*3ff48bf5SDavid du Colombier
1688*3ff48bf5SDavid du Colombier<h3>Usage on RedHat Linux</h3>
1689*3ff48bf5SDavid du Colombier
1690*3ff48bf5SDavid du Colombier<p>
1691*3ff48bf5SDavid du ColombierIn order to install a BJC-8200 printer on a RedHat Linux system with
1692*3ff48bf5SDavid du ColombierRedHat's printtool, you need also to insert with a text editor the contents
1693*3ff48bf5SDavid du Colombierof the file <b><tt>bj8.rpd</tt></b> into the RedHat printer database
1694*3ff48bf5SDavid du Colombier<b><tt>/usr/lib/rhs/rhs-printfilters/printerdb</tt></b>. Insert it most
1695*3ff48bf5SDavid du Colombierappropriately after the section
1696*3ff48bf5SDavid du Colombier
1697*3ff48bf5SDavid du Colombier<blockquote><pre>
1698*3ff48bf5SDavid du ColombierStartEntry: U_CanonBJC610
1699*3ff48bf5SDavid du Colombier.
1700*3ff48bf5SDavid du Colombier.
1701*3ff48bf5SDavid du Colombier.
1702*3ff48bf5SDavid du ColombierEndEntry
1703*3ff48bf5SDavid du Colombier
1704*3ff48bf5SDavid du Colombier< --- insert here "bj8.rpd" from this distribution:
1705*3ff48bf5SDavid du Colombier< --- StartEntry: U_CanonBJC8200
1706*3ff48bf5SDavid du Colombier      .
1707*3ff48bf5SDavid du Colombier      .
1708*3ff48bf5SDavid du Colombier      .
1709*3ff48bf5SDavid du Colombier</pre></blockquote>
1710*3ff48bf5SDavid du Colombier
1711*3ff48bf5SDavid du Colombier<h3>Contacting the Author</h3>
1712*3ff48bf5SDavid du Colombier
1713*3ff48bf5SDavid du Colombier<p>
1714*3ff48bf5SDavid du ColombierE-mail address: &lt;<a
1715*3ff48bf5SDavid du Colombierhref="mailto:scb@stelab.nagoya-u.ac.jp">scb@stelab.nagoya-u.ac.jp</a>&gt;
1716*3ff48bf5SDavid du Colombier
1717*3ff48bf5SDavid du Colombier<p>
1718*3ff48bf5SDavid du ColombierFootnotes:
1719*3ff48bf5SDavid du Colombier
1720*3ff48bf5SDavid du Colombier<p>
1721*3ff48bf5SDavid du Colombier(*) Actually I have a F850, not a BJC-8200. That model is sold for the
1722*3ff48bf5SDavid du ColombierJapanese market only. The specs and also the external look are the
1723*3ff48bf5SDavid du Colombiersame as those of the BJC-8200 models for the American and European
1724*3ff48bf5SDavid du Colombiermarkets. I expect that the raster image mode which is used exclusively
1725*3ff48bf5SDavid du Colombierby Ghostscript is entirely compatible for both models.
1726*3ff48bf5SDavid du Colombier
1727*3ff48bf5SDavid du Colombier<p>
1728*3ff48bf5SDavid du ColombierStephan C. Buchert
1729*3ff48bf5SDavid du Colombier
1730*3ff48bf5SDavid du Colombier<hr>
1731*3ff48bf5SDavid du Colombier
1732*3ff48bf5SDavid du Colombier<h2><a name="BJC"></a>Other Canon BubbleJet (BJC) printers</h2>
17337dd7cddfSDavid du Colombier
17347dd7cddfSDavid du Colombier<p>
17357dd7cddfSDavid du ColombierThis section was contributed by the author of the drivers, Yves Arrouye
1736*3ff48bf5SDavid du Colombier(&lt;<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>&gt;, but
1737*3ff48bf5SDavid du Colombierplease do not send questions to him: he no longer maintains these drivers.)
17387dd7cddfSDavid du ColombierThe drivers handle Canon BJC-600, BJC-4xxx, BJC-70, Stylewriter 2x00, and
17397dd7cddfSDavid du ColombierBJC-800 printers.
17407dd7cddfSDavid du Colombier
1741*3ff48bf5SDavid du Colombier<h3><a name="BJC_history"></a>History</h3>
17427dd7cddfSDavid du Colombier
17437dd7cddfSDavid du Colombier<p>
17447dd7cddfSDavid du ColombierThe BJC-600 driver was written in the first place by Yoshio Kuniyoshi and
1745*3ff48bf5SDavid du Colombierlater modified by Yves Arrouye.  We tried to make it evolve synchronously,
1746*3ff48bf5SDavid du Colombierthough Yoshio cannot be reached since a long time ago.  The drivers are
1747*3ff48bf5SDavid du Colombierbased on code for the HP printers by George Cameron (in fact, they are in
1748*3ff48bf5SDavid du Colombierthe same file!), so he's the first person to thank.
17497dd7cddfSDavid du Colombier
17507dd7cddfSDavid du Colombier<p>
17517dd7cddfSDavid du ColombierThe 2.00 version of the drivers was a complete rewrite of the driver
17527dd7cddfSDavid du Colombier(arguments, optimization, colour handling, in short: everything!) by Yves
17537dd7cddfSDavid du ColombierArrouye.  That release was also the first one to be able to use the full
17547dd7cddfSDavid du Colombierwidth of an A3 paper size.  PostScript Printer Description (PPD) files for
17557dd7cddfSDavid du Colombierthe drivers were released with version 2.15.  They are incomplete,
17567dd7cddfSDavid du Colombierbut they can be used to drive the printers' main features.
17577dd7cddfSDavid du Colombier
1758*3ff48bf5SDavid du Colombier<h3><a name="BJC_build"></a>Configuring and building the BJC drivers</h3>
17597dd7cddfSDavid du Colombier
1760*3ff48bf5SDavid du Colombier<h4><a name="BJC_defaults"></a>Modify values in
1761*3ff48bf5SDavid du Colombier<b><tt>gdevbjc.h</tt></b></h4>
17627dd7cddfSDavid du Colombier
17637dd7cddfSDavid du Colombier<p>
17647dd7cddfSDavid du ColombierConfigure the drivers by modifying the default values in the file
17657dd7cddfSDavid du Colombier<b><tt>gdevbjc.h</tt></b> or on the compilation line.  If you don't do
17667dd7cddfSDavid du Colombierthat, the drivers use reasonable defaults that make them work "as
17677dd7cddfSDavid du Colombierexpected".  All default values shown here are defined in that file.
17687dd7cddfSDavid du Colombier
1769*3ff48bf5SDavid du Colombier<h4><a name="BJC_CMYK_RGB"></a>CMYK-to-RGB color conversion</h4>
17707dd7cddfSDavid du Colombier
17717dd7cddfSDavid du Colombier<p>
17727dd7cddfSDavid du ColombierBy default, the drivers use the same algorithm as Ghostscript to convert
17737dd7cddfSDavid du ColombierCMYK colors to RGB. If you prefer to use Adobe formulas, define
17747dd7cddfSDavid du Colombier<b><tt>USE_ADOBE_CMYK_RGB</tt></b> when compiling.  (See the top of the
17757dd7cddfSDavid du Colombierfile <b><tt>gdevcdj.c</tt></b> to see the difference between the two.)
17767dd7cddfSDavid du Colombier
1777*3ff48bf5SDavid du Colombier<h4><a name="BJC_vertical_centering"></a>Vertical centering of the
1778*3ff48bf5SDavid du Colombierprintable area</h4>
17797dd7cddfSDavid du Colombier
17807dd7cddfSDavid du Colombier<p>
17817dd7cddfSDavid du ColombierThe drivers center the imageable area horizontally but not vertically, so
17827dd7cddfSDavid du Colombierthat what can be printed does use the most of the output media. If you
17837dd7cddfSDavid du Colombierdefine <b><tt>BJC_DEFAULT_CENTEREDAREA</tt></b> when compiling, then the
17847dd7cddfSDavid du Colombiertop and bottom margins will be the same, resulting in a (smaller)
17857dd7cddfSDavid du Colombiervertically centered imageable area also.
17867dd7cddfSDavid du Colombier
1787*3ff48bf5SDavid du Colombier<h4><a name="BJC_margins"></a>Page margins</h4>
17887dd7cddfSDavid du Colombier
17897dd7cddfSDavid du Colombier<p>
17907dd7cddfSDavid du ColombierIf you define <b><tt>USE_RECOMMENDED_MARGINS</tt></b>, then the top and
17917dd7cddfSDavid du Colombierbottom margins will be the same (that is,
17927dd7cddfSDavid du Colombier<b><tt>BJC_DEFAULT_CENTEREDAREA</tt></b> will be defined for you) and the
17937dd7cddfSDavid du Colombiermargins will be the 12.4mm recommended by Canon.  Since margins are
17947dd7cddfSDavid du Colombiercomplicated (because one must rely on the mechanical precision of the
17957dd7cddfSDavid du Colombierprinter), the drivers do something about the bottom margin: by default the
17967dd7cddfSDavid du Colombierbottom margin is 9.54mm for the BJC-600 driver and 7mm for the BJC-800.  If
17977dd7cddfSDavid du Colombieryou define <b><tt>USE_TIGHT_MARGINS</tt></b>, then the bottom margin is 7mm
17987dd7cddfSDavid du Colombierfor both drivers (but I never managed to get my own BJC-600 to print a line
17997dd7cddfSDavid du Colombieron this low bound, hence the larger default).  Regardless of the presence
18007dd7cddfSDavid du Colombierof this definition, <b><tt>USE_FIXED_MARGINS</tt></b> will not allow the
18017dd7cddfSDavid du ColombierBJC-800 to use the lower 7mm bottom margin, so if you have a problem with
18027dd7cddfSDavid du Colombierthe bottom margin on a BJC-800, just define that (without defining
18037dd7cddfSDavid du Colombier<b><tt>USE_TIGHT_MARGINS</tt></b>, of course).
18047dd7cddfSDavid du Colombier
18057dd7cddfSDavid du Colombier<p>
18067dd7cddfSDavid du ColombierA quick way to be sure the margins you selected is to print a file whose
18077dd7cddfSDavid du Colombiercontents are:
18087dd7cddfSDavid du Colombier
18097dd7cddfSDavid du Colombier<blockquote><b><tt>
18107dd7cddfSDavid du Colombier%!<br>
18117dd7cddfSDavid du Colombierclippath stroke showpage
18127dd7cddfSDavid du Colombier</tt></b></blockquote>
18137dd7cddfSDavid du Colombier
18147dd7cddfSDavid du Colombier<p>
18157dd7cddfSDavid du ColombierIf the margins are okay, you will get a rectangle visibly surrounding
18167dd7cddfSDavid du Colombierthe printable area.  If they're not correct, one or more of the sides will
18177dd7cddfSDavid du Colombierbe either incomplete or completely unprinted.
18187dd7cddfSDavid du Colombier
1819*3ff48bf5SDavid du Colombier<h4><a name="BJC_compile"></a>Makefile and compilation</h4>
18207dd7cddfSDavid du Colombier
18217dd7cddfSDavid du Colombier<p>
18227dd7cddfSDavid du ColombierMake sure the <b><tt>bjc600</tt></b> or <b><tt>bjc800</tt></b> devices are
18237dd7cddfSDavid du Colombierin <a href="Make.htm#Features_and_devices"><b><tt>DEVICE_DEVS</tt></b> in
18247dd7cddfSDavid du Colombierthe makefile</a>; that is, look in the makefile for your platform and add
18257dd7cddfSDavid du Colombierthem if necessary -- they may already be there.  As of Ghostscript 5.10,
18267dd7cddfSDavid du Colombierfor instance, one makefile has
18277dd7cddfSDavid du Colombier
18287dd7cddfSDavid du Colombier<blockquote><b><tt>
18297dd7cddfSDavid du ColombierDEVICE_DEVS6=bj10e.dev&nbsp;bj200.dev&nbsp;bjc600.dev&nbsp;bjc800.dev
18307dd7cddfSDavid du Colombier</tt></b></blockquote>
18317dd7cddfSDavid du Colombier
1832*3ff48bf5SDavid du Colombier<h3><a name="BJC_usage"></a>Use of the drivers</h3>
18337dd7cddfSDavid du Colombier
18347dd7cddfSDavid du Colombier<p>
18357dd7cddfSDavid du ColombierThere are two drivers here.  The "<b><tt>bjc600</tt></b>" one supports the BJC-600 and
18367dd7cddfSDavid du ColombierBJC-4xxx (maybe the BJC-70 as well) and the "<b><tt>bjc800</tt></b>" one supports the
18377dd7cddfSDavid du ColombierBJC-800 series.  Remarks here that apply to both drivers use the name
18387dd7cddfSDavid du Colombier"bjc".
18397dd7cddfSDavid du Colombier
1840*3ff48bf5SDavid du Colombier<h4><a name="BJC_options"></a>Supported Options and Defaults</h4>
18417dd7cddfSDavid du Colombier
18427dd7cddfSDavid du Colombier<p>
18437dd7cddfSDavid du ColombierNote: "options", "properties", and "parameters" designate the same thing:
18447dd7cddfSDavid du Colombierdevice parameters that you can change.
18457dd7cddfSDavid du Colombier
18467dd7cddfSDavid du Colombier<p>
18477dd7cddfSDavid du ColombierGiving an option an incorrect value causes an error.  Unless stated
18487dd7cddfSDavid du Colombierotherwise, this error will be a rangecheckerror.  Options may be set from
18497dd7cddfSDavid du Colombierthe Ghostscript command line (using the <b><tt>-d</tt></b> and
18507dd7cddfSDavid du Colombier<b><tt>-s</tt></b> switches or other predetermined switches if they have an
18517dd7cddfSDavid du Colombiereffect on the driver) or using the PostScript Level 2
18527dd7cddfSDavid du Colombier<b><tt>setpagedevice</tt></b> operator if Ghostscript has been compiled
18537dd7cddfSDavid du Colombierwith the <b><tt>level2</tt></b> or <b><tt>level3</tt></b> device (which it should
18547dd7cddfSDavid du Colombier<b><tt>;-)</tt></b>). There are <b>no</b> special-purpose operators such as
18557dd7cddfSDavid du Colombierone was able to find in Level 1 printers.
18567dd7cddfSDavid du Colombier
18577dd7cddfSDavid du Colombier<p>
18587dd7cddfSDavid du ColombierThe bjc uses 24 bits per pixel by default (unless you change the value of
18597dd7cddfSDavid du Colombier<b><tt>BJC_BITSPERPIXEL</tt></b>), corresponding to CMYK printing.
18607dd7cddfSDavid du ColombierSupported modes are 1 bpp and 4 bpp (gray levels), 8 bpp, 16 bpp, 24 bpp
18617dd7cddfSDavid du Colombierand 32 bpp (colours).  Colours are preferably stored in the CMYK model
18627dd7cddfSDavid du Colombier(which means, for example, that with 16 bpp there are only 16 different
18637dd7cddfSDavid du Colombiershades of each color) but it is possible to store them as RGB color for
18647dd7cddfSDavid du Colombiersome depths.  Some modes do Floyd-Steinberg dithering and some don't, but
18657dd7cddfSDavid du Colombieruse the default Ghostscript halftoning (in fact, when halftoning is used,
18667dd7cddfSDavid du Colombierdithering takes also place but because of the low point density it is
18677dd7cddfSDavid du Colombierusually not efficient, and thus invisible).
18687dd7cddfSDavid du Colombier
18697dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
18707dd7cddfSDavid 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>
18717dd7cddfSDavid du Colombier<tr valign=bottom>
18727dd7cddfSDavid du Colombier	<th align=left>bpp
18737dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
18747dd7cddfSDavid du Colombier	<th align=left><b><tt>Colors</tt></b>
18757dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
18767dd7cddfSDavid du Colombier	<th align=left>Mode
18777dd7cddfSDavid du Colombier<tr>	<td colspan=5><hr>
18787dd7cddfSDavid du Colombier<tr valign=top>	<td>32
18797dd7cddfSDavid du Colombier	<td>&nbsp;
18807dd7cddfSDavid du Colombier	<td align=center>4
18817dd7cddfSDavid du Colombier	<td>&nbsp;
18827dd7cddfSDavid du Colombier	<td>CMYK colour printing, Floyd-Steinberg dithering
18837dd7cddfSDavid du Colombier<tr valign=top>	<td>24
18847dd7cddfSDavid du Colombier	<td>&nbsp;
18857dd7cddfSDavid du Colombier	<td align=center>4
18867dd7cddfSDavid du Colombier	<td>&nbsp;
18877dd7cddfSDavid du Colombier	<td>The same. (But each primary colour is stored on 6 bits instead of 8.)
18887dd7cddfSDavid du Colombier<tr valign=top>	<td>24
18897dd7cddfSDavid du Colombier	<td>&nbsp;
18907dd7cddfSDavid du Colombier	<td align=center>3
18917dd7cddfSDavid du Colombier	<td>&nbsp;
18927dd7cddfSDavid du Colombier	<td>RGB colour printing, Floyd-Steinberg dithering.  This mode does
18937dd7cddfSDavid du Colombier	    <b><tt>not</tt></b> use the black cartridge (that's why it
18947dd7cddfSDavid du Colombier	    exists, for when you don't want to use it <b><tt>;-)</tt></b>).
18957dd7cddfSDavid du Colombier	    Each primary colour is stored in 8 bits as in the 32/4 mode,
18967dd7cddfSDavid du Colombier	    but black generation and under-color removal are done on the
18977dd7cddfSDavid du Colombier	    driver side and not by Ghostscript, so you have no control over
18987dd7cddfSDavid du Colombier	    it.  (This mode is no longer supported in this driver.)
18997dd7cddfSDavid du Colombier<tr valign=top>	<td>16
19007dd7cddfSDavid du Colombier	<td>&nbsp;
19017dd7cddfSDavid du Colombier	<td align=center>4
19027dd7cddfSDavid du Colombier	<td>&nbsp;
19037dd7cddfSDavid du Colombier	<td>CMYK colour printing, halftoned by Ghostscript.  F-S dithering
19047dd7cddfSDavid du Colombier	    is still visible here (but the halftone patterns are visible
19057dd7cddfSDavid du Colombier	    too!).
19067dd7cddfSDavid du Colombier<tr valign=top>	<td>8
19077dd7cddfSDavid du Colombier	<td>&nbsp;
19087dd7cddfSDavid du Colombier	<td align=center>4
19097dd7cddfSDavid du Colombier	<td>&nbsp;
19107dd7cddfSDavid du Colombier	<td>The same.  (But each primary colour is stored in 2 bits instead of 4.)
19117dd7cddfSDavid du Colombier<tr valign=top>	<td>8
19127dd7cddfSDavid du Colombier	<td>&nbsp;
19137dd7cddfSDavid du Colombier	<td align=center>3
19147dd7cddfSDavid du Colombier	<td>&nbsp;
19157dd7cddfSDavid du Colombier	<td>RGB colour printing.  This mode is not intended for use. What I
19167dd7cddfSDavid du Colombier	    mean is that it should be used only if you want to use custom
19177dd7cddfSDavid du Colombier	    halftone screens <b>and</b> the halftoning is broken using the
19187dd7cddfSDavid du Colombier	    8/4 mode (some versions of Ghostscript have this problem).
19197dd7cddfSDavid du Colombier<tr valign=top>	<td>8
19207dd7cddfSDavid du Colombier	<td>&nbsp;
19217dd7cddfSDavid du Colombier	<td align=center>1
19227dd7cddfSDavid du Colombier	<td>&nbsp;
19237dd7cddfSDavid du Colombier	<td>Gray-level printing, Floyd-Steinberg dithering
19247dd7cddfSDavid du Colombier<tr valign=top>	<td>1
19257dd7cddfSDavid du Colombier	<td>&nbsp;
19267dd7cddfSDavid du Colombier	<td align=center>1
19277dd7cddfSDavid du Colombier	<td>&nbsp;
19287dd7cddfSDavid du Colombier	<td>Gray-level printing halftoned by Ghostscript
19297dd7cddfSDavid du Colombier</table></blockquote>
19307dd7cddfSDavid du Colombier
19317dd7cddfSDavid du Colombier<p>
19327dd7cddfSDavid du ColombierThese modes are selected using the <b><tt>BitsPerPixel</tt></b> <b>and</b>
19337dd7cddfSDavid du Colombier<b><tt>Colors</tt></b> integer options (either from the command line or in
19347dd7cddfSDavid du Colombiera PostScript program using <b><tt>setpagedevice</tt></b>).  See below.
19357dd7cddfSDavid du Colombier
19367dd7cddfSDavid du Colombier<p>
19377dd7cddfSDavid du ColombierA note about darkness of what is printed: Canon printers do print dark,
19387dd7cddfSDavid du Colombierreally.  And the Floyd-Steinberg dithering may eventually darken your image
19397dd7cddfSDavid du Colombiertoo.  So you may need to apply gamma correction by calling Ghostscript as in
19407dd7cddfSDavid du Colombier
19417dd7cddfSDavid du Colombier<blockquote><b><tt>
19427dd7cddfSDavid du Colombiergs -sDEVICE=bjc600 gamma.ps myfile.ps
19437dd7cddfSDavid du Colombier</tt></b></blockquote>
19447dd7cddfSDavid du Colombier
19457dd7cddfSDavid du Colombier<p>
19467dd7cddfSDavid du Colombierwhere <b><tt>gamma.ps</tt></b> changes the gamma correction (here to 3 for
19477dd7cddfSDavid du Colombierall colors); 0.45 gives me good results, but your mileage may vary.  The
19487dd7cddfSDavid du Colombierbigger the value the lighter the output:
19497dd7cddfSDavid du Colombier
19507dd7cddfSDavid du Colombier<blockquote><b><tt>
19517dd7cddfSDavid du Colombier{ 0.45 exp } dup dup currenttransfer setcolortransfer
19527dd7cddfSDavid du Colombier</tt></b></blockquote>
19537dd7cddfSDavid du Colombier
19547dd7cddfSDavid du Colombier<p>
19557dd7cddfSDavid du ColombierThe drivers support printing at 90dpi, 180dpi and 360dpi.  Horizontal and
19567dd7cddfSDavid du Colombiervertical resolutions must be the same or a limitcheck error will happen.  A
19577dd7cddfSDavid du Colombierrangecheck will happen too if the resolution is not
19587dd7cddfSDavid du Colombier90&nbsp;&times;2^<small><sup><b>N</b></sup></small>.  If the driver
19597dd7cddfSDavid du Colombieris compiled with <b><tt>-DBJC_STRICT</tt></b> a rangecheck also happens if
19607dd7cddfSDavid du Colombierthe resolution is not one of those supported.  This is not the case, as we
19617dd7cddfSDavid du Colombierexpect that there may be a 720dpi bjc some day.
19627dd7cddfSDavid du Colombier
19637dd7cddfSDavid du Colombier<p>
19647dd7cddfSDavid du ColombierHere are the various options supported by the bjc drivers, along with
19657dd7cddfSDavid du Colombiertheir types, supported values, effects, and usage:
19667dd7cddfSDavid du Colombier
19677dd7cddfSDavid du Colombier<dl>
19687dd7cddfSDavid du Colombier<dt><b><tt>BitsPerPixel</tt></b> (int)
19697dd7cddfSDavid du Colombier<dd>Choose the depth of the page. Valid values are 1, 8, 16, 24 (the
19707dd7cddfSDavid du Colombierdefault) and 32.
19717dd7cddfSDavid du Colombier
19727dd7cddfSDavid du Colombier<p>
19737dd7cddfSDavid du ColombierNote that when this is set for the first time, the <b><tt>Colors</tt></b>
19747dd7cddfSDavid du Colombierproperty is automatically adjusted unless it is also specified.  The table
19757dd7cddfSDavid du Colombierhere shows the corresponding color models and the rendering method visible:
19767dd7cddfSDavid du Colombier"GS" for Ghostscript halftoning and "F-S" for Floyd-Steinberg dithering.
19777dd7cddfSDavid du ColombierWhen both are present it means that the dithering of halftones is visible.
19787dd7cddfSDavid du ColombierDefault choices are indicated by asterisk "*".
19797dd7cddfSDavid du Colombier
19807dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
19817dd7cddfSDavid 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
19827dd7cddfSDavid du Colombier</font><hr>
19837dd7cddfSDavid du Colombier<tr valign=bottom>
19847dd7cddfSDavid du Colombier	<th align=left>bpp
19857dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
19867dd7cddfSDavid du Colombier	<th align=left><b><tt>Colors</tt></b>
19877dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
19887dd7cddfSDavid du Colombier	<th align=left>&nbsp;
19897dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
19907dd7cddfSDavid du Colombier	<th align=left>Color model
19917dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
19927dd7cddfSDavid du Colombier	<th align=left>Dithering
19937dd7cddfSDavid du Colombier<tr>	<td colspan=9><hr>
19947dd7cddfSDavid du Colombier<tr valign=top>	<td>32
19957dd7cddfSDavid du Colombier	<td>&nbsp;
19967dd7cddfSDavid du Colombier	<td align=center>4
19977dd7cddfSDavid du Colombier	<td>&nbsp;
19987dd7cddfSDavid du Colombier	<td>&nbsp;
19997dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20007dd7cddfSDavid du Colombier	<td>CMYK
20017dd7cddfSDavid du Colombier	<td>&nbsp;
20027dd7cddfSDavid du Colombier	<td>F-S
20037dd7cddfSDavid du Colombier<tr valign=top>	<td>24
20047dd7cddfSDavid du Colombier	<td>&nbsp;
20057dd7cddfSDavid du Colombier	<td align=center>4
20067dd7cddfSDavid du Colombier	<td>&nbsp;
20077dd7cddfSDavid du Colombier	<td><b>*</b>
20087dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20097dd7cddfSDavid du Colombier	<td>CMYK
20107dd7cddfSDavid du Colombier	<td>&nbsp;
20117dd7cddfSDavid du Colombier	<td>F-S
20127dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
20137dd7cddfSDavid du Colombier	<td>&nbsp;
20147dd7cddfSDavid du Colombier	<td align=center>3
20157dd7cddfSDavid du Colombier	<td>&nbsp;
20167dd7cddfSDavid du Colombier	<td>&nbsp;
20177dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20187dd7cddfSDavid du Colombier	<td>RGB
20197dd7cddfSDavid du Colombier	<td>&nbsp;
20207dd7cddfSDavid du Colombier	<td>F-S
20217dd7cddfSDavid du Colombier<tr valign=top>	<td>16
20227dd7cddfSDavid du Colombier	<td>&nbsp;
20237dd7cddfSDavid du Colombier	<td align=center>4
20247dd7cddfSDavid du Colombier	<td>&nbsp;
20257dd7cddfSDavid du Colombier	<td>&nbsp;
20267dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20277dd7cddfSDavid du Colombier	<td>CMYK
20287dd7cddfSDavid du Colombier	<td>&nbsp;
20297dd7cddfSDavid du Colombier	<td>GS, F-S
20307dd7cddfSDavid du Colombier<tr valign=top>	<td>8
20317dd7cddfSDavid du Colombier	<td>&nbsp;
20327dd7cddfSDavid du Colombier	<td align=center>4
20337dd7cddfSDavid du Colombier	<td>&nbsp;
20347dd7cddfSDavid du Colombier	<td><b>*</b>
20357dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20367dd7cddfSDavid du Colombier	<td>CMYK
20377dd7cddfSDavid du Colombier	<td>&nbsp;
20387dd7cddfSDavid du Colombier	<td>GS
20397dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
20407dd7cddfSDavid du Colombier	<td>&nbsp;
20417dd7cddfSDavid du Colombier	<td align=center>3
20427dd7cddfSDavid du Colombier	<td>&nbsp;
20437dd7cddfSDavid du Colombier	<td>&nbsp;
20447dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20457dd7cddfSDavid du Colombier	<td>RGB
20467dd7cddfSDavid du Colombier	<td>&nbsp;
20477dd7cddfSDavid du Colombier	<td>GS
20487dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
20497dd7cddfSDavid du Colombier	<td>&nbsp;
20507dd7cddfSDavid du Colombier	<td align=center>1
20517dd7cddfSDavid du Colombier	<td>&nbsp;
20527dd7cddfSDavid du Colombier	<td>&nbsp;
20537dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20547dd7cddfSDavid du Colombier	<td>K (CMYK)
20557dd7cddfSDavid du Colombier	<td>&nbsp;
20567dd7cddfSDavid du Colombier	<td>F-S
20577dd7cddfSDavid du Colombier<tr valign=top>	<td>1
20587dd7cddfSDavid du Colombier	<td>&nbsp;
20597dd7cddfSDavid du Colombier	<td align=center>1
20607dd7cddfSDavid du Colombier	<td>&nbsp;
20617dd7cddfSDavid du Colombier	<td><b>*</b>
20627dd7cddfSDavid du Colombier	<td align=center>&nbsp;
20637dd7cddfSDavid du Colombier	<td>K (CMYK)
20647dd7cddfSDavid du Colombier	<td>&nbsp;
20657dd7cddfSDavid du Colombier	<td>GS
20667dd7cddfSDavid du Colombier</table></blockquote>
20677dd7cddfSDavid du Colombier
20687dd7cddfSDavid du Colombier<p>Also note that automagical change of one parameter depending on the
20697dd7cddfSDavid du Colombierother one does not work in a <b><tt>setpagedevice</tt></b> call.  This
20707dd7cddfSDavid du Colombiermeans that if you want to change <b><tt>BitsPerPixel</tt></b> to a value
20717dd7cddfSDavid du Colombierwhose valid <b><tt>Colors</tt></b> values do not include the actual
20727dd7cddfSDavid du Colombier<b><tt>Colors</tt></b> value, you must change <b><tt>Colors</tt></b> too.
20737dd7cddfSDavid du Colombier</dl>
20747dd7cddfSDavid du Colombier
20757dd7cddfSDavid du Colombier<dl>
20767dd7cddfSDavid du Colombier<dt><b><tt>Colors</tt></b> (int)
20777dd7cddfSDavid du Colombier<dd>Choose the number of color components from among 1, 3 and 4 (the
20787dd7cddfSDavid du Colombierdefault).  This setting cannot be used in a PostScript program, only on
20797dd7cddfSDavid du ColombierGhostscript's command line.  See <b><tt>ProcessColorModel</tt></b> below
20807dd7cddfSDavid du Colombierfor what to use to change the number of colors with PostScript code.
20817dd7cddfSDavid du Colombier
20827dd7cddfSDavid du Colombier<p>
20837dd7cddfSDavid du ColombierNote that setting this property does limit the choices of
20847dd7cddfSDavid du Colombier<b><tt>BitsPerPixel</tt></b>.  As for the previous property, its first
20857dd7cddfSDavid du Colombiersetting may induce a setting of the "other value"
20867dd7cddfSDavid du Colombier(<b><tt>BitsPerPixel</tt></b> here).  The table here indicates valid
20877dd7cddfSDavid du Colombiercombinations with "V", default values with asterisk "*".
20887dd7cddfSDavid du Colombier
20897dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
20907dd7cddfSDavid 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>
20917dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
20927dd7cddfSDavid du Colombier	<td>&nbsp;
20937dd7cddfSDavid du Colombier	<td>&nbsp;
20947dd7cddfSDavid du Colombier	<td>&nbsp;
20957dd7cddfSDavid du Colombier	<th align=left colspan=9><b><tt>BitsPerPixel</tt></b> OK values<hr>
20967dd7cddfSDavid du Colombier<tr valign=top>	<th>Colors
20977dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
20987dd7cddfSDavid du Colombier	<th>Type
20997dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
21007dd7cddfSDavid du Colombier	<td>32
21017dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
21027dd7cddfSDavid du Colombier	<td>24
21037dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
21047dd7cddfSDavid du Colombier	<td>16
21057dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
21067dd7cddfSDavid du Colombier	<td>8
21077dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
21087dd7cddfSDavid du Colombier	<td>1
21097dd7cddfSDavid du Colombier<tr>	<td colspan=13><hr>
21107dd7cddfSDavid du Colombier<tr valign=top>	<td>4
21117dd7cddfSDavid du Colombier	<td>&nbsp;
21127dd7cddfSDavid du Colombier	<td>CMYK
21137dd7cddfSDavid du Colombier	<td>&nbsp;
21147dd7cddfSDavid du Colombier	<td><b>V</b>
21157dd7cddfSDavid du Colombier	<td>&nbsp;
21167dd7cddfSDavid du Colombier	<td><b>*</b>
21177dd7cddfSDavid du Colombier	<td>&nbsp;
21187dd7cddfSDavid du Colombier	<td><b>V</b>
21197dd7cddfSDavid du Colombier	<td>&nbsp;
21207dd7cddfSDavid du Colombier	<td><b>V</b>
21217dd7cddfSDavid du Colombier	<td>&nbsp;
21227dd7cddfSDavid du Colombier	<td>&nbsp;
21237dd7cddfSDavid du Colombier<tr valign=top>	<td>3
21247dd7cddfSDavid du Colombier	<td>&nbsp;
21257dd7cddfSDavid du Colombier	<td>RGB
21267dd7cddfSDavid du Colombier	<td>&nbsp;
21277dd7cddfSDavid du Colombier	<td>&nbsp;
21287dd7cddfSDavid du Colombier	<td>&nbsp;
21297dd7cddfSDavid du Colombier	<td><b>*</b>
21307dd7cddfSDavid du Colombier	<td>&nbsp;
21317dd7cddfSDavid du Colombier	<td>&nbsp;
21327dd7cddfSDavid du Colombier	<td>&nbsp;
21337dd7cddfSDavid du Colombier	<td><b>V</b>
21347dd7cddfSDavid du Colombier	<td>&nbsp;
21357dd7cddfSDavid du Colombier	<td>&nbsp;
21367dd7cddfSDavid du Colombier<tr valign=top>	<td>1
21377dd7cddfSDavid du Colombier	<td>&nbsp;
21387dd7cddfSDavid du Colombier	<td>K
21397dd7cddfSDavid du Colombier	<td>&nbsp;
21407dd7cddfSDavid du Colombier	<td>&nbsp;
21417dd7cddfSDavid du Colombier	<td>&nbsp;
21427dd7cddfSDavid du Colombier	<td>&nbsp;
21437dd7cddfSDavid du Colombier	<td>&nbsp;
21447dd7cddfSDavid du Colombier	<td>&nbsp;
21457dd7cddfSDavid du Colombier	<td>&nbsp;
21467dd7cddfSDavid du Colombier	<td><b>V</b>
21477dd7cddfSDavid du Colombier	<td>&nbsp;
21487dd7cddfSDavid du Colombier	<td><b>*</b>
21497dd7cddfSDavid du Colombier</table></blockquote>
21507dd7cddfSDavid du Colombier
21517dd7cddfSDavid du Colombier<p>Also note that automagical change of one parameter depending on the
21527dd7cddfSDavid du Colombierother one does not work in a <b><tt>setpagedevice</tt></b> call.  This
21537dd7cddfSDavid du Colombiermeans that if you want to change <b><tt>Colors</tt></b> to a value whose
21547dd7cddfSDavid du Colombiervalid <b><tt>BitsPerPixel</tt></b> values don't include the actual
21557dd7cddfSDavid du Colombier<b><tt>BitsPerPixel</tt></b> value, you must change
21567dd7cddfSDavid du Colombier<b><tt>BitsPerPixel</tt></b> too.
21577dd7cddfSDavid du Colombier</dl>
21587dd7cddfSDavid du Colombier
21597dd7cddfSDavid du Colombier<dl>
21607dd7cddfSDavid du Colombier<dt><b><tt>ProcessColorModel</tt></b> (symbol)
21617dd7cddfSDavid du Colombier<dd>A symbol taken from <b><tt>/DeviceGray</tt></b>,
21627dd7cddfSDavid du Colombier<b><tt>/DeviceRGB</tt></b> or <b><tt>/DeviceCMYK</tt></b> which can be used
21637dd7cddfSDavid du Colombierto select 1, 3 or 4 colors respectively.  Note that this parameter takes
21647dd7cddfSDavid du Colombierprecedence over <b><tt>Colors</tt></b>, and that both affect the same
21657dd7cddfSDavid du Colombiervariable of the driver.  (See <b><tt>Colors</tt></b> above for values
21667dd7cddfSDavid du Colombiercombined with <b><tt>BitsPerPixel</tt></b>.)
21677dd7cddfSDavid du Colombier</dl>
21687dd7cddfSDavid du Colombier
21697dd7cddfSDavid du Colombier<dl>
21707dd7cddfSDavid du Colombier<dt><b><tt>HWResolution</tt></b> (floats array)
21717dd7cddfSDavid du Colombier<dd>An array of two floats giving the horizontal and vertical resolution in
21727dd7cddfSDavid du Colombierdots per inch from among 90, 180 and 360 (the default).  Both values must
21737dd7cddfSDavid du Colombierbe the same.  On the Ghostscript command line, the resolution may be
21747dd7cddfSDavid du Colombierchanged with the <a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b>
21757dd7cddfSDavid du Colombierswitch</a>.
21767dd7cddfSDavid du Colombier</dl>
21777dd7cddfSDavid du Colombier
21787dd7cddfSDavid du Colombier<dl>
21797dd7cddfSDavid du Colombier<dt><b><tt>ManualFeed</tt></b> (bool)
21807dd7cddfSDavid du Colombier<dd>Indicate that the sheets won't be fed automatically by the printer,
21817dd7cddfSDavid du Colombier<b><tt>false</tt></b> by default.  (Not meaningful on the BJC-600, I fear.)
21827dd7cddfSDavid du Colombier</dl>
21837dd7cddfSDavid du Colombier
21847dd7cddfSDavid du Colombier<dl>
21857dd7cddfSDavid du Colombier<dt><b><tt>MediaType</tt></b> (string)
21867dd7cddfSDavid du Colombier<dd>The media to print on, chosen from among "<b><tt>PlainPaper</tt></b>",
21877dd7cddfSDavid du Colombier"<b><tt>CoatedPaper</tt></b>", "<b><tt>TransparencyFilm</tt></b>",
21887dd7cddfSDavid du Colombier"<b><tt>Envelope</tt></b>", "<b><tt>Card</tt></b>" and
21897dd7cddfSDavid du Colombier"<b><tt>Other</tt></b>".  Default is "<b><tt>PlainPaper</tt></b>".  For
21907dd7cddfSDavid du Colombier"<b><tt>Envelope</tt></b>", "<b><tt>Card</tt></b>" or
21917dd7cddfSDavid du Colombier"<b><tt>Other</tt></b>" the driver puts the printer into thick mode
21927dd7cddfSDavid du Colombierautomatically regardless of the actual media weight.
21937dd7cddfSDavid du Colombier</dl>
21947dd7cddfSDavid du Colombier
21957dd7cddfSDavid du Colombier<dl>
21967dd7cddfSDavid du Colombier<dt><b><tt>MediaWeight</tt></b> (int or null)
21977dd7cddfSDavid du Colombier<dd>The weight of the media in grams per square meter.  Null (the default)
21987dd7cddfSDavid du Colombierindicates that the weight is of no importance.  If the specified media
21997dd7cddfSDavid du Colombierweight is greater than 105 (that is, the value of the compilation default
22007dd7cddfSDavid du Colombier<b><tt>BJC</tt></b>???<b><tt>_MEDIAWEIGHT_THICKLIMIT</tt></b>) then the
22017dd7cddfSDavid du Colombierprinter will be set to use thick paper.
22027dd7cddfSDavid du Colombier</dl>
22037dd7cddfSDavid du Colombier
22047dd7cddfSDavid du Colombier<dl>
22057dd7cddfSDavid du Colombier<dt><b><tt>PrintQuality</tt></b> (string)
22067dd7cddfSDavid du Colombier<dd>The quality of printing.
22077dd7cddfSDavid du Colombier<table cellpadding=0 cellspacing=0>
22087dd7cddfSDavid du Colombier<tr valign=bottom>
22097dd7cddfSDavid du Colombier	<th align=left>Value
22107dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
22117dd7cddfSDavid du Colombier	<th align=left><b><tt>bjc600</tt></b>
22127dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
22137dd7cddfSDavid du Colombier	<th align=left><b><tt>bjc800</tt></b>
22147dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
22157dd7cddfSDavid du Colombier	<th align=left>&nbsp;
22167dd7cddfSDavid du Colombier<tr>	<td colspan=7><hr>
22177dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Low</tt></b>
22187dd7cddfSDavid du Colombier	<td>&nbsp;
22197dd7cddfSDavid du Colombier	<td>&nbsp;
22207dd7cddfSDavid du Colombier	<td>&nbsp;
22217dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22227dd7cddfSDavid du Colombier	<td>&nbsp;
22237dd7cddfSDavid 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
22247dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Draft</tt></b>
22257dd7cddfSDavid du Colombier	<td>&nbsp;
22267dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22277dd7cddfSDavid du Colombier	<td>&nbsp;
22287dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22297dd7cddfSDavid du Colombier	<td>&nbsp;
22307dd7cddfSDavid du Colombier	<td>Unlights the "HQ" light on a BJC-600
22317dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Normal</tt></b>
22327dd7cddfSDavid du Colombier	<td>&nbsp;
22337dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22347dd7cddfSDavid du Colombier	<td>&nbsp;
22357dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22367dd7cddfSDavid du Colombier	<td>&nbsp;
22377dd7cddfSDavid du Colombier	<td>Default for both drivers; lights the "HQ" light on a BJC-600
22387dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>High</tt></b>
22397dd7cddfSDavid du Colombier	<td>&nbsp;
22407dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22417dd7cddfSDavid du Colombier	<td>&nbsp;
22427dd7cddfSDavid du Colombier	<td align=center><b>X</b>
22437dd7cddfSDavid du Colombier	<td>&nbsp;
22447dd7cddfSDavid du Colombier	<td>Means 200% black and 100% CMY; lights the "Bk+" light on a BJC-600
22457dd7cddfSDavid du Colombier</table>
22467dd7cddfSDavid du Colombier</dl>
22477dd7cddfSDavid du Colombier
22487dd7cddfSDavid du Colombier<dl>
22497dd7cddfSDavid du Colombier<dt><b><tt>DitheringType</tt></b> (string)
22507dd7cddfSDavid du Colombier<dd>Dithering algorithm from between "<b><tt>Floyd-Steinberg</tt></b>" and
22517dd7cddfSDavid du Colombier"<b><tt>None</tt></b>". "<b><tt>None</tt></b>" is the default for 1/1 print
22527dd7cddfSDavid du Colombiermode, "<b><tt>Floyd-Steinberg</tt></b>" for other modes.  At the moment
22537dd7cddfSDavid du Colombierthis parameter is read-only, though no error is generated if one tries to
22547dd7cddfSDavid du Colombierchange it.  This parameter is not of much value at the moment and is here
22557dd7cddfSDavid du Colombiermainly to reserve the name for future addition of dithering algorithms.
22567dd7cddfSDavid du Colombier</dl>
22577dd7cddfSDavid du Colombier
22587dd7cddfSDavid du Colombier<dl>
22597dd7cddfSDavid du Colombier<dt><b><tt>PrintColors</tt></b> (int)
22607dd7cddfSDavid du Colombier<dd>Mask for printing color.  If 0, use black for any color; otherwise the
22617dd7cddfSDavid du Colombiervalue must be the sum of any of 1 (cyan), 2 (magenta), 4 (yellow) and 8
22627dd7cddfSDavid du Colombier(black), indicating which colors will be used for printing.  When printing
22637dd7cddfSDavid du Colombiercolour, only colours specified will be printed (this means that some planes
22647dd7cddfSDavid du Colombierwill be missing if a color's value above is omitted).  When printing grays,
22657dd7cddfSDavid du Colombierblack is used if it is present in the <b><tt>PrintColors</tt></b>;
22667dd7cddfSDavid du Colombierotherwise, the image is printed by superimposing each requested color.
22677dd7cddfSDavid du Colombier</dl>
22687dd7cddfSDavid du Colombier
22697dd7cddfSDavid du Colombier<dl>
22707dd7cddfSDavid du Colombier<dt><b><tt>MonochromePrint</tt></b> (bool)
22717dd7cddfSDavid du Colombier<dd><b>For <tt>bjc600</tt> only</b>, <b><tt>false</tt></b> by default.
22727dd7cddfSDavid du ColombierSubstitute black for Cyan, Magenta and Yellow when printing -- useful, for
22737dd7cddfSDavid du Colombierexample, to get some monochrome output of a dithered printing This is a
22747dd7cddfSDavid du Colombierhardware mechanism as opposed to the previous software one. I think that
22757dd7cddfSDavid du Colombierusing this or setting <b><tt>PrintColors</tt></b> to 0 will give the same
22767dd7cddfSDavid du Colombierresults.
22777dd7cddfSDavid du Colombier</dl>
22787dd7cddfSDavid du Colombier
22797dd7cddfSDavid du Colombier<p>
22807dd7cddfSDavid du ColombierNote that the <b><tt>MediaType</tt></b> and <b><tt>ThickMedia</tt></b>
22817dd7cddfSDavid du Colombieroptions will be replaced by the use of the device
22827dd7cddfSDavid du Colombier<b><tt>InputAttributes</tt></b> and <b><tt>OutputAttributes</tt></b> as
22837dd7cddfSDavid du Colombiersoon as possible.  Please note too that the print mode may be reset at the
22847dd7cddfSDavid du Colombierstart of printing, not at the end.  This is the expected behaviour.  If you
22857dd7cddfSDavid du Colombierneed to reset the printer to its default state, simply print a file that
22867dd7cddfSDavid du Colombierdoes just a <b><tt>showpage</tt></b>.
22877dd7cddfSDavid du Colombier
2288*3ff48bf5SDavid du Colombier<h4><a name="BJC_device_info"></a>Device information</h4>
22897dd7cddfSDavid du Colombier
22907dd7cddfSDavid du Colombier<p>
22917dd7cddfSDavid du ColombierHere is other information published by the driver that you will find
22927dd7cddfSDavid du Colombierin the <b><tt>deviceinfo</tt></b> dictionary.
22937dd7cddfSDavid du Colombier
22947dd7cddfSDavid du Colombier<dl>
22957dd7cddfSDavid du Colombier<dt><b><tt>OutputFaceUp</tt></b> (bool)
22967dd7cddfSDavid du Colombier<dd>This has the boolean value <b><tt>true</tt></b>, indicating that the
22977dd7cddfSDavid du Colombiersheets are stacked face up.
22987dd7cddfSDavid du Colombier</dl>
22997dd7cddfSDavid du Colombier
23007dd7cddfSDavid du Colombier<dl>
23017dd7cddfSDavid du Colombier<dt><b><tt>Version</tt></b> (float)
23027dd7cddfSDavid du Colombier<dd>In the form <b>M.</b><em>mm</em>pp, where <b>M</b> is the major
23037dd7cddfSDavid du Colombierversion, <em>mm</em> the bjc driver's minor version, and pp the specific
23047dd7cddfSDavid du Colombierdriver minor version (that is, <b><tt>M.</tt></b><em>mm</em> will always be
23057dd7cddfSDavid du Colombierthe same for the <b><tt>bjc600</tt></b> and <b><tt>bjc800</tt></b>
23067dd7cddfSDavid du Colombierdrivers).
23077dd7cddfSDavid du Colombier</dl>
23087dd7cddfSDavid du Colombier
23097dd7cddfSDavid du Colombier<dl>
23107dd7cddfSDavid du Colombier<dt><b><tt>VersionString</tt></b> (string)
23117dd7cddfSDavid du Colombier<dd> A string showing the driver version and other indications.  At the
23127dd7cddfSDavid du Colombiermoment, things like "a" or "b" may follow the version to indicate alpha or
23137dd7cddfSDavid du Colombierbeta versions.  The date of the last change to this version is given in the
23147dd7cddfSDavid du Colombierform MM/DD/YY (no, it won't adapt to your locale).
23157dd7cddfSDavid du Colombier</dl>
23167dd7cddfSDavid du Colombier
2317*3ff48bf5SDavid du Colombier<h4><a name="BJC_HW_margins"></a>Hardware margins</h4>
23187dd7cddfSDavid du Colombier
23197dd7cddfSDavid du Colombier<p>
23207dd7cddfSDavid du ColombierThe BJC printers have top and bottom hardware margins of 3mm and 7.1mm
23217dd7cddfSDavid du Colombierrespectively (Canon says 7mm, but this is unusable because of the rounding
23227dd7cddfSDavid du Colombierof paper sizes to PostScript points).  The left margin is 3.4mm for A4 and
23237dd7cddfSDavid du Colombiersmaller paper sizes, 6.4mm for U.S. paper sizes, envelopes and cards.  It
23247dd7cddfSDavid du Colombieris 4.0mm for A3 paper on the BJC-800.
23257dd7cddfSDavid du Colombier
23267dd7cddfSDavid du Colombier<p>
23277dd7cddfSDavid du ColombierThe maximum printing width of a BJC-600 printer is 203mm.  The maximum
23287dd7cddfSDavid du Colombierprinting width of a BJC-800 printer is 289mm on A3 paper, 203mm on
23297dd7cddfSDavid du ColombierU.S. letter and ISO A4 paper.
23307dd7cddfSDavid du Colombier
2331*3ff48bf5SDavid du Colombier<h4><a name="BJC_PPD"></a>PostScript printer description (PPD) files</h4>
23327dd7cddfSDavid du Colombier
23337dd7cddfSDavid du Colombier<p>
23347dd7cddfSDavid du ColombierThe files <b><tt>CBJC600.PPD</tt></b> and <b><tt>CBJC800.PPD</tt></b> (whose
23357dd7cddfSDavid du Colombierlong names are, respectively, <b><tt>Canon_BubbleJetColor_600.ppd</tt></b>
23367dd7cddfSDavid du Colombierand <b><tt>Canon_BubbleJetColor_800.ppd</tt></b>) are PPD files to drive the
23377dd7cddfSDavid du Colombierfeatures of the <b><tt>bjc600</tt></b> and <b><tt>bjc800</tt></b> drivers.
23387dd7cddfSDavid du ColombierThey can be used, for example, on NextStep systems (presumably on OpenStep
23397dd7cddfSDavid du Colombiersystems too) and on Unix systems with Adobe's TranScript and
23407dd7cddfSDavid du Colombier<b><tt>pslpr</tt></b> (not tested).  The files are not complete at the
23417dd7cddfSDavid du Colombiermoment.  Please note that NextStep's printing interface does not
23427dd7cddfSDavid du Colombiercorrectly enforce constraints specified in these files (in UIConstraints
23437dd7cddfSDavid du Colombierdescriptions): you must force yourself to use valid combinations of
23447dd7cddfSDavid du Colombieroptions.
23457dd7cddfSDavid du Colombier
2346*3ff48bf5SDavid du Colombier<h4><a name="BJC_PPD_custom"></a>Customizing the PPD files</h4>
23477dd7cddfSDavid du Colombier
23487dd7cddfSDavid du Colombier<p>
23497dd7cddfSDavid du ColombierBy default the PPD files are set for U.S. letter size paper, and they use a
23507dd7cddfSDavid du Colombiernormalized transfer function.  If you choose to use A4 printing by default,
23517dd7cddfSDavid du Colombieryou must replace "<b><tt>Letter</tt></b>" with "<b><tt>A4</tt></b>" in
23527dd7cddfSDavid du Colombierthese (noncontiguous) lines:
23537dd7cddfSDavid du Colombier
23547dd7cddfSDavid du Colombier<blockquote>
23557dd7cddfSDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
23567dd7cddfSDavid du Colombier<b><tt>*DefaultPageSize: Letter<br></tt></b>
23577dd7cddfSDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
23587dd7cddfSDavid du Colombier<b><tt>*DefaultRegion: Letter<br></tt></b>
23597dd7cddfSDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
23607dd7cddfSDavid du Colombier<b><tt>*DefaultImageableArea: Letter</tt></b><br>
23617dd7cddfSDavid du Colombier&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[...]<br>
23627dd7cddfSDavid du Colombier</blockquote>
23637dd7cddfSDavid du Colombier
23647dd7cddfSDavid du Colombier<p>
23657dd7cddfSDavid du ColombierSome versions of Ghostscript have problems with normalized colors, which
23667dd7cddfSDavid du Colombiermakes them add magenta in gray levels.  If you experience this problem,
23677dd7cddfSDavid du Colombierin the PPD file replace the line
23687dd7cddfSDavid du Colombier
23697dd7cddfSDavid du Colombier<blockquote><b><tt>
23707dd7cddfSDavid du Colombier*DefaultTransfer: Normalized
23717dd7cddfSDavid du Colombier</tt></b></blockquote>
23727dd7cddfSDavid du Colombier
23737dd7cddfSDavid du Colombier<p>
23747dd7cddfSDavid du Colombierwith the alternate line
23757dd7cddfSDavid du Colombier
23767dd7cddfSDavid du Colombier<blockquote><b><tt>
23777dd7cddfSDavid du Colombier*DefaultTransfer: Null
23787dd7cddfSDavid du Colombier</tt></b></blockquote>
23797dd7cddfSDavid du Colombier
23807dd7cddfSDavid du Colombier<p>
23817dd7cddfSDavid du ColombierThe "thick media" option is implemented by choosing a value of 120 or 80
23827dd7cddfSDavid du Colombier(for thick and thin media respectively) for the <b><tt>MediaWeight</tt></b>
23837dd7cddfSDavid du Colombierfeature of the drivers.  If you ever change the threshold for thick media
23847dd7cddfSDavid du Colombierin the driver code, you may need to change the values in the PPD files too.
23857dd7cddfSDavid du Colombier
23867dd7cddfSDavid du Colombier<p>
23877dd7cddfSDavid du ColombierAll customization should be done using the "<b><tt>*Include:</tt></b>"
23887dd7cddfSDavid du Colombierfeature of PPD files so that your local changes will be retained if you
23897dd7cddfSDavid du Colombierupdate the PPD files.
23907dd7cddfSDavid du Colombier
2391*3ff48bf5SDavid du Colombier<h3><a name="BJC_bugs"></a>How to report problems</h3>
23927dd7cddfSDavid du Colombier
23937dd7cddfSDavid du Colombier<p>
2394*3ff48bf5SDavid du ColombierYves Arrouye no longer maintains this driver, and will not answer questions
2395*3ff48bf5SDavid du Colombierabout it.  If you are posting a question about it in a public form, please
2396*3ff48bf5SDavid du Colombierbe as descriptive as possible, and please send information that can be used
2397*3ff48bf5SDavid du Colombierto reproduce the problem.  Don't forget to say which driver you use, and in
2398*3ff48bf5SDavid du Colombierwhat version.  Version information can be found in the source code of the
2399*3ff48bf5SDavid du Colombierdriver or by issuing the following command in a shell:
24007dd7cddfSDavid du Colombier
24017dd7cddfSDavid du Colombier<blockquote><b><tt>
24027dd7cddfSDavid du Colombierecho&nbsp;"currentpagedevice&nbsp;/VersionString&nbsp;get&nbsp;=="&nbsp;|&nbsp;gs&nbsp;-q&nbsp;-sDEVICE=bjc600&nbsp;-
24037dd7cddfSDavid du Colombier</tt></b></blockquote>
24047dd7cddfSDavid du Colombier
2405*3ff48bf5SDavid du Colombier<h3><a name="BJC_acks"></a>Acknowledgements</h3>
24067dd7cddfSDavid du Colombier
24077dd7cddfSDavid du Colombier<p>
24087dd7cddfSDavid du ColombierI am particularly grateful to Yoshio Kuniyoshi &lt;<a
24097dd7cddfSDavid du Colombierhref="mailto:yoshio@nak.math.keio.ac.jp">yoshio@nak.math.keio.ac.jp</a>&gt;
24107dd7cddfSDavid du Colombierwithout whom I'd never make these drivers, and also to L. Peter Deutsch,
24117dd7cddfSDavid du Colombierwho answered all my (often silly) questions about Ghostscript's driver
24127dd7cddfSDavid du Colombierinterface.
24137dd7cddfSDavid du Colombier
24147dd7cddfSDavid du Colombier<p>
24157dd7cddfSDavid du ColombierThanks also to the people who volunteered to beta-test the v2.x BJC
24167dd7cddfSDavid du Colombierdrivers: David Gaudine
24177dd7cddfSDavid du Colombier&lt;<a href="mailto:david@donald.concordia.ca">david@donald.concordia.ca</a>&gt;,
24187dd7cddfSDavid du ColombierRobert M. Kenney &lt;<a href="mailto:rmk@unh.edu">rmk@unh.edu</a>&gt;,
24197dd7cddfSDavid du ColombierJames McPherson
24207dd7cddfSDavid du Colombier&lt;<a href="mailto:someone@erols.com">someone@erols.com</a>&gt;
24217dd7cddfSDavid du Colombierand Ian Thurlbeck
24227dd7cddfSDavid du Colombier&lt;<a href="mailto:ian@stams.strath.ac.uk">ian@stams.strath.ac.uk</a>&gt;
24237dd7cddfSDavid du Colombier(listed alphabetically) were particularly helpful by discovering bugs and
24247dd7cddfSDavid du Colombierhelping find out exact paper margins on printers I don't have access to.
24257dd7cddfSDavid du Colombier
24267dd7cddfSDavid du Colombier<p>
24277dd7cddfSDavid du ColombierAnd many thanks to Klaus-Gunther Hess
24287dd7cddfSDavid du Colombier&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt; for looking
24297dd7cddfSDavid du Colombierat the dithering code and devising a good CMYK dithering algorithm for the
24307dd7cddfSDavid du ColombierEpson Stylus Color, which I then adapted to the code of these drivers.
24317dd7cddfSDavid du Colombier
24327dd7cddfSDavid du Colombier<hr>
24337dd7cddfSDavid du Colombier
2434*3ff48bf5SDavid du Colombier<h2><a name="STC_epson_stylus"></a>Epson Stylus color printer (see also <b><tt>uniprint</tt></b>)</h2>
24357dd7cddfSDavid du Colombier
24367dd7cddfSDavid du Colombier<p>
24377dd7cddfSDavid du ColombierThis section was contributed by Gunther Hess
24387dd7cddfSDavid du Colombier&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;, who also wrote
24397dd7cddfSDavid du Colombier<b><tt>uniprint</tt></b>, a later set of drivers.  You should probably see
24407dd7cddfSDavid du Colombierthe section on <a href="#Uniprint"><b><tt>uniprint</tt></b></a> for whether
24417dd7cddfSDavid du Colombierit might be better for your uses than this driver.
24427dd7cddfSDavid du Colombier
2443*3ff48bf5SDavid du Colombier<h3><a name="STC_usage"></a>Usage</h3>
24447dd7cddfSDavid du Colombier
24457dd7cddfSDavid du Colombier<p>
24467dd7cddfSDavid du Colombier
24477dd7cddfSDavid du ColombierThis driver is selected with "<b><tt>-sDEVICE=stcolor</tt></b>", producing
24487dd7cddfSDavid du Colombieroutput for an Epson Stylus Color at 360dpi resolution by default.  But it
24497dd7cddfSDavid du Colombiercan do much more with this printer, and with significantly better quality,
24507dd7cddfSDavid du Colombierthan with the default mode; and it can also produce code for monochrome
24517dd7cddfSDavid du Colombierversions of the printer.  This can be achieved via either command-line
24527dd7cddfSDavid du Colombieroptions or Ghostscript input.  For convenience a PostScript file is
24537dd7cddfSDavid du Colombiersupplied for use as an initial input file.  Try the following command:
24547dd7cddfSDavid du Colombier
24557dd7cddfSDavid du Colombier<blockquote>
24567dd7cddfSDavid 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>
24577dd7cddfSDavid du Colombier</blockquote>
24587dd7cddfSDavid du Colombier
24597dd7cddfSDavid du Colombier<p>
24607dd7cddfSDavid du Colombierwhere <b>{Xdpi}</b> is one of 180, 360, or 720 and <b>{Ydpi}</b> is one of
24617dd7cddfSDavid du Colombier90, 180, 360, or 720.  The result should be significantly better.  You may
24627dd7cddfSDavid du Colombieruse <b><tt>stcolor.ps</tt></b> with other devices too, but I do not
24637dd7cddfSDavid du Colombierrecommend this, since it does nothing then. <b><tt>stcolor.ps</tt></b>
24647dd7cddfSDavid du Colombiershould be available with binary distributions and should reside in the same
24657dd7cddfSDavid du Colombierdirectory as other Ghostscript initialization files or in the same
24667dd7cddfSDavid du Colombierdirectory as the files to be printed.  Thus if Ghostscript is part of your
24677dd7cddfSDavid du Colombierprinter-spooler, you can insert
24687dd7cddfSDavid du Colombier
24697dd7cddfSDavid du Colombier<blockquote><b><tt>
24707dd7cddfSDavid du Colombier(stcolor.ps) findlibfile { pop run } if pop
24717dd7cddfSDavid du Colombier</tt></b></blockquote>
24727dd7cddfSDavid du Colombier
24737dd7cddfSDavid du Colombier<p>
24747dd7cddfSDavid du Colombierin files you want to use the improved algorithms.  You may want to adapt
24757dd7cddfSDavid du Colombier<b><tt>stcolor.ps</tt></b> file to your specific needs.  The methods and
24767dd7cddfSDavid du Colombieroptions for this are described here, but this description is restricted to
24777dd7cddfSDavid du ColombierGhostscript options, while their manipulation at the PostScript level is
24787dd7cddfSDavid du Colombierdocumented in the material on <a href="Language.htm">the relationship of
24797dd7cddfSDavid du ColombierGhostscript and PostScript</a> and in <b><tt>stcolor.ps</tt></b>.
24807dd7cddfSDavid du Colombier
2481*3ff48bf5SDavid du Colombier<h3><a name="STC_options"></a>Options</h3>
24827dd7cddfSDavid du Colombier
24837dd7cddfSDavid du Colombier<p>
24847dd7cddfSDavid du ColombierNow to explain the options (as written on my UNIX system).  The order is
24857dd7cddfSDavid du Colombiersomehow related to their use during the printing process:
24867dd7cddfSDavid du Colombier
24877dd7cddfSDavid du Colombier<dl>
24887dd7cddfSDavid du Colombier<dt><b><tt>-dUnidirectional</tt></b>
24897dd7cddfSDavid du Colombier<dd>Force unidirectional printing, recommended for transparencies
24907dd7cddfSDavid du Colombier</dl>
24917dd7cddfSDavid du Colombier
24927dd7cddfSDavid du Colombier<dl>
24937dd7cddfSDavid du Colombier<dt><b><tt>-dMicroweave</tt></b>
24947dd7cddfSDavid du Colombier<dd>Enable the printer's "microweave" feature; see
24957dd7cddfSDavid du Colombier"<a href="#What_is_weaving">What is weaving?</a>" below.
24967dd7cddfSDavid du Colombier</dl>
24977dd7cddfSDavid du Colombier
24987dd7cddfSDavid du Colombier<dl>
24997dd7cddfSDavid du Colombier<dt><b><tt>-dnoWeave</tt></b>
25007dd7cddfSDavid du Colombier<dd>Disable any Weaving (overrides <b><tt>-dMicroweave</tt></b>)
25017dd7cddfSDavid du Colombier</dl>
25027dd7cddfSDavid du Colombier
25037dd7cddfSDavid du Colombier<dl>
25047dd7cddfSDavid du Colombier<dt><b><tt>-dSoftweave</tt></b>
25057dd7cddfSDavid 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.
25067dd7cddfSDavid du Colombier</dl>
25077dd7cddfSDavid du Colombier
25087dd7cddfSDavid du Colombier<dl>
25097dd7cddfSDavid du Colombier<dt><b><tt>-sDithering=</tt></b><em>{name}</em>
25107dd7cddfSDavid du Colombier<dd>Select another dithering algorithm (name) from among
25117dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
25127dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>gscmyk</tt></b>
25137dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
25147dd7cddfSDavid du Colombier	<td>fast color output, CMYK process color model (default)
25157dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>gsmono</tt></b>
25167dd7cddfSDavid du Colombier	<td>&nbsp;
25177dd7cddfSDavid du Colombier	<td>fast monochrome output
25187dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>gsrgb</tt></b>
25197dd7cddfSDavid du Colombier	<td>&nbsp;
25207dd7cddfSDavid du Colombier	<td>fast color output, RGB process color model
25217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>fsmono</tt></b>
25227dd7cddfSDavid du Colombier	<td>&nbsp;
25237dd7cddfSDavid du Colombier	<td>Floyd-Steinberg, monochrome
25247dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>fsrgb</tt></b>
25257dd7cddfSDavid du Colombier	<td>&nbsp;
25267dd7cddfSDavid du Colombier	<td>Floyd-Steinberg, RGB process color model (almost identical to the <b><tt>cdj550</tt></b>/<b><tt>bjc</tt></b> algorithm)
25277dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>fsx4</tt></b>
25287dd7cddfSDavid du Colombier	<td>&nbsp;
25297dd7cddfSDavid 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)
25307dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>fscmyk</tt></b>
25317dd7cddfSDavid du Colombier	<td>&nbsp;
25327dd7cddfSDavid du Colombier	<td>Floyd-Steinberg, CMYK process color model and proper modifications for CMYK
25337dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>hscmyk</tt></b>
25347dd7cddfSDavid du Colombier	<td>&nbsp;
25357dd7cddfSDavid 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)
25367dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>fs2</tt></b>
25377dd7cddfSDavid du Colombier	<td>&nbsp;
25387dd7cddfSDavid du Colombier	<td>algorithm by Steven Singer (RGB) should be identical to <b><tt>escp2cfs2</tt></b>.
25397dd7cddfSDavid du Colombier</table></blockquote>
25407dd7cddfSDavid du Colombier</dl>
25417dd7cddfSDavid du Colombier
25427dd7cddfSDavid du Colombier<dl>
25437dd7cddfSDavid du Colombier<dt><b><tt>-dBitsPerPixel=</tt></b><em>{1...32}</em>
25447dd7cddfSDavid du Colombier<dd>number of bits used for pixel storage; the larger the value, the better
25457dd7cddfSDavid du Colombierthe quality -- at least in theory. In <b><tt>fsrgb</tt></b> one can gain
25467dd7cddfSDavid du Colombiersome speed by restricting to 24 bits rather than the default 30.
25477dd7cddfSDavid du Colombier</dl>
25487dd7cddfSDavid du Colombier
25497dd7cddfSDavid du Colombier<dl>
25507dd7cddfSDavid du Colombier<dt><b><tt>-dFlag0</tt></b>
25517dd7cddfSDavid du Colombier<dd>causes some algorithms to select a uniform initialisation rather than a
25527dd7cddfSDavid du Colombierset of random values.  May yield a sharper image impression at the cost of
25537dd7cddfSDavid du Colombierdithering artifacts.  (Applies to <b><tt>hscmyk</tt></b> and all fs modes,
25547dd7cddfSDavid du Colombierexcept for fs2, which always uses a constant initialization.)
25557dd7cddfSDavid du Colombier</dl>
25567dd7cddfSDavid du Colombier
25577dd7cddfSDavid du Colombier<dl>
25587dd7cddfSDavid du Colombier<dt><b><tt>-dFlag1</tt></b> ... <b><tt>-dFlag4</tt></b>
25597dd7cddfSDavid du Colombier<dd>Available for future algorithms.
25607dd7cddfSDavid du Colombier</dl>
25617dd7cddfSDavid du Colombier
25627dd7cddfSDavid du Colombier<dl>
25637dd7cddfSDavid du Colombier<dt><b><tt>-dColorAdjustMatrix='{</tt></b><em>three, nine, or sixteen
25647dd7cddfSDavid du Colombierfloating-point values</em><b><tt>}'</tt></b>
25657dd7cddfSDavid du Colombier<dd>This is a matrix to adjust the colors.  Values should be between -1.0
25667dd7cddfSDavid du Colombierand 1.0, and the number of values depends on the color model the selected
25677dd7cddfSDavid du Colombieralgorithm uses. In RGB and CMYK modes a matrix with 1.0 on the diagonal
25687dd7cddfSDavid du Colombierproduces no transformation.  This feature is really required, but I could
25697dd7cddfSDavid du Colombiernot identify a similar feature at the language level, so I implemented it,
25707dd7cddfSDavid du Colombierbut I don't know reasonable values yet.
25717dd7cddfSDavid du Colombier</dl>
25727dd7cddfSDavid du Colombier
25737dd7cddfSDavid du Colombier<dl>
25747dd7cddfSDavid du Colombier<dt><b><tt>-dCtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> or
25757dd7cddfSDavid du Colombier<dt><b><tt>-dMtransfer=</tt></b>..., <b><tt>-dY</tt></b>..., <b><tt>-dK</tt></b>... or
25767dd7cddfSDavid du Colombier<dt><b><tt>-dRtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b> or
25777dd7cddfSDavid du Colombier<dt><b><tt>-dG</tt></b>..., <b><tt>-dB</tt></b>... or
25787dd7cddfSDavid du Colombier<dt><b><tt>-dKtransfer='{</tt></b><em>float float ...</em><b><tt>}'</tt></b>
25797dd7cddfSDavid du Colombier<dd>Which you use depends on the algorithm, which may be either either
25807dd7cddfSDavid du ColombierCMYK, RGB or monochrome. The values are arrays of floats in the range from
25817dd7cddfSDavid du Colombier0 to 1.0, representing the visible color intensity for the device.  One may
25827dd7cddfSDavid du Colombierachieve similar effects with <b><tt>setcolortransfer</tt></b> at the
25837dd7cddfSDavid du Colombierlanguage level, but this takes more time and the underlying code for the
25847dd7cddfSDavid du Colombierdriver-specific parameters is still required.  The size of the arrays is
25857dd7cddfSDavid du Colombierarbitrary and the defaults are "<b><tt>{0.0&nbsp;1.0}</tt></b>", which is a
25867dd7cddfSDavid du Colombierlinear characteristic.  Most of the code in <b><tt>stcolor.ps</tt></b> are
25877dd7cddfSDavid du Colombierbetter transfer arrays.
25887dd7cddfSDavid du Colombier</dl>
25897dd7cddfSDavid du Colombier
25907dd7cddfSDavid du Colombier<dl>
25917dd7cddfSDavid du Colombier<dt><b><tt>-dKcoding='{</tt></b><em>float...</em><b><tt>}'</tt></b>
25927dd7cddfSDavid du Colombier<dt><b><tt>-dC</tt></b>..., <b><tt>-dM</tt></b>... etc.
25937dd7cddfSDavid du Colombier<dd>Arrays between 0.0 and 1.0, controlling the internal coding of the
25947dd7cddfSDavid du Colombiercolor values.  Clever use of these arrays may yield further enhancements,
25957dd7cddfSDavid du Colombierbut I have no experience yet.  (To be discontinued with version 2.x.)
25967dd7cddfSDavid du Colombier</dl>
25977dd7cddfSDavid du Colombier
25987dd7cddfSDavid du Colombier<dl>
25997dd7cddfSDavid du Colombier<dt><b><tt>-sModel=st800</tt></b>
26007dd7cddfSDavid du Colombier<dd>Causes output to be suitable for the monochrome Stylus 800 (no weaving,
26017dd7cddfSDavid du Colombierno color).
26027dd7cddfSDavid du Colombier</dl>
26037dd7cddfSDavid du Colombier
26047dd7cddfSDavid du Colombier<dl>
26057dd7cddfSDavid du Colombier<dt><b><tt>-sOutputCode=</tt></b><em>{name}</em>
26067dd7cddfSDavid du Colombier<dd>Can be either "<b><tt>plain</tt></b>", "<b><tt>runlength</tt></b>" or
26077dd7cddfSDavid du Colombier"<b><tt>deltarow</tt></b>" and changes the ESC/P2 coding technique
26087dd7cddfSDavid du Colombierused by the driver. The default is to use runlength encoding.
26097dd7cddfSDavid du Colombier"<b><tt>plain</tt></b>" selects uncompressed encoding and generates
26107dd7cddfSDavid du Colombierenormous amounts of data.
26117dd7cddfSDavid du Colombier</dl>
26127dd7cddfSDavid du Colombier
26137dd7cddfSDavid du Colombier<dl>
26147dd7cddfSDavid du Colombier<dt><b><tt>-descp_Band=</tt></b><em>1/8/15/24</em>
26157dd7cddfSDavid du Colombier<dd>Number of nozzles of scanlines used in printing, Useful only with
26167dd7cddfSDavid du Colombier<b><tt>-dnoWeave</tt></b>.  Larger Values yield smaller code, but this
26177dd7cddfSDavid du Colombierdoesn't increase the printing speed.
26187dd7cddfSDavid du Colombier</dl>
26197dd7cddfSDavid du Colombier
26207dd7cddfSDavid du Colombier<dl>
26217dd7cddfSDavid du Colombier<dt><b><tt>-descp_Width=</tt></b><em>N</em>
26227dd7cddfSDavid du Colombier<dd>Number of pixels Printed in each scan Line.  (Useful only when tuning
26237dd7cddfSDavid du Colombiermargins; see below)
26247dd7cddfSDavid du Colombier</dl>
26257dd7cddfSDavid du Colombier
26267dd7cddfSDavid du Colombier<dl>
26277dd7cddfSDavid du Colombier<dt><b><tt>-descp_Height=</tt></b><em>pixels</em>
26287dd7cddfSDavid du Colombier<dd>Length of the entire page in pixels.  (Parameter of
26297dd7cddfSDavid du Colombier"<b><tt>ESC(C</tt></b>" in default initialization.)
26307dd7cddfSDavid du Colombier</dl>
26317dd7cddfSDavid du Colombier
26327dd7cddfSDavid du Colombier<dl>
26337dd7cddfSDavid du Colombier<dt><b><tt>-descp_Top=</tt></b><em>scan lines</em>
26347dd7cddfSDavid du Colombier<dd>Top margin in scan lines.  (First parameter of "<b><tt>ESC(c</tt></b>"
26357dd7cddfSDavid du Colombierin default initialization.)
26367dd7cddfSDavid du Colombier</dl>
26377dd7cddfSDavid du Colombier
26387dd7cddfSDavid du Colombier<dl>
26397dd7cddfSDavid du Colombier<dt><b><tt>-descp_Bottom=</tt></b><em>scan lines</em>
26407dd7cddfSDavid du Colombier<dd>Bottom margin in scan lines.  (Second parameter of
26417dd7cddfSDavid du Colombier"<b><tt>ESC(c</tt></b>" in default initialization.)
26427dd7cddfSDavid du Colombier</dl>
26437dd7cddfSDavid du Colombier
26447dd7cddfSDavid du Colombier<dl>
26457dd7cddfSDavid du Colombier<dt><b><tt>-sescp_Init=</tt></b>"<em>string</em>"
26467dd7cddfSDavid du Colombier<dd>Override for the initialization sequence.  (Must set graphics mode 1
26477dd7cddfSDavid du Colombierand units.)
26487dd7cddfSDavid du Colombier</dl>
26497dd7cddfSDavid du Colombier
26507dd7cddfSDavid du Colombier<dl>
26517dd7cddfSDavid du Colombier<dt><b><tt>-sescp_Release=</tt></b>"<em>string</em>"
26527dd7cddfSDavid du Colombier<dd>Overrides the release sequence, "<b><tt>ESC&nbsp;@&nbsp;FF</tt></b>" by
26537dd7cddfSDavid du Colombierdefault.
26547dd7cddfSDavid du Colombier</dl>
26557dd7cddfSDavid du Colombier
26567dd7cddfSDavid du Colombier<p>
26577dd7cddfSDavid du ColombierESC/P2 allows any resolutions to be valid in theory, but only
26587dd7cddfSDavid du Colombier<b><tt>-r360x360</tt></b> (the default) and <b><tt>-r720x720</tt></b> (not
26597dd7cddfSDavid du Colombieron STC-IIs ? and st800) are known to work with most printers.
26607dd7cddfSDavid du Colombier
26617dd7cddfSDavid du Colombier<p>
26627dd7cddfSDavid du Colombier
26637dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
26647dd7cddfSDavid du Colombier<tr><th colspan=7 bgcolor="#CCCC00"><hr><font size="+1">Valid option combinations<br>Stylus I &amp; Pro-Series only</font><hr>
26657dd7cddfSDavid du Colombier<tr valign=bottom>
26667dd7cddfSDavid du Colombier	<th valign=bottom align=left>Resolution
26677dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
26687dd7cddfSDavid du Colombier	<th valign=bottom align=left><b><tt>escp_Band</tt></b>
26697dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
26707dd7cddfSDavid du Colombier	<th valign=bottom align=left>Weave usable
26717dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
26727dd7cddfSDavid du Colombier	<th valign=bottom align=left><b><tt>escp_Band</tt></b> &amp;<br>number of passes
26737dd7cddfSDavid du Colombier<tr>	<td colspan=7><hr>
26747dd7cddfSDavid du Colombier<tr valign=top>	<td>180x90
26757dd7cddfSDavid du Colombier	<td>&nbsp;
26767dd7cddfSDavid du Colombier	<td>15
26777dd7cddfSDavid du Colombier	<td>&nbsp;
26787dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>
26797dd7cddfSDavid du Colombier	<td>&nbsp;
26807dd7cddfSDavid du Colombier	<td>&nbsp;
26817dd7cddfSDavid du Colombier<tr valign=top>	<td>180x180
26827dd7cddfSDavid du Colombier	<td>&nbsp;
26837dd7cddfSDavid du Colombier	<td>1 , 8, 24
26847dd7cddfSDavid du Colombier	<td>&nbsp;
26857dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
26867dd7cddfSDavid du Colombier	<td>&nbsp;
26877dd7cddfSDavid du Colombier	<td>15/2 <b><tt>SoftWeave</tt></b>
26887dd7cddfSDavid du Colombier<tr valign=top>	<td>180x360
26897dd7cddfSDavid du Colombier	<td>&nbsp;
26907dd7cddfSDavid du Colombier	<td>&nbsp;
26917dd7cddfSDavid du Colombier	<td>&nbsp;
26927dd7cddfSDavid du Colombier	<td>&nbsp;
26937dd7cddfSDavid du Colombier	<td>&nbsp;
26947dd7cddfSDavid du Colombier	<td>15/4 <b><tt>SoftWeave</tt></b>
26957dd7cddfSDavid du Colombier<tr valign=top>	<td>180x720
26967dd7cddfSDavid du Colombier	<td>&nbsp;
26977dd7cddfSDavid du Colombier	<td>&nbsp;
26987dd7cddfSDavid du Colombier	<td>&nbsp;
26997dd7cddfSDavid du Colombier	<td>&nbsp;
27007dd7cddfSDavid du Colombier	<td>&nbsp;
27017dd7cddfSDavid du Colombier	<td>15/8 <b><tt>SoftWeave</tt></b>
27027dd7cddfSDavid du Colombier<tr valign=top>	<td>360x90
27037dd7cddfSDavid du Colombier	<td>&nbsp;
27047dd7cddfSDavid du Colombier	<td>15
27057dd7cddfSDavid du Colombier	<td>&nbsp;
27067dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>
27077dd7cddfSDavid du Colombier	<td>&nbsp;
27087dd7cddfSDavid du Colombier	<td>&nbsp;
27097dd7cddfSDavid du Colombier<tr valign=top>	<td>360x180
27107dd7cddfSDavid du Colombier	<td>&nbsp;
27117dd7cddfSDavid du Colombier	<td>1, 8, 24
27127dd7cddfSDavid du Colombier	<td>&nbsp;
27137dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
27147dd7cddfSDavid du Colombier	<td>&nbsp;
27157dd7cddfSDavid du Colombier	<td>15/2 <b><tt>SoftWeave</tt></b>
27167dd7cddfSDavid du Colombier<tr valign=top>	<td>360x360
27177dd7cddfSDavid du Colombier	<td>&nbsp;
27187dd7cddfSDavid du Colombier	<td>1, 8, 24
27197dd7cddfSDavid du Colombier	<td>&nbsp;
27207dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
27217dd7cddfSDavid du Colombier	<td>&nbsp;
27227dd7cddfSDavid du Colombier	<td>15/4 <b><tt>SoftWeave</tt></b>
27237dd7cddfSDavid du Colombier<tr valign=top>	<td>360x720
27247dd7cddfSDavid du Colombier	<td>&nbsp;
27257dd7cddfSDavid du Colombier	<td>&nbsp;
27267dd7cddfSDavid du Colombier	<td>&nbsp;
27277dd7cddfSDavid du Colombier	<td>&nbsp;
27287dd7cddfSDavid du Colombier	<td>&nbsp;
27297dd7cddfSDavid du Colombier	<td>15/8 <b><tt>SoftWeave</tt></b>
27307dd7cddfSDavid du Colombier<tr valign=top>	<td>720x90
27317dd7cddfSDavid du Colombier	<td>&nbsp;
27327dd7cddfSDavid du Colombier	<td>15
27337dd7cddfSDavid du Colombier	<td>&nbsp;
27347dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>
27357dd7cddfSDavid du Colombier	<td>&nbsp;
27367dd7cddfSDavid du Colombier	<td>&nbsp;
27377dd7cddfSDavid du Colombier<tr valign=top>	<td>720x180
27387dd7cddfSDavid du Colombier	<td>&nbsp;
27397dd7cddfSDavid du Colombier	<td>&nbsp;
27407dd7cddfSDavid du Colombier	<td>&nbsp;
27417dd7cddfSDavid du Colombier	<td>&nbsp;
27427dd7cddfSDavid du Colombier	<td>&nbsp;
27437dd7cddfSDavid du Colombier	<td>15/2 <b><tt>SoftWeave</tt></b>
27447dd7cddfSDavid du Colombier<tr valign=top>	<td>720x360
27457dd7cddfSDavid du Colombier	<td>&nbsp;
27467dd7cddfSDavid du Colombier	<td>&nbsp;
27477dd7cddfSDavid du Colombier	<td>&nbsp;
27487dd7cddfSDavid du Colombier	<td>&nbsp;
27497dd7cddfSDavid du Colombier	<td>&nbsp;
27507dd7cddfSDavid du Colombier	<td>15/4 <b><tt>SoftWeave</tt></b>
27517dd7cddfSDavid du Colombier<tr valign=top>	<td>720x720
27527dd7cddfSDavid du Colombier	<td>&nbsp;
27537dd7cddfSDavid du Colombier	<td>1
27547dd7cddfSDavid du Colombier	<td>&nbsp;
27557dd7cddfSDavid du Colombier	<td><b><tt>noWeave</tt></b>, <b><tt>Microweave</tt></b>
27567dd7cddfSDavid du Colombier	<td>&nbsp;
27577dd7cddfSDavid du Colombier	<td>15/8 <b><tt>SoftWeave</tt></b>
27587dd7cddfSDavid du Colombier</table></blockquote>
27597dd7cddfSDavid du Colombier
27607dd7cddfSDavid du Colombier<blockquote>
27617dd7cddfSDavid du Colombier<b>Beware:</b> there are only few validity checks for parameters.  A good
27627dd7cddfSDavid du Colombierexample is <b><tt>escp_Band</tt></b>: if you set this, the driver uses your
27637dd7cddfSDavid du Colombiervalue even if the value is not supported by the printer.  <b>You asked for
27647dd7cddfSDavid du Colombierit and you got it!</b>
27657dd7cddfSDavid du Colombier</blockquote>
27667dd7cddfSDavid du Colombier
2767*3ff48bf5SDavid du Colombier<h3><a name="STC_FAQ"></a>Application note and FAQ</h3>
27687dd7cddfSDavid du Colombier
27697dd7cddfSDavid du Colombier<p>
27707dd7cddfSDavid du ColombierQuite a bunch of parameters.  Hopefully you never need any of them, besides
27717dd7cddfSDavid du Colombierfeeding <b><tt>stcolor.ps</tt></b> to Ghostscript in front of your input.
27727dd7cddfSDavid du Colombier
27737dd7cddfSDavid du Colombier<p>
27747dd7cddfSDavid du ColombierAfter answering some questions over fifty times I prepared a FAQ.  Here is
27757dd7cddfSDavid du Colombierversion 1.3 of the FAQ, as of <b><tt>stcolor</tt></b> version 1.20 (for
27767dd7cddfSDavid du ColombierGhostscript 3.50).
27777dd7cddfSDavid du Colombier
2778*3ff48bf5SDavid du Colombier<h4><a name="STC_FAQ_A3"></a>Support for A3 paper</h4>
27797dd7cddfSDavid du Colombier
27807dd7cddfSDavid du Colombier<p>
27817dd7cddfSDavid du ColombierYes, this driver supports the A3-size printer: merely set the required
27827dd7cddfSDavid du Colombierpagesize and margins.  A simple way to do this is to specify the
27837dd7cddfSDavid du Colombiercommand-line switch "<b><tt>-sPAPERSIZE=a3</tt></b>" or include the
27847dd7cddfSDavid du Colombierprocedure call "<b><tt>a3</tt></b>" in the PostScript prolog section.  To
27857dd7cddfSDavid du Colombieroptimize the printable area or set the proper margins, see the next
27867dd7cddfSDavid du Colombierparagraph.
27877dd7cddfSDavid du Colombier
2788*3ff48bf5SDavid du Colombier<h4><a name="STC_FAQ_margins"></a>Margins, PageSize</h4>
27897dd7cddfSDavid du Colombier
27907dd7cddfSDavid du Colombier<p>
27917dd7cddfSDavid du ColombierI refuse to add code to <b><tt>stcolor</tt></b> that tries to guess the
27927dd7cddfSDavid du Colombierproper margins or page size, because I found that such guessing is usually
27937dd7cddfSDavid du Colombierwrong and needs correction in either the source or the parameters.  You can
27947dd7cddfSDavid du Colombiermodify <b><tt>stcolor.ps</tt></b> to do that, however.  After the line
27957dd7cddfSDavid du Colombier
27967dd7cddfSDavid du Colombier<blockquote><b><tt>
27977dd7cddfSDavid du Colombiermark % prepare stack for "putdeviceprops"
27987dd7cddfSDavid du Colombier</tt></b></blockquote>
27997dd7cddfSDavid du Colombier
28007dd7cddfSDavid du Colombier<p>
28017dd7cddfSDavid du Colombierinsert these lines, which define page size and margins in points:
28027dd7cddfSDavid du Colombier
2803*3ff48bf5SDavid du Colombier<blockquote>
28047dd7cddfSDavid du Colombier<pre>/.HWMargins [9.0 39.96 12.6 9.0]     % Left, bottom, right, top (1/72")
28057dd7cddfSDavid du Colombier/PageSize   [597.6 842.4]            % Paper, including margins (1/72")
28067dd7cddfSDavid du Colombier/Margins [ % neg. Offset to Left/Top in Pixels
28077dd7cddfSDavid du Colombier   4 index 0 get STCold /HWResolution get 0 get mul 72 div neg
28087dd7cddfSDavid du Colombier   5 index 3 get STCold /HWResolution get 1 get mul 72 div neg
2809*3ff48bf5SDavid du Colombier]</pre></blockquote>
28107dd7cddfSDavid du Colombier
28117dd7cddfSDavid du Colombier<p>
28127dd7cddfSDavid du ColombierFeel free to change the values of <b><tt>.HWMargins</tt></b> and
28137dd7cddfSDavid du Colombier<b><tt>PageSize</tt></b> to match your needs; the values given are the
28147dd7cddfSDavid du Colombierdefaults when the driver is compiled with "<b><tt>-DA4</tt></b>".  This
28157dd7cddfSDavid du Colombieroption or its omission may cause trouble: the Stylus Color can print up to
28167dd7cddfSDavid du Colombierexactly 8 inches (2880 pixels) at 360dpi.  The remaining paper is the
28177dd7cddfSDavid du Colombiermargin, where the left margin varies only slightly with the paper size,
28187dd7cddfSDavid du Colombierwhile the right margin is significantly increased for wider paper, such as
28197dd7cddfSDavid du ColombierU.S. letter size.
28207dd7cddfSDavid du Colombier
28217dd7cddfSDavid du Colombier<p>
28227dd7cddfSDavid du Colombier<b>Note</b> that if you are using an ISO paper size with a version of
28237dd7cddfSDavid du Colombier<b><tt>stcolor</tt></b> after 1.20 and compiled without
28247dd7cddfSDavid du Colombier"<b><tt>-DA4</tt></b>", then the default margin is too large, and you need
28257dd7cddfSDavid du Colombierto add the proper "<b><tt>.HWMargins</tt></b>" to the command line or to
28267dd7cddfSDavid du Colombier<b><tt>stcolor.ps</tt></b>.
28277dd7cddfSDavid du Colombier
2828*3ff48bf5SDavid du Colombier<h4><a name="STC_FAQ_II_IIS_1500"></a>Stylus Color II / IIs and 1500</h4>
28297dd7cddfSDavid du Colombier
28307dd7cddfSDavid du Colombier<p>
28317dd7cddfSDavid du ColombierFirst the good news: the driver can print on the Stylus Color II.
28327dd7cddfSDavid du ColombierNow the bad news:
28337dd7cddfSDavid du Colombier<ul>
28347dd7cddfSDavid du Colombier<li>According to Epson support the driver "abuses" the color
28357dd7cddfSDavid du Colombiercapabilities.  (See "Future Plans" for details.)
28367dd7cddfSDavid du Colombier<li>You need some parameters on the command line (or in
28377dd7cddfSDavid du Colombier<b><tt>stcolor.ps</tt></b>).
28387dd7cddfSDavid du Colombier<li>I doubted that it would be usable with the Stylus Color IIs, but
28397dd7cddfSDavid du Colombierit <b>is</b> usable and suffers from mixing problems!
28407dd7cddfSDavid du Colombier</ul>
28417dd7cddfSDavid du Colombier
28427dd7cddfSDavid du Colombier<p>
28437dd7cddfSDavid du Colombier
28447dd7cddfSDavid du ColombierTo make things work, you <b>MUST</b> disable the driver's internal
28457dd7cddfSDavid du Colombierweaving (<b><tt>Softweave</tt></b>), in one of these two ways:
28467dd7cddfSDavid du Colombier
28477dd7cddfSDavid du Colombier<blockquote>
28487dd7cddfSDavid du Colombier<b><tt>gs -dMicroweave</tt></b> ...<br>
28497dd7cddfSDavid du Colombier<b><tt>gs -dnoWeave -descp_Band=1</tt></b> ...
28507dd7cddfSDavid du Colombier</blockquote>
28517dd7cddfSDavid du Colombier
28527dd7cddfSDavid du Colombier<p>
28537dd7cddfSDavid du ColombierVersion 1.90, current as of Ghostscript 5.10, fixes this bug by new default
28547dd7cddfSDavid du Colombierbehaviour.  I experienced significantly increased printing speed with the
28557dd7cddfSDavid du Colombiersecond variant on the old Stylus Color, when printing mostly monochrome
28567dd7cddfSDavid du Colombierdata.
28577dd7cddfSDavid du Colombier
2858*3ff48bf5SDavid du Colombier<h3><a name="STC_recommendations"></a>Recommendations</h3>
28597dd7cddfSDavid du Colombier
28607dd7cddfSDavid du Colombier<p>
28617dd7cddfSDavid du ColombierThe next section is a contribution from Jason Patterson &lt;jason@reflections.com.au&gt;
28627dd7cddfSDavid du Colombierwho evaluated a previous version (1.17).  Ghostscript was invoked as follows:
28637dd7cddfSDavid du Colombier
28647dd7cddfSDavid du Colombier<blockquote><dl compact>
28657dd7cddfSDavid du Colombier<dt><b><tt>gs</tt></b>
28667dd7cddfSDavid du Colombier<dd><b><tt>-sDEVICE=stcolor -r720x720
28677dd7cddfSDavid du Colombier-sDithering=</tt></b>... <b><tt>-sOutputFile=escp.out stcolor.ps
28687dd7cddfSDavid du Colombierwhatsoever.ps</tt></b>
28697dd7cddfSDavid du Colombier
28707dd7cddfSDavid du Colombier</dl></blockquote>
28717dd7cddfSDavid du Colombier
28727dd7cddfSDavid du Colombier<p>
28737dd7cddfSDavid du Colombierwhere "..." is the name of the desired algorithm.
28747dd7cddfSDavid du Colombier<b><tt>stcolor.ps</tt></b> was omitted for the gs-algorithms
28757dd7cddfSDavid du Colombier(<b><tt>gsmono</tt></b>, <b><tt>gsrgb</tt></b> and <b><tt>gscmyk</tt></b>),
28767dd7cddfSDavid du Colombierfor which it is useless and would not allow the selection of
28777dd7cddfSDavid du Colombier"<b><tt>gscmyk</tt></b>".
28787dd7cddfSDavid du Colombier
2879*3ff48bf5SDavid du Colombier<h4><a name="STC_dither_experiment"></a>Color dithering experiments with
2880*3ff48bf5SDavid du Colombier<b><tt>gdevstc</tt></b> 1.21</h4>
28817dd7cddfSDavid du Colombier
28827dd7cddfSDavid du Colombier<p>
28837dd7cddfSDavid du ColombierHere are data about the EPSON Stylus Color driver's different dithering
28847dd7cddfSDavid du Colombiermethods, based on a little experiment using four good quality scanned
28857dd7cddfSDavid du Colombierimages of quite varied nature, to begin with, a summary of the results of
28867dd7cddfSDavid du Colombierthe four experiments.  <b>Sanity note:</b> the results here are from only
28877dd7cddfSDavid du Colombierfour images and a total of 24 printouts (eight on 720dpi paper, sixteen on
28887dd7cddfSDavid du Colombierplain paper).  Your results will almost certainly vary, and your standards
28897dd7cddfSDavid du Colombiermight not be the same as mine, so use these results only as a guide, not as
28907dd7cddfSDavid du Colombiera formal evaluation.
28917dd7cddfSDavid du Colombier
28927dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
28937dd7cddfSDavid du Colombier<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Quality of output by method</font><hr>
28947dd7cddfSDavid du Colombier<tr valign=bottom>
28957dd7cddfSDavid du Colombier	<th align=left>
28967dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
28977dd7cddfSDavid du Colombier	<th align=left>
28987dd7cddfSDavid du Colombier<tr>	<td colspan=3><hr>
28997dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>gsmono</tt></b>
29007dd7cddfSDavid du Colombier<td>&nbsp;&nbsp;&nbsp;&nbsp;
29017dd7cddfSDavid du Colombier<td>Pretty much what you'd expect from a mono ordered pattern.
29027dd7cddfSDavid du ColombierLooks like what a lot of mono laser printers produce.
29037dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>fsmono</tt></b>
29047dd7cddfSDavid du Colombier<td>&nbsp;
29057dd7cddfSDavid du Colombier<td>Excellent for monochrome.
29067dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>gscmyk</tt></b>
29077dd7cddfSDavid du Colombier<td>&nbsp;
29087dd7cddfSDavid du Colombier<td>Not very good, but expected from an ordered pattern.
29097dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>gsrgb</tt></b>
29107dd7cddfSDavid du Colombier<td>&nbsp;
29117dd7cddfSDavid du Colombier<td>A little better than <b><tt>gscmyk</tt></b>. More consistent
29127dd7cddfSDavid du Colombierlooking.
29137dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>fs2</tt></b>
29147dd7cddfSDavid du Colombier<td>&nbsp;
29157dd7cddfSDavid du Colombier<td>Good, but not quite as good as <b><tt>fsrgb</tt></b>.  Gets the
29167dd7cddfSDavid du Colombierbrightness wrong: too light at 720dpi, too dark at 360dpi.
29177dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>fsrgb</tt></b>
29187dd7cddfSDavid du Colombier<td>&nbsp;
29197dd7cddfSDavid du Colombier<td>Very good, but a little too dark and has a slight blue tint.
29207dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>hscmyk</tt></b>
29217dd7cddfSDavid du Colombier<td>&nbsp;
29227dd7cddfSDavid du Colombier<td>Excellent. Slightly better than <b><tt>fsrgb</tt></b> and
29237dd7cddfSDavid du Colombier<b><tt>fs2</tt></b>. Better than <b><tt>fscmyk</tt></b> on
29247dd7cddfSDavid du Colombiersome images, almost the same on most.
29257dd7cddfSDavid du Colombier<tr>	<td valign=top><b><tt>fscmyk</tt></b>
29267dd7cddfSDavid du Colombier<td>&nbsp;
29277dd7cddfSDavid du Colombier<td>Best. Very, very slightly better than <b><tt>hscmyk</tt></b>.
29287dd7cddfSDavid du ColombierOn some images nearly as good as the EPSON demos done with
29297dd7cddfSDavid du Colombierthe MS Windows driver.
29307dd7cddfSDavid du Colombier</table></blockquote>
29317dd7cddfSDavid du Colombier
29327dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
29337dd7cddfSDavid du Colombier<tr><th colspan=4 bgcolor="#CCCC00"><hr><font size="+1">Overall visual quality (1-10), best to worst</font><hr>
29347dd7cddfSDavid du Colombier<tr valign=top>	<th colspan=4 align=left>Monochrome
29357dd7cddfSDavid du Colombier<tr>	<td>&nbsp;&nbsp;&nbsp;&nbsp;
29367dd7cddfSDavid du Colombier	<td><b><tt>fsmono</tt></b>
29377dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
29387dd7cddfSDavid du Colombier	<td><b><tt>******************</tt></b>
29397dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29407dd7cddfSDavid du Colombier	<td><b><tt>gsmono</tt></b>
29417dd7cddfSDavid du Colombier	<td>&nbsp;
29427dd7cddfSDavid du Colombier	<td><b><tt>**********</tt></b>
29437dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29447dd7cddfSDavid du Colombier	<td>&nbsp;
29457dd7cddfSDavid du Colombier	<td>&nbsp;
29467dd7cddfSDavid 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>
29477dd7cddfSDavid du Colombier<tr>	<td colspan=4><hr>
29487dd7cddfSDavid du Colombier<tr valign=top>	<th colspan=4 align=left>Colour
29497dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29507dd7cddfSDavid du Colombier	<td><b><tt>fscmyk</tt></b>
29517dd7cddfSDavid du Colombier	<td>&nbsp;
29527dd7cddfSDavid du Colombier	<td><b><tt>*******************</tt></b>
29537dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29547dd7cddfSDavid du Colombier	<td><b><tt>hscmyk</tt></b>
29557dd7cddfSDavid du Colombier	<td>&nbsp;
29567dd7cddfSDavid du Colombier	<td><b><tt>*******************</tt></b>
29577dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29587dd7cddfSDavid du Colombier	<td><b><tt>fsrgb</tt></b>
29597dd7cddfSDavid du Colombier	<td>&nbsp;
29607dd7cddfSDavid du Colombier	<td><b><tt>******************</tt></b>
29617dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29627dd7cddfSDavid du Colombier	<td><b><tt>fs2</tt></b>
29637dd7cddfSDavid du Colombier	<td>&nbsp;
29647dd7cddfSDavid du Colombier	<td><b><tt>*****************</tt></b>
29657dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29667dd7cddfSDavid du Colombier	<td><b><tt>gsrgb</tt></b>
29677dd7cddfSDavid du Colombier	<td>&nbsp;
29687dd7cddfSDavid du Colombier	<td><b><tt>**********</tt></b>
29697dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29707dd7cddfSDavid du Colombier	<td><b><tt>gscmyk</tt></b>
29717dd7cddfSDavid du Colombier	<td>&nbsp;
29727dd7cddfSDavid du Colombier	<td><b><tt>*********</tt></b>
29737dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
29747dd7cddfSDavid du Colombier	<td>&nbsp;
29757dd7cddfSDavid du Colombier	<td>&nbsp;
29767dd7cddfSDavid 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>
29777dd7cddfSDavid du Colombier</table></blockquote>
29787dd7cddfSDavid du Colombier
2979*3ff48bf5SDavid du Colombier<h3><a name="STC_color_transform"></a>Color transformation</h3>
29807dd7cddfSDavid du Colombier
29817dd7cddfSDavid du Colombier<p>
29827dd7cddfSDavid du ColombierIn the initial version of the driver distributed with Ghostscript 3.33, the
29837dd7cddfSDavid du Colombierparameter "<b><tt>SpotSize</tt></b>" was the only way to manipulate the
29847dd7cddfSDavid du Colombiercolors at the driver level.  According to the parameters enumerated above,
29857dd7cddfSDavid du Colombierthis has changed significantly with version 1.16 and above as a result an
29867dd7cddfSDavid du Colombierongoing discussion about dithering algorithms and "false color" on the
29877dd7cddfSDavid du ColombierEpson Stylus Color.  This initiated the transformation of the
29887dd7cddfSDavid du Colombier<b><tt>stcolor</tt></b> driver into a framework for different dithering
29897dd7cddfSDavid du Colombieralgorithms, providing a generalized interface to the internal Ghostscript
29907dd7cddfSDavid du Colombiercolor models and the other data structures related to Ghostscript drivers.
29917dd7cddfSDavid du Colombier
29927dd7cddfSDavid du Colombier<p>
29937dd7cddfSDavid du ColombierThe main thing such a framework should be able to do is to deliver the
29947dd7cddfSDavid du Colombiervalues the dithering algorithm needs; and since this directly influences
29957dd7cddfSDavid du Colombierthe optical image impression, this transformation should be adjustable
29967dd7cddfSDavid du Colombierwithout the need for recompilation and relinking.  In general the process
29977dd7cddfSDavid du Colombiercan be described as follows:
29987dd7cddfSDavid du Colombier
29997dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
30007dd7cddfSDavid du Colombier<tr valign=top>	<td colspan=3><b><tt>ColorAdjustMatrix</tt></b>
30017dd7cddfSDavid du Colombier	<td align=center>Coding
30027dd7cddfSDavid du Colombier	<td colspan=3>&nbsp;
30037dd7cddfSDavid du Colombier	<td align=center>Transfer
30047dd7cddfSDavid du Colombier	<td colspan=3>&nbsp;
30057dd7cddfSDavid du Colombier<tr valign=top>	<td>|
30067dd7cddfSDavid du Colombier	<td align=center>Ghostscript color
30077dd7cddfSDavid du Colombier	<td>|
30087dd7cddfSDavid du Colombier	<td align=center>=&gt;
30097dd7cddfSDavid du Colombier	<td>|
30107dd7cddfSDavid du Colombier	<td align=center>Ghostscript raster
30117dd7cddfSDavid du Colombier	<td>|
30127dd7cddfSDavid du Colombier	<td align=center>=&gt;
30137dd7cddfSDavid du Colombier	<td>|
30147dd7cddfSDavid du Colombier	<td align=center>Dithering data
30157dd7cddfSDavid du Colombier	<td>|
30167dd7cddfSDavid du Colombier<tr valign=top>	<td>|
30177dd7cddfSDavid du Colombier	<td>&nbsp;
30187dd7cddfSDavid du Colombier	<td>|
30197dd7cddfSDavid du Colombier	<td>&nbsp;
30207dd7cddfSDavid du Colombier	<td>|
30217dd7cddfSDavid du Colombier	<td align=center>1/2/4/8/16/32-bit
30227dd7cddfSDavid du Colombier	<td>|
30237dd7cddfSDavid du Colombier	<td>&nbsp;
30247dd7cddfSDavid du Colombier	<td>|
30257dd7cddfSDavid du Colombier	<td>&nbsp;
30267dd7cddfSDavid du Colombier	<td>|
30277dd7cddfSDavid du Colombier<tr valign=top>	<td>|
30287dd7cddfSDavid du Colombier	<td align=center>1/3/4 16-bit values
30297dd7cddfSDavid du Colombier	<td>|
30307dd7cddfSDavid du Colombier	<td>&nbsp;
30317dd7cddfSDavid du Colombier	<td>|
30327dd7cddfSDavid du Colombier	<td align=center>1/3/4 values
30337dd7cddfSDavid du Colombier	<td>|
30347dd7cddfSDavid du Colombier	<td>&nbsp;
30357dd7cddfSDavid du Colombier	<td>|
30367dd7cddfSDavid du Colombier	<td align=center>(arbitrary type)
30377dd7cddfSDavid du Colombier	<td>|
30387dd7cddfSDavid du Colombier</table></blockquote>
30397dd7cddfSDavid du Colombier
30407dd7cddfSDavid du Colombier<p>
30417dd7cddfSDavid du ColombierDue to the limitations on raster storage, information is lost in the first
30427dd7cddfSDavid du Colombiertransformation step, except for the 16-bit monochrome mode. So any color
30437dd7cddfSDavid du Colombieradjustment should take place before this step and this is where the optional
30447dd7cddfSDavid du Colombier<b><tt>ColorAdjustMatrix</tt></b> works.
30457dd7cddfSDavid du Colombier
30467dd7cddfSDavid du Colombier<p>
30477dd7cddfSDavid du ColombierThe first transformation step, called "coding", is controlled by the
30487dd7cddfSDavid du Colombier<b><tt>?coding</tt></b> arrays. The decoding process expands the range of
30497dd7cddfSDavid du Colombiervalues expontentially to a larger range than that provided by the initial
30507dd7cddfSDavid du ColombierGhostscript color model, and is therefore a reasonable place to make
30517dd7cddfSDavid du Colombierdevice- or algorithm-specific adjustments. This is where the
30527dd7cddfSDavid du Colombier<b><tt>?transfer</tt></b> arrays are used. Array access might be not the
30537dd7cddfSDavid du Colombierfastest method, but its generality is superior, so this step is always
30547dd7cddfSDavid du Colombierbased upon internally algorithm-specific array access. If 8 bits are stored
30557dd7cddfSDavid du Colombierper color component and if the algorithm uses bytes too, the second
30567dd7cddfSDavid du Colombiertransformation is included within the first, which saves significant
30577dd7cddfSDavid du Colombiercomputation time when printing the data.
30587dd7cddfSDavid du Colombier
3059*3ff48bf5SDavid du Colombier<h3><a name="STC_CAM"></a><b><tt>ColorAdjustMatrix</tt></b></h3>
30607dd7cddfSDavid du Colombier
30617dd7cddfSDavid du Colombier<p>
30627dd7cddfSDavid du ColombierThe driver supports different values for <b><tt>ProcessColorModel</tt></b>,
30637dd7cddfSDavid du Colombierwhich raises the need for different color adjustments.  Here
30647dd7cddfSDavid du Colombier"<b><tt>CAM</tt></b>" stands for "<b><tt>ColorAdjustMatrix</tt></b>".
30657dd7cddfSDavid du Colombier
30667dd7cddfSDavid du Colombier<dl>
30677dd7cddfSDavid du Colombier<dt><b><tt>DeviceGray</tt></b> (three floats)
30687dd7cddfSDavid du Colombier<dd><pre>if ((r == g) &amp;&amp; (g == b))
30697dd7cddfSDavid du Colombier   K' = 1.0 - R;
30707dd7cddfSDavid du Colombierelse
30717dd7cddfSDavid du Colombier   K' = 1.0 - CAM[0] * R + CAM[1] * G + CAM[2] * B;</pre>
30727dd7cddfSDavid du Colombier
30737dd7cddfSDavid du Colombier<p>
30747dd7cddfSDavid du ColombierAccording to the <a href="Drivers.htm">documentation on drivers</a>, the
30757dd7cddfSDavid du Colombierlatter (the "else" clause) should never happen.
30767dd7cddfSDavid du Colombier</dl>
30777dd7cddfSDavid du Colombier
30787dd7cddfSDavid du Colombier<dl>
30797dd7cddfSDavid du Colombier<dt><b><tt>DeviceRGB</tt></b> (nine floats)
30807dd7cddfSDavid du Colombier<dd><pre>if((r == g) &amp;&amp; (g == b))
30817dd7cddfSDavid du Colombier   R' = B' = G' = R;
30827dd7cddfSDavid du Colombierelse
30837dd7cddfSDavid du Colombier   R' = CAM[0]*R + CAM[1]*G + CAM[2]*B;
30847dd7cddfSDavid du Colombier   G' = CAM[3]*R + CAM[4]*G + CAM[5]*B;
30857dd7cddfSDavid du Colombier   B' = CAM[6]*R + CAM[7]*G + CAM[8]*B;</pre>
30867dd7cddfSDavid du Colombier
30877dd7cddfSDavid du Colombier<p>
30887dd7cddfSDavid du ColombierThe printer always uses four inks, so a special treatment of black is
30897dd7cddfSDavid du Colombierprovided.  Algorithms may take special action if R, G, and B are all
30907dd7cddfSDavid du Colombierequal.
30917dd7cddfSDavid du Colombier</dl>
30927dd7cddfSDavid du Colombier
30937dd7cddfSDavid du Colombier<dl>
30947dd7cddfSDavid du Colombier<dt><b><tt>DeviceCMYK</tt></b> (sixteen floats)
30957dd7cddfSDavid du Colombier<dd>
30967dd7cddfSDavid du Colombier<pre>if((c == m) &amp;&amp; (m == y))
30977dd7cddfSDavid du Colombier   K' = max(C,K);
30987dd7cddfSDavid du Colombier   C' = M' = Y' = 0;
30997dd7cddfSDavid du Colombierelse
31007dd7cddfSDavid du Colombier   K  = min(C,M,Y);
31017dd7cddfSDavid du Colombier   if((K &gt; 0) &amp;&amp; ColorAdjustMatrix_present) { =&gt; UCR
31027dd7cddfSDavid du Colombier      C -= K;
31037dd7cddfSDavid du Colombier      M -= K;
31047dd7cddfSDavid du Colombier      Y -= K;
31057dd7cddfSDavid du Colombier   }
31067dd7cddfSDavid du Colombier
31077dd7cddfSDavid du Colombier   C' = CAM[ 0]*C + CAM[ 1]*M + CAM[ 2]*Y + CAM[ 3]*K;
31087dd7cddfSDavid du Colombier   M' = CAM[ 4]*C + CAM[ 5]*M + CAM[ 6]*Y + CAM[ 7]*K;
31097dd7cddfSDavid du Colombier   Y' = CAM[ 8]*C + CAM[ 9]*M + CAM[10]*Y + CAM[11]*K;
31107dd7cddfSDavid du Colombier   K' = CAM[12]*C + CAM[13]*M + CAM[14]*Y + CAM[15]*K;</pre>
31117dd7cddfSDavid du Colombier
31127dd7cddfSDavid du Colombier<p>
31137dd7cddfSDavid du ColombierAgain we have a special black treatment. "<b><tt>max(C,K)</tt></b>" was introduced
31147dd7cddfSDavid du Colombierbecause of a slight misbehaviour of Ghostscript, which delivers
31157dd7cddfSDavid du Colombierblack under certain circumstances as (1,1,1,0). Normally, when
31167dd7cddfSDavid du Colombierno special black separation and undercolor removal procedures
31177dd7cddfSDavid du Colombierare defined at the PostScript level, either (C,M,Y,0) or (0,0,0,K)
31187dd7cddfSDavid du Colombiervalues are mapped.  This would make the extended <b><tt>ColorAdjustMatrix</tt></b>
31197dd7cddfSDavid du Colombierquite tedious, and so during mapping, black separation is done for
31207dd7cddfSDavid du Colombier(C,M,Y,0) requests; and if there is a <b><tt>ColorAdjustMatrix</tt></b>, undercolor
31217dd7cddfSDavid du Colombierremoval is used too. In other words the default matrix is:
31227dd7cddfSDavid du Colombier
31237dd7cddfSDavid du Colombier<blockquote><table>
31247dd7cddfSDavid du Colombier<tr>	<td>1 <td>0 <td>0 <td>1
31257dd7cddfSDavid du Colombier<tr>	<td>0 <td>1 <td>0 <td>1
31267dd7cddfSDavid du Colombier<tr>	<td>0 <td>0 <td>1 <td>1
31277dd7cddfSDavid du Colombier<tr>	<td>0 <td>0 <td>0 <td>1
31287dd7cddfSDavid du Colombier</table></blockquote>
31297dd7cddfSDavid du Colombier
31307dd7cddfSDavid du Colombier<p>
31317dd7cddfSDavid du Colombierand it is applied to CMYK values with separated and removed black.  Raising
31327dd7cddfSDavid du Colombierthe CMY coefficients while lowering the K coefficients reduces black and
31337dd7cddfSDavid du Colombierintensifies color.  But be careful, because even small deviations from the
31347dd7cddfSDavid du Colombierdefault cause drastic changes.
31357dd7cddfSDavid du Colombier</dl>
31367dd7cddfSDavid du Colombier
31377dd7cddfSDavid du Colombier<p>
31387dd7cddfSDavid du ColombierIf no <b><tt>ColorAdjustMatrix</tt></b> is set, the matrix computations are
31397dd7cddfSDavid du Colombierskipped.  Thus the transformation reduces to range inversion in monochrome
31407dd7cddfSDavid du Colombiermode and black separation in CMYK mode.
31417dd7cddfSDavid du Colombier
3142*3ff48bf5SDavid du Colombier<h3><a name="STC_RGBCMYK_coding"></a>RGB / CMYK coding and transfer, and <b><tt>BitsPerPixel</tt></b></h3>
31437dd7cddfSDavid du Colombier
31447dd7cddfSDavid du Colombier<p>
31457dd7cddfSDavid du ColombierThese two (groups of) parameters are arrays of floating-point numbers in
31467dd7cddfSDavid du Colombierthe range 0.0 to 1.0.  They control the truncation to the desired number of
31477dd7cddfSDavid du Colombierbits stored in raster memory (<b><tt>BitsPerPixel</tt></b>) and the ink
31487dd7cddfSDavid du Colombierdensity.  The "truncation" may become a nonlinear function if any of the
31497dd7cddfSDavid du Colombier<b><tt>?coding</tt></b> arrays is set.  Assume the following Ghostscript
31507dd7cddfSDavid du Colombierinvocation:
31517dd7cddfSDavid du Colombier
31527dd7cddfSDavid du Colombier<blockquote><pre>gs -sDEVICE=stcolor -sDithering=fscmyk -dBitsPerPixel=16 \
31537dd7cddfSDavid du Colombier     -dKcoding='{ 0.0 0.09 0.9 1.0 }' \
31547dd7cddfSDavid du Colombier     -dMcoding='{ 0.0 0.09 0.9 1.0 }' \
31557dd7cddfSDavid du Colombier   -dKtransfer='{ 0.0 0.09 0.9 1.0 }' \
31567dd7cddfSDavid du Colombier   -dYtransfer='{ 0.0 0.09 0.9 1.0 }'</pre>
31577dd7cddfSDavid du Colombier</blockquote>
31587dd7cddfSDavid du Colombier
31597dd7cddfSDavid du Colombier<p>
31607dd7cddfSDavid du ColombierWe may have either or both of <b><tt>?coding</tt></b> and
31617dd7cddfSDavid du Colombier<b><tt>?transfer</tt></b>, giving four possible combinations.  (These four
31627dd7cddfSDavid du Colombiercombinations appear in the given example.)  The resulting mapping appears
31637dd7cddfSDavid du Colombierin the following tables, where except for the internal Indices (4
31647dd7cddfSDavid du Colombiercomponents &times; 4 bits = 16 <b><tt>BitsPerPixel</tt></b>), all values
31657dd7cddfSDavid du Colombierare normalized to the range 0 to 1.  The actual range is 0 to 65535 for the
31667dd7cddfSDavid du ColombierGhostscript color and 0 to 16777215 for the ink values delivered to the
31677dd7cddfSDavid du Colombier<b><tt>fscmyk</tt></b> algorithm.  Sorry for the bunch of numbers
31687dd7cddfSDavid du Colombierfollowing, but you may try this example in conjunction with
31697dd7cddfSDavid du Colombier<b><tt>stcinfo.ps</tt></b>, which should give you a graphical printout of
31707dd7cddfSDavid du Colombierthe following numbers when you issue a <b><tt>showpage</tt></b> command.
31717dd7cddfSDavid du Colombier
31727dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
31737dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
31747dd7cddfSDavid du Colombier	<td>&nbsp;
31757dd7cddfSDavid du Colombier	<th colspan=5>Cyan<hr>
31767dd7cddfSDavid du Colombier	<td>&nbsp;
31777dd7cddfSDavid du Colombier	<th colspan=5>Magenta<hr>
31787dd7cddfSDavid du Colombier<tr valign=top>	<th>CI/15
31797dd7cddfSDavid du Colombier	<td>&nbsp;
31807dd7cddfSDavid du Colombier	<th>gs_color_values
31817dd7cddfSDavid du Colombier	<td>&nbsp;
31827dd7cddfSDavid du Colombier	<th>CI
31837dd7cddfSDavid du Colombier	<td>&nbsp;
31847dd7cddfSDavid du Colombier	<th>Ink
31857dd7cddfSDavid du Colombier	<td>&nbsp;
31867dd7cddfSDavid du Colombier	<th>gs_color_values
31877dd7cddfSDavid du Colombier	<td>&nbsp;
31887dd7cddfSDavid du Colombier	<th>CI
31897dd7cddfSDavid du Colombier	<td>&nbsp;
31907dd7cddfSDavid du Colombier	<th>Ink
31917dd7cddfSDavid du Colombier<tr>	<td colspan=13><hr>
31927dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.000
31937dd7cddfSDavid du Colombier	<td>&nbsp;
31947dd7cddfSDavid du Colombier	<td align=center>0.000 - 0.062
31957dd7cddfSDavid du Colombier	<td>&nbsp;
31967dd7cddfSDavid du Colombier	<td align=right>0
31977dd7cddfSDavid du Colombier	<td>&nbsp;
31987dd7cddfSDavid du Colombier	<td align=center>0.000
31997dd7cddfSDavid du Colombier	<td>&nbsp;
32007dd7cddfSDavid du Colombier	<td align=center>-0.123 - 0.123
32017dd7cddfSDavid du Colombier	<td>&nbsp;
32027dd7cddfSDavid du Colombier	<td align=right>0
32037dd7cddfSDavid du Colombier	<td>&nbsp;
32047dd7cddfSDavid du Colombier	<td align=center>0.000
32057dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.067
32067dd7cddfSDavid du Colombier	<td>&nbsp;
32077dd7cddfSDavid du Colombier	<td align=center>0.063 - 0.125
32087dd7cddfSDavid du Colombier	<td>&nbsp;
32097dd7cddfSDavid du Colombier	<td align=right>1
32107dd7cddfSDavid du Colombier	<td>&nbsp;
32117dd7cddfSDavid du Colombier	<td align=center>0.067
32127dd7cddfSDavid du Colombier	<td>&nbsp;
32137dd7cddfSDavid du Colombier	<td align=center>0.123 - 0.299
32147dd7cddfSDavid du Colombier	<td>&nbsp;
32157dd7cddfSDavid du Colombier	<td align=right>1
32167dd7cddfSDavid du Colombier	<td>&nbsp;
32177dd7cddfSDavid du Colombier	<td align=center>0.247
32187dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.133
32197dd7cddfSDavid du Colombier	<td>&nbsp;
32207dd7cddfSDavid du Colombier	<td align=center>0.125 - 0.187
32217dd7cddfSDavid du Colombier	<td>&nbsp;
32227dd7cddfSDavid du Colombier	<td align=right>2
32237dd7cddfSDavid du Colombier	<td>&nbsp;
32247dd7cddfSDavid du Colombier	<td align=center>0.133
32257dd7cddfSDavid du Colombier	<td>&nbsp;
32267dd7cddfSDavid du Colombier	<td align=center>0.299 - 0.365
32277dd7cddfSDavid du Colombier	<td>&nbsp;
32287dd7cddfSDavid du Colombier	<td align=right>2
32297dd7cddfSDavid du Colombier	<td>&nbsp;
32307dd7cddfSDavid du Colombier	<td align=center>0.351
32317dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.200
32327dd7cddfSDavid du Colombier	<td>&nbsp;
32337dd7cddfSDavid du Colombier	<td align=center>0.188 - 0.250
32347dd7cddfSDavid du Colombier	<td>&nbsp;
32357dd7cddfSDavid du Colombier	<td align=right>3
32367dd7cddfSDavid du Colombier	<td>&nbsp;
32377dd7cddfSDavid du Colombier	<td align=center>0.200
32387dd7cddfSDavid du Colombier	<td>&nbsp;
32397dd7cddfSDavid du Colombier	<td align=center>0.365 - 0.392
32407dd7cddfSDavid du Colombier	<td>&nbsp;
32417dd7cddfSDavid du Colombier	<td align=right>3
32427dd7cddfSDavid du Colombier	<td>&nbsp;
32437dd7cddfSDavid du Colombier	<td align=center>0.379
32447dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.267
32457dd7cddfSDavid du Colombier	<td>&nbsp;
32467dd7cddfSDavid du Colombier	<td align=center>0.250 - 0.312
32477dd7cddfSDavid du Colombier	<td>&nbsp;
32487dd7cddfSDavid du Colombier	<td align=right>4
32497dd7cddfSDavid du Colombier	<td>&nbsp;
32507dd7cddfSDavid du Colombier	<td align=center>0.267
32517dd7cddfSDavid du Colombier	<td>&nbsp;
32527dd7cddfSDavid du Colombier	<td align=center>0.392 - 0.420
32537dd7cddfSDavid du Colombier	<td>&nbsp;
32547dd7cddfSDavid du Colombier	<td align=right>4
32557dd7cddfSDavid du Colombier	<td>&nbsp;
32567dd7cddfSDavid du Colombier	<td align=center>0.406
32577dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.333
32587dd7cddfSDavid du Colombier	<td>&nbsp;
32597dd7cddfSDavid du Colombier	<td align=center>0.313 - 0.375
32607dd7cddfSDavid du Colombier	<td>&nbsp;
32617dd7cddfSDavid du Colombier	<td align=right>5
32627dd7cddfSDavid du Colombier	<td>&nbsp;
32637dd7cddfSDavid du Colombier	<td align=center>0.333
32647dd7cddfSDavid du Colombier	<td>&nbsp;
32657dd7cddfSDavid du Colombier	<td align=center>0.420 - 0.447
32667dd7cddfSDavid du Colombier	<td>&nbsp;
32677dd7cddfSDavid du Colombier	<td align=right>5
32687dd7cddfSDavid du Colombier	<td>&nbsp;
32697dd7cddfSDavid du Colombier	<td align=center>0.433
32707dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.400
32717dd7cddfSDavid du Colombier	<td>&nbsp;
32727dd7cddfSDavid du Colombier	<td align=center>0.375 - 0.437
32737dd7cddfSDavid du Colombier	<td>&nbsp;
32747dd7cddfSDavid du Colombier	<td align=right>6
32757dd7cddfSDavid du Colombier	<td>&nbsp;
32767dd7cddfSDavid du Colombier	<td align=center>0.400
32777dd7cddfSDavid du Colombier	<td>&nbsp;
32787dd7cddfSDavid du Colombier	<td align=center>0.447 - 0.475
32797dd7cddfSDavid du Colombier	<td>&nbsp;
32807dd7cddfSDavid du Colombier	<td align=right>6
32817dd7cddfSDavid du Colombier	<td>&nbsp;
32827dd7cddfSDavid du Colombier	<td align=center>0.461
32837dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.467
32847dd7cddfSDavid du Colombier	<td>&nbsp;
32857dd7cddfSDavid du Colombier	<td align=center>0.438 - 0.500
32867dd7cddfSDavid du Colombier	<td>&nbsp;
32877dd7cddfSDavid du Colombier	<td align=right>7
32887dd7cddfSDavid du Colombier	<td>&nbsp;
32897dd7cddfSDavid du Colombier	<td align=center>0.467
32907dd7cddfSDavid du Colombier	<td>&nbsp;
32917dd7cddfSDavid du Colombier	<td align=center>0.475 - 0.502
32927dd7cddfSDavid du Colombier	<td>&nbsp;
32937dd7cddfSDavid du Colombier	<td align=right>7
32947dd7cddfSDavid du Colombier	<td>&nbsp;
32957dd7cddfSDavid du Colombier	<td align=center>0.488
32967dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.533
32977dd7cddfSDavid du Colombier	<td>&nbsp;
32987dd7cddfSDavid du Colombier	<td align=center>0.500 - 0.562
32997dd7cddfSDavid du Colombier	<td>&nbsp;
33007dd7cddfSDavid du Colombier	<td align=right>8
33017dd7cddfSDavid du Colombier	<td>&nbsp;
33027dd7cddfSDavid du Colombier	<td align=center>0.533
33037dd7cddfSDavid du Colombier	<td>&nbsp;
33047dd7cddfSDavid du Colombier	<td align=center>0.502 - 0.529
33057dd7cddfSDavid du Colombier	<td>&nbsp;
33067dd7cddfSDavid du Colombier	<td align=right>8
33077dd7cddfSDavid du Colombier	<td>&nbsp;
33087dd7cddfSDavid du Colombier	<td align=center>0.516
33097dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.600
33107dd7cddfSDavid du Colombier	<td>&nbsp;
33117dd7cddfSDavid du Colombier	<td align=center>0.563 - 0.625
33127dd7cddfSDavid du Colombier	<td>&nbsp;
33137dd7cddfSDavid du Colombier	<td align=right>9
33147dd7cddfSDavid du Colombier	<td>&nbsp;
33157dd7cddfSDavid du Colombier	<td align=center>0.600
33167dd7cddfSDavid du Colombier	<td>&nbsp;
33177dd7cddfSDavid du Colombier	<td align=center>0.529 - 0.557
33187dd7cddfSDavid du Colombier	<td>&nbsp;
33197dd7cddfSDavid du Colombier	<td align=right>9
33207dd7cddfSDavid du Colombier	<td>&nbsp;
33217dd7cddfSDavid du Colombier	<td align=center>0.543
33227dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.667
33237dd7cddfSDavid du Colombier	<td>&nbsp;
33247dd7cddfSDavid du Colombier	<td align=center>0.625 - 0.687
33257dd7cddfSDavid du Colombier	<td>&nbsp;
33267dd7cddfSDavid du Colombier	<td align=right>10
33277dd7cddfSDavid du Colombier	<td>&nbsp;
33287dd7cddfSDavid du Colombier	<td align=center>0.667
33297dd7cddfSDavid du Colombier	<td>&nbsp;
33307dd7cddfSDavid du Colombier	<td align=center>0.557 - 0.584
33317dd7cddfSDavid du Colombier	<td>&nbsp;
33327dd7cddfSDavid du Colombier	<td align=right>10
33337dd7cddfSDavid du Colombier	<td>&nbsp;
33347dd7cddfSDavid du Colombier	<td align=center>0.571
33357dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.733
33367dd7cddfSDavid du Colombier	<td>&nbsp;
33377dd7cddfSDavid du Colombier	<td align=center>0.688 - 0.750
33387dd7cddfSDavid du Colombier	<td>&nbsp;
33397dd7cddfSDavid du Colombier	<td align=right>11
33407dd7cddfSDavid du Colombier	<td>&nbsp;
33417dd7cddfSDavid du Colombier	<td align=center>0.733
33427dd7cddfSDavid du Colombier	<td>&nbsp;
33437dd7cddfSDavid du Colombier	<td align=center>0.584 - 0.612
33447dd7cddfSDavid du Colombier	<td>&nbsp;
33457dd7cddfSDavid du Colombier	<td align=right>11
33467dd7cddfSDavid du Colombier	<td>&nbsp;
33477dd7cddfSDavid du Colombier	<td align=center>0.598
33487dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.800
33497dd7cddfSDavid du Colombier	<td>&nbsp;
33507dd7cddfSDavid du Colombier	<td align=center>0.750 - 0.812
33517dd7cddfSDavid du Colombier	<td>&nbsp;
33527dd7cddfSDavid du Colombier	<td align=right>12
33537dd7cddfSDavid du Colombier	<td>&nbsp;
33547dd7cddfSDavid du Colombier	<td align=center>0.800
33557dd7cddfSDavid du Colombier	<td>&nbsp;
33567dd7cddfSDavid du Colombier	<td align=center>0.612 - 0.639
33577dd7cddfSDavid du Colombier	<td>&nbsp;
33587dd7cddfSDavid du Colombier	<td align=right>12
33597dd7cddfSDavid du Colombier	<td>&nbsp;
33607dd7cddfSDavid du Colombier	<td align=center>0.626
33617dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.867
33627dd7cddfSDavid du Colombier	<td>&nbsp;
33637dd7cddfSDavid du Colombier	<td align=center>0.813 - 0.875
33647dd7cddfSDavid du Colombier	<td>&nbsp;
33657dd7cddfSDavid du Colombier	<td align=right>13
33667dd7cddfSDavid du Colombier	<td>&nbsp;
33677dd7cddfSDavid du Colombier	<td align=center>0.867
33687dd7cddfSDavid du Colombier	<td>&nbsp;
33697dd7cddfSDavid du Colombier	<td align=center>0.639 - 0.715
33707dd7cddfSDavid du Colombier	<td>&nbsp;
33717dd7cddfSDavid du Colombier	<td align=right>13
33727dd7cddfSDavid du Colombier	<td>&nbsp;
33737dd7cddfSDavid du Colombier	<td align=center>0.653
33747dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.933
33757dd7cddfSDavid du Colombier	<td>&nbsp;
33767dd7cddfSDavid du Colombier	<td align=center>0.875 - 0.937
33777dd7cddfSDavid du Colombier	<td>&nbsp;
33787dd7cddfSDavid du Colombier	<td align=right>14
33797dd7cddfSDavid du Colombier	<td>&nbsp;
33807dd7cddfSDavid du Colombier	<td align=center>0.933
33817dd7cddfSDavid du Colombier	<td>&nbsp;
33827dd7cddfSDavid du Colombier	<td align=center>0.715 - 0.889
33837dd7cddfSDavid du Colombier	<td>&nbsp;
33847dd7cddfSDavid du Colombier	<td align=right>14
33857dd7cddfSDavid du Colombier	<td>&nbsp;
33867dd7cddfSDavid du Colombier	<td align=center>0.778
33877dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>1.000
33887dd7cddfSDavid du Colombier	<td>&nbsp;
33897dd7cddfSDavid du Colombier	<td align=center>0.938 - 1.000
33907dd7cddfSDavid du Colombier	<td>&nbsp;
33917dd7cddfSDavid du Colombier	<td align=right>15
33927dd7cddfSDavid du Colombier	<td>&nbsp;
33937dd7cddfSDavid du Colombier	<td align=center>1.000
33947dd7cddfSDavid du Colombier	<td>&nbsp;
33957dd7cddfSDavid du Colombier	<td align=center>0.889 - 1.111
33967dd7cddfSDavid du Colombier	<td>&nbsp;
33977dd7cddfSDavid du Colombier	<td align=right>15
33987dd7cddfSDavid du Colombier	<td>&nbsp;
33997dd7cddfSDavid du Colombier	<td align=center>1.000
34007dd7cddfSDavid du Colombier</table></blockquote>
34017dd7cddfSDavid du Colombier
34027dd7cddfSDavid du Colombier<p>
34037dd7cddfSDavid du ColombierThe difference between cyan and magenta is the presence of a coding array.
34047dd7cddfSDavid du ColombierThe coding process must map a range of color values to each of the sixteen
34057dd7cddfSDavid du Colombiercomponent indices.  If no coding array is given, this is accomplished
34067dd7cddfSDavid du Colombierby dividing by 4096, equivalent to a right shift by 12 bits.  The
34077dd7cddfSDavid du Colombierfinal ink density resides in the given interval and moves from the left to
34087dd7cddfSDavid du Colombierthe right side from 0 to 15.  For magenta there is a coding array
34097dd7cddfSDavid du Colombierand the ink value matches the center of the intervals.  But the distribution
34107dd7cddfSDavid du Colombierof the mapped intervals follows the given coding array and is nonlinear in
34117dd7cddfSDavid du Colombierthe linear color space of Ghostscript.
34127dd7cddfSDavid du Colombier
34137dd7cddfSDavid du Colombier<p>
34147dd7cddfSDavid du ColombierNow let us take a look at the case with transfer arrays:
34157dd7cddfSDavid du Colombier
34167dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
34177dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
34187dd7cddfSDavid du Colombier	<td>&nbsp;
34197dd7cddfSDavid du Colombier	<th colspan=5>Yellow<hr>
34207dd7cddfSDavid du Colombier	<td>&nbsp;
34217dd7cddfSDavid du Colombier	<th colspan=5>Black<hr>
34227dd7cddfSDavid du Colombier<tr valign=top>	<th>CI/15
34237dd7cddfSDavid du Colombier	<td>&nbsp;
34247dd7cddfSDavid du Colombier	<th>gs_color_values
34257dd7cddfSDavid du Colombier	<td>&nbsp;
34267dd7cddfSDavid du Colombier	<th>CI
34277dd7cddfSDavid du Colombier	<td>&nbsp;
34287dd7cddfSDavid du Colombier	<th>Ink
34297dd7cddfSDavid du Colombier	<td>&nbsp;
34307dd7cddfSDavid du Colombier	<th>gs_color_values
34317dd7cddfSDavid du Colombier	<td>&nbsp;
34327dd7cddfSDavid du Colombier	<th>CI
34337dd7cddfSDavid du Colombier	<td>&nbsp;
34347dd7cddfSDavid du Colombier	<th>Ink
34357dd7cddfSDavid du Colombier<tr>	<td colspan=13><hr>
34367dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.000
34377dd7cddfSDavid du Colombier	<td>&nbsp;
34387dd7cddfSDavid du Colombier	<td align=center>0.000 - 0.062
34397dd7cddfSDavid du Colombier	<td>&nbsp;
34407dd7cddfSDavid du Colombier	<td align=right>0
34417dd7cddfSDavid du Colombier	<td>&nbsp;
34427dd7cddfSDavid du Colombier	<td align=center>0.000
34437dd7cddfSDavid du Colombier	<td>&nbsp;
34447dd7cddfSDavid du Colombier	<td align=center>-0.123 - 0.123
34457dd7cddfSDavid du Colombier	<td>&nbsp;
34467dd7cddfSDavid du Colombier	<td align=right>0
34477dd7cddfSDavid du Colombier	<td>&nbsp;
34487dd7cddfSDavid du Colombier	<td align=center>0.000
34497dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.067
34507dd7cddfSDavid du Colombier	<td>&nbsp;
34517dd7cddfSDavid du Colombier	<td align=center>0.063 - 0.125
34527dd7cddfSDavid du Colombier	<td>&nbsp;
34537dd7cddfSDavid du Colombier	<td align=right>1
34547dd7cddfSDavid du Colombier	<td>&nbsp;
34557dd7cddfSDavid du Colombier	<td align=center>0.018
34567dd7cddfSDavid du Colombier	<td>&nbsp;
34577dd7cddfSDavid du Colombier	<td align=center>0.123 - 0.299
34587dd7cddfSDavid du Colombier	<td>&nbsp;
34597dd7cddfSDavid du Colombier	<td align=right>1
34607dd7cddfSDavid du Colombier	<td>&nbsp;
34617dd7cddfSDavid du Colombier	<td align=center>0.067
34627dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.133
34637dd7cddfSDavid du Colombier	<td>&nbsp;
34647dd7cddfSDavid du Colombier	<td align=center>0.125 - 0.187
34657dd7cddfSDavid du Colombier	<td>&nbsp;
34667dd7cddfSDavid du Colombier	<td align=right>2
34677dd7cddfSDavid du Colombier	<td>&nbsp;
34687dd7cddfSDavid du Colombier	<td align=center>0.036
34697dd7cddfSDavid du Colombier	<td>&nbsp;
34707dd7cddfSDavid du Colombier	<td align=center>0.299 - 0.365
34717dd7cddfSDavid du Colombier	<td>&nbsp;
34727dd7cddfSDavid du Colombier	<td align=right>2
34737dd7cddfSDavid du Colombier	<td>&nbsp;
34747dd7cddfSDavid du Colombier	<td align=center>0.133
34757dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.200
34767dd7cddfSDavid du Colombier	<td>&nbsp;
34777dd7cddfSDavid du Colombier	<td align=center>0.188 - 0.250
34787dd7cddfSDavid du Colombier	<td>&nbsp;
34797dd7cddfSDavid du Colombier	<td align=right>3
34807dd7cddfSDavid du Colombier	<td>&nbsp;
34817dd7cddfSDavid du Colombier	<td align=center>0.054
34827dd7cddfSDavid du Colombier	<td>&nbsp;
34837dd7cddfSDavid du Colombier	<td align=center>0.365 - 0.392
34847dd7cddfSDavid du Colombier	<td>&nbsp;
34857dd7cddfSDavid du Colombier	<td align=right>3
34867dd7cddfSDavid du Colombier	<td>&nbsp;
34877dd7cddfSDavid du Colombier	<td align=center>0.200
34887dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.267
34897dd7cddfSDavid du Colombier	<td>&nbsp;
34907dd7cddfSDavid du Colombier	<td align=center>0.250 - 0.312
34917dd7cddfSDavid du Colombier	<td>&nbsp;
34927dd7cddfSDavid du Colombier	<td align=right>4
34937dd7cddfSDavid du Colombier	<td>&nbsp;
34947dd7cddfSDavid du Colombier	<td align=center>0.072
34957dd7cddfSDavid du Colombier	<td>&nbsp;
34967dd7cddfSDavid du Colombier	<td align=center>0.392 - 0.420
34977dd7cddfSDavid du Colombier	<td>&nbsp;
34987dd7cddfSDavid du Colombier	<td align=right>4
34997dd7cddfSDavid du Colombier	<td>&nbsp;
35007dd7cddfSDavid du Colombier	<td align=center>0.267
35017dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.333
35027dd7cddfSDavid du Colombier	<td>&nbsp;
35037dd7cddfSDavid du Colombier	<td align=center>0.313 - 0.375
35047dd7cddfSDavid du Colombier	<td>&nbsp;
35057dd7cddfSDavid du Colombier	<td align=right>5
35067dd7cddfSDavid du Colombier	<td>&nbsp;
35077dd7cddfSDavid du Colombier	<td align=center>0.090
35087dd7cddfSDavid du Colombier	<td>&nbsp;
35097dd7cddfSDavid du Colombier	<td align=center>0.420 - 0.447
35107dd7cddfSDavid du Colombier	<td>&nbsp;
35117dd7cddfSDavid du Colombier	<td align=right>5
35127dd7cddfSDavid du Colombier	<td>&nbsp;
35137dd7cddfSDavid du Colombier	<td align=center>0.333
35147dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.400
35157dd7cddfSDavid du Colombier	<td>&nbsp;
35167dd7cddfSDavid du Colombier	<td align=center>0.375 - 0.437
35177dd7cddfSDavid du Colombier	<td>&nbsp;
35187dd7cddfSDavid du Colombier	<td align=right>6
35197dd7cddfSDavid du Colombier	<td>&nbsp;
35207dd7cddfSDavid du Colombier	<td align=center>0.252
35217dd7cddfSDavid du Colombier	<td>&nbsp;
35227dd7cddfSDavid du Colombier	<td align=center>0.447 - 0.475
35237dd7cddfSDavid du Colombier	<td>&nbsp;
35247dd7cddfSDavid du Colombier	<td align=right>6
35257dd7cddfSDavid du Colombier	<td>&nbsp;
35267dd7cddfSDavid du Colombier	<td align=center>0.400
35277dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.467
35287dd7cddfSDavid du Colombier	<td>&nbsp;
35297dd7cddfSDavid du Colombier	<td align=center>0.438 - 0.500
35307dd7cddfSDavid du Colombier	<td>&nbsp;
35317dd7cddfSDavid du Colombier	<td align=right>7
35327dd7cddfSDavid du Colombier	<td>&nbsp;
35337dd7cddfSDavid du Colombier	<td align=center>0.414
35347dd7cddfSDavid du Colombier	<td>&nbsp;
35357dd7cddfSDavid du Colombier	<td align=center>0.475 - 0.502
35367dd7cddfSDavid du Colombier	<td>&nbsp;
35377dd7cddfSDavid du Colombier	<td align=right>7
35387dd7cddfSDavid du Colombier	<td>&nbsp;
35397dd7cddfSDavid du Colombier	<td align=center>0.467
35407dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.533
35417dd7cddfSDavid du Colombier	<td>&nbsp;
35427dd7cddfSDavid du Colombier	<td align=center>0.500 - 0.562
35437dd7cddfSDavid du Colombier	<td>&nbsp;
35447dd7cddfSDavid du Colombier	<td align=right>8
35457dd7cddfSDavid du Colombier	<td>&nbsp;
35467dd7cddfSDavid du Colombier	<td align=center>0.576
35477dd7cddfSDavid du Colombier	<td>&nbsp;
35487dd7cddfSDavid du Colombier	<td align=center>0.502 - 0.529
35497dd7cddfSDavid du Colombier	<td>&nbsp;
35507dd7cddfSDavid du Colombier	<td align=right>8
35517dd7cddfSDavid du Colombier	<td>&nbsp;
35527dd7cddfSDavid du Colombier	<td align=center>0.533
35537dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.600
35547dd7cddfSDavid du Colombier	<td>&nbsp;
35557dd7cddfSDavid du Colombier	<td align=center>0.563 - 0.625
35567dd7cddfSDavid du Colombier	<td>&nbsp;
35577dd7cddfSDavid du Colombier	<td align=right>9
35587dd7cddfSDavid du Colombier	<td>&nbsp;
35597dd7cddfSDavid du Colombier	<td align=center>0.738
35607dd7cddfSDavid du Colombier	<td>&nbsp;
35617dd7cddfSDavid du Colombier	<td align=center>0.529 - 0.557
35627dd7cddfSDavid du Colombier	<td>&nbsp;
35637dd7cddfSDavid du Colombier	<td align=right>9
35647dd7cddfSDavid du Colombier	<td>&nbsp;
35657dd7cddfSDavid du Colombier	<td align=center>0.600
35667dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.667
35677dd7cddfSDavid du Colombier	<td>&nbsp;
35687dd7cddfSDavid du Colombier	<td align=center>0.625 - 0.687
35697dd7cddfSDavid du Colombier	<td>&nbsp;
35707dd7cddfSDavid du Colombier	<td align=right>10
35717dd7cddfSDavid du Colombier	<td>&nbsp;
35727dd7cddfSDavid du Colombier	<td align=center>0.900
35737dd7cddfSDavid du Colombier	<td>&nbsp;
35747dd7cddfSDavid du Colombier	<td align=center>0.557 - 0.584
35757dd7cddfSDavid du Colombier	<td>&nbsp;
35767dd7cddfSDavid du Colombier	<td align=right>10
35777dd7cddfSDavid du Colombier	<td>&nbsp;
35787dd7cddfSDavid du Colombier	<td align=center>0.667
35797dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.733
35807dd7cddfSDavid du Colombier	<td>&nbsp;
35817dd7cddfSDavid du Colombier	<td align=center>0.688 - 0.750
35827dd7cddfSDavid du Colombier	<td>&nbsp;
35837dd7cddfSDavid du Colombier	<td align=right>11
35847dd7cddfSDavid du Colombier	<td>&nbsp;
35857dd7cddfSDavid du Colombier	<td align=center>0.920
35867dd7cddfSDavid du Colombier	<td>&nbsp;
35877dd7cddfSDavid du Colombier	<td align=center>0.584 - 0.612
35887dd7cddfSDavid du Colombier	<td>&nbsp;
35897dd7cddfSDavid du Colombier	<td align=right>11
35907dd7cddfSDavid du Colombier	<td>&nbsp;
35917dd7cddfSDavid du Colombier	<td align=center>0.733
35927dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.800
35937dd7cddfSDavid du Colombier	<td>&nbsp;
35947dd7cddfSDavid du Colombier	<td align=center>0.750 - 0.812
35957dd7cddfSDavid du Colombier	<td>&nbsp;
35967dd7cddfSDavid du Colombier	<td align=right>12
35977dd7cddfSDavid du Colombier	<td>&nbsp;
35987dd7cddfSDavid du Colombier	<td align=center>0.940
35997dd7cddfSDavid du Colombier	<td>&nbsp;
36007dd7cddfSDavid du Colombier	<td align=center>0.612 - 0.639
36017dd7cddfSDavid du Colombier	<td>&nbsp;
36027dd7cddfSDavid du Colombier	<td align=right>12
36037dd7cddfSDavid du Colombier	<td>&nbsp;
36047dd7cddfSDavid du Colombier	<td align=center>0.800
36057dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.867
36067dd7cddfSDavid du Colombier	<td>&nbsp;
36077dd7cddfSDavid du Colombier	<td align=center>0.813 - 0.875
36087dd7cddfSDavid du Colombier	<td>&nbsp;
36097dd7cddfSDavid du Colombier	<td align=right>13
36107dd7cddfSDavid du Colombier	<td>&nbsp;
36117dd7cddfSDavid du Colombier	<td align=center>0.960
36127dd7cddfSDavid du Colombier	<td>&nbsp;
36137dd7cddfSDavid du Colombier	<td align=center>0.639 - 0.715
36147dd7cddfSDavid du Colombier	<td>&nbsp;
36157dd7cddfSDavid du Colombier	<td align=right>13
36167dd7cddfSDavid du Colombier	<td>&nbsp;
36177dd7cddfSDavid du Colombier	<td align=center>0.867
36187dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0.933
36197dd7cddfSDavid du Colombier	<td>&nbsp;
36207dd7cddfSDavid du Colombier	<td align=center>0.875 - 0.937
36217dd7cddfSDavid du Colombier	<td>&nbsp;
36227dd7cddfSDavid du Colombier	<td align=right>14
36237dd7cddfSDavid du Colombier	<td>&nbsp;
36247dd7cddfSDavid du Colombier	<td align=center>0.980
36257dd7cddfSDavid du Colombier	<td>&nbsp;
36267dd7cddfSDavid du Colombier	<td align=center>0.715 - 0.889
36277dd7cddfSDavid du Colombier	<td>&nbsp;
36287dd7cddfSDavid du Colombier	<td align=right>14
36297dd7cddfSDavid du Colombier	<td>&nbsp;
36307dd7cddfSDavid du Colombier	<td align=center>0.933
36317dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>1.000
36327dd7cddfSDavid du Colombier	<td>&nbsp;
36337dd7cddfSDavid du Colombier	<td align=center>0.938 - 1.000
36347dd7cddfSDavid du Colombier	<td>&nbsp;
36357dd7cddfSDavid du Colombier	<td align=right>15
36367dd7cddfSDavid du Colombier	<td>&nbsp;
36377dd7cddfSDavid du Colombier	<td align=center>1.000
36387dd7cddfSDavid du Colombier	<td>&nbsp;
36397dd7cddfSDavid du Colombier	<td align=center>0.889 - 1.111
36407dd7cddfSDavid du Colombier	<td>&nbsp;
36417dd7cddfSDavid du Colombier	<td align=right>15
36427dd7cddfSDavid du Colombier	<td>&nbsp;
36437dd7cddfSDavid du Colombier	<td align=center>1.000
36447dd7cddfSDavid du Colombier</table></blockquote>
36457dd7cddfSDavid du Colombier
36467dd7cddfSDavid du Colombier<p>
36477dd7cddfSDavid du ColombierYellow uses a transfer array.  There is no linear correspondence between
36487dd7cddfSDavid du Colombierthe color and the ink values: this correspondence is defined through the
36497dd7cddfSDavid du Colombiergiven array.  In other words, the transfer arrays define a nonlinear ink
36507dd7cddfSDavid du Colombiercharacteristic, which is exactly the same functionality that PostScript's
36517dd7cddfSDavid du Colombier"(color)transfer" function provides.
36527dd7cddfSDavid du Colombier
36537dd7cddfSDavid du Colombier<p>
36547dd7cddfSDavid du ColombierWhile for yellow the intervals match the intervals used with cyan, for
36557dd7cddfSDavid du Colombierblack the intervals match the magenta intervals.  But watch the
36567dd7cddfSDavid du Colombiercorrespondence between the CI/15 values and the ink density for black: this
36577dd7cddfSDavid du Colombieris a linear distribution in the ink domain.
36587dd7cddfSDavid du Colombier
36597dd7cddfSDavid du Colombier<p>
36607dd7cddfSDavid du ColombierNot a bad idea, I think.  Consider the <b><tt>fs2</tt></b> algorithm: it
36617dd7cddfSDavid du Colombieruses values in the range 0 to 255.  If any transfer array were alone, some
36627dd7cddfSDavid du Colombierof the 256 possible values would never be used and others would be used for
36637dd7cddfSDavid du Colombieradjacent intervals several times.  Establishing an identical coding array
36647dd7cddfSDavid du Colombiersolves this problem, so the full potential of the algorithm is used.
36657dd7cddfSDavid du Colombier
36667dd7cddfSDavid du Colombier<p>
36677dd7cddfSDavid du ColombierAnother useful feature of the coding arrays is that they are internally
36687dd7cddfSDavid du Colombiernormalized to the range 0-1.  In 720x720dpi mode the transfer arrays in
36697dd7cddfSDavid du Colombier<b><tt>stcolor.ps</tt></b> limit the dot density to about 50%, so these
36707dd7cddfSDavid du Colombierarrays end at 0.5 (and begin at 0.5 for RGB).  Because of automatic
36717dd7cddfSDavid du Colombiernormalization, these arrays can also be used as coding arrays.  But of
36727dd7cddfSDavid du Colombiercourse in the <b><tt>fs2</tt></b> case mentioned above, values from 0 to
36737dd7cddfSDavid du Colombier127 will never be delivered to the algorithm, while values 128-255 are
36747dd7cddfSDavid du Colombierdelivered for adjacent intervals.
36757dd7cddfSDavid du Colombier
36767dd7cddfSDavid du Colombier<p>
36777dd7cddfSDavid du ColombierTo clarify the intended use of the three parameters (parameter groups), keep this in mind:
36787dd7cddfSDavid du Colombier
36797dd7cddfSDavid du Colombier<blockquote><ul>
36807dd7cddfSDavid du Colombier<li><b><tt>ColorAdjustMatrix</tt></b> is never used when transferring gray
36817dd7cddfSDavid du Colombiervalues.  This restricts it to what the name says: adjustment of colors,
36827dd7cddfSDavid du Colombierthat is, correction for miscolored ink.  Do not use it for saturation or
36837dd7cddfSDavid du Colombierbrightness control.
36847dd7cddfSDavid du Colombier
36857dd7cddfSDavid du Colombier<li><b><tt>?transfer</tt></b> arrays control the values delivered to the
36867dd7cddfSDavid du Colombierdriver, which in turn controls the ink quantity.  Use these arrays to
36877dd7cddfSDavid du Colombiercontrol saturation and brightness.  In general these arrays are identical
36887dd7cddfSDavid du Colombierfor all inks.  If they differ they provide a simpler scheme for color
36897dd7cddfSDavid du Colombiercorrection, which is not necessarily faster than the
36907dd7cddfSDavid du Colombier<b><tt>ColorAdjustMatrix</tt></b>.
36917dd7cddfSDavid du Colombier
36927dd7cddfSDavid du Colombier<li><b><tt>?coding</tt></b> arrays control the color value intervals mapped
36937dd7cddfSDavid du Colombierto the internal color indices.
36947dd7cddfSDavid du Colombier</ul></blockquote>
36957dd7cddfSDavid du Colombier
3696*3ff48bf5SDavid du Colombier<h3><a name="What_is_weaving"></a>What is weaving?</h3>
36977dd7cddfSDavid du Colombier
36987dd7cddfSDavid du Colombier<p>
36997dd7cddfSDavid du ColombierThe Epson Stylus Color has a head assembly that contains two physically
37007dd7cddfSDavid du Colombieridentifiable heads, one for black and one for cyan, magenta, and yellow
37017dd7cddfSDavid du Colombier(CMY).  This makes four "logical" heads, one for each color component.
37027dd7cddfSDavid du ColombierEach of these four heads has several jets at some vertical (Y) distance
37037dd7cddfSDavid du Colombierfrom one another, so several horizontal lines can be printed of a given
37047dd7cddfSDavid du Colombiercolor during one pass of the heads.  From experience I think there are
37057dd7cddfSDavid du Colombierfifteen jets per color, spaced at 1/90in.
37067dd7cddfSDavid du Colombier
37077dd7cddfSDavid du Colombier<p>
37087dd7cddfSDavid du ColombierSo the question arises of how to print at a Y resolution of 360dpi with
37097dd7cddfSDavid du Colombier90dpi jets.  Simply by division one gets 360dpi/90dpi = 4, which tells us
37107dd7cddfSDavid du Colombierthat 4 passes of the head assembly are needed to achieve a Y resolution of
37117dd7cddfSDavid du Colombier360dpi.
37127dd7cddfSDavid du Colombier
37137dd7cddfSDavid du Colombier<p>
37147dd7cddfSDavid du ColombierWeaving is the method of how the fifteen jets are used to print adjacent
37157dd7cddfSDavid du Colombierhorizontal rows separated here by 1/360 inch:
37167dd7cddfSDavid du Colombier
37177dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
37187dd7cddfSDavid du Colombier<tr><th colspan=17 bgcolor="#CCCC00"><hr><font size="+1">Print-head jets used with and without weaving</font><hr>
37197dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
37207dd7cddfSDavid du Colombier	<td>&nbsp;
37217dd7cddfSDavid du Colombier	<th valign=bottom colspan=7>Weaving<hr>
37227dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;&nbsp;
37237dd7cddfSDavid du Colombier	<th valign=bottom colspan=7>noWeave<hr>
37247dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
37257dd7cddfSDavid du Colombier	<th>Pass
37267dd7cddfSDavid du Colombier	<th>1
37277dd7cddfSDavid du Colombier	<td>&nbsp;
37287dd7cddfSDavid du Colombier	<th>2
37297dd7cddfSDavid du Colombier	<td>&nbsp;
37307dd7cddfSDavid du Colombier	<th>3
37317dd7cddfSDavid du Colombier	<td>&nbsp;
37327dd7cddfSDavid du Colombier	<th>4
37337dd7cddfSDavid du Colombier	<td>&nbsp;
37347dd7cddfSDavid du Colombier	<th>1
37357dd7cddfSDavid du Colombier	<td>&nbsp;
37367dd7cddfSDavid du Colombier	<th>2
37377dd7cddfSDavid du Colombier	<td>&nbsp;
37387dd7cddfSDavid du Colombier	<th>3
37397dd7cddfSDavid du Colombier	<td>&nbsp;
37407dd7cddfSDavid du Colombier	<th>4
37417dd7cddfSDavid du Colombier<tr>	<th>Row
37427dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0
37437dd7cddfSDavid du Colombier	<td>&nbsp;
37447dd7cddfSDavid du Colombier	<td align=center>jet 0
37457dd7cddfSDavid du Colombier	<td>&nbsp;
37467dd7cddfSDavid du Colombier	<td align=center>--
37477dd7cddfSDavid du Colombier	<td>&nbsp;
37487dd7cddfSDavid du Colombier	<td align=center>--
37497dd7cddfSDavid du Colombier	<td>&nbsp;
37507dd7cddfSDavid du Colombier	<td align=center>--
37517dd7cddfSDavid du Colombier	<td>&nbsp;
37527dd7cddfSDavid du Colombier	<td align=center>jet 0
37537dd7cddfSDavid du Colombier	<td>&nbsp;
37547dd7cddfSDavid du Colombier	<td align=center>--
37557dd7cddfSDavid du Colombier	<td>&nbsp;
37567dd7cddfSDavid du Colombier	<td align=center>--
37577dd7cddfSDavid du Colombier	<td>&nbsp;
37587dd7cddfSDavid du Colombier	<td align=center>--
37597dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>1
37607dd7cddfSDavid du Colombier	<td>&nbsp;
37617dd7cddfSDavid du Colombier	<td align=center>--
37627dd7cddfSDavid du Colombier	<td>&nbsp;
37637dd7cddfSDavid du Colombier	<td align=center>jet 1
37647dd7cddfSDavid du Colombier	<td>&nbsp;
37657dd7cddfSDavid du Colombier	<td align=center>--
37667dd7cddfSDavid du Colombier	<td>&nbsp;
37677dd7cddfSDavid du Colombier	<td align=center>--
37687dd7cddfSDavid du Colombier	<td>&nbsp;
37697dd7cddfSDavid du Colombier	<td align=center>--
37707dd7cddfSDavid du Colombier	<td>&nbsp;
37717dd7cddfSDavid du Colombier	<td align=center>jet 0
37727dd7cddfSDavid du Colombier	<td>&nbsp;
37737dd7cddfSDavid du Colombier	<td align=center>--
37747dd7cddfSDavid du Colombier	<td>&nbsp;
37757dd7cddfSDavid du Colombier	<td align=center>--
37767dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>2
37777dd7cddfSDavid du Colombier	<td>&nbsp;
37787dd7cddfSDavid du Colombier	<td align=center>--
37797dd7cddfSDavid du Colombier	<td>&nbsp;
37807dd7cddfSDavid du Colombier	<td align=center>--
37817dd7cddfSDavid du Colombier	<td>&nbsp;
37827dd7cddfSDavid du Colombier	<td align=center>jet 2
37837dd7cddfSDavid du Colombier	<td>&nbsp;
37847dd7cddfSDavid du Colombier	<td align=center>--
37857dd7cddfSDavid du Colombier	<td>&nbsp;
37867dd7cddfSDavid du Colombier	<td align=center>--
37877dd7cddfSDavid du Colombier	<td>&nbsp;
37887dd7cddfSDavid du Colombier	<td align=center>--
37897dd7cddfSDavid du Colombier	<td>&nbsp;
37907dd7cddfSDavid du Colombier	<td align=center>jet 0
37917dd7cddfSDavid du Colombier	<td>&nbsp;
37927dd7cddfSDavid du Colombier	<td align=center>--
37937dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>3
37947dd7cddfSDavid du Colombier	<td>&nbsp;
37957dd7cddfSDavid du Colombier	<td align=center>--
37967dd7cddfSDavid du Colombier	<td>&nbsp;
37977dd7cddfSDavid du Colombier	<td align=center>--
37987dd7cddfSDavid du Colombier	<td>&nbsp;
37997dd7cddfSDavid du Colombier	<td align=center>--
38007dd7cddfSDavid du Colombier	<td>&nbsp;
38017dd7cddfSDavid du Colombier	<td align=center>jet 3
38027dd7cddfSDavid du Colombier	<td>&nbsp;
38037dd7cddfSDavid du Colombier	<td align=center>--
38047dd7cddfSDavid du Colombier	<td>&nbsp;
38057dd7cddfSDavid du Colombier	<td align=center>--
38067dd7cddfSDavid du Colombier	<td>&nbsp;
38077dd7cddfSDavid du Colombier	<td align=center>--
38087dd7cddfSDavid du Colombier	<td>&nbsp;
38097dd7cddfSDavid du Colombier	<td align=center>jet 0
38107dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>4
38117dd7cddfSDavid du Colombier	<td>&nbsp;
38127dd7cddfSDavid du Colombier	<td align=center>jet 1
38137dd7cddfSDavid du Colombier	<td>&nbsp;
38147dd7cddfSDavid du Colombier	<td align=center>--
38157dd7cddfSDavid du Colombier	<td>&nbsp;
38167dd7cddfSDavid du Colombier	<td align=center>--
38177dd7cddfSDavid du Colombier	<td>&nbsp;
38187dd7cddfSDavid du Colombier	<td align=center>--
38197dd7cddfSDavid du Colombier	<td>&nbsp;
38207dd7cddfSDavid du Colombier	<td align=center>jet 1
38217dd7cddfSDavid du Colombier	<td>&nbsp;
38227dd7cddfSDavid du Colombier	<td align=center>--
38237dd7cddfSDavid du Colombier	<td>&nbsp;
38247dd7cddfSDavid du Colombier	<td align=center>--
38257dd7cddfSDavid du Colombier	<td>&nbsp;
38267dd7cddfSDavid du Colombier	<td align=center>--
38277dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>5
38287dd7cddfSDavid du Colombier	<td>&nbsp;
38297dd7cddfSDavid du Colombier	<td align=center>--
38307dd7cddfSDavid du Colombier	<td>&nbsp;
38317dd7cddfSDavid du Colombier	<td align=center>jet 2
38327dd7cddfSDavid du Colombier	<td>&nbsp;
38337dd7cddfSDavid du Colombier	<td align=center>--
38347dd7cddfSDavid du Colombier	<td>&nbsp;
38357dd7cddfSDavid du Colombier	<td align=center>--
38367dd7cddfSDavid du Colombier	<td>&nbsp;
38377dd7cddfSDavid du Colombier	<td align=center>--
38387dd7cddfSDavid du Colombier	<td>&nbsp;
38397dd7cddfSDavid du Colombier	<td align=center>jet 1
38407dd7cddfSDavid du Colombier	<td>&nbsp;
38417dd7cddfSDavid du Colombier	<td align=center>--
38427dd7cddfSDavid du Colombier	<td>&nbsp;
38437dd7cddfSDavid du Colombier	<td align=center>--
38447dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>6
38457dd7cddfSDavid du Colombier	<td>&nbsp;
38467dd7cddfSDavid du Colombier	<td align=center>--
38477dd7cddfSDavid du Colombier	<td>&nbsp;
38487dd7cddfSDavid du Colombier	<td align=center>--
38497dd7cddfSDavid du Colombier	<td>&nbsp;
38507dd7cddfSDavid du Colombier	<td align=center>jet 3
38517dd7cddfSDavid du Colombier	<td>&nbsp;
38527dd7cddfSDavid du Colombier	<td align=center>--
38537dd7cddfSDavid du Colombier	<td>&nbsp;
38547dd7cddfSDavid du Colombier	<td align=center>--
38557dd7cddfSDavid du Colombier	<td>&nbsp;
38567dd7cddfSDavid du Colombier	<td align=center>--
38577dd7cddfSDavid du Colombier	<td>&nbsp;
38587dd7cddfSDavid du Colombier	<td align=center>jet 1
38597dd7cddfSDavid du Colombier	<td>&nbsp;
38607dd7cddfSDavid du Colombier	<td align=center>--
38617dd7cddfSDavid du Colombier<tr valign=top>	<th>...
38627dd7cddfSDavid du Colombier</table></blockquote>
38637dd7cddfSDavid du Colombier
38647dd7cddfSDavid du Colombier<p>
38657dd7cddfSDavid du ColombierNow let's assume that the dot diameter is different for each individual
38667dd7cddfSDavid du Colombierjet, but the average among the jets matches the desired resolution.  With
38677dd7cddfSDavid du Colombierweaving, adjacent rows are printed by different jets, thus some averaging
38687dd7cddfSDavid du Colombiertakes place.  Without weaving, adjacent rows are printed by the same jet
38697dd7cddfSDavid du Colombierand this makes the dot diameter deviations visible as 1/90in stripes on
38707dd7cddfSDavid du Colombierthe paper.
38717dd7cddfSDavid du Colombier
3872*3ff48bf5SDavid du Colombier<h3><a name="STC_print_modes"></a>Print mode parameters</h3>
38737dd7cddfSDavid du Colombier
38747dd7cddfSDavid du Colombier<p>
38757dd7cddfSDavid du ColombierThe parameters "<b><tt>Unidirectional</tt></b>",
38767dd7cddfSDavid du Colombier"<b><tt>Microweave</tt></b>", "<b><tt>noWeave</tt></b>",
38777dd7cddfSDavid du Colombier"<b><tt>OutputCode</tt></b>", "<b><tt>Model</tt></b>" and the given
38787dd7cddfSDavid du Colombierresolution control the data generated for the printer.
38797dd7cddfSDavid du Colombier
3880*3ff48bf5SDavid du Colombier<h4><a name="STC_unidirectional"></a><b><tt>Unidirectional</tt></b></h4>
38817dd7cddfSDavid du Colombier
38827dd7cddfSDavid du Colombier<p>
38837dd7cddfSDavid du ColombierSimply toggles the unidirectional mode of the printer.  Setting
38847dd7cddfSDavid du Colombier"<b><tt>Unidirectional</tt></b>" definitely slows printing speed, but may
38857dd7cddfSDavid du Colombierimprove the quality.  I use this for printing transparencies, where fast
38867dd7cddfSDavid du Colombierhead movement could smear the ink.
38877dd7cddfSDavid du Colombier
3888*3ff48bf5SDavid du Colombier<h4><a name="STC_noweave"></a><b><tt>Microweave</tt></b>,
3889*3ff48bf5SDavid du Colombier<b><tt>noWeave</tt></b> and <b><tt>OutputCode=deltarow</tt></b></h4>
38907dd7cddfSDavid du Colombier
38917dd7cddfSDavid du Colombier<p>
38927dd7cddfSDavid du ColombierThe first are two booleans, which implies that four combinations are
38937dd7cddfSDavid du Colombierpossible.  Actually only three exist (if you don't count for
38947dd7cddfSDavid du Colombier<b><tt>deltarow</tt></b>): <b><tt>Softweave</tt></b>,
38957dd7cddfSDavid du Colombier<b><tt>Microweave</tt></b>, and <b><tt>noWeave</tt></b>.  The first and
38967dd7cddfSDavid du Colombiersecond are functionally identical, the difference being whether the driver
38977dd7cddfSDavid du Colombieror the printer does the job.
38987dd7cddfSDavid du Colombier
38997dd7cddfSDavid du Colombier<p>
39007dd7cddfSDavid du ColombierIn the default <b><tt>Softweave</tt></b> mode the driver sends the data
39017dd7cddfSDavid du Colombierproperly arranged to the printer, while in <b><tt>Microweave</tt></b> mode,
39027dd7cddfSDavid du Colombierit is the printer that arranges the data. But in general the host processor
39037dd7cddfSDavid du Colombieris much faster than the printer's processor, and thus it is faster for the
39047dd7cddfSDavid du Colombierhost do the job.  In addition to that, for 720dpi eight passes are
39057dd7cddfSDavid du Colombierrequired, and the amount of buffer space needed to buffer the data for the
39067dd7cddfSDavid du Colombierpasses is far beyond the printer's memory.  <b><tt>Softweave</tt></b>
39077dd7cddfSDavid du Colombierrequires an odd value of "<b><tt>escp_Band</tt></b>"; the Stylus Color
39087dd7cddfSDavid du Colombierprovides fifteen for that.
39097dd7cddfSDavid du Colombier
39107dd7cddfSDavid du Colombier<p>
39117dd7cddfSDavid du Colombier"<b><tt>OutputCode</tt></b>" controls the encoding used. In the basic
39127dd7cddfSDavid du Colombiermodes, the choice consists of "plain" and "runlength".  The computation of
39137dd7cddfSDavid du Colombierrunlength-encoded data does not take much time, less than the data tranfer
39147dd7cddfSDavid du Colombierto the printer; thus this is the recommended mode, and of course the
39157dd7cddfSDavid du Colombierdefault.  With the Stylus Color, Epson introduced some new encoding
39167dd7cddfSDavid du Colombierprinciples, namely "tiff" and "deltarow".  While the first was omitted from
39177dd7cddfSDavid du Colombierthis driver for lack of apparent advantages, "<b><tt>deltarow</tt></b>" is
39187dd7cddfSDavid du Colombieravailable as an option.  "<b><tt>Softweave</tt></b>" cannot be used with
39197dd7cddfSDavid du Colombierthis encoding, so if <b><tt>OutputCode=deltarow</tt></b> is set,
39207dd7cddfSDavid du Colombier<b><tt>Microweave</tt></b> becomes the default.  Maybe that the size of the
39217dd7cddfSDavid du ColombierESC/P2 code becomes smaller, but I have never observed faster printing
39227dd7cddfSDavid du Colombierspeed.  Things tend to become slower with <b><tt>deltarow</tt></b> compared
39237dd7cddfSDavid du Colombierto <b><tt>Softweave</tt></b>.
39247dd7cddfSDavid du Colombier
3925*3ff48bf5SDavid du Colombier<h4><a name="STC_model"></a><b><tt>Model</tt></b></h4>
39267dd7cddfSDavid du Colombier
39277dd7cddfSDavid du Colombier<p>
39287dd7cddfSDavid du ColombierSome ESC/P2 printers such as the Stylus 800 do not offer
39297dd7cddfSDavid du Colombier<b><tt>Microweave</tt></b> or the commands required to do
39307dd7cddfSDavid du Colombier<b><tt>Softweave</tt></b>.  Setting <b><tt>Model</tt></b> just changes the
39317dd7cddfSDavid du Colombierdefaults and omits some parts of the initialization sequence which are not
39327dd7cddfSDavid du Colombiercompatible with the given printer model.  Currently only
39337dd7cddfSDavid du Colombier"<b><tt>st800</tt></b>" is supported besides the default
39347dd7cddfSDavid du Colombier<b><tt>stcolor</tt></b>.
39357dd7cddfSDavid du Colombier
3936*3ff48bf5SDavid du Colombier<h3><a name="STC_Pitfalls"></a>Bugs and pitfalls</h3>
39377dd7cddfSDavid du Colombier
39387dd7cddfSDavid du Colombier<ul>
39397dd7cddfSDavid du Colombier<li>The given <b><tt>?coding</tt></b> and <b><tt>?transfer</tt></b> arrays
39407dd7cddfSDavid du Colombiershould be strictly monotonic.
39417dd7cddfSDavid du Colombier
39427dd7cddfSDavid du Colombier<li>It is impossible to change <b><tt>WHITE</tt></b>: that's your paper.
39437dd7cddfSDavid du ColombierThus RGB transfer should end at 1.0 and CMYK transfer should start at 0.0.
39447dd7cddfSDavid du Colombier
39457dd7cddfSDavid du Colombier<li>Usually 8 bits per component yields fastest operation.
39467dd7cddfSDavid du Colombier
39477dd7cddfSDavid du Colombier<li>The <b><tt>ColorAdjustMatrix</tt></b> is not used in the reverse
39487dd7cddfSDavid du Colombiertransformation used when Ghostscript does the dithering
39497dd7cddfSDavid du Colombier(<b><tt>gs</tt></b>* modes).  Expect funny results.
39507dd7cddfSDavid du Colombier
39517dd7cddfSDavid du Colombier<li>If <b><tt>BitsPerPixel</tt></b> is less than 6, the entire coding and
39527dd7cddfSDavid du Colombiertransfer process does not work.  This is always true for the
39537dd7cddfSDavid du Colombier<b><tt>gs</tt></b>* modes and becomes true for the other modes if
39547dd7cddfSDavid du Colombier<b><tt>BitsPerPixel</tt></b> is forced to low values.
39557dd7cddfSDavid du Colombier
39567dd7cddfSDavid du Colombier<li>720&times;720dpi printing should never select the <b><tt>gs</tt></b>*
39577dd7cddfSDavid du Colombiermodes and should always use <b><tt>stcolor.ps</tt></b>.  (I prefer
39587dd7cddfSDavid du Colombier360&times;720.)
39597dd7cddfSDavid du Colombier</ul>
39607dd7cddfSDavid du Colombier
3961*3ff48bf5SDavid du Colombier<h3><a name="STC_Tests"></a>Tests</h3>
39627dd7cddfSDavid du Colombier
39637dd7cddfSDavid du Colombier<p>
39647dd7cddfSDavid du ColombierThis section gives an overview of performance in terms of processing and
39657dd7cddfSDavid du Colombierprinting times, from tests run after version 1.13.  Printing was done
39667dd7cddfSDavid du Colombieroffline (simply copying a processed file to the printer) to measure real
39677dd7cddfSDavid du Colombierprinting speed without regard to speed of processing on the host, since at
39687dd7cddfSDavid du Colombierhigh resolutions, processing time is the same order of magnitude and thus
39697dd7cddfSDavid du Colombiermay become the limiting factor.
39707dd7cddfSDavid du Colombier
3971*3ff48bf5SDavid du Colombier<h4><a name="STC_OutputCodes"></a>The various OutputCodes</h4>
39727dd7cddfSDavid du Colombier
39737dd7cddfSDavid du Colombier<p>
39747dd7cddfSDavid du ColombierI ran several files though Ghostscript and recorded the size of the
39757dd7cddfSDavid du Colombierresulting print code, the processing time, and the printing time, at least
39767dd7cddfSDavid du Colombierfor some of the files, always using these options:
39777dd7cddfSDavid du Colombier
39787dd7cddfSDavid du Colombier<blockquote><b><tt>
39797dd7cddfSDavid du Colombiergs -sDEVICE=stcolor -sPAPERSIZE=a4 stcolor.ps - &lt; file.ps
39807dd7cddfSDavid du Colombier</tt></b></blockquote>
39817dd7cddfSDavid du Colombier
39827dd7cddfSDavid du Colombier<p>
39837dd7cddfSDavid du Colombier(Actually "<b><tt>-sPAPERSIZE=a4</tt></b>" is in my
39847dd7cddfSDavid du Colombier<b><tt>gs_init.ps</tt></b> since I'm a germ.)
39857dd7cddfSDavid du Colombier
39867dd7cddfSDavid du Colombier<p>"<b><tt>deltarow</tt></b>" is the new encoding principle
39877dd7cddfSDavid du Colombier("<b><tt>ESC&nbsp;.&nbsp;3&nbsp;10&nbsp;10&nbsp;1</tt></b>") with
39887dd7cddfSDavid du Colombier<b><tt>Microweave</tt></b> on.  It is activated with
39897dd7cddfSDavid du Colombier"<b><tt>-sOutputCode=deltarow</tt></b>".
39907dd7cddfSDavid du Colombier
39917dd7cddfSDavid du Colombier<p>"<b><tt>Softweave</tt></b>" actually means that nothing else was used:
39927dd7cddfSDavid du Colombierit is the default, and implies that odd v=40/h=10/m=15 mode
39937dd7cddfSDavid du Colombier("<b><tt>ESC&nbsp;.&nbsp;1&nbsp;40&nbsp;10&nbsp;15</tt></b>").
39947dd7cddfSDavid du Colombier
39957dd7cddfSDavid du Colombier<p>"<b><tt>Microweave</tt></b>" means "<b><tt>-dMicroweave</tt></b>",
39967dd7cddfSDavid du Colombierequivalent to "<b><tt>ESC&nbsp;.&nbsp;1&nbsp;10&nbsp;10&nbsp;1</tt></b>",
39977dd7cddfSDavid du Colombierwith full skip optimization and microweave activated.
39987dd7cddfSDavid du Colombier
39997dd7cddfSDavid du Colombier<p>
40007dd7cddfSDavid du ColombierFinally I wanted to see the plain Kathy Ireland, and used
40017dd7cddfSDavid du Colombier"<b><tt>-sOutputCode=plain</tt></b>", which just replaces runlength
40027dd7cddfSDavid du Colombierencoding (RLE) by no encoding, thus using
40037dd7cddfSDavid du Colombier"<b><tt>ESC&nbsp;.&nbsp;0&nbsp;40&nbsp;10&nbsp;15</tt></b>".  [So sorry
40047dd7cddfSDavid du Colombier<b><tt>;-)</tt></b> Kathy was still dressed in blue in front of the blue
40057dd7cddfSDavid du Colombiersea on a blue air cushion -- nice to see but hard to dither.]
40067dd7cddfSDavid du Colombier
40077dd7cddfSDavid du Colombier<p>
40087dd7cddfSDavid du ColombierSo here are the results.
40097dd7cddfSDavid du Colombier
40107dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
40117dd7cddfSDavid du Colombier<tr><th colspan=9 bgcolor="#CCCC00"><hr><font size="+1">File sizes and printing speeds with various weaving methods</font><hr>
40127dd7cddfSDavid du Colombier<tr valign=bottom>
40137dd7cddfSDavid du Colombier	<td>&nbsp;
40147dd7cddfSDavid du Colombier	<td>&nbsp;
40157dd7cddfSDavid du Colombier	<th><b><tt>golfer.ps</tt></b>
40167dd7cddfSDavid du Colombier	<td>&nbsp;
40177dd7cddfSDavid du Colombier	<th><b><tt>colorcir.ps</tt></b>
40187dd7cddfSDavid du Colombier	<td>&nbsp;
40197dd7cddfSDavid du Colombier	<th><b><tt>drawing.ps</tt></b>
40207dd7cddfSDavid du Colombier	<td>&nbsp;
40217dd7cddfSDavid du Colombier	<th><b><tt>brief.ps</tt></b>
40227dd7cddfSDavid du Colombier<tr>	<td colspan=9><hr>
40237dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>deltarow</tt></b>
40247dd7cddfSDavid du Colombier	<td>&nbsp;
40257dd7cddfSDavid du Colombier	<td>572751/48.180u
40267dd7cddfSDavid du Colombier	<td>&nbsp;
40277dd7cddfSDavid du Colombier	<td>643374/41.690u
40287dd7cddfSDavid du Colombier	<td>&nbsp;
40297dd7cddfSDavid du Colombier	<td>90142/46.180u/1:50
40307dd7cddfSDavid du Colombier	<td>&nbsp;
40317dd7cddfSDavid du Colombier	<td>178563/49.350u/2:22
40327dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Softweave</tt></b>
40337dd7cddfSDavid du Colombier	<td>&nbsp;
40347dd7cddfSDavid du Colombier	<td>559593/46.810u
40357dd7cddfSDavid du Colombier	<td>&nbsp;
40367dd7cddfSDavid du Colombier	<td>669966/44.960u
40377dd7cddfSDavid du Colombier	<td>&nbsp;
40387dd7cddfSDavid du Colombier	<td>296168/48.160u/1:30
40397dd7cddfSDavid du Colombier	<td>&nbsp;
40407dd7cddfSDavid du Colombier	<td>269808/43.320u/1:55
40417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Microweave</tt></b>
40427dd7cddfSDavid du Colombier	<td>&nbsp;
40437dd7cddfSDavid du Colombier	<td>590999/56.060u
40447dd7cddfSDavid du Colombier	<td>&nbsp;
40457dd7cddfSDavid du Colombier	<td>754276/42.890u
40467dd7cddfSDavid du Colombier	<td>&nbsp;
40477dd7cddfSDavid du Colombier	<td>338885/47.060u/1:50
40487dd7cddfSDavid du Colombier	<td>&nbsp;
40497dd7cddfSDavid du Colombier	<td>282314/44.690u/2:22
40507dd7cddfSDavid du Colombier</table></blockquote>
40517dd7cddfSDavid du Colombier
40527dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
40537dd7cddfSDavid du Colombier<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Kathy Ireland</font><hr>
40547dd7cddfSDavid du Colombier<tr valign=bottom>
40557dd7cddfSDavid du Colombier	<td>&nbsp;
40567dd7cddfSDavid du Colombier	<td>&nbsp;
40577dd7cddfSDavid du Colombier	<th><b><tt>kathy.ps</tt></b>
40587dd7cddfSDavid du Colombier<tr>	<td colspan=3><hr>
40597dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>deltarow</tt></b>
40607dd7cddfSDavid du Colombier	<td>&nbsp;
40617dd7cddfSDavid du Colombier	<td>3975334/111.940u/5:35
40627dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Softweave</tt></b>
40637dd7cddfSDavid du Colombier	<td>&nbsp;
40647dd7cddfSDavid du Colombier	<td>3897112/101.940u/3:10
40657dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>Microweave</tt></b>
40667dd7cddfSDavid du Colombier	<td>&nbsp;
40677dd7cddfSDavid du Colombier	<td>4062829/100.990u/3:15
40687dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>plain/soft</tt></b>
40697dd7cddfSDavid du Colombier	<td>&nbsp;
40707dd7cddfSDavid du Colombier	<td>5072255/104.390u/3:05
40717dd7cddfSDavid du Colombier</table></blockquote>
40727dd7cddfSDavid du Colombier
40737dd7cddfSDavid du Colombier<p>
40747dd7cddfSDavid du ColombierIt may be that I've not chosen the optimal <b><tt>deltarow</tt></b> code,
40757dd7cddfSDavid du Colombierbut even if it saves at lot of bytes, printing-speed is not increased.
40767dd7cddfSDavid du Colombier
40777dd7cddfSDavid du Colombier<p>
40787dd7cddfSDavid du ColombierAt least the printer prefers plain Kathy.  In other words, sending 1
40797dd7cddfSDavid du ColombierMegabyte or 20% more data has no impact on printing speed.
40807dd7cddfSDavid du Colombier<b><tt>drawing.ps</tt></b> is an exception to this rule: plain prints
40817dd7cddfSDavid du Colombierslower than RLE.
40827dd7cddfSDavid du Colombier
40837dd7cddfSDavid du Colombier<p>
40847dd7cddfSDavid du Colombier"Unclever" coding -- especially with <b><tt>deltarow</tt></b> -- can
40857dd7cddfSDavid du Colombiersignificantly slow down printing.  But even if very significant advantages
40867dd7cddfSDavid du Colombierin the size of the code are achieved, "<b><tt>deltarow</tt></b>" is not
40877dd7cddfSDavid du Colombiercompetitive.  <b><tt>colorcir.ps</tt></b> shows savings with
40887dd7cddfSDavid du Colombier<b><tt>deltarow</tt></b>, but printing is a mess.
40897dd7cddfSDavid du Colombier
4090*3ff48bf5SDavid du Colombier<h4><a name="STC_printing_time"></a>Printing time related to other options</h4>
40917dd7cddfSDavid du Colombier
40927dd7cddfSDavid du Colombier<p>
40937dd7cddfSDavid du ColombierFull page halftone images printed, unless otherwise noted.
40947dd7cddfSDavid du Colombier
40957dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
40967dd7cddfSDavid du Colombier<tr><th colspan=11 bgcolor="#CCCC00"><hr><font size="+1">Printing time related to other options</font><hr>
40977dd7cddfSDavid du Colombier<tr valign=top>	<th>dpi
40987dd7cddfSDavid du Colombier	<td>&nbsp;
40997dd7cddfSDavid du Colombier	<th colspan=3>Print mode
41007dd7cddfSDavid du Colombier	<td>&nbsp;
41017dd7cddfSDavid du Colombier	<th>Size KB
41027dd7cddfSDavid du Colombier	<td>&nbsp;
41037dd7cddfSDavid du Colombier	<th>Time
41047dd7cddfSDavid du Colombier	<td>&nbsp;
41057dd7cddfSDavid du Colombier	<th align=left>Comments
41067dd7cddfSDavid du Colombier<tr>	<td colspan=11><hr>
41077dd7cddfSDavid du Colombier<tr valign=top>	<td>180x180
41087dd7cddfSDavid du Colombier	<td>&nbsp;
41097dd7cddfSDavid du Colombier	<td>mono
41107dd7cddfSDavid du Colombier	<td>&nbsp;
41117dd7cddfSDavid du Colombier	<td align=right>-/uni
41127dd7cddfSDavid du Colombier	<td>&nbsp;
41137dd7cddfSDavid du Colombier	<td align=right>358
41147dd7cddfSDavid du Colombier	<td>&nbsp;
41157dd7cddfSDavid du Colombier	<td align=right>1:15
41167dd7cddfSDavid du Colombier	<td>&nbsp;
41177dd7cddfSDavid du Colombier	<td>&nbsp;
41187dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41197dd7cddfSDavid du Colombier	<td>&nbsp;
41207dd7cddfSDavid du Colombier	<td align=right>&nbsp;
41217dd7cddfSDavid du Colombier	<td>&nbsp;
41227dd7cddfSDavid du Colombier	<td align=right>-/bi
41237dd7cddfSDavid du Colombier	<td>&nbsp;
41247dd7cddfSDavid du Colombier	<td align=right>358
41257dd7cddfSDavid du Colombier	<td>&nbsp;
41267dd7cddfSDavid du Colombier	<td align=right>0:45
41277dd7cddfSDavid du Colombier	<td>&nbsp;
41287dd7cddfSDavid du Colombier	<td>&nbsp;
41297dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41307dd7cddfSDavid du Colombier	<td>&nbsp;
41317dd7cddfSDavid du Colombier	<td align=right>&nbsp;
41327dd7cddfSDavid du Colombier	<td>&nbsp;
41337dd7cddfSDavid du Colombier	<td align=right>micro/bi
41347dd7cddfSDavid du Colombier	<td>&nbsp;
41357dd7cddfSDavid du Colombier	<td align=right>205
41367dd7cddfSDavid du Colombier	<td>&nbsp;
41377dd7cddfSDavid du Colombier	<td align=right>0:45
41387dd7cddfSDavid du Colombier	<td>&nbsp;
41397dd7cddfSDavid du Colombier	<td>Not weaving
41407dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41417dd7cddfSDavid du Colombier	<td>&nbsp;
41427dd7cddfSDavid du Colombier	<td align=right>&nbsp;
41437dd7cddfSDavid du Colombier	<td>&nbsp;
41447dd7cddfSDavid du Colombier	<td align=right>soft/bi
41457dd7cddfSDavid du Colombier	<td>&nbsp;
41467dd7cddfSDavid du Colombier	<td align=right>179
41477dd7cddfSDavid du Colombier	<td>&nbsp;
41487dd7cddfSDavid du Colombier	<td align=right>1:25
41497dd7cddfSDavid du Colombier	<td>&nbsp;
41507dd7cddfSDavid du Colombier	<td>&nbsp;
41517dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41527dd7cddfSDavid du Colombier	<td>&nbsp;
41537dd7cddfSDavid du Colombier	<td>color
41547dd7cddfSDavid du Colombier	<td>&nbsp;
41557dd7cddfSDavid du Colombier	<td align=right>-/bi
41567dd7cddfSDavid du Colombier	<td>&nbsp;
41577dd7cddfSDavid du Colombier	<td align=right>641
41587dd7cddfSDavid du Colombier	<td>&nbsp;
41597dd7cddfSDavid du Colombier	<td align=right>2:45
41607dd7cddfSDavid du Colombier	<td>&nbsp;
41617dd7cddfSDavid du Colombier	<td>&nbsp;
41627dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41637dd7cddfSDavid du Colombier	<td>&nbsp;
41647dd7cddfSDavid du Colombier	<td align=right>&nbsp;
41657dd7cddfSDavid du Colombier	<td>&nbsp;
41667dd7cddfSDavid du Colombier	<td align=right>soft/bi
41677dd7cddfSDavid du Colombier	<td>&nbsp;
41687dd7cddfSDavid du Colombier	<td align=right>556
41697dd7cddfSDavid du Colombier	<td>&nbsp;
41707dd7cddfSDavid du Colombier	<td align=right>1:32
41717dd7cddfSDavid du Colombier	<td>&nbsp;
41727dd7cddfSDavid du Colombier	<td>&nbsp;
41737dd7cddfSDavid du Colombier<tr valign=top>	<td>360x360
41747dd7cddfSDavid du Colombier	<td>&nbsp;
41757dd7cddfSDavid du Colombier	<td>mono
41767dd7cddfSDavid du Colombier	<td>&nbsp;
41777dd7cddfSDavid du Colombier	<td align=right>-/uni
41787dd7cddfSDavid du Colombier	<td>&nbsp;
41797dd7cddfSDavid du Colombier	<td align=right>269
41807dd7cddfSDavid du Colombier	<td>&nbsp;
41817dd7cddfSDavid du Colombier	<td align=right>0:50
41827dd7cddfSDavid du Colombier	<td>&nbsp;
41837dd7cddfSDavid du Colombier	<td>Monochrome text
41847dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41857dd7cddfSDavid du Colombier	<td>&nbsp;
41867dd7cddfSDavid du Colombier	<td align=right>&nbsp;
41877dd7cddfSDavid du Colombier	<td>&nbsp;
41887dd7cddfSDavid du Colombier	<td align=right>-/bi
41897dd7cddfSDavid du Colombier	<td>&nbsp;
41907dd7cddfSDavid du Colombier	<td align=right>269
41917dd7cddfSDavid du Colombier	<td>&nbsp;
41927dd7cddfSDavid du Colombier	<td align=right>0:35
41937dd7cddfSDavid du Colombier	<td>&nbsp;
41947dd7cddfSDavid du Colombier	<td>Monochrome text
41957dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
41967dd7cddfSDavid du Colombier	<td>&nbsp;
41977dd7cddfSDavid du Colombier	<td align=right>&nbsp;
41987dd7cddfSDavid du Colombier	<td>&nbsp;
41997dd7cddfSDavid du Colombier	<td align=right>micro/bi
42007dd7cddfSDavid du Colombier	<td>&nbsp;
42017dd7cddfSDavid du Colombier	<td align=right>269
42027dd7cddfSDavid du Colombier	<td>&nbsp;
42037dd7cddfSDavid du Colombier	<td align=right>2:25
42047dd7cddfSDavid du Colombier	<td>&nbsp;
42057dd7cddfSDavid du Colombier	<td>Monochrome text
42067dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42077dd7cddfSDavid du Colombier	<td>&nbsp;
42087dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42097dd7cddfSDavid du Colombier	<td>&nbsp;
42107dd7cddfSDavid du Colombier	<td align=right>soft/uni
42117dd7cddfSDavid du Colombier	<td>&nbsp;
42127dd7cddfSDavid du Colombier	<td align=right>250
42137dd7cddfSDavid du Colombier	<td>&nbsp;
42147dd7cddfSDavid du Colombier	<td align=right>3:15
42157dd7cddfSDavid du Colombier	<td>&nbsp;
42167dd7cddfSDavid du Colombier	<td>Monochrome text
42177dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42187dd7cddfSDavid du Colombier	<td>&nbsp;
42197dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42207dd7cddfSDavid du Colombier	<td>&nbsp;
42217dd7cddfSDavid du Colombier	<td align=right>soft/bi
42227dd7cddfSDavid du Colombier	<td>&nbsp;
42237dd7cddfSDavid du Colombier	<td align=right>250
42247dd7cddfSDavid du Colombier	<td>&nbsp;
42257dd7cddfSDavid du Colombier	<td align=right>1:55
42267dd7cddfSDavid du Colombier	<td>&nbsp;
42277dd7cddfSDavid du Colombier	<td>Monochrome text
42287dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42297dd7cddfSDavid du Colombier	<td>&nbsp;
42307dd7cddfSDavid du Colombier	<td>color
42317dd7cddfSDavid du Colombier	<td>&nbsp;
42327dd7cddfSDavid du Colombier	<td align=right>-/bi
42337dd7cddfSDavid du Colombier	<td>&nbsp;
42347dd7cddfSDavid du Colombier	<td align=right>346
42357dd7cddfSDavid du Colombier	<td>&nbsp;
42367dd7cddfSDavid du Colombier	<td align=right>1:00
42377dd7cddfSDavid du Colombier	<td>&nbsp;
42387dd7cddfSDavid du Colombier	<td>Sparse-color page, visible displacements
42397dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42407dd7cddfSDavid du Colombier	<td>&nbsp;
42417dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42427dd7cddfSDavid du Colombier	<td>&nbsp;
42437dd7cddfSDavid du Colombier	<td align=right>micro/bi
42447dd7cddfSDavid du Colombier	<td>&nbsp;
42457dd7cddfSDavid du Colombier	<td align=right>346
42467dd7cddfSDavid du Colombier	<td>&nbsp;
42477dd7cddfSDavid du Colombier	<td align=right>1:50
42487dd7cddfSDavid du Colombier	<td>&nbsp;
42497dd7cddfSDavid du Colombier	<td>Sparse-color page, looks buggy -- printer?
42507dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42517dd7cddfSDavid du Colombier	<td>&nbsp;
42527dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42537dd7cddfSDavid du Colombier	<td>&nbsp;
42547dd7cddfSDavid du Colombier	<td align=right>soft/bi
42557dd7cddfSDavid du Colombier	<td>&nbsp;
42567dd7cddfSDavid du Colombier	<td align=right>294
42577dd7cddfSDavid du Colombier	<td>&nbsp;
42587dd7cddfSDavid du Colombier	<td align=right>1:30
42597dd7cddfSDavid du Colombier	<td>&nbsp;
42607dd7cddfSDavid du Colombier	<td>Sparse-color page, O.K.
42617dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42627dd7cddfSDavid du Colombier	<td>&nbsp;
42637dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42647dd7cddfSDavid du Colombier	<td>&nbsp;
42657dd7cddfSDavid du Colombier	<td align=right>-/bi
42667dd7cddfSDavid du Colombier	<td>&nbsp;
42677dd7cddfSDavid du Colombier	<td align=right>2218
42687dd7cddfSDavid du Colombier	<td>&nbsp;
42697dd7cddfSDavid du Colombier	<td align=right>2:45
42707dd7cddfSDavid du Colombier	<td>&nbsp;
42717dd7cddfSDavid du Colombier	<td>Visible stripes
42727dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42737dd7cddfSDavid du Colombier	<td>&nbsp;
42747dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42757dd7cddfSDavid du Colombier	<td>&nbsp;
42767dd7cddfSDavid du Colombier	<td align=right>micro/bi
42777dd7cddfSDavid du Colombier	<td>&nbsp;
42787dd7cddfSDavid du Colombier	<td align=right>5171
42797dd7cddfSDavid du Colombier	<td>&nbsp;
42807dd7cddfSDavid du Colombier	<td align=right>3:17
42817dd7cddfSDavid du Colombier	<td>&nbsp;
42827dd7cddfSDavid du Colombier	<td>&nbsp;
42837dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
42847dd7cddfSDavid du Colombier	<td>&nbsp;
42857dd7cddfSDavid du Colombier	<td align=right>&nbsp;
42867dd7cddfSDavid du Colombier	<td>&nbsp;
42877dd7cddfSDavid du Colombier	<td align=right>soft/bi
42887dd7cddfSDavid du Colombier	<td>&nbsp;
42897dd7cddfSDavid du Colombier	<td align=right>3675
42907dd7cddfSDavid du Colombier	<td>&nbsp;
42917dd7cddfSDavid du Colombier	<td align=right>3:05
42927dd7cddfSDavid du Colombier	<td>&nbsp;
42937dd7cddfSDavid du Colombier	<td>&nbsp;
42947dd7cddfSDavid du Colombier<tr valign=top>	<td>360x720
42957dd7cddfSDavid du Colombier	<td>&nbsp;
42967dd7cddfSDavid du Colombier	<td>mono
42977dd7cddfSDavid du Colombier	<td>&nbsp;
42987dd7cddfSDavid du Colombier	<td align=right>soft/bi
42997dd7cddfSDavid du Colombier	<td>&nbsp;
43007dd7cddfSDavid du Colombier	<td align=right>2761
43017dd7cddfSDavid du Colombier	<td>&nbsp;
43027dd7cddfSDavid du Colombier	<td align=right>5:40
43037dd7cddfSDavid du Colombier	<td>&nbsp;
43047dd7cddfSDavid du Colombier	<td>&nbsp;
43057dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
43067dd7cddfSDavid du Colombier	<td>&nbsp;
43077dd7cddfSDavid du Colombier	<td>color
43087dd7cddfSDavid du Colombier	<td>&nbsp;
43097dd7cddfSDavid du Colombier	<td align=right>soft/bi
43107dd7cddfSDavid du Colombier	<td>&nbsp;
43117dd7cddfSDavid du Colombier	<td align=right>7789
43127dd7cddfSDavid du Colombier	<td>&nbsp;
43137dd7cddfSDavid du Colombier	<td align=right>6:15
43147dd7cddfSDavid du Colombier	<td>&nbsp;
43157dd7cddfSDavid du Colombier	<td>Just a small difference!
43167dd7cddfSDavid du Colombier<tr valign=top>	<td>720x360
43177dd7cddfSDavid du Colombier	<td>&nbsp;
43187dd7cddfSDavid du Colombier	<td>color
43197dd7cddfSDavid du Colombier	<td>&nbsp;
43207dd7cddfSDavid du Colombier	<td align=right>soft/bi
43217dd7cddfSDavid du Colombier	<td>&nbsp;
43227dd7cddfSDavid du Colombier	<td align=right>7182
43237dd7cddfSDavid du Colombier	<td>&nbsp;
43247dd7cddfSDavid du Colombier	<td align=right>5:40
43257dd7cddfSDavid du Colombier	<td>&nbsp;
43267dd7cddfSDavid du Colombier	<td>&nbsp;
43277dd7cddfSDavid du Colombier<tr valign=top>	<td>720x720
43287dd7cddfSDavid du Colombier	<td>&nbsp;
43297dd7cddfSDavid du Colombier	<td>color
43307dd7cddfSDavid du Colombier	<td>&nbsp;
43317dd7cddfSDavid du Colombier	<td align=right>micro/bi
43327dd7cddfSDavid du Colombier	<td>&nbsp;
43337dd7cddfSDavid du Colombier	<td align=right>14748
43347dd7cddfSDavid du Colombier	<td>&nbsp;
43357dd7cddfSDavid du Colombier	<td align=right>30:26
43367dd7cddfSDavid du Colombier	<td>&nbsp;
43377dd7cddfSDavid du Colombier	<td>Actually beyond printer's capabilities
43387dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
43397dd7cddfSDavid du Colombier	<td>&nbsp;
43407dd7cddfSDavid du Colombier	<td align=right>&nbsp;
43417dd7cddfSDavid du Colombier	<td>&nbsp;
43427dd7cddfSDavid du Colombier	<td align=right>soft/bi
43437dd7cddfSDavid du Colombier	<td>&nbsp;
43447dd7cddfSDavid du Colombier	<td align=right>14407
43457dd7cddfSDavid du Colombier	<td>&nbsp;
43467dd7cddfSDavid du Colombier	<td align=right>11:08
43477dd7cddfSDavid du Colombier	<td>&nbsp;
43487dd7cddfSDavid du Colombier	<td>&nbsp;
43497dd7cddfSDavid du Colombier</table></blockquote>
43507dd7cddfSDavid du Colombier
4351*3ff48bf5SDavid du Colombier<h3><a name="STC_acks"></a>Acknowledgments</h3>
43527dd7cddfSDavid du Colombier
43537dd7cddfSDavid du Colombier<p>
43547dd7cddfSDavid du ColombierThis driver was copied from <b><tt>gdevcdj.c</tt></b> (Ghostscript 3.12),
43557dd7cddfSDavid du Colombierwhich was contributed by George Cameron, Koert Zeilstra, and Eckhard
43567dd7cddfSDavid du ColombierRueggeberg.  Some of the ESC/P2 code was drawn from Richard Brown's
43577dd7cddfSDavid du Colombier<b><tt>gdevescp.c</tt></b>.  The POSIX interrupt code (compilation option
43587dd7cddfSDavid du Colombier<b><tt>-DSTC_SIGNAL</tt></b>) is from Frederic Loyer.  Several improvements
43597dd7cddfSDavid du Colombierare based on discussions with Brian Converse, Bill Davidson, Gero Guenther,
43607dd7cddfSDavid du ColombierJason Patterson, ? Rueschstroer, and Steven Singer.
43617dd7cddfSDavid du Colombier
43627dd7cddfSDavid du Colombier<p>
43637dd7cddfSDavid du ColombierWhile I wish to thank everyone mentioned above, they are by no means
43647dd7cddfSDavid du Colombierresponsible for bugs in the stcolor driver -- just for the features.
43657dd7cddfSDavid du Colombier
43667dd7cddfSDavid du Colombier<address>
43677dd7cddfSDavid du ColombierGunther Hess<br>
43687dd7cddfSDavid du ColombierRichard Wagner Strasse 112<br>
43697dd7cddfSDavid du ColombierD-47057 Duisburg<br>
43707dd7cddfSDavid du ColombierGermany<br>
43717dd7cddfSDavid du Colombier+49 203 376273 telephone (MET evening hours)<br>
43727dd7cddfSDavid du Colombier&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
43737dd7cddfSDavid du Colombier</address>
43747dd7cddfSDavid du Colombier
43757dd7cddfSDavid du Colombier<hr>
43767dd7cddfSDavid du Colombier
4377*3ff48bf5SDavid du Colombier<h2><a name="Uniprint"></a>uniprint, a flexible unified printer driver</h2>
43787dd7cddfSDavid du Colombier
43797dd7cddfSDavid du Colombier<p>
43807dd7cddfSDavid du Colombier<b><tt>uniprint</tt></b> is a unified parametric driver by Gunther Hess
43817dd7cddfSDavid du Colombier&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt; for several
43827dd7cddfSDavid du Colombierkinds of printers and devices, including
43837dd7cddfSDavid du Colombier
43847dd7cddfSDavid du Colombier<blockquote>
43857dd7cddfSDavid du Colombier<ul>
43867dd7cddfSDavid du Colombier<li>any Epson Stylus Color, Stylus, or Stylus Pro
43877dd7cddfSDavid du Colombier<li>HP PCL/RTL
43887dd7cddfSDavid du Colombier<li>Canon BubbleJet Color 610
43897dd7cddfSDavid du Colombier<li>NEC P2X
43907dd7cddfSDavid du Colombier<li>Sun raster file format
43917dd7cddfSDavid du Colombier</ul></blockquote>
43927dd7cddfSDavid du Colombier
43937dd7cddfSDavid du Colombier<p>
43947dd7cddfSDavid du ColombierThis driver is intended to <em>become</em> a unified printer driver. If you
43957dd7cddfSDavid du Colombierconsider it ugly, please send me your suggestions for improvements.  The
43967dd7cddfSDavid du Colombierdriver will be updated with them.  Thus the full explanation of the driver's
43977dd7cddfSDavid du Colombiername is:
43987dd7cddfSDavid du Colombier
43997dd7cddfSDavid du Colombier<blockquote>
44007dd7cddfSDavid du ColombierUgly- -&gt; Updated- -&gt; Unified Printer Driver
44017dd7cddfSDavid du Colombier</blockquote>
44027dd7cddfSDavid du Colombier
44037dd7cddfSDavid du Colombier<p>
44047dd7cddfSDavid du ColombierBut you probably want to know something about the functionality.
44057dd7cddfSDavid du ColombierAt the time of this writing uniprint drives:
44067dd7cddfSDavid du Colombier
44077dd7cddfSDavid du Colombier<ul>
44087dd7cddfSDavid du Colombier<li>NEC Pinwriter P2X (24-pin monochrome impact printer, ESC/P style)
44097dd7cddfSDavid du Colombier<li>Several Epson Stylus Color models (ESC/P2 style)
44107dd7cddfSDavid du Colombier<li>HP-DeskJet 550c (basic HP-RTL)
44117dd7cddfSDavid du Colombier<li>Canon BJC 610
44127dd7cddfSDavid du Colombier</ul>
44137dd7cddfSDavid du Colombier
44147dd7cddfSDavid du Colombier<p>
44157dd7cddfSDavid du ColombierIt can be configured for various other printers without recompilation
44167dd7cddfSDavid du Colombierand offers uncompressed (ugly) Sun rasterfiles as another format, but
44177dd7cddfSDavid du Colombierthis format is intended for testing purposes rather than real use.
44187dd7cddfSDavid du ColombierThe usage of this driver is quite simple.  The typical command line looks
44197dd7cddfSDavid du Colombierlike this:
44207dd7cddfSDavid du Colombier
44217dd7cddfSDavid du Colombier<blockquote>
44227dd7cddfSDavid du Colombier<b><tt>gs @</tt></b>{MODEL}<b><tt>.upp -sOutputFile=</tt></b>{printable file}<b><tt> MyFile.ps -c quit</tt></b>
44237dd7cddfSDavid du Colombier</blockquote>
44247dd7cddfSDavid du Colombier
44257dd7cddfSDavid du Colombier<p>
44267dd7cddfSDavid du ColombierFor example, from my Linux box:
44277dd7cddfSDavid du Colombier
44287dd7cddfSDavid du Colombier<blockquote><b><tt>
44297dd7cddfSDavid du Colombiergs @stc.upp -sOutputFile=/dev/lp1 tiger.ps -c quit
44307dd7cddfSDavid du Colombier</tt></b></blockquote>
44317dd7cddfSDavid du Colombier
44327dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
44337dd7cddfSDavid du Colombier<tr><th colspan=6 bgcolor="#CCCC00"><hr><font size="+1">Unified Printer Parameter files distributed with Ghostscript</font><hr>
44347dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Canon BJC 610 (color, rendered)
44357dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;&nbsp;&nbsp;&nbsp;
44367dd7cddfSDavid du Colombier	<td><b><tt>bjc610a0.upp</tt></b>
44377dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
44387dd7cddfSDavid du Colombier	<td>360&times;360dpi
44397dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;
44407dd7cddfSDavid du Colombier	<td>plain paper, high speed
44417dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44427dd7cddfSDavid du Colombier	<td><b><tt>bjc610a1.upp</tt></b>
44437dd7cddfSDavid du Colombier	<td>&nbsp;
44447dd7cddfSDavid du Colombier	<td>360&times;360dpi
44457dd7cddfSDavid du Colombier	<td>&nbsp;
44467dd7cddfSDavid du Colombier	<td>plain paper
44477dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44487dd7cddfSDavid du Colombier	<td><b><tt>bjc610a2.upp</tt></b>
44497dd7cddfSDavid du Colombier	<td>&nbsp;
44507dd7cddfSDavid du Colombier	<td>360&times;360dpi
44517dd7cddfSDavid du Colombier	<td>&nbsp;
44527dd7cddfSDavid du Colombier	<td>coated paper
44537dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44547dd7cddfSDavid du Colombier	<td><b><tt>bjc610a3.upp</tt></b>
44557dd7cddfSDavid du Colombier	<td>&nbsp;
44567dd7cddfSDavid du Colombier	<td>360&times;360dpi
44577dd7cddfSDavid du Colombier	<td>&nbsp;
44587dd7cddfSDavid du Colombier	<td>transparency film
44597dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44607dd7cddfSDavid du Colombier	<td><b><tt>bjc610a4.upp</tt></b>
44617dd7cddfSDavid du Colombier	<td>&nbsp;
44627dd7cddfSDavid du Colombier	<td>360&times;360dpi
44637dd7cddfSDavid du Colombier	<td>&nbsp;
44647dd7cddfSDavid du Colombier	<td>back print film
44657dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44667dd7cddfSDavid du Colombier	<td><b><tt>bjc610a5.upp</tt></b>
44677dd7cddfSDavid du Colombier	<td>&nbsp;
44687dd7cddfSDavid du Colombier	<td>360&times;360dpi
44697dd7cddfSDavid du Colombier	<td>&nbsp;
44707dd7cddfSDavid du Colombier	<td>fabric sheet
44717dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44727dd7cddfSDavid du Colombier	<td><b><tt>bjc610a6.upp</tt></b>
44737dd7cddfSDavid du Colombier	<td>&nbsp;
44747dd7cddfSDavid du Colombier	<td>360&times;360dpi
44757dd7cddfSDavid du Colombier	<td>&nbsp;
44767dd7cddfSDavid du Colombier	<td>glossy paper
44777dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44787dd7cddfSDavid du Colombier	<td><b><tt>bjc610a7.upp</tt></b>
44797dd7cddfSDavid du Colombier	<td>&nbsp;
44807dd7cddfSDavid du Colombier	<td>360&times;360dpi
44817dd7cddfSDavid du Colombier	<td>&nbsp;
44827dd7cddfSDavid du Colombier	<td>high gloss film
44837dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44847dd7cddfSDavid du Colombier	<td><b><tt>bjc610a8.upp</tt></b>
44857dd7cddfSDavid du Colombier	<td>&nbsp;
44867dd7cddfSDavid du Colombier	<td>360&times;360dpi
44877dd7cddfSDavid du Colombier	<td>&nbsp;
44887dd7cddfSDavid du Colombier	<td>high resolution paper
44897dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
44907dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44917dd7cddfSDavid du Colombier	<td><b><tt>bjc610b1.upp</tt></b>
44927dd7cddfSDavid du Colombier	<td>&nbsp;
44937dd7cddfSDavid du Colombier	<td>720&times;720dpi
44947dd7cddfSDavid du Colombier	<td>&nbsp;
44957dd7cddfSDavid du Colombier	<td>plain paper
44967dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
44977dd7cddfSDavid du Colombier	<td><b><tt>bjc610b2.upp</tt></b>
44987dd7cddfSDavid du Colombier	<td>&nbsp;
44997dd7cddfSDavid du Colombier	<td>720&times;720dpi
45007dd7cddfSDavid du Colombier	<td>&nbsp;
45017dd7cddfSDavid du Colombier	<td>coated paper
45027dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45037dd7cddfSDavid du Colombier	<td><b><tt>bjc610b3.upp</tt></b>
45047dd7cddfSDavid du Colombier	<td>&nbsp;
45057dd7cddfSDavid du Colombier	<td>720&times;720dpi
45067dd7cddfSDavid du Colombier	<td>&nbsp;
45077dd7cddfSDavid du Colombier	<td>transparency film
45087dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45097dd7cddfSDavid du Colombier	<td><b><tt>bjc610b4.upp</tt></b>
45107dd7cddfSDavid du Colombier	<td>&nbsp;
45117dd7cddfSDavid du Colombier	<td>720&times;720dpi
45127dd7cddfSDavid du Colombier	<td>&nbsp;
45137dd7cddfSDavid du Colombier	<td>back print film
45147dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45157dd7cddfSDavid du Colombier	<td><b><tt>bjc610b6.upp</tt></b>
45167dd7cddfSDavid du Colombier	<td>&nbsp;
45177dd7cddfSDavid du Colombier	<td>720&times;720dpi
45187dd7cddfSDavid du Colombier	<td>&nbsp;
45197dd7cddfSDavid du Colombier	<td>glossy paper
45207dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45217dd7cddfSDavid du Colombier	<td><b><tt>bjc610b7.upp</tt></b>
45227dd7cddfSDavid du Colombier	<td>&nbsp;
45237dd7cddfSDavid du Colombier	<td>720&times;720dpi
45247dd7cddfSDavid du Colombier	<td>&nbsp;
45257dd7cddfSDavid du Colombier	<td>high-gloss paper
45267dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45277dd7cddfSDavid du Colombier	<td><b><tt>bjc610b8.upp</tt></b>
45287dd7cddfSDavid du Colombier	<td>&nbsp;
45297dd7cddfSDavid du Colombier	<td>720&times;720dpi
45307dd7cddfSDavid du Colombier	<td>&nbsp;
45317dd7cddfSDavid du Colombier	<td>high resolution paper
45327dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
45337dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>HP Ink-Printers
45347dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45357dd7cddfSDavid du Colombier	<td><b><tt>cdj550.upp</tt></b>
45367dd7cddfSDavid du Colombier	<td>&nbsp;
45377dd7cddfSDavid du Colombier	<td>300&times;300dpi
45387dd7cddfSDavid du Colombier	<td>&nbsp;
45397dd7cddfSDavid du Colombier	<td>32-bit CMYK
45407dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45417dd7cddfSDavid du Colombier	<td><b><tt>cdj690.upp</tt></b>
45427dd7cddfSDavid du Colombier	<td>&nbsp;
45437dd7cddfSDavid du Colombier	<td>300&times;300dpi
45447dd7cddfSDavid du Colombier	<td>&nbsp;
45457dd7cddfSDavid du Colombier	<td>Normal mode
45467dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45477dd7cddfSDavid du Colombier	<td><b><tt>cdj690ec.upp</tt></b>
45487dd7cddfSDavid du Colombier	<td>&nbsp;
45497dd7cddfSDavid du Colombier	<td>300&times;300dpi
45507dd7cddfSDavid du Colombier	<td>&nbsp;
45517dd7cddfSDavid du Colombier	<td>Economy mode
45527dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45537dd7cddfSDavid du Colombier	<td><b><tt>dnj750c.upp</tt></b>
45547dd7cddfSDavid du Colombier	<td>&nbsp;
45557dd7cddfSDavid du Colombier	<td>300&times;300dpi
45567dd7cddfSDavid du Colombier	<td>&nbsp;
4557*3ff48bf5SDavid du Colombier	<td>Color -- also good for 450C
45587dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45597dd7cddfSDavid du Colombier	<td><b><tt>dnj750m.upp</tt></b>
45607dd7cddfSDavid du Colombier	<td>&nbsp;
45617dd7cddfSDavid du Colombier	<td>600&times;600dpi
45627dd7cddfSDavid du Colombier	<td>&nbsp;
45637dd7cddfSDavid du Colombier	<td>Monochrome
45647dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
45657dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>NEC P2X
45667dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45677dd7cddfSDavid du Colombier	<td><b><tt>necp2x.upp</tt></b>
45687dd7cddfSDavid du Colombier	<td>&nbsp;
45697dd7cddfSDavid du Colombier	<td>360&times;360dpi
45707dd7cddfSDavid du Colombier	<td>&nbsp;
45717dd7cddfSDavid du Colombier	<td>8-bit (Floyd-Steinberg)
45727dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
45737dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Any Epson Stylus Color
45747dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45757dd7cddfSDavid du Colombier	<td><b><tt>stcany.upp</tt></b>
45767dd7cddfSDavid du Colombier	<td>&nbsp;
45777dd7cddfSDavid du Colombier	<td>360&times;360dpi
45787dd7cddfSDavid du Colombier	<td>&nbsp;
45797dd7cddfSDavid du Colombier	<td>4-bit, PostScript halftoning
45807dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45817dd7cddfSDavid du Colombier	<td><b><tt>stcany_h.upp</tt></b>
45827dd7cddfSDavid du Colombier	<td>&nbsp;
45837dd7cddfSDavid du Colombier	<td>720&times;720dpi
45847dd7cddfSDavid du Colombier	<td>&nbsp;
45857dd7cddfSDavid du Colombier	<td>4-bit, PostScript halftoning
45867dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
45877dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Original Epson Stylus and Stylus Pro Color
45887dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45897dd7cddfSDavid du Colombier	<td><b><tt>stc.upp</tt></b>
45907dd7cddfSDavid du Colombier	<td>&nbsp;
45917dd7cddfSDavid du Colombier	<td>360&times;360dpi
45927dd7cddfSDavid du Colombier	<td>&nbsp;
45937dd7cddfSDavid du Colombier	<td>32-bit CMYK, 15-pin
45947dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
45957dd7cddfSDavid du Colombier	<td><b><tt>stc_l.upp</tt></b>
45967dd7cddfSDavid du Colombier	<td>&nbsp;
45977dd7cddfSDavid du Colombier	<td>360&times;360dpi
45987dd7cddfSDavid du Colombier	<td>&nbsp;
45997dd7cddfSDavid du Colombier	<td>4-bit, PostScript halftoning, weaved noWeave
46007dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46017dd7cddfSDavid du Colombier	<td><b><tt>stc_h.upp</tt></b>
46027dd7cddfSDavid du Colombier	<td>&nbsp;
46037dd7cddfSDavid du Colombier	<td>720&times;720dpi
46047dd7cddfSDavid du Colombier	<td>&nbsp;
46057dd7cddfSDavid du Colombier	<td>32-bit CMYK, 15-pin Weave
46067dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
46077dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color II
46087dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46097dd7cddfSDavid du Colombier	<td><b><tt>stc2.upp</tt></b>
46107dd7cddfSDavid du Colombier	<td>&nbsp;
46117dd7cddfSDavid du Colombier	<td>360&times;360dpi
46127dd7cddfSDavid du Colombier	<td>&nbsp;
46137dd7cddfSDavid du Colombier	<td>32-bit CMYK, 20-pin, Epson Stylus Color II(s)
46147dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46157dd7cddfSDavid du Colombier	<td><b><tt>stc2_h.upp</tt></b>
46167dd7cddfSDavid du Colombier	<td>&nbsp;
46177dd7cddfSDavid du Colombier	<td>720&times;720dpi
46187dd7cddfSDavid du Colombier	<td>&nbsp;
46197dd7cddfSDavid du Colombier	<td>32-bit CMYK, 20-pin, Epson Stylus Color II
46207dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46217dd7cddfSDavid du Colombier	<td><b><tt>stc2s_h.upp</tt></b>
46227dd7cddfSDavid du Colombier	<td>&nbsp;
46237dd7cddfSDavid du Colombier	<td>720&times;720dpi
46247dd7cddfSDavid du Colombier	<td>&nbsp;
46257dd7cddfSDavid du Colombier	<td>32-bit CMYK, 20-pin, Epson Stylus Color IIs
46267dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
46277dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 200
46287dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46297dd7cddfSDavid du Colombier	<td><b><tt>stc200.upp</tt></b>
46307dd7cddfSDavid du Colombier	<td>&nbsp;
46317dd7cddfSDavid du Colombier	<td>360&times;720dpi
46327dd7cddfSDavid du Colombier	<td>&nbsp;
46337dd7cddfSDavid du Colombier	<td>Plain Paper
46347dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
4635*3ff48bf5SDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 300
4636*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4637*3ff48bf5SDavid du Colombier	<td><b><tt>stc300.upp</tt></b>
4638*3ff48bf5SDavid du Colombier	<td>&nbsp;
4639*3ff48bf5SDavid du Colombier	<td>360&times;360dpi
4640*3ff48bf5SDavid du Colombier	<td>&nbsp;
4641*3ff48bf5SDavid du Colombier	<td>32-bit CMYK, plain paper
4642*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4643*3ff48bf5SDavid du Colombier	<td><b><tt>stc300bl.upp</tt></b>
4644*3ff48bf5SDavid du Colombier	<td>&nbsp;
4645*3ff48bf5SDavid du Colombier	<td>180&times;180dpi
4646*3ff48bf5SDavid du Colombier	<td>&nbsp;
4647*3ff48bf5SDavid du Colombier	<td>black only, plain paper
4648*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4649*3ff48bf5SDavid du Colombier	<td><b><tt>stc300bm.upp</tt></b>
4650*3ff48bf5SDavid du Colombier	<td>&nbsp;
4651*3ff48bf5SDavid du Colombier	<td>360&times;360dpi
4652*3ff48bf5SDavid du Colombier	<td>&nbsp;
4653*3ff48bf5SDavid du Colombier	<td>black only, plain paper
4654*3ff48bf5SDavid du Colombier<tr>	<td>&nbsp;
46557dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 500 (good transfer curves for plain paper)
46567dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46577dd7cddfSDavid du Colombier	<td><b><tt>stc500p.upp</tt></b>
46587dd7cddfSDavid du Colombier	<td>&nbsp;
46597dd7cddfSDavid du Colombier	<td>360&times;360dpi
46607dd7cddfSDavid du Colombier	<td>&nbsp;
46617dd7cddfSDavid du Colombier	<td>32-bit CMYK, noWeave, plain paper
46627dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46637dd7cddfSDavid du Colombier	<td><b><tt>stc500ph.upp</tt></b>
46647dd7cddfSDavid du Colombier	<td>&nbsp;
46657dd7cddfSDavid du Colombier	<td>720&times;720dpi
46667dd7cddfSDavid du Colombier	<td>&nbsp;
46677dd7cddfSDavid du Colombier	<td>32-bit CMYK, noWeave, plain paper
46687dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
46697dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 600, 32/90-inch weaving
46707dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46717dd7cddfSDavid du Colombier	<td><b><tt>stc600pl.upp</tt></b>
46727dd7cddfSDavid du Colombier	<td>&nbsp;
46737dd7cddfSDavid du Colombier	<td>360&times;360dpi
46747dd7cddfSDavid du Colombier	<td>&nbsp;
46757dd7cddfSDavid du Colombier	<td>32-bit CMYK, 32-pin, plain paper
46767dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46777dd7cddfSDavid du Colombier	<td><b><tt>stc600p.upp</tt></b>
46787dd7cddfSDavid du Colombier	<td>&nbsp;
46797dd7cddfSDavid du Colombier	<td>720&times;720dpi
46807dd7cddfSDavid du Colombier	<td>&nbsp;
46817dd7cddfSDavid du Colombier	<td>32-bit CMYK, 32-pin, plain paper
46827dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46837dd7cddfSDavid du Colombier	<td><b><tt>stc600ih.upp</tt></b>
46847dd7cddfSDavid du Colombier	<td>&nbsp;
46857dd7cddfSDavid du Colombier	<td>1440&times;720dpi
46867dd7cddfSDavid du Colombier	<td>&nbsp;
46877dd7cddfSDavid du Colombier	<td>32-bit CMYK, 30-pin, inkjet paper
46887dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
46897dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 640
46907dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
46917dd7cddfSDavid du Colombier	<td><b><tt>stc640p.upp</tt></b>
46927dd7cddfSDavid du Colombier	<td>&nbsp;
46937dd7cddfSDavid du Colombier	<td>720&times;720dpi
46947dd7cddfSDavid du Colombier	<td>&nbsp;
46957dd7cddfSDavid du Colombier	<td>plain paper?
4696*3ff48bf5SDavid du Colombier
4697*3ff48bf5SDavid du Colombier
4698*3ff48bf5SDavid du Colombier
4699*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4700*3ff48bf5SDavid du Colombier	<td><b><tt>st640p.upp</tt></b>
4701*3ff48bf5SDavid du Colombier	<td>&nbsp;
4702*3ff48bf5SDavid du Colombier	<td>720&times;720dpi
4703*3ff48bf5SDavid du Colombier	<td>&nbsp;
4704*3ff48bf5SDavid du Colombier	<td>CMYK, plain paper
4705*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4706*3ff48bf5SDavid du Colombier	<td><b><tt>st640pg.upp</tt></b>
4707*3ff48bf5SDavid du Colombier	<td>&nbsp;
4708*3ff48bf5SDavid du Colombier	<td>720&times;720dpi
4709*3ff48bf5SDavid du Colombier	<td>&nbsp;
4710*3ff48bf5SDavid du Colombier	<td>grayscale, plain paper
4711*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4712*3ff48bf5SDavid du Colombier	<td><b><tt>st640pl.upp</tt></b>
4713*3ff48bf5SDavid du Colombier	<td>&nbsp;
4714*3ff48bf5SDavid du Colombier	<td>360&times;360dpi
4715*3ff48bf5SDavid du Colombier	<td>&nbsp;
4716*3ff48bf5SDavid du Colombier	<td>CMYK, plain paper
4717*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4718*3ff48bf5SDavid du Colombier	<td><b><tt>st640plg.upp</tt></b>
4719*3ff48bf5SDavid du Colombier	<td>&nbsp;
4720*3ff48bf5SDavid du Colombier	<td>360&times;360dpi
4721*3ff48bf5SDavid du Colombier	<td>&nbsp;
4722*3ff48bf5SDavid du Colombier	<td>grayscale, plain paper
4723*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4724*3ff48bf5SDavid du Colombier	<td><b><tt>st640ih.upp</tt></b>
4725*3ff48bf5SDavid du Colombier	<td>&nbsp;
4726*3ff48bf5SDavid du Colombier	<td>1440&times;720dpi
4727*3ff48bf5SDavid du Colombier	<td>&nbsp;
4728*3ff48bf5SDavid du Colombier	<td>CMYK, inkjet paper
4729*3ff48bf5SDavid du Colombier<tr valign=top>	<td>&nbsp;
4730*3ff48bf5SDavid du Colombier	<td><b><tt>st640ihg.upp</tt></b>
4731*3ff48bf5SDavid du Colombier	<td>&nbsp;
4732*3ff48bf5SDavid du Colombier	<td>1440&times;720dpi
4733*3ff48bf5SDavid du Colombier	<td>&nbsp;
4734*3ff48bf5SDavid du Colombier	<td>grayscale, inkjet paper
4735*3ff48bf5SDavid du Colombier
4736*3ff48bf5SDavid du Colombier
4737*3ff48bf5SDavid du Colombier
4738*3ff48bf5SDavid du Colombier
4739*3ff48bf5SDavid du Colombier
4740*3ff48bf5SDavid du Colombier
47417dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
47427dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Epson Stylus Color 800, 64/180-inch weaving
47437dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47447dd7cddfSDavid du Colombier	<td><b><tt>stc800pl.upp</tt></b>
47457dd7cddfSDavid du Colombier	<td>&nbsp;
47467dd7cddfSDavid du Colombier	<td>360&times;360dpi
47477dd7cddfSDavid du Colombier	<td>&nbsp;
47487dd7cddfSDavid du Colombier	<td>32-bit CMYK, 64-pin, plain paper
47497dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47507dd7cddfSDavid du Colombier	<td><b><tt>stc800p.upp</tt></b>
47517dd7cddfSDavid du Colombier	<td>&nbsp;
47527dd7cddfSDavid du Colombier	<td>720&times;720dpi
47537dd7cddfSDavid du Colombier	<td>&nbsp;
47547dd7cddfSDavid du Colombier	<td>32-bit CMYK, 64-pin, plain paper
47557dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47567dd7cddfSDavid du Colombier	<td><b><tt>stc800ih.upp</tt></b>
47577dd7cddfSDavid du Colombier	<td>&nbsp;
47587dd7cddfSDavid du Colombier	<td>1440&times;720dpi
47597dd7cddfSDavid du Colombier	<td>&nbsp;
47607dd7cddfSDavid du Colombier	<td>32-bit CMYK, 62-pin, inkjet paper
47617dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47627dd7cddfSDavid du Colombier	<td><b><tt>stc1520.upp</tt></b>
47637dd7cddfSDavid du Colombier	<td>&nbsp;
47647dd7cddfSDavid du Colombier	<td>1440&times;720dpi
47657dd7cddfSDavid du Colombier	<td>&nbsp;
47667dd7cddfSDavid du Colombier	<td>32-bit CMYK, 62-pin, inkjet paper
47677dd7cddfSDavid du Colombier<tr>	<td>&nbsp;
47687dd7cddfSDavid du Colombier<tr>	<th align=left colspan=6>Sun raster file
47697dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47707dd7cddfSDavid du Colombier	<td><b><tt>ras1.upp</tt></b>
47717dd7cddfSDavid du Colombier	<td>&nbsp;
47727dd7cddfSDavid du Colombier	<td>1-bit
47737dd7cddfSDavid du Colombier	<td>&nbsp;
47747dd7cddfSDavid du Colombier	<td>monochrome (Ghostscript)
47757dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47767dd7cddfSDavid du Colombier	<td><b><tt>ras3.upp</tt></b>
47777dd7cddfSDavid du Colombier	<td>&nbsp;
47787dd7cddfSDavid du Colombier	<td>3-bit
47797dd7cddfSDavid du Colombier	<td>&nbsp;
47807dd7cddfSDavid du Colombier	<td>RGB (Ghostscript)
47817dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47827dd7cddfSDavid du Colombier	<td><b><tt>ras4.upp</tt></b>
47837dd7cddfSDavid du Colombier	<td>&nbsp;
47847dd7cddfSDavid du Colombier	<td>4-bit
47857dd7cddfSDavid du Colombier	<td>&nbsp;
47867dd7cddfSDavid du Colombier	<td>CMYK (Ghostscript)
47877dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47887dd7cddfSDavid du Colombier	<td><b><tt>ras8m.upp</tt></b>
47897dd7cddfSDavid du Colombier	<td>&nbsp;
47907dd7cddfSDavid du Colombier	<td>8-bit
47917dd7cddfSDavid du Colombier	<td>&nbsp;
47927dd7cddfSDavid du Colombier	<td>grayscale (Floyd-Steinberg)
47937dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
47947dd7cddfSDavid du Colombier	<td><b><tt>ras24.upp</tt></b>
47957dd7cddfSDavid du Colombier	<td>&nbsp;
47967dd7cddfSDavid du Colombier	<td>24-bit
47977dd7cddfSDavid du Colombier	<td>&nbsp;
47987dd7cddfSDavid du Colombier	<td>RGB (Floyd-Steinberg)
47997dd7cddfSDavid du Colombier<tr valign=top>	<td>&nbsp;
48007dd7cddfSDavid du Colombier	<td><b><tt>ras32.upp</tt></b>
48017dd7cddfSDavid du Colombier	<td>&nbsp;
48027dd7cddfSDavid du Colombier	<td>32-bit
48037dd7cddfSDavid du Colombier	<td>&nbsp;
48047dd7cddfSDavid du Colombier	<td>CMYK (CMYK-Floyd-Steinberg)
48057dd7cddfSDavid du Colombier</table></blockquote>
48067dd7cddfSDavid du Colombier
48077dd7cddfSDavid du Colombier<p>
4808*3ff48bf5SDavid du ColombierThanks to Danilo Beuche, Guido Classen, Mark Goldberg and Hans-Heinrich
4809*3ff48bf5SDavid du ColombierViehmann for providing the files for the stc200, hp690, stc500 and the
4810*3ff48bf5SDavid du Colombierstc640.  Thanks to Michael Lossin &lt;losse@germanymail.com&gt; for the
4811*3ff48bf5SDavid du Colombiernewer st640 parameter sets.
48127dd7cddfSDavid du Colombier
48137dd7cddfSDavid du Colombier<p>
48147dd7cddfSDavid du ColombierPlease note the following:
48157dd7cddfSDavid du Colombier
48167dd7cddfSDavid du Colombier<blockquote><ul>
48177dd7cddfSDavid du Colombier<li>Changing the resolution with Ghostscript's
48187dd7cddfSDavid du Colombier<a href="Use.htm#Resolution_switch"><b><tt>-r</tt></b> switch</a> is
48197dd7cddfSDavid du Colombierusually not possible.
48207dd7cddfSDavid du Colombier<li>For Epson Stylus Color models not listed above, the two
48217dd7cddfSDavid du Colombier<b><tt>stc500</tt></b> variants are likely to work in addition to
48227dd7cddfSDavid du Colombier<b><tt>stcany</tt></b>, but their gamma correction might be wrong.
48237dd7cddfSDavid du Colombier</ul></blockquote>
48247dd7cddfSDavid du Colombier
4825*3ff48bf5SDavid du Colombier<h3><a name="Uni_state"></a>The state of this driver</h3>
48267dd7cddfSDavid du Colombier
48277dd7cddfSDavid du Colombier<p>
48287dd7cddfSDavid du ColombierThe coding of <b><tt>uniprint</tt></b> was triggered by the requirements of
48297dd7cddfSDavid du Colombierthe various Stylus Color models and some personal needs for HP and NEC
48307dd7cddfSDavid du Colombierdrivers. Thus the Epson models are well represented among the distributed
48317dd7cddfSDavid du Colombierparameter files.  When this driver entered the beta test phase, three other
48327dd7cddfSDavid du Colombierdrivers appreared on the scene that could be at least partially integrated
48337dd7cddfSDavid du Colombierinto <b><tt>uniprint</tt></b>: <b><tt>cdj850</tt></b> by Uli Wortmann
48347dd7cddfSDavid 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>),
48357dd7cddfSDavid du Colombier<b><tt>hpdj</tt></b> by Martin Lottermoser, and <b><tt>bjc610</tt></b> by
48367dd7cddfSDavid du ColombierHelmut Riegler.
48377dd7cddfSDavid du Colombier
48387dd7cddfSDavid du Colombier<p>
48397dd7cddfSDavid du ColombierUli addresses features of the more recent DeskJet models that will not be
48407dd7cddfSDavid du Colombieravailable in <b><tt>uniprint</tt></b> soon. Martin taught me a lesson on
48417dd7cddfSDavid du ColombierHP-PCL3 headers that will be available in <b><tt>uniprint</tt></b>
48427dd7cddfSDavid du Colombiersoon. Helmut in turn followed an almost similar idea, but targetted
48437dd7cddfSDavid du Colombierprimarily for printing on Canon printers from the pbmplus library. Starting
48447dd7cddfSDavid du Colombierwith version 1.68 of uniprint, BJC support is available. Work on the
48457dd7cddfSDavid du Colombier<b><tt>hpdj</tt></b> integration will start after the update of my website.
48467dd7cddfSDavid du Colombier
4847*3ff48bf5SDavid du Colombier<h3><a name="Uni_background"></a>Notes on <b><tt>uniprint</tt></b>'s background</h3>
48487dd7cddfSDavid du Colombier
48497dd7cddfSDavid du Colombier<p>
48507dd7cddfSDavid du Colombier<b><tt>uniprint</tt></b> is actually an update of <b><tt>stcolor</tt></b>,
48517dd7cddfSDavid du Colombierbut much more versatile than its predecessor; <b><tt>stcolor</tt></b>, in
48527dd7cddfSDavid du Colombierits turn, started as a clone of the color DeskJet family of drivers
48537dd7cddfSDavid du Colombier(<b><tt>cdj</tt></b>*). Finally, <b><tt>cdj</tt></b>* can be considered an
48547dd7cddfSDavid du Colombieraddition of features to the simpler monochrome drivers of Ghostscript. This
48557dd7cddfSDavid du Colombieraddition of features is useful to get an idea of the functionality of
48567dd7cddfSDavid du Colombier<b><tt>uniprint</tt></b>:
48577dd7cddfSDavid du Colombier
48587dd7cddfSDavid du Colombier<blockquote>
48597dd7cddfSDavid du Colombier<dl>
48607dd7cddfSDavid du Colombier<dt>Monochrome to advanced color (<b><tt>cdj</tt></b>*):
48617dd7cddfSDavid du Colombier<dd>This adds color mapping and rendering functions to the driver.
48627dd7cddfSDavid du ColombierError diffusion is especially important for the quality of printing.
48637dd7cddfSDavid du Colombier</dl>
48647dd7cddfSDavid du Colombier
48657dd7cddfSDavid du Colombier<dl>
48667dd7cddfSDavid du Colombier<dt>HP color to Epson Color (<b><tt>stcolor</tt></b>)
48677dd7cddfSDavid du Colombier<dd>The Epson Stylus Color offered two features simultaneously: it could
48687dd7cddfSDavid du Colombierproduce 720&times;720dpi output and it could soak the paper. In other
48697dd7cddfSDavid du Colombierwords, it required more color management features inside the driver. This
48707dd7cddfSDavid du Colombieris still the major conceptual difference in the data generation for HP and
48717dd7cddfSDavid du ColombierEpson printers.
48727dd7cddfSDavid du Colombier</dl>
48737dd7cddfSDavid du Colombier
48747dd7cddfSDavid du Colombier<dl>
48757dd7cddfSDavid du Colombier<dt>Weaving techniques (<b><tt>stcolor</tt></b>)
48767dd7cddfSDavid du Colombier<dd>Besides the internal color management, the Stylus Color did not provide
48777dd7cddfSDavid du Colombierenough buffer space to operate the printer fast at 720&times;720dpi.  The
48787dd7cddfSDavid du Colombieruse of weaving could yield triple the print speed.  Weaving, also called
48797dd7cddfSDavid du Colombierinterleaving, is present in some monochrome drivers too.  The new thing in
48807dd7cddfSDavid du Colombier<b><tt>stcolor</tt></b> was the combination with error diffusion.
48817dd7cddfSDavid du ColombierUnfortunately the weaving was somehow hard-coded, as the problems with the
48827dd7cddfSDavid du Colombiernewer members of the Stylus Color family of printers demonstrated.
48837dd7cddfSDavid du Colombier</dl>
48847dd7cddfSDavid du Colombier
48857dd7cddfSDavid du Colombier<dl>
48867dd7cddfSDavid du Colombier<dt>Generalized output format and weaving (<b><tt>uniprint</tt></b>)
48877dd7cddfSDavid du Colombier<dd>The features mentioned above yield about 90% of
48887dd7cddfSDavid du Colombier<b><tt>stcolor</tt></b>'s source code; only 10% is related to the
48897dd7cddfSDavid du Colombierformatting of the output.  The idea to make the output format switchable
48907dd7cddfSDavid du Colombiercame up soon after completing <b><tt>stcolor</tt></b>, but its final design
48917dd7cddfSDavid du Colombierwas triggered by the (personal) necessity to drive a NEC P2X and a
48927dd7cddfSDavid du ColombierDesignjet 750c.
48937dd7cddfSDavid du Colombier</dl></blockquote>
48947dd7cddfSDavid du Colombier
48957dd7cddfSDavid du Colombier<p>
48967dd7cddfSDavid du ColombierThus <b><tt>uniprint</tt></b> accumulates almost any features that can be
48977dd7cddfSDavid du Colombierfound among the other printer drivers, which clearly has some disadvantage
48987dd7cddfSDavid du Colombierin processing speed -- true in particular of version 1.75, since it was
48997dd7cddfSDavid du Colombiertargetted for functionality, and several speed-gaining features were
49007dd7cddfSDavid du Colombier(knowingly) omitted.
49017dd7cddfSDavid du Colombier
49027dd7cddfSDavid du Colombier<p>
49037dd7cddfSDavid du ColombierTo summarize and to introduce the terms used in the description of the
49047dd7cddfSDavid du Colombierparameters, the features of <b><tt>uniprint</tt></b> that can be
49057dd7cddfSDavid du Colombierparameterized are:
49067dd7cddfSDavid du Colombier
49077dd7cddfSDavid du Colombier<blockquote><ul>
49087dd7cddfSDavid du Colombier<li>color mapping,
49097dd7cddfSDavid du Colombier<li>color rendering (error diffusion or Floyd-Steinberg),
49107dd7cddfSDavid du Colombier<li>output format, including
49117dd7cddfSDavid du Colombier<li>weaving.
49127dd7cddfSDavid du Colombier</ul></blockquote>
49137dd7cddfSDavid du Colombier
4914*3ff48bf5SDavid 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>
49157dd7cddfSDavid du Colombier
49167dd7cddfSDavid du Colombier<p>
49177dd7cddfSDavid du ColombierHere is one of the distributed parameter files (<b><tt>stc_l.upp</tt></b>)
49187dd7cddfSDavid du Colombierwith some added comments.  Also see the section that describes
49197dd7cddfSDavid du Colombier<a href="#Uni_all_parameters">all <b><tt>uniprint</tt></b>'s parameters in
49207dd7cddfSDavid du Colombierbrief</a>.
49217dd7cddfSDavid du Colombier
49227dd7cddfSDavid du Colombier<pre>
49237dd7cddfSDavid du Colombier-supModel="Epson Stylus Color I (and PRO Series), 360x360DpI, noWeave"
49247dd7cddfSDavid du Colombier-sDEVICE=uniprint                    -- Select the driver
49257dd7cddfSDavid du Colombier-dNOPAUSE                            -- Useful with printers
49267dd7cddfSDavid du Colombier-dSAFER                              -- Provides some security
49277dd7cddfSDavid du Colombier-dupColorModel=/DeviceCMYK           -- Selects the color mapping
49287dd7cddfSDavid du Colombier-dupRendering=/ErrorDiffusion        -- Selects the color rendering
49297dd7cddfSDavid du Colombier-dupOutputFormat=/EscP2              -- Selects the output format
49307dd7cddfSDavid du Colombier-r360x360                            -- Adjusts the resolution
49317dd7cddfSDavid du Colombier-dupMargins="{ 9.0 39.96 9.0 9.0}"   -- Establishes (L/B/R/T margins in points)
49327dd7cddfSDavid du Colombier-dupComponentBits="{1 1 1 1}"        -- Map: bits per component (default: 8)
49337dd7cddfSDavid du Colombier-dupWeaveYPasses=4                   -- Weave: Y-passes (default: 1)
49347dd7cddfSDavid du Colombier-dupOutputPins=15                    -- Format/weave: scans per Command
49357dd7cddfSDavid du Colombier-dupBeginPageCommand="&lt;              -- Goes to the printer
49367dd7cddfSDavid du Colombier  1b40   1b40                        -- ESC '@' ESC '@'    -&gt; dual reset
49377dd7cddfSDavid du Colombier  1b2847 0100 01                     -- ESC '(' 'G' 1 0 1  -&gt; graphics
49387dd7cddfSDavid du Colombier  1b2869 0100 00                     -- ESC '(' 'i' 1 0 1  -&gt; no HW weave
49397dd7cddfSDavid du Colombier  1b2855 0100 0A                     -- ESC '(' 'U' 1 0 10 -&gt; 360dpi
49407dd7cddfSDavid du Colombier  1b5500                             -- ESC 'U'  0         -&gt; bidir print
49417dd7cddfSDavid du Colombier  1b2843 0200 0000                   -- ESC '(' 'C' 2 0 xx -&gt; page length
49427dd7cddfSDavid du Colombier  1b2863 0400 0000 0000              -- ESC '(' 'c' 4 0 xxxx -&gt; margins
49437dd7cddfSDavid du Colombier&gt;"                                   -- as it is, unless:
49447dd7cddfSDavid du Colombier-dupAdjustPageLengthCommand          -- Adjust page length in BOP requested
49457dd7cddfSDavid du Colombier-dupAdjustTopMarginCommand           -- Adjust top margin in BOP
49467dd7cddfSDavid du Colombier-dupAdjustBottomMarginCommand        -- Adjust bottom margin in BOP
49477dd7cddfSDavid du Colombier-dupEndPageCommand="(\033@\014)"     -- Last (but one) data to the printer
49487dd7cddfSDavid du Colombier-dupAbortCommand="(\033@\15\12\12\12\12    Printout-Aborted\15\014)"
49497dd7cddfSDavid du Colombier</pre>
49507dd7cddfSDavid du Colombier
49517dd7cddfSDavid du Colombier<p>
49527dd7cddfSDavid du ColombierThat's short, and if one removes <b><tt>upWeaveYPasses</tt></b> and
49537dd7cddfSDavid du Colombier<b><tt>upOutputPins</tt></b> it becomes shorter, almost
49547dd7cddfSDavid du Colombier<b><tt>stcany.upp</tt></b>. This miniature size is because I am most
49557dd7cddfSDavid du Colombierfamiliar with ESC/P2, and was able to add defaults for the omitted
49567dd7cddfSDavid du Colombierparameters.  Now a few notes about the parameters used in this example:
49577dd7cddfSDavid du Colombier
49587dd7cddfSDavid du Colombier<ul>
49597dd7cddfSDavid du Colombier<li><b><tt>upModel</tt></b> is a string serving as a comment (and nothing else).
49607dd7cddfSDavid du Colombier
49617dd7cddfSDavid du Colombier<li><a href="Use.htm#Output_device"><b><tt>DEVICE</tt></b></a>,
49627dd7cddfSDavid du Colombier<a href="Use.htm#NoPause"><b><tt>NOPAUSE</tt></b></a>, <a
49637dd7cddfSDavid du Colombierhref="Use.htm#Safer"><b><tt>SAFER</tt></b></a> are well-known Ghostscript
49647dd7cddfSDavid du Colombierparameters described in the <a href="Use.htm">usage documentation</a>.
49657dd7cddfSDavid du Colombier
49667dd7cddfSDavid du Colombier<li><b><tt>upColorModel</tt></b> is one of major <b><tt>uniprint</tt></b>
49677dd7cddfSDavid du Colombierparameters: it selects the color mapping and in turn the PostScript color
49687dd7cddfSDavid 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>.
49697dd7cddfSDavid du Colombier
49707dd7cddfSDavid du Colombier<li><b><tt>upRendering</tt></b> selects the (color) rendering, supporting
49717dd7cddfSDavid du Colombierthe values <b><tt>/ErrorDiffusion</tt></b> and <b><tt>/FSCMYK32</tt></b>.
49727dd7cddfSDavid du Colombier<b><tt>/ErrorDiffusion</tt></b> is similar to <b><tt>fsmono</tt></b>,
49737dd7cddfSDavid du Colombier<b><tt>fsrgb</tt></b> and <b><tt>fsx4</tt></b> of <b><tt>stcolor</tt></b>,
49747dd7cddfSDavid du Colombierwhile <b><tt>/FSCMYK32</tt></b> is (almost) identical to
49757dd7cddfSDavid du Colombier<b><tt>fscmyk</tt></b> and <b><tt>hscmyk</tt></b>, but is restricted to
49767dd7cddfSDavid du Colombier32-bit data and should be used in conjunction with
49777dd7cddfSDavid du Colombier<b><tt>/DeviceCMYKgenerate</tt></b>.
49787dd7cddfSDavid du Colombier
49797dd7cddfSDavid du Colombier<li><b><tt>upOutputFormat</tt></b> selects the output method, supporting the values
49807dd7cddfSDavid 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>.
49817dd7cddfSDavid du Colombier
49827dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
49837dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>/SunRaster</tt></b>
49847dd7cddfSDavid du Colombier	<td>&nbsp;
49857dd7cddfSDavid du Colombier	<td>creates Sun raster files and requires no other parameters
49867dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>/Epson</tt></b>
49877dd7cddfSDavid du Colombier	<td>&nbsp;
49887dd7cddfSDavid du Colombier	<td>is used for the elderly ESC/P format (used by many printers)
49897dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>/EscP2</tt></b>
49907dd7cddfSDavid du Colombier	<td>&nbsp;
49917dd7cddfSDavid du Colombier	<td>is used by more recent Epson printers (no X weaving supported)
49927dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>/EscP2XY</tt></b>
49937dd7cddfSDavid du Colombier	<td>&nbsp;
49947dd7cddfSDavid du Colombier	<td>supports X-Weaving, used with 1440dpi printers and in <b><tt>stc2s_h</tt></b>
49957dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>/Pcl</tt></b>
49967dd7cddfSDavid du Colombier	<td>&nbsp;
49977dd7cddfSDavid du Colombier	<td>HP PCL/RTL-style output formatter without weaving
49987dd7cddfSDavid du Colombier</table></blockquote>
49997dd7cddfSDavid du Colombier
50007dd7cddfSDavid du Colombier<li><b><tt>-r360x360</tt></b> is Ghostscript's standard
50017dd7cddfSDavid du Colombier<a href="Use.htm#Resolution_switch">resolution switch</a>.
50027dd7cddfSDavid du Colombier
50037dd7cddfSDavid du Colombier<li><b><tt>upMargins="{&nbsp;9.0&nbsp;39.96&nbsp;9.0&nbsp;9.0}"</tt></b>
50047dd7cddfSDavid du Colombierhas function similar to the Ghostscript parameter
50057dd7cddfSDavid du Colombier<b><tt>.HWMargins</tt></b>: it sets the left, bottom, right, and top
50067dd7cddfSDavid du Colombiermargins in points.  <b><tt>uniprint</tt></b> provides this parameter to
50077dd7cddfSDavid du Colombierenable automatic left-right exchange if <b><tt>upYFlip</tt></b> is active.
50087dd7cddfSDavid du Colombier
50097dd7cddfSDavid du Colombier<li><b><tt>upComponentBits</tt></b> is an array of integers that selects
50107dd7cddfSDavid du Colombierthe bits stored in raster memory, by default 8 bits per component.  In this
50117dd7cddfSDavid du Colombierexample, 1 bit is selected for each component, thus turning down the
50127dd7cddfSDavid du ColombierFloyd-Steinberg algorithm (but still carrying out the time-consuming
50137dd7cddfSDavid du Colombiercomputation).  The related parameter "<b><tt>upComponentShift</tt></b>"
50147dd7cddfSDavid du Colombiercontrols positioning the components within raster memory.  Each of the
50157dd7cddfSDavid du Colombiernumbers given corresponds to a component which depends on the selected
50167dd7cddfSDavid du Colombier"<b><tt>upColorModel</tt></b>":
50177dd7cddfSDavid du Colombier
50187dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
50197dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>&nbsp;
50207dd7cddfSDavid du Colombier	<td>&nbsp;
50217dd7cddfSDavid du Colombier	<td align=center><b><tt>/DeviceGray</tt></b>
50227dd7cddfSDavid du Colombier	<td>&nbsp;
50237dd7cddfSDavid du Colombier	<td align=center><b><tt>/DeviceRGBW</tt></b>
50247dd7cddfSDavid du Colombier	<td>&nbsp;
50257dd7cddfSDavid du Colombier	<td align=center><b><tt>/DeviceRGB</tt></b>
50267dd7cddfSDavid du Colombier	<td>&nbsp;
50277dd7cddfSDavid du Colombier	<td align=center><b><tt>/DeviceCMYK</tt></b>
50287dd7cddfSDavid du Colombier	<td>&nbsp;
50297dd7cddfSDavid du Colombier	<td align=center><b><tt>/DeviceCMYKgenerate</tt></b>
50307dd7cddfSDavid du Colombier<tr>	<td colspan=11><hr>
50317dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>0
50327dd7cddfSDavid du Colombier	<td>&nbsp;
50337dd7cddfSDavid du Colombier	<td align=center>White
50347dd7cddfSDavid du Colombier	<td>&nbsp;
50357dd7cddfSDavid du Colombier	<td align=center>White
50367dd7cddfSDavid du Colombier	<td>&nbsp;
50377dd7cddfSDavid du Colombier	<td align=center>Red
50387dd7cddfSDavid du Colombier	<td>&nbsp;
50397dd7cddfSDavid du Colombier	<td align=center>Black
50407dd7cddfSDavid du Colombier	<td>&nbsp;
50417dd7cddfSDavid du Colombier	<td align=center>Black
50427dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>1
50437dd7cddfSDavid du Colombier	<td>&nbsp;
50447dd7cddfSDavid du Colombier	<td align=center>--
50457dd7cddfSDavid du Colombier	<td>&nbsp;
50467dd7cddfSDavid du Colombier	<td align=center>Red
50477dd7cddfSDavid du Colombier	<td>&nbsp;
50487dd7cddfSDavid du Colombier	<td align=center>Green
50497dd7cddfSDavid du Colombier	<td>&nbsp;
50507dd7cddfSDavid du Colombier	<td align=center>Cyan
50517dd7cddfSDavid du Colombier	<td>&nbsp;
50527dd7cddfSDavid du Colombier	<td align=center>Cyan
50537dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>2
50547dd7cddfSDavid du Colombier	<td>&nbsp;
50557dd7cddfSDavid du Colombier	<td align=center>--
50567dd7cddfSDavid du Colombier	<td>&nbsp;
50577dd7cddfSDavid du Colombier	<td align=center>Green
50587dd7cddfSDavid du Colombier	<td>&nbsp;
50597dd7cddfSDavid du Colombier	<td align=center>Blue
50607dd7cddfSDavid du Colombier	<td>&nbsp;
50617dd7cddfSDavid du Colombier	<td align=center>Magenta
50627dd7cddfSDavid du Colombier	<td>&nbsp;
50637dd7cddfSDavid du Colombier	<td align=center>Magenta
50647dd7cddfSDavid du Colombier<tr valign=top>	<td align=center>3
50657dd7cddfSDavid du Colombier	<td>&nbsp;
50667dd7cddfSDavid du Colombier	<td align=center>--
50677dd7cddfSDavid du Colombier	<td>&nbsp;
50687dd7cddfSDavid du Colombier	<td align=center>Blue
50697dd7cddfSDavid du Colombier	<td>&nbsp;
50707dd7cddfSDavid du Colombier	<td align=center>--
50717dd7cddfSDavid du Colombier	<td>&nbsp;
50727dd7cddfSDavid du Colombier	<td align=center>Yellow
50737dd7cddfSDavid du Colombier	<td>&nbsp;
50747dd7cddfSDavid du Colombier	<td align=center>Yellow
50757dd7cddfSDavid du Colombier</table>
50767dd7cddfSDavid du Colombier
50777dd7cddfSDavid du Colombier<p>
50787dd7cddfSDavid du ColombierThis order may not be suitable for some printers, so another parameter
50797dd7cddfSDavid du Colombier"<b><tt>upOutputComponentOrder</tt></b>", also an array of integers,
50807dd7cddfSDavid du Colombierselects the output order using the numbers on the left.
50817dd7cddfSDavid du Colombier</blockquote>
50827dd7cddfSDavid du Colombier
50837dd7cddfSDavid du Colombier<p>
50847dd7cddfSDavid du ColombierOne group of very important parameters not used in the example above
50857dd7cddfSDavid du Colombierdeserves to be mentioned here: the transfer arrays, named
50867dd7cddfSDavid du Colombier"<b><tt>up</tt><em>{color}</em><tt>Transfer</tt></b>", where
50877dd7cddfSDavid du Colombier<b><em>{color}</em></b> is one of the names in the table above.  These are
50887dd7cddfSDavid du Colombierarrays of floats in the range 0.0 - 1.0 representing the color transfer
50897dd7cddfSDavid du Colombierfunctions.  They are used during mapping and rendering.  In the simplest
50907dd7cddfSDavid du Colombiercase, these arrays ensure an equidistant distribution of the stored values
50917dd7cddfSDavid du Colombierwithin the device space (which means a nonlinear mapping from Ghostscript's
50927dd7cddfSDavid du Colombierpoint of view).  If the given array does not cover the entire range from 0
50937dd7cddfSDavid du Colombierto 1, which applies for the Stylus Color family at high resolution for some
50947dd7cddfSDavid du Colombiermedia, only the relevant part gets mapped to raster memory (meaning that
50957dd7cddfSDavid du Colombieris's fully utilized) and the rendering takes care of the "overhang" (in
50967dd7cddfSDavid du Colombierthis case the post-diffusion of 1-bit components makes sense).
50977dd7cddfSDavid du Colombier
50987dd7cddfSDavid du Colombier<p>
50997dd7cddfSDavid du ColombierFinally an important note on the transfer arrays: for monochrome devices
51007dd7cddfSDavid du Colombierthe stored component is <b><tt>White</tt></b>, which is the way PostScript
51017dd7cddfSDavid du Colombierdefines these devices, but most printers require <b><tt>Black</tt></b>.
51027dd7cddfSDavid du ColombierThus one has to provide a falling "<b><tt>upWhiteTransfer</tt></b>" for
51037dd7cddfSDavid du Colombiersuch printers.
51047dd7cddfSDavid du Colombier
51057dd7cddfSDavid du Colombier<li><b><tt>upWeaveYPasses</tt></b> is an integer that gives the number of
51067dd7cddfSDavid du Colombierprint head passes required to achieve the requested Ydpi. This makes sense
51077dd7cddfSDavid du Colombieronly if
51087dd7cddfSDavid du Colombier
51097dd7cddfSDavid du Colombier<li><b><tt>upOutputPins</tt></b> is set to something greater than 1.  Thus
51107dd7cddfSDavid du Colombiermultiple pins or nozzles are transferred with a single command, and of
51117dd7cddfSDavid du Colombiercourse such a command must be supported by the device.
51127dd7cddfSDavid du Colombier
51137dd7cddfSDavid du Colombier</ul>
51147dd7cddfSDavid du Colombier
51157dd7cddfSDavid du Colombier<p>
51167dd7cddfSDavid du ColombierIf no other weave parameters are given, <b><tt>uniprint</tt></b> computes
51177dd7cddfSDavid du Colombierseveral defaults which together do no weaving. The <b><tt>/Epson</tt></b>
51187dd7cddfSDavid du Colombierand <b><tt>/EscP2XY</tt></b> formats take care of
51197dd7cddfSDavid du Colombier"<b><tt>upWeaveXPasses</tt></b>" too.
51207dd7cddfSDavid du Colombier
51217dd7cddfSDavid du Colombier<ul>
51227dd7cddfSDavid du Colombier
51237dd7cddfSDavid du Colombier<li><b><tt>upBeginPageCommand</tt></b> represents the data transferred to
51247dd7cddfSDavid du Colombierthe printer whenever a new page begins.  Before that,
51257dd7cddfSDavid du Colombier"<b><tt>upBeginJobCommand</tt></b>" is written to the device only once per
51267dd7cddfSDavid du Colombieroutput file.  (Intended for the HP PJL sequences).
51277dd7cddfSDavid du Colombier
51287dd7cddfSDavid du Colombier<li><b><tt>upAdjustBottomMarginCommand</tt></b>,
51297dd7cddfSDavid du Colombier<b><tt>upAdjustMediaSize</tt></b>,
51307dd7cddfSDavid du Colombier<b><tt>upAdjustPageLengthCommand</tt></b>,
51317dd7cddfSDavid du Colombier<b><tt>upAdjustPageWidthCommand</tt></b>,
51327dd7cddfSDavid du Colombier<b><tt>upAdjustResolutionCommand</tt></b>, and
51337dd7cddfSDavid du Colombier<b><tt>upAdjustTopMarginCommand</tt></b>
51347dd7cddfSDavid du Colombier
51357dd7cddfSDavid du Colombier<p>
51367dd7cddfSDavid du ColombierNormally <b><tt>uniprint</tt></b> does not change the
51377dd7cddfSDavid du Colombier"<b><tt>upBeginPageCommand</tt></b>", nor does it provide a default.
51387dd7cddfSDavid du ColombierHowever, if the above boolean values are set, the corresponding values are
51397dd7cddfSDavid du Colombierchanged (provided that the code of the formatters supports this change and
51407dd7cddfSDavid du Colombierthe commands to be adjusted are included in the BOP string).
51417dd7cddfSDavid du Colombier
51427dd7cddfSDavid du Colombier<li><b><tt>upEndPageCommand</tt></b> is the fixed termination sequence for
51437dd7cddfSDavid du Colombiereach page, and of course there is an "<b><tt>upEndJobCommand</tt></b>" too.
51447dd7cddfSDavid du Colombier
51457dd7cddfSDavid du Colombier<li><b><tt>upAbortCommand</tt></b> is written if <b><tt>uniprint</tt></b>'s
51467dd7cddfSDavid du Colombierinterrupt detection is enabled and a signal is caught.  It replaces
51477dd7cddfSDavid du Colombier"<b><tt>upEndPageCommand</tt></b>" and "<b><tt>upEndJobCommand</tt></b>",
51487dd7cddfSDavid du Colombierthus allowing the indication of an aborted job.  (Ghostscript gets an error
51497dd7cddfSDavid du Colombierreturn from <b><tt>uniprint</tt></b> in this case, and abandons further
51507dd7cddfSDavid du Colombierprocessing.)
51517dd7cddfSDavid du Colombier
51527dd7cddfSDavid du Colombier</ul>
51537dd7cddfSDavid du Colombier
51547dd7cddfSDavid du Colombier<p>
51557dd7cddfSDavid du ColombierFor the ESC/P(2) formats all commands represent binary data, while for
51567dd7cddfSDavid du Colombierthe PCL/RTL formatter some of them are formats for <b><tt>fprintf</tt></b>. These strings
51577dd7cddfSDavid du Colombier<b><em>must</em></b> explicitly have a trailing "\0'.
51587dd7cddfSDavid du Colombier
51597dd7cddfSDavid du Colombier<p>
51607dd7cddfSDavid du ColombierI should write more, but the only recommendation is to
51617dd7cddfSDavid du Colombiertake a look at the various parameter files. Here are a few more hints.
51627dd7cddfSDavid du Colombier
51637dd7cddfSDavid du Colombier<ul>
51647dd7cddfSDavid du Colombier<li>If the Driver rejects a configuration, nothing happens until
51657dd7cddfSDavid du Colombier<b><tt>showpage</tt></b>; then an error is raised and a message with
51667dd7cddfSDavid du Colombier"CALL-REJECTED upd_print_page..." is printed on stderr.
51677dd7cddfSDavid du Colombier
51687dd7cddfSDavid du Colombier<li><b><tt>uniprint</tt></b> has lots of messages that can be activated by
51697dd7cddfSDavid du Colombiersetting bits in the preprocessor macro <b><tt>UPD_MESSAGES</tt></b>.  I
51707dd7cddfSDavid du Colombierusually use the compile-time option <b><tt>-DUPD_MESSAGES=0x17</tt></b> for
51717dd7cddfSDavid du Colombierconfiguration development.  (For the semantics, check the
51727dd7cddfSDavid du Colombier<b><tt>UPD_M_</tt></b> macros in the source.)
51737dd7cddfSDavid du Colombier
51747dd7cddfSDavid du Colombier<li>A program "<b><tt>uninfo.ps</tt></b>" distributed with Ghostscript
51757dd7cddfSDavid du Colombierdisplays interactively in alphabetical order the contents of the current
51767dd7cddfSDavid du Colombierpagedevice dictionary. This includes any parameters generated or changed by
51777dd7cddfSDavid du Colombier<b><tt>uniprint</tt></b>.
51787dd7cddfSDavid du Colombier</ul>
51797dd7cddfSDavid du Colombier
5180*3ff48bf5SDavid du Colombier<h3><a name="Uni_all_parameters"></a>All parameters in brief</h3>
51817dd7cddfSDavid du Colombier
51827dd7cddfSDavid du Colombier<p>
51837dd7cddfSDavid du ColombierThis table gives a brief explanation of every parameter known to
51847dd7cddfSDavid du Colombier<b><tt>uniprint</tt></b>, listing them in alphabetical order.  "[&nbsp;]"
51857dd7cddfSDavid du Colombierdenotes that a parameter is an array, and "(RO)" that it is read-only.
51867dd7cddfSDavid du Colombier
51877dd7cddfSDavid du Colombier<blockquote><table cellpadding=0 cellspacing=0>
51887dd7cddfSDavid du Colombier<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">All <b><tt>uniprint</tt></b> parameters</font><hr>
51897dd7cddfSDavid du Colombier<tr valign=bottom>
51907dd7cddfSDavid du Colombier	<th align=left>Parameter
51917dd7cddfSDavid du Colombier	<td>&nbsp;
51927dd7cddfSDavid du Colombier	<th align=left>Type
51937dd7cddfSDavid du Colombier	<td>&nbsp;&nbsp;&nbsp;
51947dd7cddfSDavid du Colombier	<th align=left>Use
51957dd7cddfSDavid du Colombier<tr>	<td colspan=5><hr>
51967dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAbortCommand</tt></b>
51977dd7cddfSDavid du Colombier	<td>&nbsp;
51987dd7cddfSDavid du Colombier	<td>String
51997dd7cddfSDavid du Colombier	<td>&nbsp;
52007dd7cddfSDavid du Colombier	<td>End of page and file on interrupt
52017dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAdjustBottomMarginCommand</tt></b>
52027dd7cddfSDavid du Colombier	<td>&nbsp;
52037dd7cddfSDavid du Colombier	<td>Bool
52047dd7cddfSDavid du Colombier	<td>&nbsp;
52057dd7cddfSDavid du Colombier	<td>Manipulate bottom margin in <b><tt>upBeginPageCommand</tt></b>
52067dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAdjustMediaSizeCommand</tt></b>
52077dd7cddfSDavid du Colombier	<td>&nbsp;
52087dd7cddfSDavid du Colombier	<td>Bool
52097dd7cddfSDavid du Colombier	<td>&nbsp;
52107dd7cddfSDavid du Colombier	<td>Manipulate <b><tt>Mediasize</tt></b> [intended]
52117dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAdjustPageLengthCommand</tt></b>
52127dd7cddfSDavid du Colombier	<td>&nbsp;
52137dd7cddfSDavid du Colombier	<td>Bool
52147dd7cddfSDavid du Colombier	<td>&nbsp;
52157dd7cddfSDavid du Colombier	<td>Manipulate page length in <b><tt>upBeginPageCommand</tt></b>
52167dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAdjustPageWidthCommand</tt></b>
52177dd7cddfSDavid du Colombier	<td>&nbsp;
52187dd7cddfSDavid du Colombier	<td>Bool
52197dd7cddfSDavid du Colombier	<td>&nbsp;
52207dd7cddfSDavid du Colombier	<td>Manipulate page width in <b><tt>upBeginPageCommand</tt></b>
52217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAdjustResolutionCommand</tt></b>
52227dd7cddfSDavid du Colombier	<td>&nbsp;
52237dd7cddfSDavid du Colombier	<td>Bool
52247dd7cddfSDavid du Colombier	<td>&nbsp;
52257dd7cddfSDavid du Colombier	<td>Manipulate resolution
52267dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upAdjustTopMarginCommand</tt></b>
52277dd7cddfSDavid du Colombier	<td>&nbsp;
52287dd7cddfSDavid du Colombier	<td>Bool
52297dd7cddfSDavid du Colombier	<td>&nbsp;
52307dd7cddfSDavid du Colombier	<td>Manipulate top margin in <b><tt>upBeginPageCommand</tt></b>
52317dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upBeginJobCommand</tt></b>
52327dd7cddfSDavid du Colombier	<td>&nbsp;
52337dd7cddfSDavid du Colombier	<td>String
52347dd7cddfSDavid du Colombier	<td>&nbsp;
52357dd7cddfSDavid du Colombier	<td>Begin each output file
52367dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upBeginPageCommand</tt></b>
52377dd7cddfSDavid du Colombier	<td>&nbsp;
52387dd7cddfSDavid du Colombier	<td>String
52397dd7cddfSDavid du Colombier	<td>&nbsp;
52407dd7cddfSDavid du Colombier	<td>Begin each page
52417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upBlackTransfer</tt></b>
52427dd7cddfSDavid du Colombier	<td>&nbsp;
52437dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
52447dd7cddfSDavid du Colombier	<td>&nbsp;
52457dd7cddfSDavid du Colombier	<td>Black transfer (CMYK only!)
52467dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upBlueTransfer</tt></b>
52477dd7cddfSDavid du Colombier	<td>&nbsp;
52487dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
52497dd7cddfSDavid du Colombier	<td>&nbsp;
52507dd7cddfSDavid du Colombier	<td>Blue transfer
52517dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upColorInfo</tt></b>
52527dd7cddfSDavid du Colombier	<td>&nbsp;
52537dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
52547dd7cddfSDavid du Colombier	<td>&nbsp;
52557dd7cddfSDavid du Colombier	<td>struct <b><tt>gx_device_color_info</tt></b>
52567dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upColorModel</tt></b>
52577dd7cddfSDavid du Colombier	<td>&nbsp;
52587dd7cddfSDavid du Colombier	<td>Name
52597dd7cddfSDavid du Colombier	<td>&nbsp;
52607dd7cddfSDavid du Colombier	<td>Select color mapping
52617dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upColorModelInitialized</tt></b>
52627dd7cddfSDavid du Colombier	<td>&nbsp;
52637dd7cddfSDavid du Colombier	<td>Bool (RO)
52647dd7cddfSDavid du Colombier	<td>&nbsp;
52657dd7cddfSDavid du Colombier	<td>Color mapping OK
52667dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upComponentBits</tt></b>
52677dd7cddfSDavid du Colombier	<td>&nbsp;
52687dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
52697dd7cddfSDavid du Colombier	<td>&nbsp;
52707dd7cddfSDavid du Colombier	<td>Bits stored per component
52717dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upComponentShift</tt></b>
52727dd7cddfSDavid du Colombier	<td>&nbsp;
52737dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
52747dd7cddfSDavid du Colombier	<td>&nbsp;
52757dd7cddfSDavid du Colombier	<td>Positioning within <b><tt>gx_color_index</tt></b>
52767dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upCyanTransfer</tt></b>
52777dd7cddfSDavid du Colombier	<td>&nbsp;
52787dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
52797dd7cddfSDavid du Colombier	<td>&nbsp;
52807dd7cddfSDavid du Colombier	<td>Cyan transfer
52817dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upEndJobCommand</tt></b>
52827dd7cddfSDavid du Colombier	<td>&nbsp;
52837dd7cddfSDavid du Colombier	<td>String
52847dd7cddfSDavid du Colombier	<td>&nbsp;
52857dd7cddfSDavid du Colombier	<td>End each file unless <b><tt>upAbortCommand</tt></b>
52867dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upEndPageCommand</tt></b>
52877dd7cddfSDavid du Colombier	<td>&nbsp;
52887dd7cddfSDavid du Colombier	<td>String
52897dd7cddfSDavid du Colombier	<td>&nbsp;
52907dd7cddfSDavid du Colombier	<td>End each page unless <b><tt>upAbortCommand</tt></b>
52917dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upErrorDetected</tt></b>
52927dd7cddfSDavid du Colombier	<td>&nbsp;
52937dd7cddfSDavid du Colombier	<td>Bool (RO)
52947dd7cddfSDavid du Colombier	<td>&nbsp;
52957dd7cddfSDavid du Colombier	<td>Severe (VM) error, not fully operational
52967dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upFSFixedDirection</tt></b>
52977dd7cddfSDavid du Colombier	<td>&nbsp;
52987dd7cddfSDavid du Colombier	<td>Bool
52997dd7cddfSDavid du Colombier	<td>&nbsp;
53007dd7cddfSDavid du Colombier	<td>Inhbits direction toggling in rendering
53017dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upFSProcessWhiteSpace</tt></b>
53027dd7cddfSDavid du Colombier	<td>&nbsp;
53037dd7cddfSDavid du Colombier	<td>Bool
53047dd7cddfSDavid du Colombier	<td>&nbsp;
53057dd7cddfSDavid du Colombier	<td>Causes white-space rendering
53067dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upFSReverseDirection</tt></b>
53077dd7cddfSDavid du Colombier	<td>&nbsp;
53087dd7cddfSDavid du Colombier	<td>Bool
53097dd7cddfSDavid du Colombier	<td>&nbsp;
53107dd7cddfSDavid du Colombier	<td>Run rendering in reverse (if fixed)
53117dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upFSZeroInit</tt></b>
53127dd7cddfSDavid du Colombier	<td>&nbsp;
53137dd7cddfSDavid du Colombier	<td>Bool
53147dd7cddfSDavid du Colombier	<td>&nbsp;
53157dd7cddfSDavid du Colombier	<td>Non-random rendering initialization
53167dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upFormatXabsolute</tt></b>
53177dd7cddfSDavid du Colombier	<td>&nbsp;
53187dd7cddfSDavid du Colombier	<td>Bool
53197dd7cddfSDavid du Colombier	<td>&nbsp;
53207dd7cddfSDavid du Colombier	<td>Write absolute X coordinates
53217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upFormatYabsolute</tt></b>
53227dd7cddfSDavid du Colombier	<td>&nbsp;
53237dd7cddfSDavid du Colombier	<td>Bool
53247dd7cddfSDavid du Colombier	<td>&nbsp;
53257dd7cddfSDavid du Colombier	<td>Write absolute Y coordinates
53267dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upGreenTransfer</tt></b>
53277dd7cddfSDavid du Colombier	<td>&nbsp;
53287dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
53297dd7cddfSDavid du Colombier	<td>&nbsp;
53307dd7cddfSDavid du Colombier	<td>Green transfer
53317dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upMagentaTransfer</tt></b>
53327dd7cddfSDavid du Colombier	<td>&nbsp;
53337dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
53347dd7cddfSDavid du Colombier	<td>&nbsp;
53357dd7cddfSDavid du Colombier	<td>Magenta transfer
53367dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upMargins</tt></b>
53377dd7cddfSDavid du Colombier	<td>&nbsp;
53387dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
53397dd7cddfSDavid du Colombier	<td>&nbsp;
53407dd7cddfSDavid du Colombier	<td>L/B/R/T margins in points
53417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upModel</tt></b>
53427dd7cddfSDavid du Colombier	<td>&nbsp;
53437dd7cddfSDavid du Colombier	<td>String
53447dd7cddfSDavid du Colombier	<td>&nbsp;
53457dd7cddfSDavid du Colombier	<td>Comment string, holds some info
53467dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputAborted</tt></b>
53477dd7cddfSDavid du Colombier	<td>&nbsp;
53487dd7cddfSDavid du Colombier	<td>Bool (RO)
53497dd7cddfSDavid du Colombier	<td>&nbsp;
53507dd7cddfSDavid du Colombier	<td>Caught an interrupt
53517dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputBuffers</tt></b>
53527dd7cddfSDavid du Colombier	<td>&nbsp;
53537dd7cddfSDavid du Colombier	<td>Int
53547dd7cddfSDavid du Colombier	<td>&nbsp;
53557dd7cddfSDavid du Colombier	<td>Number of rendering buffers (2^<small><sup><b>N</b></sup></small>)
53567dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputComponentOrder</tt></b>
53577dd7cddfSDavid du Colombier	<td>&nbsp;
53587dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
53597dd7cddfSDavid du Colombier	<td>&nbsp;
53607dd7cddfSDavid du Colombier	<td>Order of components when printing
53617dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputComponents</tt></b>
53627dd7cddfSDavid du Colombier	<td>&nbsp;
53637dd7cddfSDavid du Colombier	<td>Int
53647dd7cddfSDavid du Colombier	<td>&nbsp;
53657dd7cddfSDavid du Colombier	<td>Number of written components, not fully operational
53667dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputFormat</tt></b>
53677dd7cddfSDavid du Colombier	<td>&nbsp;
53687dd7cddfSDavid du Colombier	<td>Name
53697dd7cddfSDavid du Colombier	<td>&nbsp;
53707dd7cddfSDavid du Colombier	<td>Select output format
53717dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputFormatInitialized</tt></b>
53727dd7cddfSDavid du Colombier	<td>&nbsp;
53737dd7cddfSDavid du Colombier	<td>Bool (RO)
53747dd7cddfSDavid du Colombier	<td>&nbsp;
53757dd7cddfSDavid du Colombier	<td>Format data OK
53767dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputHeight</tt></b>
53777dd7cddfSDavid du Colombier	<td>&nbsp;
53787dd7cddfSDavid du Colombier	<td>Int
53797dd7cddfSDavid du Colombier	<td>&nbsp;
53807dd7cddfSDavid du Colombier	<td>Output height in pixels
53817dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputPins</tt></b>
53827dd7cddfSDavid du Colombier	<td>&nbsp;
53837dd7cddfSDavid du Colombier	<td>Int
53847dd7cddfSDavid du Colombier	<td>&nbsp;
53857dd7cddfSDavid du Colombier	<td>Number of pins / nozzles per command
53867dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputWidth</tt></b>
53877dd7cddfSDavid du Colombier	<td>&nbsp;
53887dd7cddfSDavid du Colombier	<td>Int
53897dd7cddfSDavid du Colombier	<td>&nbsp;
53907dd7cddfSDavid du Colombier	<td>Output width in pixels
53917dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputXOffset</tt></b>
53927dd7cddfSDavid du Colombier	<td>&nbsp;
53937dd7cddfSDavid du Colombier	<td>Int
53947dd7cddfSDavid du Colombier	<td>&nbsp;
53957dd7cddfSDavid du Colombier	<td>Offset in pixels, if <b><tt>upFormatXabsolute</tt></b>
53967dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputXStep</tt></b>
53977dd7cddfSDavid du Colombier	<td>&nbsp;
53987dd7cddfSDavid du Colombier	<td>Int
53997dd7cddfSDavid du Colombier	<td>&nbsp;
54007dd7cddfSDavid du Colombier	<td>Divisor or multiplier for X coords
54017dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputYOffset</tt></b>
54027dd7cddfSDavid du Colombier	<td>&nbsp;
54037dd7cddfSDavid du Colombier	<td>Int
54047dd7cddfSDavid du Colombier	<td>&nbsp;
54057dd7cddfSDavid du Colombier	<td>Offset in pixels, if <b><tt>upFormatYabsolute</tt></b>
54067dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upOutputYStep</tt></b>
54077dd7cddfSDavid du Colombier	<td>&nbsp;
54087dd7cddfSDavid du Colombier	<td>Int
54097dd7cddfSDavid du Colombier	<td>&nbsp;
54107dd7cddfSDavid du Colombier	<td>Divisor or multiplier for Y coords
54117dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upRasterBufferInitialized</tt></b>
54127dd7cddfSDavid du Colombier	<td>&nbsp;
54137dd7cddfSDavid du Colombier	<td>Bool (RO)
54147dd7cddfSDavid du Colombier	<td>&nbsp;
54157dd7cddfSDavid du Colombier	<td>GS buffer OK
54167dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upRedTransfer</tt></b>
54177dd7cddfSDavid du Colombier	<td>&nbsp;
54187dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
54197dd7cddfSDavid du Colombier	<td>&nbsp;
54207dd7cddfSDavid du Colombier	<td>Red transfer
54217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upRendering</tt></b>
54227dd7cddfSDavid du Colombier	<td>&nbsp;
54237dd7cddfSDavid du Colombier	<td>Name
54247dd7cddfSDavid du Colombier	<td>&nbsp;
54257dd7cddfSDavid du Colombier	<td>Select rendering algorithm
54267dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upRenderingInitialized</tt></b>
54277dd7cddfSDavid du Colombier	<td>&nbsp;
54287dd7cddfSDavid du Colombier	<td>Bool (RO)
54297dd7cddfSDavid du Colombier	<td>&nbsp;
54307dd7cddfSDavid du Colombier	<td>Rendering parameters OK
54317dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upSelectComponentCommands</tt></b>
54327dd7cddfSDavid du Colombier	<td>&nbsp;
54337dd7cddfSDavid du Colombier	<td>String[&nbsp;]
54347dd7cddfSDavid du Colombier	<td>&nbsp;
54357dd7cddfSDavid du Colombier	<td>Establish color (output order!)
54367dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upSetLineFeedCommand</tt></b>
54377dd7cddfSDavid du Colombier	<td>&nbsp;
54387dd7cddfSDavid du Colombier	<td>String
54397dd7cddfSDavid du Colombier	<td>&nbsp;
54407dd7cddfSDavid du Colombier	<td>Adjust linefeed (Epson only)
54417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upVersion</tt></b>
54427dd7cddfSDavid du Colombier	<td>&nbsp;
54437dd7cddfSDavid du Colombier	<td>String (RO)
54447dd7cddfSDavid du Colombier	<td>&nbsp;
54457dd7cddfSDavid du Colombier	<td>Source code version
54467dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveFinalPins</tt></b>
54477dd7cddfSDavid du Colombier	<td>&nbsp;
54487dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
54497dd7cddfSDavid du Colombier	<td>&nbsp;
54507dd7cddfSDavid du Colombier	<td>Number of bottom pins on EOP passes
54517dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveFinalScan</tt></b>
54527dd7cddfSDavid du Colombier	<td>&nbsp;
54537dd7cddfSDavid du Colombier	<td>Int
54547dd7cddfSDavid du Colombier	<td>&nbsp;
54557dd7cddfSDavid du Colombier	<td>Begin EOP passes (Y-coord)
54567dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveFinalXStarts</tt></b>
54577dd7cddfSDavid du Colombier	<td>&nbsp;
54587dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
54597dd7cddfSDavid du Colombier	<td>&nbsp;
54607dd7cddfSDavid du Colombier	<td>X-pass indices for EOP passes
54617dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveFinalYFeeds</tt></b>
54627dd7cddfSDavid du Colombier	<td>&nbsp;
54637dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
54647dd7cddfSDavid du Colombier	<td>&nbsp;
54657dd7cddfSDavid du Colombier	<td>Y increments for EOP passes
54667dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveInitialPins</tt></b>
54677dd7cddfSDavid du Colombier	<td>&nbsp;
54687dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
54697dd7cddfSDavid du Colombier	<td>&nbsp;
54707dd7cddfSDavid du Colombier	<td>Number of top pins on BOP passes
54717dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveInitialScan</tt></b>
54727dd7cddfSDavid du Colombier	<td>&nbsp;
54737dd7cddfSDavid du Colombier	<td>Int
54747dd7cddfSDavid du Colombier	<td>&nbsp;
54757dd7cddfSDavid du Colombier	<td>End BOP passes (Y coord)
54767dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveInitialXStarts</tt></b>
54777dd7cddfSDavid du Colombier	<td>&nbsp;
54787dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
54797dd7cddfSDavid du Colombier	<td>&nbsp;
54807dd7cddfSDavid du Colombier	<td>X-pass indices for BOP passes
54817dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveInitialYFeeds</tt></b>
54827dd7cddfSDavid du Colombier	<td>&nbsp;
54837dd7cddfSDavid du Colombier	<td>int[&nbsp;]
54847dd7cddfSDavid du Colombier	<td>&nbsp;
54857dd7cddfSDavid du Colombier	<td>Y increments for BOP passes
54867dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeavePasses</tt></b>
54877dd7cddfSDavid du Colombier	<td>&nbsp;
54887dd7cddfSDavid du Colombier	<td>Int
54897dd7cddfSDavid du Colombier	<td>&nbsp;
54907dd7cddfSDavid du Colombier	<td>XPasses &times; YPasses
54917dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveXPasses</tt></b>
54927dd7cddfSDavid du Colombier	<td>&nbsp;
54937dd7cddfSDavid du Colombier	<td>Int
54947dd7cddfSDavid du Colombier	<td>&nbsp;
54957dd7cddfSDavid du Colombier	<td>Number of X passes
54967dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveXStarts</tt></b>
54977dd7cddfSDavid du Colombier	<td>&nbsp;
54987dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
54997dd7cddfSDavid du Colombier	<td>&nbsp;
55007dd7cddfSDavid du Colombier	<td>X-pass indices for normal passes
55017dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveYFeeds</tt></b>
55027dd7cddfSDavid du Colombier	<td>&nbsp;
55037dd7cddfSDavid du Colombier	<td>Int[&nbsp;]
55047dd7cddfSDavid du Colombier	<td>&nbsp;
55057dd7cddfSDavid du Colombier	<td>Y increments for normal passes
55067dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveYOffset</tt></b>
55077dd7cddfSDavid du Colombier	<td>&nbsp;
55087dd7cddfSDavid du Colombier	<td>Int
55097dd7cddfSDavid du Colombier	<td>&nbsp;
55107dd7cddfSDavid du Colombier	<td>Number of blank or incomplete scans at BOP
55117dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWeaveYPasses</tt></b>
55127dd7cddfSDavid du Colombier	<td>&nbsp;
55137dd7cddfSDavid du Colombier	<td>Int
55147dd7cddfSDavid du Colombier	<td>&nbsp;
55157dd7cddfSDavid du Colombier	<td>Number of X passes
55167dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWhiteTransfer</tt></b>
55177dd7cddfSDavid du Colombier	<td>&nbsp;
55187dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
55197dd7cddfSDavid du Colombier	<td>&nbsp;
55207dd7cddfSDavid du Colombier	<td>White transfer (monochrome devices!)
55217dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWriteComponentCommands</tt></b>
55227dd7cddfSDavid du Colombier	<td>&nbsp;
55237dd7cddfSDavid du Colombier	<td>String[&nbsp;]
55247dd7cddfSDavid du Colombier	<td>&nbsp;
55257dd7cddfSDavid du Colombier	<td>Commands to write each component
55267dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upWroteData</tt></b>
55277dd7cddfSDavid du Colombier	<td>&nbsp;
55287dd7cddfSDavid du Colombier	<td>Bool (RO)
55297dd7cddfSDavid du Colombier	<td>&nbsp;
55307dd7cddfSDavid du Colombier	<td>Something (<b><tt>BeginJob</tt></b>) written to output
55317dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upXMoveCommand</tt></b>
55327dd7cddfSDavid du Colombier	<td>&nbsp;
55337dd7cddfSDavid du Colombier	<td>String
55347dd7cddfSDavid du Colombier	<td>&nbsp;
55357dd7cddfSDavid du Colombier	<td>X positioning command
55367dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upXStepCommand</tt></b>
55377dd7cddfSDavid du Colombier	<td>&nbsp;
55387dd7cddfSDavid du Colombier	<td>String
55397dd7cddfSDavid du Colombier	<td>&nbsp;
55407dd7cddfSDavid du Colombier	<td>Single step to the right
55417dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upYFlip</tt></b>
55427dd7cddfSDavid du Colombier	<td>&nbsp;
55437dd7cddfSDavid du Colombier	<td>Bool
55447dd7cddfSDavid du Colombier	<td>&nbsp;
55457dd7cddfSDavid du Colombier	<td>Flips output along the Y axis
55467dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upYMoveCommand</tt></b>
55477dd7cddfSDavid du Colombier	<td>&nbsp;
55487dd7cddfSDavid du Colombier	<td>String
55497dd7cddfSDavid du Colombier	<td>&nbsp;
55507dd7cddfSDavid du Colombier	<td>Y positioning command
55517dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upYStepCommand</tt></b>
55527dd7cddfSDavid du Colombier	<td>&nbsp;
55537dd7cddfSDavid du Colombier	<td>String
55547dd7cddfSDavid du Colombier	<td>&nbsp;
55557dd7cddfSDavid du Colombier	<td>Single step down
55567dd7cddfSDavid du Colombier<tr valign=top>	<td><b><tt>upYellowTransfer</tt></b>
55577dd7cddfSDavid du Colombier	<td>&nbsp;
55587dd7cddfSDavid du Colombier	<td>Float[&nbsp;]
55597dd7cddfSDavid du Colombier	<td>&nbsp;
55607dd7cddfSDavid du Colombier	<td>Yellow transfer
55617dd7cddfSDavid du Colombier</table></blockquote>
55627dd7cddfSDavid du Colombier
5563*3ff48bf5SDavid du Colombier<h3><a name="Uni_honors"></a><b><tt>uniprint</tt></b>'s Roll of Honor</h3>
55647dd7cddfSDavid du Colombier
55657dd7cddfSDavid du Colombier<p>
55667dd7cddfSDavid du ColombierI should mention all of the people who were involved in
55677dd7cddfSDavid du Colombier<b><tt>stcolor</tt></b>'s evolution, but I've decided to start from scratch
55687dd7cddfSDavid du Colombierhere for <b><tt>uniprint</tt></b>:
55697dd7cddfSDavid du Colombier
55707dd7cddfSDavid du Colombier<blockquote>
55717dd7cddfSDavid du Colombier<dl>
55727dd7cddfSDavid du Colombier<dt>John P. Beale
55737dd7cddfSDavid du Colombier<dd>for testing the <b><tt>stc600</tt></b> modes
55747dd7cddfSDavid du Colombier<dt>Bill Davidson
55757dd7cddfSDavid du Colombier<dd>who triggered some weaving research and tested <b><tt>stc2s_h</tt></b>
55767dd7cddfSDavid du Colombier<dt>L. Peter Deutsch
55777dd7cddfSDavid du Colombier<dd>who triggered ease of configuration
55787dd7cddfSDavid du Colombier<dt>Mark Goldberg
55797dd7cddfSDavid du Colombier<dd>who prepared the <b><tt>stc500</tt></b> transfers
55807dd7cddfSDavid du Colombier<dt>Scott F. Johnston and Scott J. Kramer
55817dd7cddfSDavid du Colombier<dd>for testing the <b><tt>stc800</tt></b> modes
55827dd7cddfSDavid du Colombier<dt>Martin Lottermoser
55837dd7cddfSDavid du Colombier<dd>for his great commented H-P DeskJet driver
55847dd7cddfSDavid du Colombier<dt>Helmut Riegler
55857dd7cddfSDavid du Colombier<dd>for the BJC extension
55867dd7cddfSDavid du Colombier<dt>Hans-Gerd Straeter
55877dd7cddfSDavid du Colombier<dd>for some measured transfer curves and more
55887dd7cddfSDavid du Colombier<dt>Uli Wortmann
55897dd7cddfSDavid du Colombier<dd>for discussions and his <b><tt>cdj850</tt></b> driver
55907dd7cddfSDavid du Colombier<dt>My family
55917dd7cddfSDavid du Colombier<dd>for tolerating my printer-driver hacking
55927dd7cddfSDavid du Colombier</dl>
55937dd7cddfSDavid du Colombier</blockquote>
55947dd7cddfSDavid du Colombier
55957dd7cddfSDavid du Colombier<address>
55967dd7cddfSDavid du ColombierGunther Hess<br>
55977dd7cddfSDavid du ColombierDuesseldorfer Landstr. 16b<br>
55987dd7cddfSDavid du ColombierD-47249 Duisburg<br>
55997dd7cddfSDavid du ColombierGermany<br>
56007dd7cddfSDavid du Colombier+49 203 376273 telephone (MET evening hours)<br>
56017dd7cddfSDavid du Colombier&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
56027dd7cddfSDavid du Colombier</address>
5603*3ff48bf5SDavid du Colombier<h3><a name="Uni_weaving_howto"></a><tt>Uniprint</tt> weaving parameters howto</h3>
5604*3ff48bf5SDavid du ColombierThis section was contributed by Glenn Ramsey.<p>
5605*3ff48bf5SDavid du Colombier<p>I wrote this because the documentation was very brief and I really struggled
5606*3ff48bf5SDavid du Colombierwith it for a while, but it is very simple once you understand what is going
5607*3ff48bf5SDavid du Colombieron.
5608*3ff48bf5SDavid du Colombier<p>This only describes how to work out the Y parameters, I haven't looked
5609*3ff48bf5SDavid du Colombierat the X parameters yet.
5610*3ff48bf5SDavid du Colombier<ol>
5611*3ff48bf5SDavid du Colombier<li>
5612*3ff48bf5SDavid du Colombier<b>Determine the nozzle geometry (upOutputPins)</b>
5613*3ff48bf5SDavid du Colombier<p>
5614*3ff48bf5SDavid du ColombierYou need to know how many nozzles the printer has and the spacing between
5615*3ff48bf5SDavid du Colombierthem. Usually you can find this out from the printer manual, or the printer
5616*3ff48bf5SDavid du Colombiersupplier, but you may have to dissect a couple of printer output files
5617*3ff48bf5SDavid du Colombierproduced with the driver supplied with the printer. There is a utility
5618*3ff48bf5SDavid du Colombiercalled escp2ras<a href="#escp2ras"><sup>*</sup></a> that will help with that.
5619*3ff48bf5SDavid du ColombierSometimes the term pin is used instead of nozzle but they mean the same thing.
5620*3ff48bf5SDavid du Colombier<p>The number of nozzles will be the value assigned to the upOutputPins
5621*3ff48bf5SDavid du Colombierparameter.
5622*3ff48bf5SDavid du Colombier<p>Actually you don't have to print with all the pins available but for
5623*3ff48bf5SDavid du Colombierthe purpose of demonstration I'll assume that we are using them all.
5624*3ff48bf5SDavid du Colombier<p>
5625*3ff48bf5SDavid 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>
5626*3ff48bf5SDavid du Colombier</li>
5627*3ff48bf5SDavid du Colombier<p>
5628*3ff48bf5SDavid du Colombier<li><b>Determine how many passes are required (upWeaveYPasses)</b>
5629*3ff48bf5SDavid du Colombier<p>The number of passes required is going to depend on the required resolution
5630*3ff48bf5SDavid du Colombierand the nozzle spacing.
5631*3ff48bf5SDavid du Colombier<blockquote>
5632*3ff48bf5SDavid du Colombier<tt>passes = resolution * nozzle spacing
5633*3ff48bf5SDavid du Colombier</tt>
5634*3ff48bf5SDavid du Colombier</blockquote>
5635*3ff48bf5SDavid du ColombierThis will be the value assigned to the upWeaveYPasses parameter.
5636*3ff48bf5SDavid du Colombier<p>For example if the desired resolution is 360 dpi and the nozzles are
5637*3ff48bf5SDavid du Colombierspaced at 1/90in then 360 * 1/90 = 4 passes are required. For 720 dpi 8
5638*3ff48bf5SDavid du Colombierpasses would be required. The printer would, of course, have to be capable
5639*3ff48bf5SDavid du Colombierof moving the paper in increments of either 360 or 720 dpi too.
5640*3ff48bf5SDavid du Colombier</li>
5641*3ff48bf5SDavid du Colombier<p>
5642*3ff48bf5SDavid du Colombier<li>
5643*3ff48bf5SDavid du Colombier<b>Determine the normal Y feed increment (upWeaveYFeeds)</b>
5644*3ff48bf5SDavid du Colombier<p>
5645*3ff48bf5SDavid du ColombierYou need to work out how much to feed the paper so that when the paper
5646*3ff48bf5SDavid du Colombierhas moved by one head length in however many passes you have then each
5647*3ff48bf5SDavid du Colombierrow space on the paper has been passed over by at least one nozzle. There
5648*3ff48bf5SDavid du Colombierwill be one feed value for each pass and the feed values must comply with
5649*3ff48bf5SDavid du Colombierthe following rules:
5650*3ff48bf5SDavid du Colombier<blockquote>
5651*3ff48bf5SDavid du Colombier<tt>
5652*3ff48bf5SDavid du Colombier<p>sum of feeds = passes * nozzles
5653*3ff48bf5SDavid du Colombier<br>feed%passes != 0 (feed is not exactly divisible by passes)
5654*3ff48bf5SDavid du Colombier<br>sum of (nozzles - feed) = 0
5655*3ff48bf5SDavid du Colombier</tt>
5656*3ff48bf5SDavid du Colombier</blockquote>
5657*3ff48bf5SDavid du Colombier<p>For example if passes=4 and nozzles=15, then sum of feeds=60. The feed
5658*3ff48bf5SDavid du Colombiervalues could be 1,1,1,57 or 15,15,15,15 or 14,15,18,13.
5659*3ff48bf5SDavid du Colombier<p>These values will be assigned to the upWeaveYFeeds parameter.
5660*3ff48bf5SDavid du Colombier<p>You would need to experiment to see what combination looks best on the
5661*3ff48bf5SDavid du Colombierprinter.
5662*3ff48bf5SDavid du Colombier<p>I found it convenient to draw several lines of nozzles and then move
5663*3ff48bf5SDavid du Colombierthem around to see how the different combinations would fill the paper.
5664*3ff48bf5SDavid du ColombierA computer drawing tool makes this easier than pencil and paper (I used
5665*3ff48bf5SDavid du ColombierDia, a GNOME app). The number of nozzles would probably be be a good place
5666*3ff48bf5SDavid du Colombierto start.
5667*3ff48bf5SDavid du Colombier<p>Remember that if the number of passes is more than 1 then the feed increment
5668*3ff48bf5SDavid du Colombierwill be less than the nozzle spacing and <tt>passes &times; feed increment size</tt>
5669*3ff48bf5SDavid du Colombiermust equal the physical distance between each nozzle.
5670*3ff48bf5SDavid du Colombier</li>
5671*3ff48bf5SDavid du Colombier<p>
5672*3ff48bf5SDavid du Colombier<li>
5673*3ff48bf5SDavid du Colombier<b>Determine the beginning of page pins (upWeaveInitialPins)</b>
5674*3ff48bf5SDavid du Colombier<p>
5675*3ff48bf5SDavid du ColombierThese values will be assigned to the upWeaveInitialPins parameter and are
5676*3ff48bf5SDavid du Colombierthe numbers of nozzles to operate in each of the initial passes at the top
5677*3ff48bf5SDavid du Colombierof a page. The nozzles that the values refer to are the topmost nozzles
5678*3ff48bf5SDavid du Colombieron the head, nearest the top margin. If the image doesn't start at the
5679*3ff48bf5SDavid du Colombiertop margin then uniprint doesn't use these feeds.
5680*3ff48bf5SDavid du Colombier<p>I don't know a mathematical relation for this except that at least one
5681*3ff48bf5SDavid du Colombierof the values must be the number of nozzles, but I'm sure that there must
5682*3ff48bf5SDavid du Colombierbe one. I used a graphical method, the description that follows refers
5683*3ff48bf5SDavid du Colombierto the ascii diagram in below.
5684*3ff48bf5SDavid du Colombier<p>Draw a line of nozzles for each pass arranged as they would be using
5685*3ff48bf5SDavid du Colombierthe normal Y feed increment determined in step 3. In the diagram below
5686*3ff48bf5SDavid du Colombierthis would be passes 5-8.
5687*3ff48bf5SDavid du Colombier<p>Draw a line of nozzles that would print just before the first normal
5688*3ff48bf5SDavid du Colombierpass. The feed increment for this pass will be close to and most likely
5689*3ff48bf5SDavid du Colombier1 or 2 units less than the feed increment of the last normal pass. In the
5690*3ff48bf5SDavid du Colombierexample below this line is pass 4 and the feed increment is 13 whereas
5691*3ff48bf5SDavid du Colombierthe normal feed increment is 15.
5692*3ff48bf5SDavid du Colombier<p>Draw each pass before that with a small feed increment so that if all
5693*3ff48bf5SDavid du Colombierof the nozzles appearing above the first nozzle of the first normal pass
5694*3ff48bf5SDavid du Colombieroperate then all of the spaces will be filled. This feed increment is usually
5695*3ff48bf5SDavid du Colombier1 except in cases where some jiggery pokery is going on to make the printer
5696*3ff48bf5SDavid du Colombierprint at an apparent higher resolution than the nozzle diameter.
5697*3ff48bf5SDavid du Colombier<p>Now select the nozzles that will operate in each of theses initial passes
5698*3ff48bf5SDavid du Colombierso that the paper is filled. In each pass the nozzles must be adjacent
5699*3ff48bf5SDavid du Colombierto each other and at least one of the passes will have all the nozzles
5700*3ff48bf5SDavid du Colombieroperating. I suspect that for each combination of normal Y feed increments
5701*3ff48bf5SDavid du Colombierthere will only be one set of valid beginning of page increments.
5702*3ff48bf5SDavid du Colombier</li>
5703*3ff48bf5SDavid du Colombier</ol>
5704*3ff48bf5SDavid du Colombier<h4>Example: stc.upp from Aladdin Ghostscript 6.01</h4>
5705*3ff48bf5SDavid du Colombier15 nozzles spaced at 1/90 in, 360 dpi requires 4 passes.
5706*3ff48bf5SDavid du Colombier<blockquote><tt><pre>
5707*3ff48bf5SDavid du Colombier-dupWeaveYPasses=4
5708*3ff48bf5SDavid du Colombier-dupOutputPins=15
5709*3ff48bf5SDavid du Colombier-dupWeaveYFeeds="{15 15 15 15}"
5710*3ff48bf5SDavid du Colombier-dupWeaveInitialYFeeds="{1 1 1 13}"
5711*3ff48bf5SDavid du Colombier-dupWeaveInitialPins="{ 4 15 11 7}"
5712*3ff48bf5SDavid du Colombier</pre></tt></blockquote>
5713*3ff48bf5SDavid du ColombierThe following diagram shows which nozzles operate during each pass.
5714*3ff48bf5SDavid du Colombier<br>Passes 1-4 are beginning of page passes and passes 5-8 are normal passes.
5715*3ff48bf5SDavid du Colombier<blockquote>
5716*3ff48bf5SDavid du Colombier<p>x=nozzle operates, o=nozzle not used in this pass<tt></tt>
5717*3ff48bf5SDavid du Colombier<p><tt>&nbsp; 1 2 3 4 5 6 7 8 - pass no</tt>
5718*3ff48bf5SDavid du Colombier<br><tt>0 x</tt>
5719*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp; x</tt>
5720*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5721*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5722*3ff48bf5SDavid du Colombier<br><tt>4 x</tt>
5723*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp; x</tt>
5724*3ff48bf5SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5725*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5726*3ff48bf5SDavid du Colombier<br><tt>8 x</tt>
5727*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp; x</tt>
5728*3ff48bf5SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5729*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5730*3ff48bf5SDavid du Colombier<br><tt>2 x</tt>
5731*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp; x</tt>
5732*3ff48bf5SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5733*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5734*3ff48bf5SDavid du Colombier<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5735*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp; x</tt>
5736*3ff48bf5SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5737*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5738*3ff48bf5SDavid du Colombier<br><tt>0 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5739*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp; x</tt>
5740*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5741*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5742*3ff48bf5SDavid du Colombier<br><tt>4 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5743*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp; x</tt>
5744*3ff48bf5SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5745*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5746*3ff48bf5SDavid du Colombier<br><tt>8 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5747*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp; x</tt>
5748*3ff48bf5SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5749*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5750*3ff48bf5SDavid du Colombier<br><tt>2 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5751*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp; x</tt>
5752*3ff48bf5SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5753*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5754*3ff48bf5SDavid du Colombier<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5755*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp; x</tt>
5756*3ff48bf5SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5757*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5758*3ff48bf5SDavid du Colombier<br><tt>0 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5759*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp; x</tt>
5760*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5761*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5762*3ff48bf5SDavid du Colombier<br><tt>4 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5763*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp; x</tt>
5764*3ff48bf5SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5765*3ff48bf5SDavid du Colombierx</tt>
5766*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5767*3ff48bf5SDavid du Colombier<br><tt>8 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5768*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp; x</tt>
5769*3ff48bf5SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5770*3ff48bf5SDavid du Colombierx</tt>
5771*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5772*3ff48bf5SDavid du Colombier<br><tt>2 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5773*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp; x</tt>
5774*3ff48bf5SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5775*3ff48bf5SDavid du Colombierx</tt>
5776*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5777*3ff48bf5SDavid du Colombier<br><tt>6 o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5778*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp; x</tt>
5779*3ff48bf5SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5780*3ff48bf5SDavid du Colombierx</tt>
5781*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; o&nbsp;&nbsp; x</tt>
5782*3ff48bf5SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5783*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5784*3ff48bf5SDavid du Colombierx</tt>
5785*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5786*3ff48bf5SDavid du Colombierx</tt>
5787*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5788*3ff48bf5SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5789*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5790*3ff48bf5SDavid du Colombierx</tt>
5791*3ff48bf5SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5792*3ff48bf5SDavid du Colombierx</tt>
5793*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5794*3ff48bf5SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5795*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5796*3ff48bf5SDavid du Colombierx</tt>
5797*3ff48bf5SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5798*3ff48bf5SDavid du Colombierx</tt>
5799*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5800*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5801*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5802*3ff48bf5SDavid du Colombierx</tt>
5803*3ff48bf5SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5804*3ff48bf5SDavid du Colombierx</tt>
5805*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5806*3ff48bf5SDavid du Colombier<br><tt>6</tt>
5807*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5808*3ff48bf5SDavid du Colombierx</tt>
5809*3ff48bf5SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5810*3ff48bf5SDavid du Colombierx</tt>
5811*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5812*3ff48bf5SDavid du Colombier<br><tt>0</tt>
5813*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5814*3ff48bf5SDavid du Colombierx</tt>
5815*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5816*3ff48bf5SDavid du Colombierx</tt>
5817*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5818*3ff48bf5SDavid du Colombier<br><tt>4</tt>
5819*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5820*3ff48bf5SDavid du Colombierx</tt>
5821*3ff48bf5SDavid du Colombier<br><tt>6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5822*3ff48bf5SDavid du Colombierx</tt>
5823*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x</tt>
5824*3ff48bf5SDavid du Colombier<br><tt>8</tt>
5825*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5826*3ff48bf5SDavid du Colombierx</tt>
5827*3ff48bf5SDavid du Colombier<br><tt>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5828*3ff48bf5SDavid du Colombierx</tt>
5829*3ff48bf5SDavid du Colombier<br><tt>1</tt>
5830*3ff48bf5SDavid du Colombier<br><tt>2</tt>
5831*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5832*3ff48bf5SDavid du Colombierx</tt>
5833*3ff48bf5SDavid du Colombier<br><tt>4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5834*3ff48bf5SDavid du Colombierx</tt>
5835*3ff48bf5SDavid du Colombier<br><tt>5</tt>
5836*3ff48bf5SDavid du Colombier<br><tt>6</tt>
5837*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5838*3ff48bf5SDavid du Colombierx</tt>
5839*3ff48bf5SDavid du Colombier<br><tt>8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5840*3ff48bf5SDavid du Colombierx</tt>
5841*3ff48bf5SDavid du Colombier<br><tt>9</tt>
5842*3ff48bf5SDavid du Colombier<br><tt>0</tt>
5843*3ff48bf5SDavid du Colombier<br><tt>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5844*3ff48bf5SDavid du Colombierx</tt>
5845*3ff48bf5SDavid du Colombier<br><tt>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5846*3ff48bf5SDavid du Colombierx</tt>
5847*3ff48bf5SDavid du Colombier<br><tt>3</tt>
5848*3ff48bf5SDavid du Colombier<br><tt>4</tt>
5849*3ff48bf5SDavid du Colombier<br><tt>5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5850*3ff48bf5SDavid du Colombierx</tt>
5851*3ff48bf5SDavid du Colombier<br><tt>6</tt>
5852*3ff48bf5SDavid du Colombier<br><tt>7</tt>
5853*3ff48bf5SDavid du Colombier<br><tt>8</tt>
5854*3ff48bf5SDavid du Colombier<br><tt>9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5855*3ff48bf5SDavid du Colombierx</tt>
5856*3ff48bf5SDavid du Colombier<br><tt>0</tt>
5857*3ff48bf5SDavid du Colombier<br><tt>1</tt>
5858*3ff48bf5SDavid du Colombier<br><tt>2</tt>
5859*3ff48bf5SDavid du Colombier<br><tt>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5860*3ff48bf5SDavid du Colombierx</tt>
5861*3ff48bf5SDavid du Colombier<br><tt>4</tt>
5862*3ff48bf5SDavid du Colombier<br><tt>5</tt>
5863*3ff48bf5SDavid du Colombier<br><tt>6</tt>
5864*3ff48bf5SDavid du Colombier<br><tt>7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5865*3ff48bf5SDavid du Colombierx</tt>
5866*3ff48bf5SDavid du Colombier</blockquote>
5867*3ff48bf5SDavid du Colombier<p>These parameters would also work:
5868*3ff48bf5SDavid du Colombier<blockquote><tt><pre>
5869*3ff48bf5SDavid du Colombier-dupWeaveYPasses=4
5870*3ff48bf5SDavid du Colombier-dupOutputPins=15
5871*3ff48bf5SDavid du Colombier-dupWeaveYFeeds="{14 15 18 13}"
5872*3ff48bf5SDavid du Colombier-dupWeaveInitialYFeeds="{1 1 1 13}"
5873*3ff48bf5SDavid du Colombier-dupWeaveInitialPins="{ 4 11 7 15}"
5874*3ff48bf5SDavid du Colombier</pre></tt></blockquote>
5875*3ff48bf5SDavid du Colombier<p>
5876*3ff48bf5SDavid du Colombier<hr>
5877*3ff48bf5SDavid du Colombier<h3><a name="Uni_esc300"></a>Extension to <tt>uniprint</tt> for the Epson Stylus Color 300</h3>
5878*3ff48bf5SDavid du ColombierThis section was contributed by Glenn Ramsey.<p>
5879*3ff48bf5SDavid du ColombierThe Epson Stylus Color 300 uses a different command set to other Epson
5880*3ff48bf5SDavid du ColombierStylus Color printers that use the ESC/P2 language. As far as I can
5881*3ff48bf5SDavid du Colombiertell its commands are a subset of ESC/P2. In ESC/P2 the colour to be
5882*3ff48bf5SDavid du Colombierprinted is selected by a 'set colour' command and then the data sent
5883*3ff48bf5SDavid du Colombieris only printed in that colour until the colour is changed with another
5884*3ff48bf5SDavid du Colombier'set colour' command. The Stylus Color 300 lacks this functionality.
5885*3ff48bf5SDavid du ColombierThe data sent to the printer maps directly to the ink nozzles and colour
5886*3ff48bf5SDavid du Colombierof an output scan line in the printed output is determined by the position
5887*3ff48bf5SDavid du Colombierof the scan line within the data. This means that the driver must know
5888*3ff48bf5SDavid du Colombierhow the nozzles are arranged and must format the output accordingly.
5889*3ff48bf5SDavid du ColombierThe extension adds a format that I have called EscNozzleMap and adds some
5890*3ff48bf5SDavid du Colombier additional parameters to uniprint.<br>
5891*3ff48bf5SDavid du Colombier<ul>
5892*3ff48bf5SDavid du Colombier  <li><b><tt>upOutputFormat</tt></b>selects the output method, and should be set to the value
5893*3ff48bf5SDavid du Colombier<b><tt>/EscNozzleMap</tt></b> to select this format.
5894*3ff48bf5SDavid du Colombier    <blockquote>
5895*3ff48bf5SDavid du Colombier      <table cellpadding="0" cellspacing="0">
5896*3ff48bf5SDavid du Colombier        <tbody>
5897*3ff48bf5SDavid du Colombier          <tr valign="Top">
5898*3ff48bf5SDavid du Colombier            <td><b><tt>/EscNozzleMap</tt></b></td>
5899*3ff48bf5SDavid du Colombier            <td>&nbsp;</td>
5900*3ff48bf5SDavid du Colombier            <td>produces output for the Epson Stylus Color 300
5901*3ff48bf5SDavid du Colombier	    </td>
5902*3ff48bf5SDavid du Colombier          </tr>
5903*3ff48bf5SDavid du Colombier         <tbody>
5904*3ff48bf5SDavid du Colombier       </table>
5905*3ff48bf5SDavid du Colombier     </blockquote>
5906*3ff48bf5SDavid du Colombier</ul>
59077dd7cddfSDavid du Colombier
5908*3ff48bf5SDavid du Colombier<blockquote>
5909*3ff48bf5SDavid du Colombier  <table cellpadding="0" cellspacing="0">
5910*3ff48bf5SDavid du Colombier    <tbody>
5911*3ff48bf5SDavid du Colombier      <tr>
5912*3ff48bf5SDavid du Colombier        <th colspan="5" bgcolor="#cccc00">
5913*3ff48bf5SDavid du Colombier        <hr><font size="+1"><b><tt>uniprint</tt></b> parameters for the
5914*3ff48bf5SDavid du Colombier        EscNozzleMap format</font>
5915*3ff48bf5SDavid du Colombier        <hr></th>
5916*3ff48bf5SDavid du Colombier      </tr>
5917*3ff48bf5SDavid du Colombier      <tr valign="Bottom">
5918*3ff48bf5SDavid du Colombier        <th align="Left">Parameter
5919*3ff48bf5SDavid du Colombier	</th>
5920*3ff48bf5SDavid du Colombier        <td>&nbsp;
5921*3ff48bf5SDavid du Colombier	</td>
5922*3ff48bf5SDavid du Colombier        <th align="Left">Type
5923*3ff48bf5SDavid du Colombier	</th>
5924*3ff48bf5SDavid du Colombier        <td>&nbsp;&nbsp;&nbsp;
5925*3ff48bf5SDavid du Colombier	</td>
5926*3ff48bf5SDavid du Colombier        <th align="Left">Use
5927*3ff48bf5SDavid du Colombier	</th>
5928*3ff48bf5SDavid du Colombier      </tr>
5929*3ff48bf5SDavid du Colombier      <tr>
5930*3ff48bf5SDavid du Colombier        <td colspan="5">
5931*3ff48bf5SDavid du Colombier        <hr></td>
5932*3ff48bf5SDavid du Colombier      </tr>
5933*3ff48bf5SDavid du Colombier      <tr valign="Top">
5934*3ff48bf5SDavid du Colombier        <td><b><tt>upNozzleMapRowsPerPass</tt></b></td>
5935*3ff48bf5SDavid du Colombier        <td>&nbsp;
5936*3ff48bf5SDavid du Colombier	</td>
5937*3ff48bf5SDavid du Colombier        <td>Int
5938*3ff48bf5SDavid du Colombier	</td>
5939*3ff48bf5SDavid du Colombier        <td>&nbsp;
5940*3ff48bf5SDavid du Colombier	</td>
5941*3ff48bf5SDavid du Colombier        <td>output rows to generate for each pass of the head
5942*3ff48bf5SDavid du Colombier	</td>
5943*3ff48bf5SDavid du Colombier      </tr>
5944*3ff48bf5SDavid du Colombier      <tr valign="Top">
5945*3ff48bf5SDavid du Colombier        <td><b><tt>upNozzleMapPatternRepeat</tt></b></td>
5946*3ff48bf5SDavid du Colombier        <td>&nbsp;
5947*3ff48bf5SDavid du Colombier	</td>
5948*3ff48bf5SDavid du Colombier        <td>Int
5949*3ff48bf5SDavid du Colombier	</td>
5950*3ff48bf5SDavid du Colombier        <td>&nbsp;
5951*3ff48bf5SDavid du Colombier	</td>
5952*3ff48bf5SDavid du Colombier        <td>no. of rows that correspond to the repeat pattern of the
5953*3ff48bf5SDavid du Colombier        nozzles
5954*3ff48bf5SDavid du Colombier	</td>
5955*3ff48bf5SDavid du Colombier      </tr>
5956*3ff48bf5SDavid du Colombier      <tr valign="Top">
5957*3ff48bf5SDavid du Colombier        <td><b><tt>upNozzleMapRowMask</tt></b></td>
5958*3ff48bf5SDavid du Colombier        <td>&nbsp;
5959*3ff48bf5SDavid du Colombier	</td>
5960*3ff48bf5SDavid du Colombier        <td>Int[]
5961*3ff48bf5SDavid du Colombier	</td>
5962*3ff48bf5SDavid du Colombier        <td>&nbsp;
5963*3ff48bf5SDavid du Colombier	</td>
5964*3ff48bf5SDavid du Colombier        <td>mask indicating the colour of the nozzles
5965*3ff48bf5SDavid du Colombier	</td>
5966*3ff48bf5SDavid du Colombier      </tr>
5967*3ff48bf5SDavid du Colombier      <tr valign="Top">
5968*3ff48bf5SDavid du Colombier        <td><b><tt>upNozzleMapMaskScanOffset</tt></b></td>
5969*3ff48bf5SDavid du Colombier        <td>&nbsp;
5970*3ff48bf5SDavid du Colombier	</td>
5971*3ff48bf5SDavid du Colombier        <td>Int[]
5972*3ff48bf5SDavid du Colombier	</td>
5973*3ff48bf5SDavid du Colombier        <td>&nbsp;
5974*3ff48bf5SDavid du Colombier	</td>
5975*3ff48bf5SDavid du Colombier        <td>mask indicating the physical position of the nozzles
5976*3ff48bf5SDavid du Colombier	</td>
5977*3ff48bf5SDavid du Colombier      </tr>
5978*3ff48bf5SDavid du Colombier    </tbody>
5979*3ff48bf5SDavid du Colombier  </table>
5980*3ff48bf5SDavid du Colombier</blockquote>
5981*3ff48bf5SDavid du Colombier
5982*3ff48bf5SDavid du Colombier<h4>A more detailed description of the new parameters</h4>
5983*3ff48bf5SDavid du Colombier<ul>
5984*3ff48bf5SDavid du Colombier  <li><b><tt>upNozzleMapRowsPerPass</tt></b><br>
5985*3ff48bf5SDavid du Colombier  The number of rows of data that are required to address all nozzles for a
5986*3ff48bf5SDavid du Colombier  single pass of the head. There will always be this number of rows of output
5987*3ff48bf5SDavid du Colombier  data generated. I'd expect it to be the same as the total number of nozzles but
5988*3ff48bf5SDavid du Colombier  it wouldn't break the formatter if it wasn't. So if you wanted to print with
5989*3ff48bf5SDavid du Colombier  only the 10th nozzle then row 10 would contain data corresponding to the bit
5990*3ff48bf5SDavid du Colombier  pattern and all of the others would be padded with zeros.
5991*3ff48bf5SDavid du Colombier  </li>
5992*3ff48bf5SDavid du Colombier  <li><b><tt>upNozzleMapPatternRepeat</tt></b><br>
5993*3ff48bf5SDavid du Colombier  The number of nozzles in each repeated group on the printing head.
5994*3ff48bf5SDavid du Colombier  This parameter must correspond with the length of the upNozzleMapRowMask array.
5995*3ff48bf5SDavid du Colombier  </li>
5996*3ff48bf5SDavid du Colombier  <li><b><tt>upNozzleMapRowMask</tt></b><br>
5997*3ff48bf5SDavid du Colombier  An array of integers that defines the colour of the nozzles on the
5998*3ff48bf5SDavid du Colombier  head and whether the nozzles will be used to print. The array index
5999*3ff48bf5SDavid du Colombier  defines the row index for the nozzle in the output data
6000*3ff48bf5SDavid du Colombier  and the value defines the colour of the nozzle. The mapping
6001*3ff48bf5SDavid du Colombier  of colours to values is defined in the table below.
6002*3ff48bf5SDavid du Colombier        <blockquote>
6003*3ff48bf5SDavid du Colombier          <table cellpadding="0" cellspacing="0">
6004*3ff48bf5SDavid du Colombier            <tbody>
6005*3ff48bf5SDavid du Colombier              <tr valign="Bottom">
6006*3ff48bf5SDavid du Colombier                <th align="Left">colour
6007*3ff48bf5SDavid du Colombier	        </th>
6008*3ff48bf5SDavid du Colombier                <td>&nbsp;
6009*3ff48bf5SDavid du Colombier	        </td>
6010*3ff48bf5SDavid du Colombier                <th align="center">mask value
6011*3ff48bf5SDavid du Colombier	        </th>
6012*3ff48bf5SDavid du Colombier              </tr>
6013*3ff48bf5SDavid du Colombier              <tr>
6014*3ff48bf5SDavid du Colombier                <td colspan="5">
6015*3ff48bf5SDavid du Colombier                <hr></td>
6016*3ff48bf5SDavid du Colombier              </tr>
6017*3ff48bf5SDavid du Colombier              <tr valign="Top" align="middle">
6018*3ff48bf5SDavid du Colombier                <td><b><tt>K</tt></b></td>
6019*3ff48bf5SDavid du Colombier                <td>&nbsp;
6020*3ff48bf5SDavid du Colombier	        </td>
6021*3ff48bf5SDavid du Colombier                <td>1
6022*3ff48bf5SDavid du Colombier	        </td>
6023*3ff48bf5SDavid du Colombier              </tr>
6024*3ff48bf5SDavid du Colombier              <tr valign="Top" align="middle">
6025*3ff48bf5SDavid du Colombier                <td><b><tt>C</tt></b></td>
6026*3ff48bf5SDavid du Colombier                <td>&nbsp;
6027*3ff48bf5SDavid du Colombier	        </td>
6028*3ff48bf5SDavid du Colombier                <td>2
6029*3ff48bf5SDavid du Colombier              </tr>
6030*3ff48bf5SDavid du Colombier              <tr valign="Top" align="middle">
6031*3ff48bf5SDavid du Colombier                <td><b><tt>M</tt></b></td>
6032*3ff48bf5SDavid du Colombier                <td>&nbsp;
6033*3ff48bf5SDavid du Colombier	        </td>
6034*3ff48bf5SDavid du Colombier                <td>3
6035*3ff48bf5SDavid du Colombier                </td>
6036*3ff48bf5SDavid du Colombier              </tr>
6037*3ff48bf5SDavid du Colombier              <tr valign="Top" align="middle">
6038*3ff48bf5SDavid du Colombier                <td><b><tt>Y</tt></b></td>
6039*3ff48bf5SDavid du Colombier                <td>&nbsp;
6040*3ff48bf5SDavid du Colombier	        </td>
6041*3ff48bf5SDavid du Colombier                <td>4
6042*3ff48bf5SDavid du Colombier	        </td>
6043*3ff48bf5SDavid du Colombier              </tr>
6044*3ff48bf5SDavid du Colombier              <tr valign="Top" align="middle">
6045*3ff48bf5SDavid du Colombier                <td><b><tt>no data</tt></b></td>
6046*3ff48bf5SDavid du Colombier                <td>&nbsp;
6047*3ff48bf5SDavid du Colombier	        </td>
6048*3ff48bf5SDavid du Colombier                <td>0
6049*3ff48bf5SDavid du Colombier	        </td>
6050*3ff48bf5SDavid du Colombier              </tr>
6051*3ff48bf5SDavid du Colombier            </tbody>
6052*3ff48bf5SDavid du Colombier          </table>
6053*3ff48bf5SDavid du Colombier        </blockquote>
6054*3ff48bf5SDavid du Colombier  A value of 0 means that the nozzle is not used and the row in the output data will be
6055*3ff48bf5SDavid du Colombier  padded with zeros.<br>
6056*3ff48bf5SDavid du Colombier  </li>
6057*3ff48bf5SDavid du Colombier  <li><b><tt>upNozzleMapMaskScanOffset</tt></b><br>
6058*3ff48bf5SDavid du Colombier  An array of integers that defines the physical position of the nozzles relative
6059*3ff48bf5SDavid du Colombier  to the first nozzle in the repeated group. The relative distance is measured in
6060*3ff48bf5SDavid du Colombier  printed line widths and will be different for different printing resolutions.
6061*3ff48bf5SDavid du Colombier  This parameter is used because the physical spacing of the nozzles may not
6062*3ff48bf5SDavid du Colombier  correspond to their mapping in the output data. For example the ESC300 has nozzles
6063*3ff48bf5SDavid du Colombier  physically arranged something like this:
6064*3ff48bf5SDavid du Colombier  <table>
6065*3ff48bf5SDavid du Colombier    <tr>
6066*3ff48bf5SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
6067*3ff48bf5SDavid du Colombier      </td>
6068*3ff48bf5SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
6069*3ff48bf5SDavid du Colombier      </td>
6070*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6071*3ff48bf5SDavid du Colombier      </td>
6072*3ff48bf5SDavid du Colombier      <td bgcolor="#ff00ff">&nbsp;
6073*3ff48bf5SDavid du Colombier      </td>
6074*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6075*3ff48bf5SDavid du Colombier      </td>
6076*3ff48bf5SDavid du Colombier      <td>&nbsp;
6077*3ff48bf5SDavid du Colombier      </td>
6078*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6079*3ff48bf5SDavid du Colombier      </td>
6080*3ff48bf5SDavid du Colombier      <td>&nbsp;
6081*3ff48bf5SDavid du Colombier      </td>
6082*3ff48bf5SDavid du Colombier      <td>&nbsp;
6083*3ff48bf5SDavid du Colombier      </td>
6084*3ff48bf5SDavid du Colombier      <td>&nbsp;
6085*3ff48bf5SDavid du Colombier      </td>
6086*3ff48bf5SDavid du Colombier      <td>&nbsp;
6087*3ff48bf5SDavid du Colombier      </td>
6088*3ff48bf5SDavid du Colombier      <td>&nbsp;
6089*3ff48bf5SDavid du Colombier      </td>
6090*3ff48bf5SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
6091*3ff48bf5SDavid du Colombier      </td>
6092*3ff48bf5SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
6093*3ff48bf5SDavid du Colombier      </td>
6094*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6095*3ff48bf5SDavid du Colombier      </td>
6096*3ff48bf5SDavid du Colombier      <td bgcolor="#ff00ff">&nbsp;
6097*3ff48bf5SDavid du Colombier      </td>
6098*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6099*3ff48bf5SDavid du Colombier      </td>
6100*3ff48bf5SDavid du Colombier      <td>&nbsp;
6101*3ff48bf5SDavid du Colombier      </td>
6102*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6103*3ff48bf5SDavid du Colombier      </td>
6104*3ff48bf5SDavid du Colombier      <td bgcolor="#ffffff">&nbsp;
6105*3ff48bf5SDavid du Colombier      </td>
6106*3ff48bf5SDavid du Colombier    </tr>
6107*3ff48bf5SDavid du Colombier      <td>&nbsp;
6108*3ff48bf5SDavid du Colombier      </td>
6109*3ff48bf5SDavid du Colombier      <td>&nbsp;
6110*3ff48bf5SDavid du Colombier      </td>
6111*3ff48bf5SDavid du Colombier      <td>&nbsp;
6112*3ff48bf5SDavid du Colombier      </td>
6113*3ff48bf5SDavid du Colombier      <td>&nbsp;
6114*3ff48bf5SDavid du Colombier      </td>
6115*3ff48bf5SDavid du Colombier      <td>&nbsp;
6116*3ff48bf5SDavid du Colombier      </td>
6117*3ff48bf5SDavid du Colombier      <td>&nbsp;
6118*3ff48bf5SDavid du Colombier      </td>
6119*3ff48bf5SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
6120*3ff48bf5SDavid du Colombier      </td>
6121*3ff48bf5SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
6122*3ff48bf5SDavid du Colombier      </td>
6123*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6124*3ff48bf5SDavid du Colombier      </td>
6125*3ff48bf5SDavid du Colombier      <td bgcolor="#ff00ff">&nbsp;
6126*3ff48bf5SDavid du Colombier      </td>
6127*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6128*3ff48bf5SDavid du Colombier      </td>
6129*3ff48bf5SDavid du Colombier      <td>&nbsp;
6130*3ff48bf5SDavid du Colombier      </td>
6131*3ff48bf5SDavid du Colombier      <td bgcolor="#000000">&nbsp;
6132*3ff48bf5SDavid du Colombier      </td>
6133*3ff48bf5SDavid du Colombier      <td>&nbsp;
6134*3ff48bf5SDavid du Colombier      </td>
6135*3ff48bf5SDavid du Colombier      <td>&nbsp;
6136*3ff48bf5SDavid du Colombier      </td>
6137*3ff48bf5SDavid du Colombier      <td>&nbsp;
6138*3ff48bf5SDavid du Colombier      </td>
6139*3ff48bf5SDavid du Colombier      <td>&nbsp;
6140*3ff48bf5SDavid du Colombier      </td>
6141*3ff48bf5SDavid du Colombier      <td>&nbsp;
6142*3ff48bf5SDavid du Colombier      </td>
6143*3ff48bf5SDavid du Colombier      <td bgcolor="#00ffff">&nbsp;
6144*3ff48bf5SDavid du Colombier      </td>
6145*3ff48bf5SDavid du Colombier      <td bgcolor="#ffff00">&nbsp;
6146*3ff48bf5SDavid du Colombier      </td>
6147*3ff48bf5SDavid du Colombier      <td>etc ...
6148*3ff48bf5SDavid du Colombier      </td>
6149*3ff48bf5SDavid du Colombier
6150*3ff48bf5SDavid du Colombier    <tr>
6151*3ff48bf5SDavid du Colombier    </tr>
6152*3ff48bf5SDavid du Colombier  </table>
6153*3ff48bf5SDavid du Colombier  There is a one nozzle width space between the last two nozzles in each group.
6154*3ff48bf5SDavid du Colombier  In the output data the data for the last nozzle in the group would be in row 5
6155*3ff48bf5SDavid du Colombier  (numbering starts at 0) but the nozzle is physically positioned at 6 spaces from
6156*3ff48bf5SDavid du Colombier  the first nozzle.
6157*3ff48bf5SDavid du Colombier</ul>
6158*3ff48bf5SDavid du Colombier<h4>Example 1 - Epson Stylus Color 300 - 360 dpi colour</h4>
6159*3ff48bf5SDavid du Colombier<blockquote><pre>
6160*3ff48bf5SDavid du Colombier-dupWeaveYPasses=6
6161*3ff48bf5SDavid du Colombier-dupOutputPins=11
6162*3ff48bf5SDavid du Colombier-dupWeaveYFeeds="{ 11 11 11 11 11 11 }"
6163*3ff48bf5SDavid du Colombier-dupWeaveInitialYFeeds="{ 1 1 1 1 1 7 }"
6164*3ff48bf5SDavid du Colombier-dupWeaveInitialPins="{ 2 11 9 7 5 3 }"
6165*3ff48bf5SDavid du Colombier-dupNozzleMapRowsPerPass=64
6166*3ff48bf5SDavid du Colombier-dupNozzleMapPatternRepeat=6
6167*3ff48bf5SDavid du Colombier-dupNozzleMapRowMask="{ 2 4 1 3 0 0 }"
6168*3ff48bf5SDavid du Colombier-dupNozzleMapMaskScanOffset="{ 0 1 2 3 0 0 }"
6169*3ff48bf5SDavid du Colombier</pre></blockquote>
6170*3ff48bf5SDavid du ColombierThe weaving parameters are the same as for any other uniprint driver
6171*3ff48bf5SDavid du Colombierbut they must be consistent with the nozzle map parameters. In this printer
6172*3ff48bf5SDavid du Colombierthe coloured nozzles are spaced at 1/60" so 6 passes are required for 360
6173*3ff48bf5SDavid du Colombierdpi resolution.
6174*3ff48bf5SDavid du Colombier<p>
6175*3ff48bf5SDavid du ColombierIn the example there are 64 rows of data required for each head pass. Each
6176*3ff48bf5SDavid du Colombierrow must be completely filled with data for each pass so if certain nozzles
6177*3ff48bf5SDavid du Colombierdo not print in the pass then the rows for those nozzles will be padded
6178*3ff48bf5SDavid du Colombierwith zeroes.
6179*3ff48bf5SDavid du Colombier<P>
6180*3ff48bf5SDavid du ColombierThe row mask translates to "C Y K M 0 0" so in the output data rows 0,7,13,...
6181*3ff48bf5SDavid du Colombierwill contain data for cyan, rows 1,8,14,... will contain data for yellow, etc. Rows 4,10,16,...
6182*3ff48bf5SDavid du Colombierand 5, 11,15,... will always be padded with zeroes. The <i>upNozzleMapPatternRepeat</i>
6183*3ff48bf5SDavid du Colombierparameter defines the length of the mask.
6184*3ff48bf5SDavid du Colombier<p>
6185*3ff48bf5SDavid du ColombierThe row mask is repeated for each group of <i>upNozzleMapPatternRepeat</i> rows
6186*3ff48bf5SDavid du Colombierin the output data. In this case there are 64 rows so there will be 10 groups
6187*3ff48bf5SDavid du Colombierof "C Y K M 0 0" followed by "C Y K M" which is equivalent to 11 output
6188*3ff48bf5SDavid du Colombierpins.
6189*3ff48bf5SDavid du Colombier<P>
6190*3ff48bf5SDavid du ColombierThe <i>upNozzleMaskScanOffset</i> array indicates how the data from the scan
6191*3ff48bf5SDavid du Colombierbuffer is mapped to the output data. The data is presented to the formatter
6192*3ff48bf5SDavid du Colombieras a buffer of four colour scanlines. The index of the scanline being printed,
6193*3ff48bf5SDavid du Colombierlets call it y, always corresponds, in this example, to the physical position of
6194*3ff48bf5SDavid du Colombierthe cyan nozzle but since the nozzles are not on the same horizontal
6195*3ff48bf5SDavid du Colombierline then the other colours for the current pass must come from other
6196*3ff48bf5SDavid du Colombierscanlines in the scan buffer. The example is { 0 1 2 3 0 0 }, this means that
6197*3ff48bf5SDavid du Colombierwhen printing a 4 colour image the magenta data would come from scanline y+3,
6198*3ff48bf5SDavid du Colombierthe black from scanline y+2, etc. It would have been possible in this case
6199*3ff48bf5SDavid du Colombierto use the array index instead of the <i>upNozzleMaskScanOffset</i> parameter
6200*3ff48bf5SDavid du Colombierhowever the parameter is necessary to be able to use the full capability of the
6201*3ff48bf5SDavid du Colombierprinter in black only mode.
6202*3ff48bf5SDavid du Colombier
6203*3ff48bf5SDavid du Colombier<h4>Example 2 - Epson Stylus Color 300 - 180 dpi black only</h4>
6204*3ff48bf5SDavid du Colombier<blockquote>
6205*3ff48bf5SDavid du Colombier<pre>
6206*3ff48bf5SDavid du Colombier-dupMargins="{ 9.0 39.96 9.0 9.0}"
6207*3ff48bf5SDavid du Colombier-dupWeaveYPasses=1
6208*3ff48bf5SDavid du Colombier-dupOutputPins=31
6209*3ff48bf5SDavid du Colombier-dupNozzleMapRowsPerPass=64
6210*3ff48bf5SDavid du Colombier-dupNozzleMapPatternRepeat=6
6211*3ff48bf5SDavid du Colombier-dupNozzleMapRowMask="{ 0 0 1 0 1 1}"
6212*3ff48bf5SDavid du Colombier-dupNozzleMapMaskScanOffset="{ 0 0 0 0 1 2 }"
6213*3ff48bf5SDavid du Colombier</pre>
6214*3ff48bf5SDavid du Colombier</blockquote>
6215*3ff48bf5SDavid du ColombierIn this example there is no weaving.
6216*3ff48bf5SDavid du Colombier<p>
6217*3ff48bf5SDavid du ColombierThe ESC300 has black nozzles evenly physically arranged as K K K but the data must
6218*3ff48bf5SDavid du Colombierbe sent to the printer as 00K0KK. This is handled by the <i>upNozzleMapRowMask</i>
6219*3ff48bf5SDavid du Colombierand <i>upNozzleMaskScanOffset</i> arrays. The <i>upNozzleMapRowMask</i>  array is
6220*3ff48bf5SDavid 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
6221*3ff48bf5SDavid du Colombiercontain zeros and the other rows will contain data.
6222*3ff48bf5SDavid du Colombier<p>
6223*3ff48bf5SDavid du ColombierThe <i>upNozzleMaskScanOffset</i> array
6224*3ff48bf5SDavid du Colombierin this case is { 0 0 0 0 1 2 } so if the data for the 1st nozzle comes from row
6225*3ff48bf5SDavid du Colombiery in the scan buffer then the data for the 2nd and 3rd nozzles will come from rows
6226*3ff48bf5SDavid du Colombiery+1 and y+2.
6227*3ff48bf5SDavid du Colombier
6228*3ff48bf5SDavid du Colombier<h4>Example 3 - Epson Stylus Color 300 - 360 dpi black only</h4>
6229*3ff48bf5SDavid du Colombier<blockquote>
6230*3ff48bf5SDavid du Colombier<pre>
6231*3ff48bf5SDavid du Colombier-dupWeaveYPasses=2
6232*3ff48bf5SDavid du Colombier-dupOutputPins=31
6233*3ff48bf5SDavid du Colombier-dupWeaveYFeeds="{31 31}"
6234*3ff48bf5SDavid du Colombier-dupWeaveInitialYFeeds="{1 31}"
6235*3ff48bf5SDavid du Colombier-dupWeaveInitialPins="{16 31}"
6236*3ff48bf5SDavid du Colombier-dupNozzleMapRowsPerPass=64
6237*3ff48bf5SDavid du Colombier-dupNozzleMapPatternRepeat=6
6238*3ff48bf5SDavid du Colombier-dupNozzleMapRowMask="{ 0 0 1 0 1 1}"
6239*3ff48bf5SDavid du Colombier-dupNozzleMapMaskScanOffset="{ 0 0 0 0 2 4 }"
6240*3ff48bf5SDavid du Colombier</pre>
6241*3ff48bf5SDavid du Colombier</blockquote>
6242*3ff48bf5SDavid du ColombierIn this example 2 weave passes are required to achieve the desired resolution.
6243*3ff48bf5SDavid du Colombier<p>
6244*3ff48bf5SDavid du ColombierThe <i>upNozzleMaskScanOffset</i> array in this case is { 0 0 0 0 2 4 } because
6245*3ff48bf5SDavid du Colombierthere are two weave passes so if the data for the first nozzle comes from row y
6246*3ff48bf5SDavid du Colombierin the scan buffer then the data for the 2nd and 3rd nozzles must come from rows
6247*3ff48bf5SDavid du Colombiery+(1*2) and y+(2*2).
6248*3ff48bf5SDavid du Colombier<p>
6249*3ff48bf5SDavid du Colombier<address>
6250*3ff48bf5SDavid du ColombierGlenn Ramsey<br>
6251*3ff48bf5SDavid du Colombierglennr at users.sourceforge.net<br>
6252*3ff48bf5SDavid du ColombierFebruary 2001
6253*3ff48bf5SDavid du Colombier</address>
6254*3ff48bf5SDavid du Colombier<br>
62557dd7cddfSDavid du Colombier<hr>
62567dd7cddfSDavid du Colombier
6257*3ff48bf5SDavid du Colombier<h2><a name="SPARCprinter"></a>Sun SPARCprinter</h2>
62587dd7cddfSDavid du Colombier
62597dd7cddfSDavid du Colombier<p>
62607dd7cddfSDavid du ColombierThis section was contributed by Martin Schulte.
62617dd7cddfSDavid du Colombier
62627dd7cddfSDavid du Colombier<p>
62637dd7cddfSDavid du ColombierWith a SPARCprinter you always buy software that enables you to do
62647dd7cddfSDavid du ColombierPostScript printing on it.  A page image is composed on the host, which
62657dd7cddfSDavid du Colombiersends a bitmap to the SPARCprinter through a special SBUS video interface.
62667dd7cddfSDavid du ColombierSo the need for a Ghostscript interface to the SPARCPrinter seems low, but
62677dd7cddfSDavid du Colombieron the other hand, Sun's software prints some PostScript drawings
62687dd7cddfSDavid du Colombierincorrectly: some pages contain a thin vertical line of rubbish, and on
62697dd7cddfSDavid du Colombiersome Mathematica drawings the text at the axes isn't rotated.  Ghostscript,
62707dd7cddfSDavid du Colombierhowever, gives the correct results.  Moreover, replacing proprietary
62717dd7cddfSDavid du Colombiersoftware should never be a bad idea.
62727dd7cddfSDavid du Colombier
62737dd7cddfSDavid du Colombier<p>
62747dd7cddfSDavid du ColombierThe problem is that there has yet been no effort to make the SPARCPrinter
62757dd7cddfSDavid du Colombierdriver behave like a BSD output filter.  I made my tests using the script
62767dd7cddfSDavid du Colombiershown here.
62777dd7cddfSDavid du Colombier
6278*3ff48bf5SDavid du Colombier<h3><a name="SPARC_install"></a>Installation</h3>
62797dd7cddfSDavid du Colombier
62807dd7cddfSDavid du Colombier<p>
62817dd7cddfSDavid du ColombierAdd <b><tt>sparc.dev</tt></b> to <b><tt>DEVICE_DEVS</tt></b> and compile
62827dd7cddfSDavid du ColombierGhostscript as described in the documentation on <a href="Make.htm">how to
62837dd7cddfSDavid du Colombierbuild Ghostscript</a>.  Afterwards you can use the following script as an
62847dd7cddfSDavid du Colombierexample for printing after modifying it with the right pathnames --
62857dd7cddfSDavid du Colombierincluding for <b>{GSPATH}</b> the full pathname of the Ghostscript
62867dd7cddfSDavid du Colombierexecutable:
62877dd7cddfSDavid du Colombier
62887dd7cddfSDavid du Colombier<blockquote>
62897dd7cddfSDavid du Colombier<pre>outcmd1='/vol/local/lib/troff2/psxlate -r'
62907dd7cddfSDavid du Colombieroutcmd2='<b><em>{GSPATH}</em></b> -sDEVICE=sparc -sOUTPUTFILE=/dev/lpvi0 -'
62917dd7cddfSDavid du Colombier
62927dd7cddfSDavid du Colombierif [ $# -eq 0 ]
62937dd7cddfSDavid du Colombierthen
62947dd7cddfSDavid du Colombier  $outcmd1 | $outcmd2
62957dd7cddfSDavid du Colombierelse
62967dd7cddfSDavid du Colombier  cat $* | $outcmd1 | $outcmd2
62977dd7cddfSDavid du Colombierfi
62987dd7cddfSDavid du Colombier</pre></blockquote>
62997dd7cddfSDavid du Colombier
6300*3ff48bf5SDavid du Colombier<h3><a name="SPARC_problems"></a>Problems</h3>
63017dd7cddfSDavid du Colombier
63027dd7cddfSDavid du Colombier<p>
63037dd7cddfSDavid du ColombierSince <b><tt>/dev/lpi</tt></b> can be opened only for exclusive use, if
63047dd7cddfSDavid du Colombieranother job has it open (engine_ctl_sparc or another Ghostscript are the
63057dd7cddfSDavid du Colombiermost likely candidates), Ghostscript stops with "Error: /invalidfileaccess
63067dd7cddfSDavid du Colombierin --.outputpage--"
63077dd7cddfSDavid du Colombier
63087dd7cddfSDavid du Colombier<p>
63097dd7cddfSDavid du ColombierIn case of common printer problems like being out of paper, a warning
63107dd7cddfSDavid du Colombierdescribing the reason is printed to stdout.  The driver tries access again
63117dd7cddfSDavid du Colombiereach five seconds.  Due to a problem with the device driver (in the kernel)
63127dd7cddfSDavid du Colombierthe reason for printer failure isn't always reported correctly to the
63137dd7cddfSDavid du Colombierprogram.  This is the case, for instance, if you open the top cover (error
63147dd7cddfSDavid du ColombierE5 on the printer's display).  Look at the display on the printer itself if
63157dd7cddfSDavid du Colombiera "Printer problem with unknown reason" is reported.  Fatal errors cause
63167dd7cddfSDavid du Colombierthe print job to be terminated.
63177dd7cddfSDavid du Colombier
63187dd7cddfSDavid du Colombier<hr>
63197dd7cddfSDavid du Colombier
6320*3ff48bf5SDavid du Colombier<h2><a name="Apple"></a>Apple dot matrix printer</h2>
63217dd7cddfSDavid du Colombier
63227dd7cddfSDavid du Colombier<p>
63237dd7cddfSDavid du ColombierThis section was contributed by Mark Wedel
63247dd7cddfSDavid du Colombier&lt;<a href="mailto:master@cats.ucsc.edu">master@cats.ucsc.edu</a>&gt;.
63257dd7cddfSDavid du Colombier
63267dd7cddfSDavid du Colombier<p>
63277dd7cddfSDavid du ColombierThe Apple Dot Matrix Printer (DMP) was a parallel predecessor to the
63287dd7cddfSDavid du ColombierImagewriter printer.  As far as I know, Imagewriter commands are a superset
63297dd7cddfSDavid du Colombierof the Dot Matrix printer's, so the driver should generate output that can
63307dd7cddfSDavid du Colombierbe printed on Imagewriters.
63317dd7cddfSDavid du Colombier
63327dd7cddfSDavid du Colombier<p>
63337dd7cddfSDavid du ColombierTo print images, the driver sets the printer for unidirectional printing
63347dd7cddfSDavid du Colombierand 15 characters per inch (cpi), or 120dpi.  It sets the line feed to 1/9
63357dd7cddfSDavid du Colombierinch.  When finished, it sets the printer to bidirectional printing,
63367dd7cddfSDavid du Colombier1/8-inch line feeds, and 12 cpi.  There appears to be no way to reset the
63377dd7cddfSDavid du Colombierprinter to initial values.
63387dd7cddfSDavid du Colombier
63397dd7cddfSDavid du Colombier<p>
63407dd7cddfSDavid du ColombierThis code does not set for 8-bit characters (which is required).  It also
63417dd7cddfSDavid du Colombierassumes that carriage return-newline is needed, and not just carriage
63427dd7cddfSDavid du Colombierreturn.  These are all switch settings on the DMP, and I have configured
63437dd7cddfSDavid du Colombierthem for 8-bit data and carriage return exclusively.  Ensure that the Unix
63447dd7cddfSDavid du Colombierprinter daemon handles 8-bit (binary) data properly; in my SunOS 4.1.1
63457dd7cddfSDavid du Colombier<b><tt>printcap</tt></b> file the string "<b><tt>ms=pass8,-opost</tt></b>"
63467dd7cddfSDavid du Colombierworks fine for this.
63477dd7cddfSDavid du Colombier
63487dd7cddfSDavid du Colombier<p>
63497dd7cddfSDavid du ColombierFinally, you can search <b><tt>devdemp.c</tt></b> for
63507dd7cddfSDavid du Colombier"<b><tt>Init</tt></b>" and "<b><tt>Reset</tt></b>" to find the strings that
63517dd7cddfSDavid du Colombierinitialize the printer and reset things when finished, and change them to
63527dd7cddfSDavid du Colombiermeet your needs.
63537dd7cddfSDavid du Colombier
63547dd7cddfSDavid du Colombier<!-- [2.0 end contents] ==================================================== -->
63557dd7cddfSDavid du Colombier
63567dd7cddfSDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== -->
63577dd7cddfSDavid du Colombier<hr>
63587dd7cddfSDavid du Colombier
6359*3ff48bf5SDavid du Colombier<p>
6360*3ff48bf5SDavid du Colombier<small>Copyright &copy; 1996, 2000 Aladdin Enterprises.
6361*3ff48bf5SDavid du ColombierAll rights reserved.</small>
63627dd7cddfSDavid du Colombier
63637dd7cddfSDavid du Colombier<p>
6364*3ff48bf5SDavid du Colombier<small>This file is part of AFPL Ghostscript.  See the
6365*3ff48bf5SDavid du Colombier<a href="Public.htm">Aladdin Free Public License</a> (the "License") for
6366*3ff48bf5SDavid du Colombierfull details of the terms of using, copying, modifying, and redistributing
6367*3ff48bf5SDavid du ColombierAFPL Ghostscript.</small>
63687dd7cddfSDavid du Colombier
6369*3ff48bf5SDavid du Colombier<p>
6370*3ff48bf5SDavid du Colombier<small>Ghostscript version 7.04, 31 January 2002
63717dd7cddfSDavid du Colombier
63727dd7cddfSDavid du Colombier<!-- [3.0 end visible trailer] ============================================= -->
63737dd7cddfSDavid du Colombier
63747dd7cddfSDavid du Colombier</body>
63757dd7cddfSDavid du Colombier</html>
6376*3ff48bf5SDavid du Colombier
6377