ippeveprinter(1)
๐ ippeveprinter(1) ๐
okay so bestie, this is the OpenPrinting manual page for ippeveprinter(1) and honestly? it's giving "tiny IPP server that could". let's get into it ๐ซถ
โจ NAME โจ
ippeveprinter โ an ipp everywhere printer application for cups. yes, that's the whole name. short, iconic, no notes. ๐
๐ธ 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 ๐ฆ
so ippeveprinter is a simple Internet Printing Protocol (IPP) server that conforms to the IPP Everywhere (PWG 5100.14) specification. she's not doing the most, she's doing exactly enough. ๐
you can use her to test client software, or as a very basic print server that runs a command for every job that gets printed. like, every single job. no skips. ๐
โญ OPTIONS โญ
here's every flag ippeveprinter recognizes. read them all, bestie, they're all important:
--helpโ show program usage. that's it. that's the whole thing. ๐--no-web-formsโ disables the web interface forms that are normally used to update the media and supply levels. no more form girlies. ๐--pam-service serviceโ set the PAM service name. the default service is"cups".--versionโ show the CUPS version. slay.-2โ report support for two-sided (duplex) printing. double-sided queen energy. ๐-Aโ enable authentication for the created printer.ippeveprinteruses PAM to authenticate HTTP Basic credentials.-D device-uriโ set the device URI for print output. that URI can be a filename, a directory, or a network socket URI shaped like"socket://ADDRESS[:PORT]"(and the default port number there is9100). when you specify a directory,ippeveprintercreates an output file using the job ID and name. cute, organized, on brand. ๐-F output-type/subtype[,...]โ specifies the output MIME media type. the default is"application/postscript"when the-Poption is specified.-M manufacturerโ set the manufacturer of the printer. the default is"Example".-P filename.ppdโ load printer attributes from the specified PPD file. this option is typically used together with the ippeveps(7) printer command (-c ippeveps). dynamic duo fr fr.-V 1.1-V 2.0โ specifies the maximum IPP version to report.2.0is the default. ๐-c commandโ run the specified command for each document that is printed. if"command"is not an absolute path (/path/to/command),ippeveprintergoes looking for the command in the"command"subdirectory of the CUPS binary directory โ typically/usr/lib/cups/commandor/usr/libexec/cups/command. you can use the cups-config(1) command to discover the correct binary directory (cups-config --serverbin). also, theCUPS_SERVERBINenvironment variable can 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. hoarder mode, but make it intentional. ๐-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 from8000to8999.-r offโ turns off DNS-SD service advertisements entirely. she's offline, respectfully. ๐-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. the more v's, the more she talks. ๐ฃ๏ธ
๐ EXIT STATUS ๐
ippeveprinter returns 1 if she's unable to process the command-line arguments or register the IPP service. otherwise, she just... keeps running. continuously. until she gets terminated. main character who never leaves the party. ๐ญ
๐ CONFORMING TO ๐
the ippeveprinter program is unique to CUPS and conforms to the IPP Everywhere (PWG 5100.14) specification. she's certified, she's spec-compliant, she's that girl. ๐ซถ
๐ง 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. no cap.
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 get 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". (yes, that's exactly three, and those are exactly them. ๐
)
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. that's the whole assignment.
print commands can also send messages back to ippeveprinter on the standard error, using one of these prefixes:
ATTR: attribute=value[ attribute=value]โ sets the named attribute(s) to the given values. right now 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-vhas 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.
the+and-are doing the absolute most here and honestly? respect. ๐
๐ 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"
๐ SEE ALSO ๐
ippevepcl(7), ippeveps(7), PWG Internet Printing Protocol Workgroup (http://www.pwg.org/ipp)
๐ COPYRIGHT ๐
Copyright ยฉ 2020-2024 by OpenPrinting.
and that's the whole page bestie โ this one's from CUPS, dated 2021-02-28, and it goes out to ippeveprinter(1) herself. go run her, she's literally waiting. ๐ฆโจ๐
๐ฆ where this page comes from
- alpine 3.22: cups-doc 2.4.18-r0 ยท Apache-2.0
- alpine 3.23: cups-doc 2.4.18-r0 ยท Apache-2.0
- alpine 3.24: cups-doc 2.4.19-r1 ยท Apache-2.0
- centos-stream 10: cups-printerapp 1:2.4.10-18.el10 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- debian trixie: cups-ipp-utils 2.4.10-3+deb13u1 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- debian trixie: cups-ipp-utils 2.4.10-3+deb13u2 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- fedora 43: cups-printerapp 1:2.4.14-2.fc43 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 43: cups-printerapp 1:2.4.19-3.fc43 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 44: cups-printerapp 1:2.4.16-7.fc44 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- fedora 44: cups-printerapp 1:2.4.19-3.fc44 ยท Apache-2.0 WITH LLVM-exception AND BSD-3-Clause AND Zlib AND BSD-2-Clause
- nixpkgs unstable: cups 2.4.19
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- opensuse-leap 16.0: cups 2.4.19-160000.2.1 ยท Apache-2.0
- ubuntu questing: cups-ipp-utils 2.4.12-0ubuntu3
- ubuntu questing: cups-ipp-utils 2.4.12-0ubuntu3.10
- ubuntu resolute: cups-ipp-utils 2.4.16-1ubuntu1 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- ubuntu resolute: cups-ipp-utils 2.4.16-1ubuntu1.3 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- ubuntu stonking: cups-ipp-utils 2.4.16-1ubuntu3 ยท Apache-2.0-with-GPL2-LGPL2-Exception
- Copyright ยฉ 2020-2024 by OpenPrinting
- Copyright ยฉ 2014-2019 by Apple Inc
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms