/usr/share/doc/lprng-doc/LPRng-Reference-Multipart/x3376.htm is in lprng-doc 3.8.A~rc2-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org">
<title>Printing from lpr Directly To A Device</title>
<meta name="GENERATOR" content=
"Modular DocBook HTML Stylesheet Version 1.79">
<link rel="HOME" title=" LPRng Reference Manual" href=
"index.htm">
<link rel="UP" title="Print Spooling Tutorial " href=
"tutorial.htm">
<link rel="PREVIOUS" title="Banner Printing and the OF filter"
href="x3273.htm">
<link rel="NEXT" title=
"Moving Jobs From Queue to Queue and Redirecting Queues" href=
"x3423.htm">
</head>
<body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF"
vlink="#840084" alink="#0000FF">
<div class="NAVHEADER">
<table summary="Header navigation table" width="100%" border=
"0" cellpadding="0" cellspacing="0">
<tr>
<th colspan="3" align="center">LPRng Reference Manual: 24
Sep 2004 (For LPRng-3.8.28)</th>
</tr>
<tr>
<td width="10%" align="left" valign="bottom"><a href=
"x3273.htm" accesskey="P">Prev</a></td>
<td width="80%" align="center" valign="bottom">Chapter 4.
Print Spooling Tutorial</td>
<td width="10%" align="right" valign="bottom"><a href=
"x3423.htm" accesskey="N">Next</a></td>
</tr>
</table>
<hr align="left" width="100%">
</div>
<div class="SECT1">
<h1 class="SECT1"><a name="AEN3376" id="AEN3376">4.13. Printing
from <b class="APPLICATION">lpr</b> Directly To A
Device</a></h1>
<p>While the most reliable way to print is to send jobs to a
print spooler, sometimes it is desirable to print directly to a
printer. This method is supported by the special <tt class=
"LITERAL">:direct</tt> printcap flag or the <b class=
"APPLICATION">lpr</b> <tt class="LITERAL">-Y</tt> command line
flag. The following shows the effects of this flag:</p>
<div class="INFORMALEXAMPLE">
<a name="AEN3383" id="AEN3383"></a>
<pre class="SCREEN">
lpr -Y -Phost%port file1 file2 ...
Eqivalent to:
( for i in file1 file2 ... ; do
$filter $i
done ) | tcpip_connection( host%port)
lpr -Y -P/dev/lp file1 file2 ...
Eqivalent to:
( for i in file1 file2 ... ; do
$filter $i
done ) >>/dev/lp
lpr -Y -P '|/program' file1 file2 ...
Eqivalent to:
( for i in file1 file2 ... ; do
$filter $i
done ) | /program
</pre>
</div>
<p>The above examples show how we can use the command line
options to send files directly to a printer. You can also
create a printcap that will do the same:</p>
<div class="INFORMALEXAMPLE">
<a name="AEN3386" id="AEN3386"></a>
<pre class="SCREEN">
lp:direct:lp=/tmp/a:remote_support=R
Command:
lpr -Plp file1 file2 ...
Equivalent to:
lpr -P/tmp/a -Y file1 file2 ...
Example:
<samp class="PROMPT">h4: {228} % </samp><kbd class=
"USERINPUT">lp -P/tmp/a /tmp/hi</kbd>
<samp class="PROMPT">h4: {229} % </samp><kbd class=
"USERINPUT">cat /tmp/a /tmp/hi</kbd>
hi
<samp class="PROMPT">h4: {230} % </samp><kbd class=
"USERINPUT">lp -Plp /tmp/hi</kbd>
<samp class="PROMPT">h4: {231} % </samp><kbd class=
"USERINPUT">cat /tmp/a /tmp/hi</kbd>
hi
hi
</pre>
</div>
<p>The <b class="APPLICATION">lpr</b> <tt class="LITERAL">-X
filter</tt> option allows us to specify a user filter on the
command line. We will use a simple example to show how this
capability could be used in practice. Create the <tt class=
"FILENAME">/tmp/pass</tt> file with the following contents, and
give it executable permissions as shown below:</p>
<div class="INFORMALEXAMPLE">
<a name="AEN3400" id="AEN3400"></a>
<pre class="SCREEN">
#!/bin/sh
# /tmp/pass file
echo LEADER
cat
echo TRAILER
exit 0
</pre>
</div>
<p>Execute the following commands to print the <tt class=
"FILENAME">/tmp/hi</tt> file and observe the results:</p>
<div class="INFORMALEXAMPLE">
<a name="AEN3404" id="AEN3404"></a>
<pre class="SCREEN">
<samp class="PROMPT">h4: {232} % </samp><kbd class=
"USERINPUT">cp /dev/null /tmp/a</kbd>
<samp class="PROMPT">h4: {233} % </samp><kbd class=
"USERINPUT">lpr -P/tmp/a -X /tmp/pass /tmp/hi</kbd>
<samp class="PROMPT">h4: {234} % </samp><kbd class=
"USERINPUT">cat /tmp/a</kbd>
LEADER
hi
TRAILER
</pre>
</div>
<p>As we see from the example, our filter has processed the
input file and added the <tt class="LITERAL">LEADER</tt> and
<tt class="LITERAL">TRAILER</tt> strings. In practice, the
actual processing of the input job would be far more elaborate,
and may do such things as incorporate files or other material
available only on the local system. We can also use a printcap
entry:</p>
<div class="INFORMALEXAMPLE">
<a name="AEN3415" id="AEN3415"></a>
<pre class="SCREEN">
lp:direct:lp=/tmp/a:filter=/tmp/pass
<samp class="PROMPT">h4: {235} % </samp><kbd class=
"USERINPUT">cp /dev/null /tmp/a</kbd>
<samp class="PROMPT">h4: {236} % </samp><kbd class=
"USERINPUT">lpr -Plp /tmp/hi</kbd>
<samp class="PROMPT">h4: {237} % </samp><kbd class=
"USERINPUT">cat /tmp/a</kbd>
LEADER
hi
TRAILER
</pre>
</div>
</div>
<div class="NAVFOOTER">
<hr align="left" width="100%">
<table summary="Footer navigation table" width="100%" border=
"0" cellpadding="0" cellspacing="0">
<tr>
<td width="33%" align="left" valign="top"><a href=
"x3273.htm" accesskey="P">Prev</a></td>
<td width="34%" align="center" valign="top"><a href=
"index.htm" accesskey="H">Home</a></td>
<td width="33%" align="right" valign="top"><a href=
"x3423.htm" accesskey="N">Next</a></td>
</tr>
<tr>
<td width="33%" align="left" valign="top">Banner Printing
and the OF filter</td>
<td width="34%" align="center" valign="top"><a href=
"tutorial.htm" accesskey="U">Up</a></td>
<td width="33%" align="right" valign="top">Moving Jobs From
Queue to Queue and Redirecting Queues</td>
</tr>
</table>
</div>
<p align="center"></p>
</body>
</html>
|