lpfilter(1M) lpfilter(1M)
NAME
lpfilter - administer filters used with the LP print service
SYNOPSIS
lpfilter -f filter-name -F path-name
lpfilter -f filter-name -
lpfilter -f filter-name -i
lpfilter -f filter-name -x
lpfilter -f filter-name -l
DESCRIPTION
The lpfilter command is used to add, change, delete, and list a
filter used with the LP print service. These filters are used to
convert the content type of a file to a content type acceptable to a
printer. One of the following options must be used with the lpfilter
command: -F path-name (or - for standard input) to add or change a
filter; -i to reset an original filter to its factory setting; -x to
delete a filter; or -l to list a filter description.
The argument all can be used instead of a filter-name with any of
these options. When all is specified with the -F or - option, the
requested change is made to all filters. Using all with the -i
option has the effect of restoring to their original settings all
filters for which predefined settings were initially available.
Using the all argument with the -x option results in all filters
being deleted, and using it with the -l option produces a list of all
filters.
Adding or Changing a Filter
The filter named in the -f option is added to the filter table. If
the filter already exists, its description is changed to reflect the
new information in the input.
The filter description is taken from the path-name if the -F option
is given, or from the standard input if the - option is given. One
of the two must be given to define or change a filter. If the filter
named is one originally delivered with the LP print service, the -i
option will restore the original filter description.
When an existing filter is changed with the -F or - option, items
that are not specified in the new information are left as they were.
When a new filter is added with this command, unspecified items are
given default values. (See below.)
Filters are used to convert the content of a request into a data
stream acceptable to a printer. For a given print request, the LP
print service will know the following: the type of content in the
request, the name of the printer, the type of the printer, the types
of content acceptable to the printer, and the modes of printing asked
for by the originator of the request. It will use this information
to find a filter or a pipeline of filters that will convert the
8/91 Page 1
lpfilter(1M) lpfilter(1M)
content into a type acceptable to the printer.
Below is a list of items that provide input to this command, and a
description of each item. All lists are comma or space separated.
Input types: content-type-list
Output types: content-type-list
Printer types: printer-type-list
Printers: printer-list
Filter type: filter-type
Command: shell-command
Options: template-list
Input types
This gives the types of content that can be accepted by the
filter. (The default is any.)
Output types
This gives the types of content that the filter can produce
from any of the input content types. (The default is any.)
Printer types
This gives the type of printers for which the filter can be
used. The LP print service will restrict the use of the
filter to these types of printers. (The default is any.)
Printers
This gives the names of the printers for which the filter can
be used. The LP print service will restrict the use of the
filter to just the printers named. (The default is any.)
Filter type
This marks the filter as a slow filter or a fast filter.
Slow filters are generally those that take a long time to
convert their input. They are run unconnected to a printer,
to keep the printers from being tied up while the filter is
running. If a listed printer is on a remote system, the
filter type for it must have the value slow. Fast filters
are generally those that convert their input quickly, or
those that must be connected to the printer when run. These
will be given to the interface program to run connected to
the physical printer.
Command This specifies the program to run to invoke the filter. The
full program pathname as well as fixed options must be
included in the shell-command; additional options are
constructed, based on the characteristics of each print
request and on the Options field. A command must be given
for each filter.
The command must accept a data stream as standard input and
produce the converted data stream on its standard output.
This allows filter pipelines to be constructed to convert
Page 2 8/91
lpfilter(1M) lpfilter(1M)
data not handled by a single filter.
Options This is a comma separated list of templates used by the LP
print service to construct options to the filter from the
characteristics of each print request listed in the table
later.
In general, each template is of the following form:
keyword pattern = replacement
The keyword names the characteristic that the template
attempts to map into a filter specific option; each valid
keyword is listed in the table below. A pattern is one of
the following: a literal pattern of one of the forms listed
in the table, a single asterisk (*), or a regular expression.
If pattern matches the value of the characteristic, the
template fits and is used to generate a filter specific
option. The replacement is what will be used as the option.
Regular expressions are the same as those found in the ed(1) or vi(1)
commands. This includes the \(...\) and \n constructions, which can
be used to extract portions of the pattern for copying into the
replacement, and the &, which can be used to copy the entire pattern
into the replacement.
The replacement can also contain a *; it too, is replaced with the
entire pattern, just like the & of ed(1).
___________________________________________________________________
| lp Option Characteristic keyword Possible patterns|
|__________________________________________________________________|
| -T Content type (input) INPUT content-type |
| N/A Content type (output) OUTPUT content-type |
| N/A Printer type TERM printer-type |
| -d Printer name PRINTER printer-name |
| -f, -o cpi= Character pitch CPI integer |
| -f, -o lpi= Line pitch LPI integer |
| -f, -o length= Page length LENGTH integer |
| -f, -o width= Page width WIDTH integer |
| -P Pages to print PAGES page-list |
| -S Character set CHARSET character-set- |
| Print wheel CHARSET name |
| print-wheel-name |
| -f Form name FORM form-name |
| -y Modes MODES mode |
| -n Number of copies COPIES integer |
|__________________________________________________________________|
For example, the template
MODES landscape = -l
shows that if a print request is submitted with the -y landscape
option, the filter will be given the option -l. As another example,
the template
TERM * = -T *
8/91 Page 3
lpfilter(1M) lpfilter(1M)
shows that the filter will be given the option -T printer-type for
whichever printer-type is associated with a print request using the
filter.
As a last example, consider the template
MODES prwidth\=\(.*\) = -w\1
Suppose a user gives the command
lp -y prwidth=10
From the table above, the LP print service determines that the -y
option is handled by a MODES template. The MODES template here works
because the pattern prwidth\=\(.*\) matches the prwidth=10 given by
the user. The replacement -w\1 causes the LP print service to
generate the filter option -w10.
If necessary, the LP print service will construct a filter pipeline
by concatenating several filters to handle the user's file and all
the print options. (See sh(1) for a description of a pipeline.) If
the print service constructs a filter pipeline, the INPUT and OUTPUT
values used for each filter in the pipeline are the types of the
input and output for that filter, not for the entire pipeline.
Deleting a Filter
The -x option is used to delete the filter specified in filter-name
from the LP filter table.
Listing a Filter Description
The -l option is used to list the description of the filter named in
filter-name. If the command is successful, the following message is
sent to standard output:
Input types: content-type-list
Output types: content-type-list
Printer types: printer-type-list
Printers: printer-list
Filter type: filter-type
Command: shell-command
Options: template-list
If the command fails, an error message is sent to standard error.
SEE ALSO
lpadmin(1M).
lp(1) in the User's Reference Manual.
Page 4 8/91