LPFILTER(8)          Maintenance Commands and Procedures         LPFILTER(8)
NAME
       lpfilter - administer filters used with the LP print service
SYNOPSIS
       /usr/sbin/lpfilter -f filter-name            {
- | 
-i | 
-l | 
-x | 
-F pathname}
DESCRIPTION
       The 
lpfilter command is used to add, change, delete, or list a filter
       used with the 
LP print service. These  filters convert the content of
       a file to have a content type acceptable to a printer.
OPTIONS
       Arguments consist of the 
-ffilter-name option and exactly one of the
       arguments appearing within braces (
{}) in the SYNOPSIS.       
-                         Adds or changes a filter as specified from standard
                         input. The format of the input is specified below.
                         If 
-f all is specified with the 
- option, the
                         specified change is made to all existing filters.
                         This is not useful.       
-f filter-name                         Specifies the  
filter-name of the filter to be
                         added, changed, reset, deleted, or listed. The
                         filter name 
all is a special filter name defined
                         below. The  
-f option is required.       
-F pathname                         Adds or changes a filter as specified by the
                         contents of the file 
pathname. The format of the
                         file's contents is specified below. If 
-f all is
                         specified with the 
-F option, the specified change
                         is made to all existing filters. This is not
                         useful.       
-i                         Resets a filter to its default settings. Using  
-f                         all with the  
-i option restores  all filters for
                         which predefined settings are available to their
                         original settings.       
-l                         Lists a filter description. Using 
-f all with the                         
-l option produces a list of all filters.       
-x                         Deletes a filter. Using 
-f all with the 
-x option
                         results in all filters being deleted.
USAGE
   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.
       When  
- is specified, standard input supplies the filter description.
       When 
-F is specified, the file 
pathname supplies the filter
       description. One of these two options must be specified to add or
       change a filter.
       When an existing filter is changed with the 
-F or 
- option, lines in
       the filter description that are not specified in the new information
       are not changed. When a new filter is added with this  command,
       unspecified lines receive default values. See below.
       Filters are used to convert the content  of a request from its
       initial type into a type acceptable to a printer. For a given print
       request, the 
LP print service knows the following:
           o      The content type of the request (specified by  
lp -T or
                  determined implicitly).
           o      The name of the printer (specified by  
lp -d).
           o      The printer type (specified by 
lpadmin -T).
                  The printer type is intended to be a printer model, but
                  some people specify it with a content type even though                  
lpadmin -I is intended for this purpose.
           o      The content types acceptable to the printer (specified by                  
lpadmin -I).
                  The values specified by the 
lpadmin -T are treated as if
                  they were specified by the 
-I option as well.
           o      The modes of printing asked for by the originator of the
                  request (specified by various options to 
lp).
       The system uses the above information to construct a list of  one or
       more filters that converts the document's content type into a content
       type acceptable to the printer and consumes all 
lp arguments that
       invoke filters  (
-y and 
-P).
       The contents of the file (specified by the 
-F option) and the input
       stream from standard input (specified by  
-) must consist of a series
       of lines, such that each line conforms to the syntax specified by one
       of the seven lines below. All lists are comma or space separated.
       Each item contains a description.         
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 content types that can be accepted by
                        the filter. The default is 
any. The document content
                        type must  be a member of this list for the initial
                        filter in the sequence.       
Output types                        This gives the content types that the filter can
                        produce from any of the input (content) types.  The
                        default is 
any. The intersection of the output types
                        of this list and the content types acceptable to the
                        printer (from 
lpadmin -I and 
lpadmin -T) must be
                        non-null for the last filter in the sequence.  For
                        adjacent filters in the sequence, the intersection
                        of output types of one and the input types of the
                        next must be non-null.       
Printer types                        This gives the printer types for which this  printer
                        can be used. The 
LP print service will restrict the
                        use of  the filter to these printer types (from                        
lpadmin -T). 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 (that is, minutes
                        or hours). They are run before the job is scheduled
                        for 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. That is, if a client
                        defines a filter, it must be a slow filter. Fast
                        filters are generally those that convert their input
                        quickly (that is, faster than the printer can
                        process the data), or those that must be connected
                        to the printer when run. Fast filters will be given
                        to the interface program to run while connected  to
                        the physical printer.       
Command                        This specifies which 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 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. The 
-y and  
- P                        arguments to the 
lp command cause a filter sequence
                        to be built even if there is no need for a
                        conversion of content types.
                        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 on
                        the 
regexp(7) manual page. 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                        
regexp(7).
       The keywords are:
         lp Option          Characteristic   
keyword         Possible 
patterns         -T                Content type      INPUT           content-type
                           (input)
         Not applicable    Content type      OUTPUT          content-type
                           (output)
         not applicable    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-name
                           Print wheel       CHARSET         print-wheel-name
         -f                Form name         FORM            form-name
         -y                Modes             MODES           mode
         -n                Number of         COPIES          
integer                           copies
   Resetting a Filter to Defaults
       If the filter named is one originally  delivered with the  
LP print
       service, the 
-i option restores the original filter description.
   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.
   Large File Behavior
       See 
largefile(7) for the description of the behavior of 
lpfilter when
       encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
EXAMPLES
       Example 1: Printing with the landscape option
       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.
       Example 2: Selecting the printer type
       As another example, the template         
TERM * = -T *       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.
       Example 3: Using the keywords table
       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 -w1 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 input and output for that  filter, not for
       the entire pipeline.
EXIT STATUS
       The following exit values are returned:       
0                   Successful completion.       
non-zero                   An error occurred.
SEE ALSO
       lp(1), 
sh(1), 
attributes(7), 
largefile(7), 
regexp(7), 
lpadmin(8)NOTES
       If the 
lp command specifies more than one document, the filtering
       chain is determined by the first document. Other documents may have a
       different format, but they will print correctly only if the filter
       chain is able to handle their format.
                                April 3, 1997                    LPFILTER(8)