ipp3dprinter(1)

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, ipp3dprinter will 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"), ipp3dprinter looks 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"

Conforming to

The ipp3dprinter program is unique to CUPS and conforms to the IPP 3D Printing Extensions (PWG 5100.21) specification.

From ippsample-data 0.0~git20220607.72f89b3-1 in Debian 12 (Bookworm). Parsed by carta from the page's man source.