/usr/share/doc/lprng-doc/LPRng-Reference-Multipart/x3273.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 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | <!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>Banner Printing and the OF filter</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="Printcap Basics" href="x3103.htm">
  <link rel="NEXT" title="Printing from lpr Directly To A Device"
  href="x3376.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=
        "x3103.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=
        "x3376.htm" accesskey="N">Next</a></td>
      </tr>
    </table>
    <hr align="left" width="100%">
  </div>
  <div class="SECT1">
    <h1 class="SECT1"><a name="AEN3273" id="AEN3273">4.12. Banner
    Printing and the OF filter</a></h1>
    <p>Banner or header pages can be printed at the beginning, end,
    or both at the beginning or end. The following flags control
    how and where banners are printed. These flags are listed in
    order of precedence.</p>
    <div class="VARIABLELIST">
      <dl>
        <dt><tt class="LITERAL">:sh</tt></dt>
        <dd>
          <p>Suppress all banner printing or header pages. This
          prevents any banners from being generated by the
          <b class="APPLICATION">lpd</b> print spooler and if
          present in a client printcap entry, will cause <b class=
          "APPLICATION">lpr</b> not to put any banner printing
          information in the control file. Even if this flag is not
          present, then <b class="APPLICATION">LPRng</b> will not
          print a banner unless a banner printing program is
          specified with the <tt class="LITERAL">:bp,</tt>
          <tt class="LITERAL">:bs</tt>, <tt class=
          "LITERAL">:be</tt>, or <tt class="LITERAL">:sb</tt>
          option.</p>
        </dd>
        <dt><tt class="LITERAL">:ab</tt></dt>
        <dd>
          <p>Print a banner or header page, even if the user has
          not requested one. The <tt class="LITERAL">:sh</tt>
          option has precedence over the <tt class=
          "LITERAL">:ab</tt> option.</p>
        </dd>
        <dt><tt class="LITERAL">:hl</tt></dt>
        <dd>
          <p>The banner (header) is at the end (last page) of the
          job.</p>
        </dd>
        <dt><tt class="LITERAL">:bs=/...</tt> and <tt class=
        "LITERAL">:be=/...</tt> and</dt>
        <dd>
          <p>The <tt class="LITERAL">:bs</tt> and <tt class=
          "LITERAL">:be</tt> options specify that a banner page is
          to be generated at the start and end of the job
          respectively, using indicated filter program. If the
          <tt class="LITERAL">:hl</tt> flag has been set, only the
          <tt class="LITERAL">:be</tt> will be used.</p>
        </dd>
        <dt><tt class="LITERAL">:bp=</tt>...</dt>
        <dd>
          <p>If there is no <tt class="LITERAL">:bs</tt> or
          <tt class="LITERAL">:be</tt> value when printing a banner
          at the start or end of the job respectively, then use the
          indicated filter program to generate a banner.</p>
        </dd>
        <dt><tt class="LITERAL">:sb</tt> and <tt class=
        "LITERAL">:bl=....</tt></dt>
        <dd>
          <p>If there is no program specified to generate the
          banner and the <tt class="LITERAL">:sb</tt> flag is set,
          send the <tt class="LITERAL">:bl</tt> (banner line)
          string to the printer.</p>
        </dd>
        <dt><tt class="LITERAL">:of=filter</tt></dt>
        <dd>
          <p>A filter used to process banners and other non-job
          file information.</p>
        </dd>
        <dt><tt class="LITERAL">:suspend_of_filter</tt></dt>
        <dd>
          <p>Controls whether the <tt class="LITERAL">:of</tt>
          filter is suspended or has its input terminated.</p>
        </dd>
      </dl>
    </div>
    <p>The <b class="APPLICATION">pclbanner</b>, <b class=
    "APPLICATION">psbanner</b>, and <b class=
    "APPLICATION">lpbanner</b> programs are part of the <b class=
    "APPLICATION">LPRng</b> distribution and are usually installed
    in the same location as the <b class="APPLICATION">LPRng</b>
    supported filters. They produce a PCL, PostScript, or text
    banner respectively.</p>
    <p>The OF filter (<tt class="LITERAL">:of=/path</tt>) is used
    to process banner pages and to do any necessary setup to
    initialize the printer to handle banner pages. This filter has
    the following unusual behavior:</p>
    <ul>
      <li>
        <p>It must be explicitly specified in the printcap file. It
        is not run by default.</p>
        <p>If specified, it is started at the beginning of job
        printing and stays present throughout the entire job
        printing session.</p>
      </li>
      <li>
        <p>When printing individual files, the <tt class=
        "LITERAL">:of</tt> filter is sent a special <span class=
        "emphasis"><i class="EMPHASIS">suspend yourself</i></span>
        two character string, <tt class="LITERAL">\031\001</tt>.
        This will cause the <tt class="LITERAL">:of</tt> filter to
        send itself a <acronym class="ACRONYM">SIGSUSP</acronym>
        (suspend) signal.</p>
      </li>
      <li>
        <p>The <tt class="LITERAL">:of</tt> filter is restarted
        when any information not part of a print job file, such as
        the initialization string (<tt class="LITERAL">:ld</tt>
        option), termination string (<tt class="LITERAL">:ld</tt>
        option), or form feeds at start (<tt class=
        "LITERAL">:fo</tt>), end (<tt class="LITERAL">:fq</tt>),
        and between job files (<tt class=
        "LITERAL">:ff_separator</tt>), and when banners are
        generated by the <tt class="LITERAL">:bp</tt>, <tt class=
        "LITERAL">:bs</tt>, <tt class="LITERAL">:be</tt>, or
        <tt class="LITERAL">:sb</tt> option and need to be sent to
        the printer.</p>
      </li>
    </ul>
    <p>This rather baroque behavior is mostly historical in origin,
    and is very much embedded in the existing documentation and
    methodologies of the BSD print spooling system. Originally,
    when a printer port was opened, a special device initialization
    string was sent by the printer port device driver; this usually
    resulted in an extra page of paper being ejected by the
    printer. By opening the device once and then keeping it open,
    the print spooler would avoid the wasted paper. The reason for
    suspending the <tt class="LITERAL">:of</tt> filter was simply
    to save the overhead of creating an extra processes.</p>
    <p>Unfortunately, the <tt class="LITERAL">:of</tt> filter
    suspension behavior is now a problem rather than a benefit. For
    example, for many devices to finish printing a page correctly
    the filter must be closed in order for it to flush buffers and
    for the low level drivers to properly finish. In order to
    provide this functionality, the <tt class=
    "LITERAL">suspend_of_filter@</tt> flag can be used. This will
    cause the <b class="APPLICATION">lpd</b> server to close the
    <tt class="LITERAL">:of</tt> filters input, rather than sending
    it the suspend string, and to restart a new <tt class=
    "LITERAL">:of</tt> filter process when necessary.</p>
  </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=
        "x3103.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=
        "x3376.htm" accesskey="N">Next</a></td>
      </tr>
      <tr>
        <td width="33%" align="left" valign="top">Printcap
        Basics</td>
        <td width="34%" align="center" valign="top"><a href=
        "tutorial.htm" accesskey="U">Up</a></td>
        <td width="33%" align="right" valign="top">Printing from
        <b class="APPLICATION">lpr</b> Directly To A Device</td>
      </tr>
    </table>
  </div>
  <p align="center"></p>
</body>
</html>
 |