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 cdj550.3.dq cdj550.1.dq deskjet 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<<a href="mailto:yves.arrouye@usa.net">yves.arrouye@usa.net</a>> 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 © 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