1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2 3<html> 4 <head> 5 <meta name="generator" content="HTML Tidy, see www.w3.org"> 6 <title>Interfacing to Non-LPRng Spoolers</title> 7 <meta name="GENERATOR" content= 8 "Modular DocBook HTML Stylesheet Version 1.7"> 9 <link rel="HOME" title=" LPRng Reference Manual" href= 10 "index.htm"> 11 <link rel="UP" title="Print Spooling Tutorial " href= 12 "tutorial.htm"> 13 <link rel="PREVIOUS" title= 14 "Job Options and the Z Control File Entry" href="x3767.htm"> 15 <link rel="NEXT" title="Debugging, Tracing, and Log Files" 16 href="x3917.htm"> 17 </head> 18 19 <body class="SECT1" bgcolor="#FFFFFF" text="#000000" link= 20 "#0000FF" vlink="#840084" alink="#0000FF"> 21 <div class="NAVHEADER"> 22 <table summary="Header navigation table" width="100%" border= 23 "0" cellpadding="0" cellspacing="0"> 24 <tr> 25 <th colspan="3" align="center">LPRng Reference Manual: 5 26 Sep 2003 (For LPRng-3.8.22)</th> 27 </tr> 28 29 <tr> 30 <td width="10%" align="left" valign="bottom"><a href= 31 "x3767.htm" accesskey="P">Prev</a></td> 32 33 <td width="80%" align="center" valign="bottom">Chapter 4. 34 Print Spooling Tutorial</td> 35 36 <td width="10%" align="right" valign="bottom"><a href= 37 "x3917.htm" accesskey="N">Next</a></td> 38 </tr> 39 </table> 40 <hr align="LEFT" width="100%"> 41 </div> 42 43 <div class="SECT1"> 44 <h1 class="SECT1"><a name="AEN3885">4.20. Interfacing to 45 Non-LPRng Spoolers</a></h1> 46 47 <p>Given the large number of defective RFC1179 48 implementations that are currently in use, there will come a 49 time when the administrator will discover that their printer 50 with its built-in network interface, the non-UNIX based print 51 spooler on a mainframe, or even a new print spooler on a new 52 OS distribution will not accept jobs from the <b class= 53 "APPLICATION">LPRng</b> system. Usually this is caused by the 54 presence, absence, or order of lines in the control file 55 being sent to the remote system. To deal with this particular 56 problem, the <var class="LITERAL">:bk</var>, <var class= 57 "LITERAL">:control_file_line_order</var>, <var class= 58 "LITERAL">:nline_after_file</var>, and <var class= 59 "LITERAL">:control_filter</var> options are used.</p> 60 61 <p>The <var class="LITERAL">:bk</var> (BSD Kompatibility) 62 option causes the lpd server to remove all but an extremely 63 small subset of lines from the control file, and to put the 64 lines in the most commonly used order. In addition it will 65 make the control and data files names extremely short and 66 simple. This almost always solves compatibility problems when 67 sending jobs to older <span class="emphasis"><i class= 68 "EMPHASIS">vintage</i></span> print spoolers or UNIX 69 systems.</p> 70 71 <p>If this does not solve the problem, then you can specify 72 the allowed control file lines and their order using the <var 73 class="LITERAL">control_file_line_order=...</var> option. For 74 example, <var class= 75 "LITERAL">control_file_line_order=CJPMD</var> would allow 76 only control file lines starting with <var class= 77 "LITERAL">C</var>, <var class="LITERAL">J</var>, <var class= 78 "LITERAL">P</var>, <var class="LITERAL">M</var>, and <var 79 class="LITERAL">D</var>, and this order in the control file. 80 Note that this does not provide <span class="emphasis"><i 81 class="EMPHASIS">missing</i></span> line values, it only 82 controls line values that are present in the control file. 83 You should also use the <var class="LITERAL">:bk</var> option 84 as well.</p> 85 86 <p>You might run into some <span class="emphasis"><i class= 87 "EMPHASIS">really</i></span> unusual implementations where 88 the control file <var class="LITERAL">N</var> (file name) 89 information must come <span class="emphasis"><i class= 90 "EMPHASIS">after</i></span> the control file name. This is 91 forced by the <var class="LITERAL">:nline_after_file</var> 92 option.</p> 93 94 <p>If these horrible kludges do not solve your compatibility 95 problems then we turn to the very large hammer and edit the 96 control file. The very last step before transfering the 97 control file to the remote server is to filter it using the 98 <var class="LITERAL">:control_filter=/path</var> program 99 specified in the printcap. The <var class= 100 "LITERAL">:control_filter</var> reads the control file from 101 <acronym class="ACRONYM">STDIN</acronym> and writes the 102 modified control file to <acronym class= 103 "ACRONYM">STDOUT</acronym>. No consistency checking or 104 validity checks are done on the new control file and the 105 result is transferred directly to the remote system. If the 106 <var class="LITERAL">:control_filter</var> exits with a 0 107 status, then the normal processing continues. Any other 108 status will cause the transfer operation to be aborted and an 109 error reported.</p> 110 </div> 111 112 <div class="NAVFOOTER"> 113 <hr align="LEFT" width="100%"> 114 115 <table summary="Footer navigation table" width="100%" border= 116 "0" cellpadding="0" cellspacing="0"> 117 <tr> 118 <td width="33%" align="left" valign="top"><a href= 119 "x3767.htm" accesskey="P">Prev</a></td> 120 121 <td width="34%" align="center" valign="top"><a href= 122 "index.htm" accesskey="H">Home</a></td> 123 124 <td width="33%" align="right" valign="top"><a href= 125 "x3917.htm" accesskey="N">Next</a></td> 126 </tr> 127 128 <tr> 129 <td width="33%" align="left" valign="top">Job Options and 130 the Z Control File Entry</td> 131 132 <td width="34%" align="center" valign="top"><a href= 133 "tutorial.htm" accesskey="U">Up</a></td> 134 135 <td width="33%" align="right" valign="top">Debugging, 136 Tracing, and Log Files</td> 137 </tr> 138 </table> 139 </div> 140 </body> 141</html> 142 143