# ippeveprinter

## NAME



           ippeveprinter - an ipp everywhere printer application for cups
    


## SYNOPSIS



           **ippeveprinter**[ **--help**] [ **--no-web-forms**] [ **--pam-service**
           _service_ ] [ **--version**] [ **-2**] [ **-A**] [ **-D** _device-uri_ ] [ **-F**
           _output-type/subtype_ ] [ **-K** _keypath_ ] [ **-M** _manufacturer_ ] [ **-P**
           _filename.ppd_ ] [ **-V** _ipp-version_ ] [ **-a** _filename.conf_ ] [ **-c**
           _command_ ] [ **-d** _spool-directory_ ] [ **-f** _type/subtype[,...]_  ] [ **-i**
           _iconfile.png_ ] [ **-k**] [ **-l** _location_ ] [ **-m** _model_ ] [ **-n** _hostname_ ]
           [ **-p** _port_ ] [ **-r** _subtype[,subtype]_ ] [ **-s** _speed[,color-speed]_ ] [
           **-v[vvv]**] _service-name_
    


## DESCRIPTION



           **ippeveprinter** is a simple Internet Printing Protocol (IPP) server
           conforming to the IPP Everywhere (PWG 5100.14) specification. It
           can be used to test client software or act as a very basic print
           server that runs a command for every job that is printed.
    


