|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
|
<html>
|
|
|
<!-- SECTION: Specifications -->
|
|
|
<head>
|
|
|
<title>CUPS Command File Format</title>
|
|
|
<meta name='keywords' content='Programming, CUPS Command File Format'>
|
|
|
<link rel='stylesheet' type='text/css' href='../cups-printable.css'>
|
|
|
</head>
|
|
|
<body>
|
|
|
<!--
|
|
|
CUPS command file format specification for CUPS.
|
|
|
|
|
|
Copyright © 2007-2018 by Apple Inc.
|
|
|
Copyright © 1997-2006 by Easy Software Products.
|
|
|
|
|
|
Licensed under Apache License v2.0. See the file "LICENSE" for more
|
|
|
information.
|
|
|
-->
|
|
|
|
|
|
<H1 CLASS="title">CUPS Command File Format</H1>
|
|
|
|
|
|
<h2 class='title'><a name='INTRODUCTION'>Introduction</a></h2>
|
|
|
|
|
|
<p>This specification describes the CUPS command file format
|
|
|
(application/vnd.cups-command) which is used to send printer
|
|
|
maintenance commands to a printer in a device-independent way.
|
|
|
The current specification supports basic maintenance functions
|
|
|
such as head cleaning and self-test pages and query functions
|
|
|
such as auto-configure, report supply levels, and report status.</p>
|
|
|
|
|
|
<p>Printer drivers advertise support for the CUPS command file
|
|
|
format by providing a filter for the
|
|
|
<var>application/vnd.cups-command</var> file type. Applications
|
|
|
can determine if a printer supports printing of CUPS command
|
|
|
files by checking the <code>printer-type</code> attribute for the
|
|
|
<code>CUPS_PRINTER_COMMANDS</code> capability bit.</p>
|
|
|
|
|
|
<p>In addition, the PPD file for a printer can contain a
|
|
|
<code>cupsCommands</code> keyword that provides a list of supported
|
|
|
commands separated by spaces, for example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
*cupsCommands: "AutoConfigure Clean PrintSelfTestPage ReportLevels ReportStatus"
|
|
|
</pre>
|
|
|
|
|
|
<p>If no <code>cupsCommands</code> keyword is provided, the command filter
|
|
|
must support <a href='#AutoConfigure'><code>AutoConfigure</code></a>,
|
|
|
<a href='#Clean'><code>Clean</code></a>,
|
|
|
<a href='#PrintSelfTestPage'><code>PrintSelfTestPage</code></a>,
|
|
|
and <a href='#ReportLevels'><code>ReportLevels</code></a>. The scheduler also
|
|
|
provides the <code>printer-commands</code> attribute containing the list of
|
|
|
supported commands.</p>
|
|
|
|
|
|
|
|
|
<h2 class='title'><a name='SYNTAX'>File Syntax</a></h2>
|
|
|
|
|
|
<p>CUPS command files are ASCII text files. The first line of a
|
|
|
CUPS command file MUST contain:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
</pre>
|
|
|
|
|
|
<p>After that, each line is either a command or a comment.
|
|
|
Comments begin with the # character, e.g.:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
# This is a comment
|
|
|
</pre>
|
|
|
|
|
|
<p>Commands are any sequence of letters, numbers, and punctuation characters
|
|
|
optionally followed by parameters separated by whitespace, e.g.:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
Clean all
|
|
|
PrintSelfTestPage
|
|
|
</pre>
|
|
|
|
|
|
<p>Command names are case-insensitive, so "PRINTSELFTESTPAGE",
|
|
|
"printselftestpage", and "PrintSelfTestPage" are equivalent. Vendor-specific
|
|
|
commands should use a domain name prefix, e.g.:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
com.vendor.foo
|
|
|
com.vendor.bar param param2 ... paramN
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h2 class='title'><a name='COMMANDS'>Standard Commands</a></h2>
|
|
|
|
|
|
<p>The following are the standard commands supported by the format. The only
|
|
|
required command is
|
|
|
<a href='#PrintSelfTestPage'><code>PrintSelfTestPage</code></a>.</p>
|
|
|
|
|
|
|
|
|
<h3><a name='AutoConfigure'>AutoConfigure</a></h3>
|
|
|
|
|
|
<p class='summary'>AutoConfigure</p>
|
|
|
|
|
|
<p>The <code>AutoConfigure</code> command updates the printer's PPD file
|
|
|
and driver state information to reflect the current configuration of the
|
|
|
printer. There are no arguments for this command.</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
AutoConfigure
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h3><a name='Clean'>Clean</a></h3>
|
|
|
|
|
|
<p class='summary'>Clean <i>colorname</i></p>
|
|
|
|
|
|
<p>The <code>Clean</code> command performs a standard print head cleaning. The
|
|
|
"colorname" parameter specifies which color or head to clean. If a printer does
|
|
|
not support cleaning of individual colors or cartridges, then all colors are
|
|
|
cleaned. Command filters MUST support the "all" colorname. Other standard color
|
|
|
names include "black", "color", "photo", "cyan", "magenta", "yellow",
|
|
|
"light-cyan", "light-magenta", "light-black", "light-gray", and "dark-gray".</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
Clean all
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h3><a name='PrintAlignmentPage'>PrintAlignmentPage</a></h3>
|
|
|
|
|
|
<p class='summary'>PrintAlignmentPage pass</p>
|
|
|
|
|
|
<p>The <code>PrintAlignmentPage</code> command prints a head alignment page on
|
|
|
the printer. The "pass" parameter provides a pass number from 1 to N. The number
|
|
|
of passes is device-dependent.</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
PrintAlignmentPage 1
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h3><a name='PrintSelfTestPage'>PrintSelfTestPage</a></h3>
|
|
|
|
|
|
<p class='summary'>PrintSelfTestPage</p>
|
|
|
|
|
|
<p>The <code>PrintSelfTestPage</code> command prints a self-test page on the
|
|
|
printer. Typically this page shows whether all jets on a print head are
|
|
|
functioning and that the print feed mechanisms are working properly.</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
PrintSelfTestPage
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h3><a name='ReportLevels'>ReportLevels</a></h3>
|
|
|
|
|
|
<p class='summary'>ReportLevels</p>
|
|
|
|
|
|
<p>The <code>ReportLevels</code> command queries the supply levels on a printer
|
|
|
and reports "marker-colors", "marker-levels", "marker-names", and
|
|
|
"marker-types" attributes using "ATTR:" messages sent to the scheduler. This
|
|
|
command should also report the current printer status using "STATE:" messages
|
|
|
like the <a href='#ReportStatus'><code>ReportStatus</code></a> command.</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
ReportLevels
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h3><a name='ReportStatus'>ReportStatus</a></h3>
|
|
|
|
|
|
<p class='summary'>ReportStatus</p>
|
|
|
|
|
|
<p>The <code>ReportStatus</code> command queries the printer for its current
|
|
|
status and reports it using "STATE:" messages sent to the scheduler.</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
ReportLevels
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
<h3><a name='SetAlignment'>SetAlignment</a></h3>
|
|
|
|
|
|
<p class='summary'>SetAlignment pass value ... valueN</p>
|
|
|
|
|
|
<p>The <code>SetAlignment</code> command sets print head alignment values. The
|
|
|
"pass" parameter is a number from 1 to N. All parameters are
|
|
|
device-dependent.</p>
|
|
|
|
|
|
<p>Example:</p>
|
|
|
|
|
|
<pre class='command'>
|
|
|
#CUPS-COMMAND
|
|
|
SetAlignment 1 14
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
</body>
|
|
|
</html>
|