NAME
magicfilter - automatic configurable printer filter
SYNOPSIS
magicfilter
ifdef(`HAVE_XGETOPT',
config-file [-c] [-n user] [-h host] [-iindent] [--debug] [other-options],
config-file [-c] [-n user] [-h host] [-iindent] [other.options])
DESCRIPTION
magicfilter
is an extensible and customizable automatic printer filter. It
selects an appropriate conversion technique for the input data by
seeking for
magic numbers,
and then utilizing the appropriate conversion utility.
magicfilter
is primarily intended for use as the ``input filter'' by the
lpd
print spooler. The options accepted by
magicfilter
are exactly the ones passed to the input filter by
lpd.
OPTIONS
Typically
magicfilter
will be invoked by
lpd
and hence provided the right options automatically. This list is
included for reference only.
- -c
-
Copy the input to the output without any conversion whatsoever (used
by
lpd
whenever the
-l
option is passed to the
lpr
program).
- -nuser
-
The login name of the user who submitted the job. Available to
subfilters as
$LPUSER.
If the user has an associated GECOS entry it will be available as
$LPUSERNAME.
- -hhost
-
The host on which the job was submitted. Available to subfilters as
$LPHOST.
- -iindent
-
A numeric option passed by
lpd;
can be set by the user by the
-i
option to
lpr.
Although nominally used for the amount of indentation requested,
magicfilter
makes it available to subfilters for any useful purpose as
$LPINDENT.
- -Cclassname
-
LPRng class (priority) name. Available to subfilters as
$LPCLASS.
- -Fformat
-
Format letter (passed by LPRng only). When used as input filter (if)
this will be
f,
when used as other filter types it will be the option character
corresponding to this filter. Available to subfilters as
$LPFORMAT.
- -Jjobname
-
The name of the printer job (passed by LPRng only). Available to
subfilters as
$LPJOB.
- -Kcopies
-
Copy count (passed by LPRng only). Available to subfilters as
$LPCOPIES.
- -Lbannername
-
User name from the banner page (passed by LPRng only). Available to
subfilters as
$BANNERNAME.
- -Pprinter
-
Printer name (passed by LPRng only). Available to subfilters as
$PRINTER.
- -Qqueuename
-
Spool queue name (passed by LPRng only). Available to subfilters as
$LPQUEUE.
- -Raccountinfo
-
Accounting information (passed by LPRng only). Available to
subfilters as
$LPACCT.
- -Zoptions
-
LPRng ``Z-options''. The LPRng
lpr
program supports a
-Z
option, which can be used to pass arbitrary information to the printer
filters. Available to subfilters as
$ZOPT.
ifdef(`HAVE_XGETOPT',
- --debug
-
Write debugging output to stdout. Every --debug increases the
quantity of debugging output.
ifelse(magicfilter,`magicfilter-t',,
- --dump
-
Write the default magicfilter configuration to stdout. This can be
customised and put in @confdir@/magicfilter.cf if you wish to modify
which filetypes magicfilter knows about.)
- --help
-
Prints out a synopsis of the command-line switches supported.,)
- other options
-
Any other options, such as the
-w,
-l,
-x,
and
-y
options typically passed by
lpd
are ignored.
USING LPD
To run
magicfilter
from
lpd
it should be entered as one of the filters in the
/etc/printcap
file. Typically, it will be the input filter (if). Since most
version of
lpd
do not accept arguments entered as part of the filter name, typically
the filter name entered into the
/etc/printcap
file will simply be the name of the configuration file, which is set
executable and starts with the line:
#! @exedir@/magicfilter
Most UNIX kernels will then be able to treat the configuration file
itself as if it was the actual program.
For systems which do not support the ``#!-hack'', the filter set in
the if entry should point to
magicfilter
directly, and the accounting file (af) entry should point to the
configuration file. This, however, is a less general, and hence less
desirable solution.
This version of
magicfilter
supports the enhanced
lpd
included with the LPRng package from
dickory.sdsu.edu.
BUGS
Magicfilter
has been extensively modified for the 2.0 release, and has very little
in common with the old 1.2 magicfilter. The
config-file
format has changed pretty drastically, and old config files will
not
work anymore.
Currently, there is no protection against the
pipe
or
fpipe
facilities going into an infinite loop.
AUTHOR
H. Peter Anvin <
hpa@zytor.com>, David Parsons <
orc@pell.chi.il.us>
SEE ALSO
printcap(5),
magicfilter(5),
ifelse(magicfilter,magicfilter-t,.BR magicfilter (5)`,'
,)dnl
lpr(8),
dvips(1),
grog(1),
gs(1),
gzip(1),
troff(1).
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- USING LPD
-
- BUGS
-
- AUTHOR
-
- SEE ALSO
-