ipp3dprinter1
An ipp 3d printer application
Usage
ipp3dprinter [--help]
[--no-web-forms]
[--version]
[-D
device-uri]
[-K
keypath]
[-M
manufacturer]
[-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]]
[-v
[vvv]]
service-name
Overview
ipp3dprinter is a simple Internet Printing Protocol (IPP) server conforming to the IPP 3D Printing Extensions (PWG 5100.21) 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 ipp3dprinter:
-
--help -
Show program usage.
-
--no-web-forms -
Disable the web interface forms used to update the media and supply levels.
-
--version -
Show the CUPS version.
-
-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,
ipp3dprinterwill create an output file using the job ID and name.
-
-M manufacturer -
Set the manufacturer of the printer. The default is "Example".
-
-c command -
Run the specified command for each document that is printed. If "command" is not an absolute path ("/path/to/command"),
ipp3dprinterlooks for the command in the "command" subdirectory of the CUPS binary directory, typically /usr/lib/cups/command or /usr/libexec/cups/command. The cups-config(1) command can be used to discover the correct binary directory ("cups-config --serverbin"). 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 subtype[,subtype] -
Specifies the DNS-SD subtype(s) to advertise. Separate multiple subtypes with a comma. The default is "_print".
-
-v[vvv] -
Be (very) verbose when logging activity to standard error.
Exit status
The ipp3dprinter program returns 1 if it is unable to process the command-line arguments or register the IPP service. Otherwise ipp3dprinter will run continuously until terminated.
Environment
ipp3dprinter 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 "materials-col" Job Template attribute, the "IPP_MATERIALS_COL" 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_MATERIALS_COL_DEFAULT" environment variable will be set to the default value for the "materials-col" 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" and "print-quality".
Finally, the "CONTENT_TYPE" environment variable contains the MIME media type of the document being printed and the "DEVICE_URI" environment variable contains the device URI as specified with the "-D" 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 ipp3dprinter 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 "printer-alert" and "printer-alert-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 ipp3dprinter with a service name of My Cool Printer:
ipp3dprinter "My Cool Printer"
Run the file(1) command whenever a job is sent to the server:
ipp3dprinter -c /usr/bin/file "My Cool Printer"