xref: /plan9/sys/src/cmd/gs/doc/Unix-lpr.htm (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
13ff48bf5SDavid 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>Setting up a Unix lpr filter for Ghostscript</title>
5*593dc095SDavid du Colombier<!-- $Id: Unix-lpr.htm,v 1.39 2005/10/20 19:46:23 ray Exp $ -->
67dd7cddfSDavid du Colombier<!-- Originally: unix-lpr.txt -->
73ff48bf5SDavid 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
153ff48bf5SDavid du Colombier<h1>Setting up a Unix <tt>lpr</tt> filter for Ghostscript</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="#Overview">Overview</a>
257dd7cddfSDavid du Colombier<li><a href="#What_it_can_do">What it can do</a>
267dd7cddfSDavid du Colombier<li><a href="#Setting_up">Setting it up</a>
277dd7cddfSDavid du Colombier<ul>
287dd7cddfSDavid du Colombier<li><a href="#Editing_device_list">Editing the device list <b><tt>DEVICES</tt></b></a>
297dd7cddfSDavid du Colombier<ul>
307dd7cddfSDavid du Colombier<li><a href="#Field_bpp">Field 1: bits per pixel</a>
317dd7cddfSDavid du Colombier<li><a href="#Field_colours">Field 2: colours</a>
327dd7cddfSDavid du Colombier<li><a href="#Field_dq">Field 3: dual queues</a>
337dd7cddfSDavid du Colombier<li><a href="#Device_example">Example definition of <b><tt>DEVICES</tt></b></a>
347dd7cddfSDavid du Colombier</ul>
357dd7cddfSDavid du Colombier<li><a href="#Editing_filter_list">Editing the filter list</a>
367dd7cddfSDavid du Colombier<li><a href="#Editing_printer_port">Editing the printer port and type</a>
377dd7cddfSDavid du Colombier<li><a href="#Modifying_printcap_insert">Modifying <b><tt>printcap.insert</tt></b></a>
387dd7cddfSDavid du Colombier<li><a href="#Multiple_queues">Single or dual queues</a>
397dd7cddfSDavid du Colombier</ul>
407dd7cddfSDavid du Colombier<li><a href="#Bugs">Bugs</a>
417dd7cddfSDavid du Colombier<li><a href="#Authors">Authors</a>
427dd7cddfSDavid du Colombier</ul></blockquote>
437dd7cddfSDavid du Colombier
447dd7cddfSDavid du Colombier<!-- [1.2 end table of contents] =========================================== -->
457dd7cddfSDavid du Colombier
467dd7cddfSDavid du Colombier<!-- [1.3 begin hint] ====================================================== -->
477dd7cddfSDavid du Colombier
487dd7cddfSDavid du Colombier<p>For other information, see the <a href="Readme.htm">Ghostscript
497dd7cddfSDavid du Colombieroverview</a> and the <a href="Use.htm">usage documentation</a>.
507dd7cddfSDavid du Colombier
517dd7cddfSDavid du Colombier<!-- [1.3 end hint] ======================================================== -->
527dd7cddfSDavid du Colombier
537dd7cddfSDavid du Colombier<hr>
547dd7cddfSDavid du Colombier
557dd7cddfSDavid du Colombier<!-- [1.0 end visible header] ============================================== -->
567dd7cddfSDavid du Colombier
577dd7cddfSDavid du Colombier<!-- [2.0 begin contents] ================================================== -->
587dd7cddfSDavid du Colombier
593ff48bf5SDavid du Colombier<h2><a name="Overview"></a>Overview</h2>
607dd7cddfSDavid du Colombier
617dd7cddfSDavid du Colombier<p>
627dd7cddfSDavid du Colombier"How do I set up Ghostscript to provide PostScript queues in a standard lpr
637dd7cddfSDavid du Colombierenvironment on Unix systems?" is a Frequently Asked Question amongst
647dd7cddfSDavid du ColombierGhostscript users.  The two shell scripts described by this document are
657dd7cddfSDavid du Colombierdesigned to make this task a little easier. They are
667dd7cddfSDavid du Colombier
677dd7cddfSDavid du Colombier<blockquote><dl>
687dd7cddfSDavid du Colombier<dt><b><tt>unix-lpr.sh</tt></b>
697dd7cddfSDavid du Colombier<dd>a flexible, multi-option print filter
707dd7cddfSDavid du Colombier
717dd7cddfSDavid du Colombier<dt><b><tt>lprsetup.sh</tt></b>
727dd7cddfSDavid du Colombier<dd>A shell script which sets up soft links and creates a template insert
737dd7cddfSDavid du Colombierfor the <b><tt>printcap</tt></b> file
747dd7cddfSDavid du Colombier</dl></blockquote>
757dd7cddfSDavid du Colombier
767dd7cddfSDavid du Colombier<hr>
777dd7cddfSDavid du Colombier
783ff48bf5SDavid du Colombier<h2><a name="What_it_can_do"></a>What it can do</h2>
797dd7cddfSDavid du Colombier
807dd7cddfSDavid du Colombier<p>
817dd7cddfSDavid du ColombierThe print filter resides in the Ghostscript installation directory (often
827dd7cddfSDavid du Colombier<b><tt>/usr/local/share/ghostscript</tt></b>, but may be something else at
837dd7cddfSDavid du Colombieryour installation), together with a dummy filter directory containing
847dd7cddfSDavid du Colombiervarious soft links which point to the filter. It offers the following
857dd7cddfSDavid du Colombierfeatures:
867dd7cddfSDavid du Colombier
877dd7cddfSDavid du Colombier<ul>
887dd7cddfSDavid du Colombier<li>Multiple devices supported by a single filter
897dd7cddfSDavid du Colombier<li>Multiple bit-depths for the same device
907dd7cddfSDavid du Colombier<li>Multiple number of colours for the same device
917dd7cddfSDavid du Colombier<li>Direct (single-queue) and indirect (two-queue) setup
927dd7cddfSDavid du Colombier<li>Support for the standard preprocessing filters if you have the
937dd7cddfSDavid du Colombiercorresponding (whatever)-to-PostScript translators
947dd7cddfSDavid du Colombier<li>Redirection of diagnostic and programmed output to a logfile in
957dd7cddfSDavid du Colombierthe spooling directory
967dd7cddfSDavid du Colombier<li>Maintaining of printer accounting records of the numbers of pages
977dd7cddfSDavid du Colombierprinted by each user (compatible with the <b><tt>pac</tt></b> command)
987dd7cddfSDavid du Colombier<li>Straightforward editing for further customisation
997dd7cddfSDavid du Colombier</ul>
1007dd7cddfSDavid du Colombier
1017dd7cddfSDavid du Colombier<hr>
1027dd7cddfSDavid du Colombier
1033ff48bf5SDavid du Colombier<h2><a name="Setting_up"></a>Setting it up</h2>
1047dd7cddfSDavid du Colombier
1057dd7cddfSDavid du Colombier<p>
1067dd7cddfSDavid du ColombierThe <b><tt>lprsetup.sh</tt></b> script needs to have two lines edited
1077dd7cddfSDavid du Colombierbefore running, to set the printer devices to use and the list of filters
1087dd7cddfSDavid du Colombieravailable. With this information, it
1097dd7cddfSDavid du Colombier
1107dd7cddfSDavid du Colombier<ul>
1117dd7cddfSDavid du Colombier<li>creates a "<b><tt>filt</tt></b>" subdirectory under the
1127dd7cddfSDavid du ColombierGhostscript installation directory
1137dd7cddfSDavid du Colombier<li>creates the links in this directory which enable the filter to
1147dd7cddfSDavid du Colombierdetermine the parameters for running Ghostscript
1157dd7cddfSDavid du Colombier<li>automatically generates <b><tt>printcap</tt></b> entries which should
1167dd7cddfSDavid du Colombierneed only a little editing before adding to your system
1177dd7cddfSDavid du Colombier<b><tt>printcap</tt></b> file
1187dd7cddfSDavid du Colombier</ul>
1197dd7cddfSDavid du Colombier
1203ff48bf5SDavid du Colombier<h3><a name="Editing_device_list"></a>Editing the device list <tt>DEVICES</tt></h3>
1217dd7cddfSDavid du Colombier
1227dd7cddfSDavid du Colombier<p>
1237dd7cddfSDavid du ColombierAt the top of <b><tt>lprsetup.sh</tt></b> is a line of the form
1247dd7cddfSDavid du Colombier<b><tt>DEVICES=</tt></b><em>{list}</em>.  Replace the example list with
1257dd7cddfSDavid du Colombieryour own list of devices.  Each entry is the name of a device, followed by
1267dd7cddfSDavid du Colombierthree more optional fields, separated by dots "<b><tt>.</tt></b>".
1277dd7cddfSDavid du Colombier
1283ff48bf5SDavid du Colombier<h4><a name="Field_bpp"></a>Field 1: bits per pixel</h4>
1297dd7cddfSDavid du Colombier
1307dd7cddfSDavid du Colombier<p>
1317dd7cddfSDavid du ColombierThe first field is required only if the printer device understands the <a
1327dd7cddfSDavid du Colombierhref="Devices.htm#deskjet_parameters"><b><tt>-dBitsPerPixel=</tt></b>
1337dd7cddfSDavid du Colombierswitch</a>, which applies only to colour devices. For a particular number
1347dd7cddfSDavid du Colombier<b><em>N</em></b> of bits per pixel, add the suffix <b><em>.N</em></b> to
1357dd7cddfSDavid du Colombierthe device name, for instance <b><tt>cdj500.3</tt></b>,
1367dd7cddfSDavid du Colombier<b><tt>cdj500.24</tt></b>, etc.
1377dd7cddfSDavid du Colombier
1383ff48bf5SDavid du Colombier<h4><a name="Field_colours"></a>Field 2: colours</h4>
1397dd7cddfSDavid du Colombier
1407dd7cddfSDavid du Colombier<p>
1417dd7cddfSDavid du ColombierThe second field is required only if the printer device understands the
1427dd7cddfSDavid du Colombiersetting of the <b><tt>Colors</tt></b> device parameter (as in
1437dd7cddfSDavid du Colombier<b><tt>-dColors=</tt></b>), which applies only to colour devices (and at
1447dd7cddfSDavid du Colombierpresent is only supported by the <b><tt>bjc</tt></b>* family of drivers).
1457dd7cddfSDavid du ColombierFor a particular number <b><em>N</em></b> of colours, suffix
1467dd7cddfSDavid du Colombier<b><em>.N</em></b> to the device name, such as <b><tt>bjc600.24.3</tt></b>,
1477dd7cddfSDavid du Colombier<b><tt>bjc600.8.1</tt></b> etc.
1487dd7cddfSDavid du Colombier
1493ff48bf5SDavid du Colombier<h4><a name="Field_dq"></a>Field 3: dual queues</h4>
1507dd7cddfSDavid du Colombier
1517dd7cddfSDavid du Colombier<p>
1527dd7cddfSDavid du ColombierThe third field is required in order to use two separate queues for the
1537dd7cddfSDavid du Colombierdevice, a "raw" queue and a PostScript queue (see
1547dd7cddfSDavid du Colombier"<a href="#Multiple_queues">Single or dual queues</a>" below).  If you want
1557dd7cddfSDavid du Colombierdual queues, add the suffix <b><tt>.dq</tt></b> ("dual queue") to the name,
1567dd7cddfSDavid du Colombierwhether or not a <a href="#Field_bpp">bits-per-pixel suffix</a> has already
1577dd7cddfSDavid du Colombierbeen added.
1587dd7cddfSDavid du Colombier
1593ff48bf5SDavid du Colombier<h4><a name="Device_example"></a>Example definition of
1603ff48bf5SDavid du Colombier<tt>DEVICES</tt></h4>
1617dd7cddfSDavid du Colombier
1627dd7cddfSDavid du Colombier<p>
1637dd7cddfSDavid du ColombierThus the following list supports a <b><tt>cdj550</tt></b> device at three
1647dd7cddfSDavid du Colombierdifferent bit depths (24 bpp, 3 bpp and 1 bpp), with a dual queue (that is,
1657dd7cddfSDavid du Colombiera separate queue for the raw data); a monochrome <b><tt>deskjet</tt></b>
1667dd7cddfSDavid du Colombierdevice with a single queue; and a <b><tt>djet500</tt></b> device using a
1677dd7cddfSDavid du Colombierseparate queue:
1687dd7cddfSDavid du Colombier
1697dd7cddfSDavid du Colombier<blockquote><b><tt>
1707dd7cddfSDavid du ColombierDEVICES="cdj550.24.dq&nbsp;cdj550.3.dq&nbsp;cdj550.1.dq&nbsp;deskjet&nbsp;djet500.dq"
1717dd7cddfSDavid du Colombier</tt></b></blockquote>
1727dd7cddfSDavid du Colombier
1733ff48bf5SDavid du Colombier<h3><a name="Editing_filter_list"></a>Editing the filter list</h3>
1747dd7cddfSDavid du Colombier
1757dd7cddfSDavid du Colombier<p>
1767dd7cddfSDavid du ColombierThe standard list contains only the generic "<b><tt>if</tt></b>" filter,
1777dd7cddfSDavid du Colombierbut a commented-out list shows other filters which may be available.  If
1787dd7cddfSDavid du Colombieryou wish to use the support for these filters, you may need to edit the
1797dd7cddfSDavid du Colombier<b><tt>bsd-if</tt></b> file to add to the <b><tt>PATH</tt></b> the
1807dd7cddfSDavid du Colombierdirectories where the translators are stored, or to change the names of the
1817dd7cddfSDavid du Colombierfilters if yours are different.  The <b><tt>bsd-if</tt></b> script is
1827dd7cddfSDavid du Colombiersupplied with an example setup using Transcript (a commercial package from
1837dd7cddfSDavid du ColombierAdobe), and PBMPLUS, a freeware package by Jef Poskanzer and others.
1847dd7cddfSDavid du Colombier
1853ff48bf5SDavid du Colombier<h3><a name="Editing_printer_port"></a>Editing the printer port and
1863ff48bf5SDavid du Colombiertype</h3>
1877dd7cddfSDavid du Colombier
1887dd7cddfSDavid du Colombier<p>
1897dd7cddfSDavid du ColombierYou can set the port and port type (parallel or printer) for an attached
1907dd7cddfSDavid du Colombierprinter, but for remote printers you'll have to modify the
1913ff48bf5SDavid du Colombier<tt>printcap.insert</tt> file yourself.
1927dd7cddfSDavid du Colombier
1933ff48bf5SDavid du Colombier<h3><a name="Modifying_printcap_insert"></a>Modifying
1943ff48bf5SDavid du Colombier<tt>printcap.insert</tt></h3>
1957dd7cddfSDavid du Colombier
1967dd7cddfSDavid du Colombier<p>
1977dd7cddfSDavid du ColombierRunning <b><tt>lprsetup.sh</tt></b> generates a file
1987dd7cddfSDavid du Colombier<b><tt>printcap.insert</tt></b> which has a template setup for your
1997dd7cddfSDavid du Colombierprinter queues.  It cannot guarantee to do the whole job, and you will
2007dd7cddfSDavid du Colombierprobably need to consult your system documentation and edit this file
2017dd7cddfSDavid du Colombierbefore you add it to your <b><tt>printcap</tt></b> file.  The file has good
2027dd7cddfSDavid du Colombierdefaults for serial printers, as these often cause problems in getting
2037dd7cddfSDavid du Colombierbinary data to the printer.  However, you may need to change the baud rate,
2047dd7cddfSDavid du Colombieror the handshaking method.  Only a small change is required in the
2057dd7cddfSDavid du Colombier<b><tt>printcap</tt></b> file to use a networked remote printer instead of
2067dd7cddfSDavid du Colombieran attached printer, and an example is given in
2077dd7cddfSDavid du Colombier<b><tt>printcap.insert</tt></b>.
2087dd7cddfSDavid du Colombier
2093ff48bf5SDavid du Colombier<h3><a name="Multiple_queues"></a>Single or dual queues</h3>
2107dd7cddfSDavid du Colombier
2117dd7cddfSDavid du Colombier<p>
2127dd7cddfSDavid du ColombierIf you wish to provide a PostScript-only queue (for example, so that all
2137dd7cddfSDavid du Colombierpages printed go through accounting), and the printer port is local to the
2147dd7cddfSDavid du Colombierhost machine, a single queue is appropriate -- Ghostscript simply converts
2157dd7cddfSDavid du ColombierPostScript into the printer's native data format and sends it to the
2167dd7cddfSDavid du Colombierport.  But if the printer is on a remote networked machine, or if you need to
2177dd7cddfSDavid du Colombiersend raw printer data to the printer, you must use two queues.  Simply
2187dd7cddfSDavid du Colombierspecify the <a href="#Field_dq">"<b><tt>.dq</tt></b>" option</a> above.
2197dd7cddfSDavid du Colombier
2207dd7cddfSDavid du Colombier<hr>
2217dd7cddfSDavid du Colombier
2223ff48bf5SDavid du Colombier<h2><a name="Bugs"></a>Bugs</h2>
2237dd7cddfSDavid du Colombier
2247dd7cddfSDavid du Colombier<p>
2257dd7cddfSDavid du ColombierYou must have write access to the Ghostscript installation directory for
2267dd7cddfSDavid du Colombier<b><tt>lprsetup.sh</tt></b> to create the filter directory and soft links.
2277dd7cddfSDavid du Colombier
2287dd7cddfSDavid du Colombier<p>
2297dd7cddfSDavid du ColombierIf you have several different values of bits per pixel for the same device,
2307dd7cddfSDavid du Colombieryou must list all instances of that device as adjacent items in the
2317dd7cddfSDavid du Colombier<a href="#Editing_device_list"><b><tt>DEVICES</tt></b></a> device
2327dd7cddfSDavid du Colombierlist.  If you do not, <b><tt>printcap.insert</tt></b> will contain multiple
2337dd7cddfSDavid du Colombierentries for the same device, which is not supported.
2347dd7cddfSDavid du Colombier
2357dd7cddfSDavid du Colombier<hr>
2367dd7cddfSDavid du Colombier
2373ff48bf5SDavid du Colombier<h2><a name="Authors"></a>Authors</h2>
2387dd7cddfSDavid du Colombier
2397dd7cddfSDavid du Colombier<p>
2407dd7cddfSDavid du ColombierThis material was contributed by George Cameron.  Yves Arrouye
2417dd7cddfSDavid du Colombier&lt;<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>&gt;
2427dd7cddfSDavid du Colombieris responsible for the number-of-colours part of the script.
2437dd7cddfSDavid du Colombier
2447dd7cddfSDavid du Colombier<!-- [2.0 end contents] ==================================================== -->
2457dd7cddfSDavid du Colombier
2467dd7cddfSDavid du Colombier<!-- [3.0 begin visible trailer] =========================================== -->
2477dd7cddfSDavid du Colombier<hr>
2487dd7cddfSDavid du Colombier
2493ff48bf5SDavid du Colombier<p>
2503ff48bf5SDavid du Colombier<small>Copyright &copy; 1996, 1997, 1998 Aladdin Enterprises.  All
2513ff48bf5SDavid du Colombierrights reserved.</small>
2527dd7cddfSDavid du Colombier
2537dd7cddfSDavid du Colombier<p>
254*593dc095SDavid du ColombierThis software is provided AS-IS with no warranty, either express or
255*593dc095SDavid du Colombierimplied.
256*593dc095SDavid du Colombier
257*593dc095SDavid du ColombierThis software is distributed under license and may not be copied,
258*593dc095SDavid du Colombiermodified or distributed except as expressly authorized under the terms
259*593dc095SDavid du Colombierof the license contained in the file LICENSE in this distribution.
260*593dc095SDavid du Colombier
261*593dc095SDavid du ColombierFor more information about licensing, please refer to
262*593dc095SDavid du Colombierhttp://www.ghostscript.com/licensing/. For information on
263*593dc095SDavid du Colombiercommercial licensing, go to http://www.artifex.com/licensing/ or
264*593dc095SDavid du Colombiercontact Artifex Software, Inc., 101 Lucas Valley Road #110,
265*593dc095SDavid du ColombierSan Rafael, CA  94903, U.S.A., +1(415)492-9861.
2667dd7cddfSDavid du Colombier
2673ff48bf5SDavid du Colombier<p>
268*593dc095SDavid du Colombier<small>Ghostscript version 8.53, 20 October 2005
2697dd7cddfSDavid du Colombier
2707dd7cddfSDavid du Colombier<!-- [3.0 end visible trailer] ============================================= -->
2717dd7cddfSDavid du Colombier
2727dd7cddfSDavid du Colombier</body>
2737dd7cddfSDavid du Colombier</html>
274