## OPTIONS



           The following options are recognized by **ippeveprinter:**
    
           **--help**
                Show program usage.
    
           **--no-web-forms**
                Disable the web interface forms used to update the media and
                supply levels.
    
           **--pam-service** _service_
                Set the PAM service name.  The default service is "cups".
    
           **--version**
                Show the CUPS version.
    
           **-2** Report support for two-sided (duplex) printing.
    
           **-A** Enable authentication for the created printer.  **ippeveprinter**
                uses PAM to authenticate HTTP Basic credentials.
    
           **-D** _device-uri_
                Set the device URI for print output.  The URI can be a
                filename, directory, or a network socket URI of the form
                "socket://ADDRESS[:PORT]" (where the default port number is
                9100).  When specifying a directory, **ippeveprinter** will
                create an output file using the job ID and name.
    
           **-F** _output-type/subtype[,...]_
                Specifies the output MIME media type that is provided to the
                printer command.  The default is "application/postscript"
                when the **-P** option is specified.
    
           **-M** _manufacturer_
                Set the manufacturer of the printer.  The default is
                "Example".
    
           **-K** _keypath_
                Set location of server X.509 certificates and keys.
    
           **-P** _filename.ppd_
                Load printer attributes from the specified PPD file.  This
                option is typically used in conjunction with the **ippeveps**(7)
                printer command ("-c ippeveps").
    
           **-V 1.1**
    
           **-V 2.0**
                Specifies the maximum IPP version to report.  2.0 is the
                default.
    
           **-a** _filename.conf_
                Load printer attributes from "filename.conf".  Attribute
                files can be created using the ipptool(1) command with the
                _--ippserver_ option.
    
           **-c** _command_
                Run the specified command for each document that is printed.
                If "command" is not an absolute path ("/path/to/command"),
                **ippeveprinter** looks for the command in the "command"
                subdirectory of the CUPS binary directory, typically
                /usr/lib/cups/command or /usr/libexec/cups/command.  The
                **pkg-config**(1) command can be used to discover the correct
                binary directory ("pkg-config --variable=cups_serverbin
                cups").  In addition, the CUPS_SERVERBIN environment variable
                can be used to override the default location of this
                directory - see the cups(1) man page for more details.
    
           **-d** _spool-directory_
                Specifies the directory that will hold the print files.  The
                default is a directory under the user's current temporary
                directory.
    
           **-f** _type/subtype[,...]_
                Specifies a list of MIME media types that the server will
                accept.  The default depends on the type of printer created.
    
           **-i** _iconfile.png_
                Specifies the printer icon file for the server.  The file
                must be a PNG format image.  The default is an internally-
                provided PNG image.
    
           **-k** Keeps the print documents in the spool directory rather than
                deleting them.
    
           **-l** _location_
                Specifies the human-readable location string that is reported
                by the server.  The default is the empty string.
    
           **-m** _model_
                Specifies the model name of the printer.  The default is
                "Printer".
    
           **-n** _hostname_
                Specifies the hostname that is reported by the server.  The
                default is the name returned by the hostname(1) command.
    
           **-p** _port_
                Specifies the port number to listen on.  The default is a
                user-specific number from 8000 to 8999.
    
           **-r off**
                Turns off DNS-SD service advertisements entirely.
    
           **-r** _subtype[,subtype]_
                Specifies the DNS-SD subtype(s) to advertise.  Separate
                multiple subtypes with a comma.  The default is "_print".
    
           **-s** _speed[,color-speed]_
                Specifies the printer speed in pages per minute.  If two
                numbers are specified and the second number is greater than
                zero, the server will report support for color printing.  The
                default is "10,0".
    
           **-v[vvv]**
                Be (very) verbose when logging activity to standard error.
    


## EXIT STATUS



           The **ippeveprinter** program returns 1 if it is unable to process the
           command-line arguments or register the IPP service.  Otherwise
           **ippeveprinter** will run continuously until terminated.
    


## CONFORMING TO



           The **ippeveprinter** program is unique to CUPS and conforms to the
           IPP Everywhere (PWG 5100.14) specification.
    


## ENVIRONMENT



           **ippeveprinter** adds environment variables starting with "IPP_" for
           all IPP Job attributes in the print request.  For example, when
           executing a command for an IPP Job containing the "media" Job
           Template attribute, the "IPP_MEDIA" environment variable will be
           set to the value of that attribute.
    
           In addition, all IPP "xxx-default" and "pwg-xxx" Printer
           Description attributes are added to the environment.  For example,
           the "IPP_MEDIA_DEFAULT" environment variable will be set to the
           default value for the "media" Job Template attribute.
    
           Enumerated values are converted to their keyword equivalents.  For
           example, a "print-quality" Job Template attribute with a enum
           value of 3 will become the "IPP_PRINT_QUALITY" environment
           variable with a value of "draft".  This string conversion only
           happens for standard Job Template attributes, currently
           "finishings", "orientation-requested", and "print-quality".
    
           Finally, the "CONTENT_TYPE" environment variable contains the MIME
           media type of the document being printed, the "DEVICE_URI"
           environment variable contains the device URI as specified with the
           "-D" option, the "OUTPUT_FORMAT" environment variable contains the
           output MIME media type, and the "PPD" environment variable
           contains the PPD filename as specified with the "-P" option.
    


## COMMAND OUTPUT



           Unless they communicate directly with a printer, print commands
           send printer-ready data to the standard output.
    
           Print commands can send messages back to **ippeveprinter** on the
           standard error with one of the following prefixes:
    
           **ATTR:**_attribute=value[ attribute=value]_
                Sets the named attribute(s) to the given values.  Currently
                only the "job-impressions" and "job-impressions-completed"
                Job Status attributes and the "marker-xxx", "printer-alert",
                "printer-alert-description", "printer-supply", and "printer-
                supply-description" Printer Status attributes can be set.
    
           **DEBUG:**_Debugging message_
                Logs a debugging message if at least two -v's have been
                specified.
    
           **ERROR:**_Error message_
                Logs an error message and copies the message to the "job-
                state-message" attribute.
    
           **INFO:**_Informational message_
                Logs an informational/progress message if -v has been
                specified and copies the message to the "job-state-message"
                attribute unless an error has been reported.
    
           **STATE:**_keyword[,keyword,...]_
                Sets the printer's "printer-state-reasons" attribute to the
                listed keywords.
    
           **STATE: -**_keyword[,keyword,...]_
                Removes the listed keywords from the printer's "printer-
                state-reasons" attribute.
    
           **STATE: +**_keyword[,keyword,...]_
                Adds the listed keywords to the printer's "printer-state-
                reasons" attribute.
    


## EXAMPLES



           Run **ippeveprinter** with a service name of My Cool Printer:
    
               ippeveprinter "My Cool Printer"
    
           Run the file(1) command whenever a job is sent to the server:
    
               ippeveprinter -c /usr/bin/file "My Cool Printer"
    


* * *