You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2450 lines
69 KiB

<HTML>
<!-- SECTION: References -->
<HEAD>
<TITLE>PPD Compiler Driver Information File Reference</TITLE>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="../cups-printable.css">
</HEAD>
<BODY>
<H1 CLASS="title">PPD Compiler Driver Information File Reference</H1>
<p>The CUPS PPD compiler reads meta files that contain descriptions
of one or more PPD files to be generated by
<a href="man-ppdc.html">ppdc(1)</a> or the corresponding driver interface
program <a href="man-drv.html">drv(1)</a>. The source file format is plain
ASCII text that can be edited using your favorite text editor.</p>
<p>Directives may be placed anywhere on a line and are followed by
zero or more values.</p>
<p>Comments are supported using the C (/* ... */) and C++ (// ...) comment
mechanisms.</p>
<p>Directives that accept expressions look for sequences of the form:</p>
<dl>
<dt>NAME</dt>
<dd>Evaluates to 1 if NAME is defined, otherwise 0.</dd>
<dt>number</dt>
<dd>Evaluates to the specified integer; the number can be preceded by
a leading sign (+/-) followed by a decimal number (1234), octal number
(01234), or hexadecimal number (0x1234) using the same rules as C and
C++.</dd>
<dt>(NAME NAME ... number number ...)</dt>
<dd>Evaluates to the bitwise OR of each named #define constant or
number.</dd>
<dt>(NAME == OTHERNAME)</dt>
<dt>(NAME == number)</dt>
<dd>Evaluates to 1 if NAME is equal to the other named constant or
number, otherwise 0.</dd>
<dt>(NAME != OTHERNAME)</dt>
<dt>(NAME != number)</dt>
<dd>Evaluates to 1 if NAME is not equal to the other named constant or
number, otherwise 0.</dd>
<dt>(NAME &lt; OTHERNAME)</dt>
<dt>(NAME &lt; number)</dt>
<dd>Evaluates to 1 if NAME is less than to the other named constant or
number, otherwise 0.</dd>
<dt>(NAME &lt;= OTHERNAME)</dt>
<dt>(NAME &lt;= number)</dt>
<dd>Evaluates to 1 if NAME is less than or equal to the other named
constant or number, otherwise 0.</dd>
<dt>(NAME &gt; OTHERNAME)</dt>
<dt>(NAME &gt; number)</dt>
<dd>Evaluates to 1 if NAME is greater than to the other named constant
or number, otherwise 0.</dd>
<dt>(NAME &gt;= OTHERNAME)</dt>
<dt>(NAME &gt;= number)</dt>
<dd>Evaluates to 1 if NAME is greater than or equal to the other named
constant or number, otherwise 0.</dd>
</dl>
<p>Printer driver information can be grouped and shared using
curly braces ({ ... }); PPD files are written when a close
brace or end-of-file is seen and a <a href="#PCFileName">PCFileName</a>
directive has been defined.</p>
<h2 class="title"><a name='_define'>#define</a></h2>
<h3>Syntax</h3>
<pre>
#define <i>name expression</i>
</pre>
<h3>Examples</h3>
<pre>
#define FOO 100
#define BAR "Bar, Inc."
</pre>
<h3>Description</h3>
<p>The <code>#define</code> directive assigns a value to a name
which can be later referenced using <code>$name</code>. The name is
case-insensitive and can be any sequence of letters, numbers,
and the underscore. The value can be any valid expression.</p>
<h3>Predefined Names</h3>
<p>The following <code>#define</code> names are set by the PPD compiler:</p>
<ul>
<li><code>CUPS_VERSION</code> - The full CUPS version string, e.g.
"1.4.0"</li>
<li><code>CUPS_VERSION_MAJOR</code> - The major version number, e.g.
"1"</li>
<li><code>CUPS_VERSION_MINOR</code> - The minor version number, e.g.
"4"</li>
<li><code>CUPS_VERSION_PATCH</code> - The patch version number, e.g.
"0"</li>
<li><code>PLATFORM_NAME</code> - The operating system name used by the
current system as reported by "uname" ("Windows" on Microsoft
Windows)</li>
<li><code>PLATFORM_ARCH</code> - The processor architecture used by the
current system as reported by "uname -m" ("X86" or "X64" on Microsoft
Windows)</li>
</ul>
<h3>See Also</h3>
<p><a href='#_include'><code>#include</code></a></p>
<h2 class="title"><a name='_elif'>#elif</a></h2>
<h3>Syntax</h3>
<pre>
#elif <i>expression</i>
</pre>
<h3>Examples</h3>
<pre>
#if HAVE_FOO
...
#elif (HAVE_BAR &gt;= 999)
...
#else
...
#endif
</pre>
<h3>Description</h3>
<p>The <code>#elif</code> directive allows portions of a driver information file
to be used conditionally. <code>#elif</code> directives must appear after a
corresponding <a href="#_if"><code>#if</code></a> directive.</p>
<h3>See Also</h3>
<p><a href='#_else'><code>#else</code></a>,
<a href='#_endif'><code>#endif</code></a>,
<a href='#_if'><code>#if</code></a></p>
<h2 class="title"><a name='_else'>#else</a></h2>
<h3>Syntax</h3>
<pre>
#else
</pre>
<h3>Examples</h3>
<pre>
#if HAVE_FOO
...
#elif (HAVE_BAR &gt;= 999)
...
#else
...
#endif
</pre>
<h3>Description</h3>
<p>The <code>#else</code> directive allows portions of a driver information file
to be used conditionally when the corresponding
<a href="#_if"><code>#if</code></a> and <a href="#_elif"><code>#elif</code></a>
expressions are non-zero.</p>
<h3>See Also</h3>
<p><a href='#_elif'><code>#elif</code></a>,
<a href='#_endif'><code>#endif</code></a>,
<a href='#_if'><code>#if</code></a></p>
<h2 class="title"><a name='_endif'>#endif</a></h2>
<h3>Syntax</h3>
<pre>
#endif
</pre>
<h3>Examples</h3>
<pre>
#if HAVE_FOO
...
#elif (HAVE_BAR &gt;= 999)
...
#else
...
#endif
</pre>
<h3>Description</h3>
<p>The <code>#endif</code> directive ends a conditional block of a driver
information file. It must appear after all of the
<a href="#_if"><code>#if</code></a>, <a href="#_elif"><code>#elif</code></a>,
and <a href="#_else"><code>#else</code></a> directives for the current
conditional block.</p>
<h3>See Also</h3>
<p><a href='#_elif'><code>#elif</code></a>,
<a href='#_else'><code>#else</code></a>,
<a href='#_if'><code>#if</code></a></p>
<h2 class="title"><a name='_font'>#font</a></h2>
<h3>Syntax</h3>
<pre>
#font <i>name encoding "version" charset status</i>
</pre>
<h3>Examples</h3>
<pre>
#font Courier Standard "(1.05)" Standard ROM
#font Symbol Special "(001.005)" Special ROM
#font Barcode-Foo Special "(1.0)" Special Disk
#font Unicode-Foo Expert "(2.0)" Adobe-Identity ROM
</pre>
<h3>Description</h3>
<p>The <code>#font</code> directive defines a "base font" for all
printer drivers. The name is the PostScript font name.</p>
<p>The encoding is the default encoding of the font, usually
<code>Standard</code>, <code>Expert</code>, or <code>Special</code>, as
defined in the Adobe PPD file specification.</p>
<p>The version is the PostScript string definition that
corresponds to the font version number.</p>
<p>The charset defines the available characters in the font,
usually <code>Standard</code> or <code>Special</code>, as defined in the
Adobe PPD file specification.</p>
<p>The status is the installation status of the font and must be
either the word <code>ROM</code> or <code>Disk</code>.
<p>Base fonts differ from fonts defined using the <a
href='#Font'><code>Font</code></a> directive in that they are not
automatically associated with all drivers - you must use the
special <code>Font *</code> directive to include them in a
driver.</p>
<p>Currently the <code>#font</code> directive is used mainly for
defining the standard raster fonts in the
<code>&lt;font.defs&gt;</code> include file.</p>
<h3>See Also</h3>
<p><a href='#_include'><code>#include</code></a>,
<a href='#Font'><code>Font</code></a></p>
<h2 class="title"><a name='_if'>#if</a></h2>
<h3>Syntax</h3>
<pre>
#if <i>name or expression</i>
</pre>
<h3>Examples</h3>
<pre>
#if HAVE_FOO
...
#elif (HAVE_BAR &gt;= 999)
...
#else
...
#endif
</pre>
<h3>Description</h3>
<p>The <code>#if</code> directive allows portions of a driver information file
to be used conditionally. When followed by a name, the data that follows is
used only when the name is defined, otherwise the data is ignored.
<code>#if</code> directives can be nested up to 100 times.</p>
<h3>See Also</h3>
<p><a href='#_elif'><code>#elif</code></a>,
<a href='#_else'><code>#else</code></a>,
<a href='#_endif'><code>#endif</code></a></p>
<h2 class="title"><a name='_include'>#include</a></h2>
<h3>Syntax</h3>
<pre>
#include &lt;<i>filename</i>&gt;
#include "<i>filename</i>"
</pre>
<h3>Examples</h3>
<pre>
#include &lt;font.defs&gt;
#include "myfile.h"
</pre>
<h3>Description</h3>
<p>The <code>#include</code> directive reads the named driver
information file. If the filename is included inside angle
brackets (<code>&lt;filename&gt;</code>), then the PPD compiler will
look for the file in all of the include directories it knows
about. Otherwise, the file is opened in the current directory
relative to the current driver information file, and if that
fails then it looks in the include directories for the file.</p>
<p>The <code>#include</code> directive can be nested to as many
files as are allowed by the host operating system, typically at
least 100 files.</p>
<h3>See Also</h3>
<p><a href='#_define'><code>#define</code></a>,
<a href='#_font'><code>#font</code></a>,
<a href='#_media'><code>#media</code></a></p>
<h2 class="title"><a name='_media'>#media</a></h2>
<h3>Syntax</h3>
<pre>
#media <i>name width length</i>
#media <i>"name/text" width length</i>
</pre>
<h3>Examples</h3>
<pre>
#media "Letter/Letter - 8.5x11in" 8.5in 11in
#media "A4/A4 - 210x297mm" 210mm 297mm
#media "w936h1368/Super B/A3 - 13x19in" 936 1368
#media Photo 4in 6in
</pre>
<h3>Description</h3>
<p>The <code>#media</code> directive defines a named media size for
inclusion in a driver. The name with optional user text defines
the name for the media size and is used with the <a
href='#MediaSize'><code>MediaSize</code></a> directive to associate
the media size with the driver. The name may contain up to 40 ASCII
characters within the range of decimal 33 to decimal 126 inclusive,
except for the characters comma (44), slash (47) and colon (58).
The user text, if supplied, may not exceed 80 bytes in length.</p>
<p>The width and length define the dimensions of the media. Each
number is optionally followed by one of the following unit
suffixes:</p>
<ul>
<li><code>cm</code> - centimeters</li>
<li><code>ft</code> - feet</li>
<li><code>in</code> - inches</li>
<li><code>m</code> - meters</li>
<li><code>mm</code> - millimeters</li>
<li><code>pt</code> - points (72 points = 1 inch)</li>
</ul>
<p>Points are assumed if no units are specified.
<h3>See Also</h3>
<p><a href='#_include'><code>#include</code></a>,
<a href='#CustomMedia'><code>CustomMedia</code></a>,
<a href='#MediaSize'><code>MediaSize</code></a></p>
<h2 class="title"><a name='_po'>#po</a></h2>
<h3>Syntax</h3>
<pre>
#po <i>locale filename</i>
</pre>
<h3>Examples</h3>
<pre>
#po es "es.po"
#po fr_CA "mydriver-fr_CA.po"
</pre>
<h3>Description</h3>
<p>The <code>#po</code> directive defines a message catalog to use for the
given POSIX language abbreviation. Multiple <code>#po</code> directives can be
specified to list multiple catalogs. The filename can be an absolute path or
relative to the driver information file. GNU gettext and macOS .strings
files are supported.</p>
<h2 class="title"><a name='Attribute'>Attribute</a></h2>
<h3>Syntax</h3>
<pre>
Attribute <i>name "" value</i>
Attribute <i>name keyword value</i>
Attribute <i>name "keyword/text" value</i>
</pre>
<h3>Examples</h3>
<pre>
Attribute cupsInkChannels "" 1
Attribute cupsAllDither 600dpi "1.0"
Attribute fooProfile "Photo/Photographic Profile" "photopro.icc"
</pre>
<h3>Description</h3>
<p>The <code>Attribute</code> directive creates a PPD attribute. The
name may contain up to 40 ASCII characters within the range of decimal
33 to decimal 126 inclusive, except for the characters comma (44),
slash (47) and colon (58).</p>
<p>The selector can be the empty string (<code>""</code>) or text of up
to 80 bytes.</p>
<p>The value is any string or number; the string may contain multiple
lines, however no one line may exceed 255 bytes.</p>
<h3>See Also</h3>
<p><a href="#LocAttribute"><code>LocAttribute</code></a></p>
<h2 class="title"><a name='Choice'>Choice</a></h2>
<h3>Syntax</h3>
<pre>
Choice <i>name "code"</i>
Choice <i>"name/text" "code"</i>
</pre>
<h3>Examples</h3>
<pre>
Choice None "&lt;&lt;/MediaType (None)&gt;&gt;setpagedevice"
Choice "False/No" "&lt;&lt;/cupsCompression 0&gt;&gt;setpagedevice"
</pre>
<h3>Description</h3>
<p>The <code>Choice</code> directive adds a single choice to the
current option. The name may contain up to 40 ASCII characters within
the range of decimal 33 to decimal 126 inclusive, except for the
characters comma (44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes
in length. If no text is provided, the name is used.</p>
<p>The code is any string and may contain multiple lines,
however no one line may exceed 255 bytes.</p>
<h3>See Also</h3>
<p><a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='ColorDevice'>ColorDevice</a></h2>
<h3>Syntax</h3>
<pre>
ColorDevice <i>boolean-value</i>
</pre>
<h3>Examples</h3>
<pre>
ColorDevice no
ColorDevice yes
</pre>
<h3>Description</h3>
<p>The <code>ColorDevice</code> directive tells the application if
the printer supports color. It is typically used in conjunction
with the <a href='#ColorModel'><code>ColorModel</code></a> directive
to provide color printing support.</p>
<h3>See Also</h3>
<p><a href='#ColorModel'><code>ColorModel</code></a></p>
<h2 class="title"><span class="info">Deprecated</span><a name='ColorModel'>ColorModel</a></h2>
<h3>Syntax</h3>
<pre>
ColorModel <i>name colorspace colororder compression</i>
ColorModel <i>"name/text" colorspace colororder compression</i>
</pre>
<h3>Examples</h3>
<pre>
ColorModel Gray/Grayscale w chunky 0
ColorModel RGB/Color rgb chunky 0
ColorModel CMYK cmyk chunky 0
</pre>
<h3>Description</h3>
<p>The <code>ColorModel</code> directive is a convenience directive
which creates a ColorModel option and choice for the current
printer driver. The name may contain up to 40 ASCII characters within
the range of decimal 33 to decimal 126 inclusive, except for the
characters comma (44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<p>The colorspace argument is one of the standard colorspace
keywords defined later in this appendix in the section titled,
"<a href='#REF_COLOR_SPACE'>Colorspace Keywords</a>".</p>
<P>The colororder argument is one of the standard color order
keywords defined later in this appendix in the section titled,
"<a href='#REF_COLOR_ORDER'>Color Order Keywords</a>".</p>
<p>The compression argument is any number and is assigned to the
<code>cupsCompression</code> attribute in the PostScript page device
dictionary.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorDevice'><code>ColorDevice</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><span class="info">Deprecated</span><a name='ColorProfile'>ColorProfile</a></h2>
<h3>Syntax</h3>
<pre>
ColorProfile <i>resolution/mediatype gamma density matrix</i>
</pre>
<h3>Examples</h3>
<pre>
ColorProfile -/- 1.7 1.0
1.0 0.0 0.0
0.0 1.0 0.0
0.0 0.0 1.0
ColorProfile 360dpi/- 1.6 1.0
1.0 -0.05 -0.3
-0.35 1.0 -0.15
-0.095 -0.238 0.95
ColorProfile 720dpi/Special 1.5 1.0
1.0 0.0 -0.38
-0.4 1.0 0.0
0.0 -0.38 0.9
</pre>
<h3>Description</h3>
<p>The <code>ColorProfile</code> directive defines a CMY
transform-based color profile. The resolution and mediatype
arguments specify the <code>Resolution</code> and <code>MediaType</code>
choices which use the profile; the hyphen (<code>-</code>) is used to
specify that any resolution or mediatype can be used with the
profile.</p>
<p>The gamma argument specifies the gamma correction to apply to
the color values (P = p<sup>g</sup>) and is a real number
greater than 0. Values larger than 1 cause a general lightening
of the print while values smaller than 1 cause a general
darkening of the print. A value of 1 disables gamma
correction.</p>
<p>The density argument specifies the linear density correction
to apply to the color values (P = d * p<sup>g</sup>) and is a
real number greater than 0 and less than or equal to 1. A value
1 of disables density correction while lower values produce
proportionately lighter output.</p>
<p>The matrix argument specifies a 3x3 linear transformation
matrix in row-major order. The matrix is applied only to the CMY
component of a RGB to CMYK transformation and is not used when
printing in grayscale or CMYK mode unless the printer only
supports printing with 3 colors.</p>
<h3>See Also</h3>
<p><a href='#SimpleColorProfile'><code>SimpleColorProfile</code></a></p>
<h2 class="title"><a name='Copyright'>Copyright</a></h2>
<h3>Syntax</h3>
<pre>
Copyright <i>"text"</i>
</pre>
<h3>Examples</h3>
<pre>
Copyright "Copyright 2008 by Foo Enterprises"
Copyright
"This software is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This software is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this software; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111 USA"
</pre>
<h3>Description</h3>
<p>The <code>Copyright</code> directive adds text comments to the
top of a PPD file, typically for use in copyright notices. The
text argument can contain multiple lines of text, but no line
may exceed 255 bytes.</p>
<h2 class="title"><a name='CustomMedia'>CustomMedia</a></h2>
<h3>Syntax</h3>
<pre>
CustomMedia <i>name width length left bottom right top
"size-code" "region-code"</i>
CustomMedia <i>"name/text" width length left bottom right top
"size-code" "region-code"</i>
</pre>
<h3>Examples</h3>
<pre>
CustomMedia Letter 8.5in 11in 0.25in 0.46in 0.25in 0.04in
"&lt;&lt;/PageSize[612 792]/ImagingBBox null/ManualFeed false&gt;&gt;
setpagedevice"
"&lt;&lt;/PageSize[612 792]/ImagingBBox null/ManualFeed true&gt;&gt;
setpagedevice"
CustomMedia "A4/A4 - 210x297mm" 210mm 297mm 12 12 12 12
"&lt;&lt;/PageSize[595 842]/ImagingBBox null&gt;&gt;setpagedevice"
"&lt;&lt;/PageSize[595 842]/ImagingBBox null&gt;&gt;setpagedevice"
</pre>
<h3>Description</h3>
<p>The <code>CustomMedia</code> directive adds a custom media size to
the driver. The name may contain up to 40 ASCII characters within the
range of decimal 33 to decimal 126 inclusive, except for the characters
comma (44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<p>The width and length arguments specify the dimensions of the
media as defined for the <a href="#_media"><code>#media</code></a>
directive.</p>
<p>The left, bottom, right, and top arguments specify the
printable margins of the media.</p>
<p>The size-code and region-code arguments specify the
PostScript commands to run for the <code>PageSize</code> and
<code>PageRegion</code> options, respectively. The commands can
contain multiple lines, however no line may be more than 255
bytes in length.</p>
<h3>See Also</h3>
<p><a href='#_media'><code>#media</code></a>,
<a href='#MediaSize'><code>MediaSize</code></a></p>
<h2 class="title"><a name='Cutter'>Cutter</a></h2>
<h3>Syntax</h3>
<pre>
Cutter <i>boolean-value</i>
</pre>
<h3>Examples</h3>
<pre>
Cutter yes
Cutter no
</pre>
<h3>Description</h3>
<p>The <code>Cutter</code> directive specifies whether the printer
has a built-in media cutter. When a cutter is present, the
printer's PPD file will contain a <code>CutMedia</code> option that
allows the user to control whether the media is cut at the end
of the job.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><span class="info">Deprecated</span><a name='Darkness'>Darkness</a></h2>
<h3>Syntax</h3>
<pre>
Darkness <i>temperature name</i>
Darkness <i>temperature "name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
Darkness 0 Light
Darkness 2 "Normal/Standard"
</pre>
<h3>Description</h3>
<p>The <code>Darkness</code> directive defines a choice for the
<code>cupsDarkness</code> option which sets the
<code>cupsCompression</code> attribute in the PostScript page device
dictionary. It is used with the CUPS <VAR>rastertolabel</VAR>
sample driver to control the print head temperature and
therefore the darkness of the print.</p>
<p>The temperature argument specifies a temperature value for
the Dymo driver from 0 (lowest) to 3 (highest), with 2
representing the normal setting.</p>
<p>The name may contain up to 40 ASCII characters within the range of
decimal 33 to decimal 126 inclusive, except for the characters comma
(44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='DriverType'>DriverType</a></h2>
<h3>Syntax</h3>
<pre>
DriverType <i>type</i>
</pre>
<h3>Examples</h3>
<pre>
DriverType custom
DriverType escp
DriverType pcl
DriverType ps
</pre>
<h3>Description</h3>
<p>The <code>DriverType</code> directive tells the PPD compiler
which DDK filters to include in the PPD file. The following
types are supported:</p>
<ul>
<li><code>custom</code> - Use only those filters that are
defined in the driver information file</li>
<li><code>epson</code> - Use the CUPS sample Epson driver filter
<var>rastertoepson</var></li>
<li><code>escp</code> - Use the ESC/P DDK driver filters
<var>commandtoescpx</var> and
<var>rastertoescpx</var></li>
<li><code>hp</code> - Use the CUPS sample HP driver filter
<var>rastertohp</var></li>
<li><code>label</code> - Use the CUPS sample label driver filter <var>rastertolabel</var></li>
<li><code>pcl</code> - Use the HP-PCL DDK driver filters
<var>commandtopclx</var> and
<var>rastertopclx</var></li>
<li><code>ps</code> - Use no filters; this driver is for a
standard PostScript device</li>
</ul>
<h3>See Also</h3>
<p><a href='#Filter'><code>Filter</code></a>,
<a href='#ModelNumber'><code>ModelNumber</code></a></p>
<h2 class="title"><a name='Duplex'>Duplex</a></h2>
<h3>Syntax</h3>
<pre>
Duplex <i>type</i>
</pre>
<h3>Examples</h3>
<pre>
Duplex none
Duplex normal
Duplex flip
Duplex rotated
Duplex manualtumble
</pre>
<h3>Description</h3>
<p>The <code>Duplex</code> directive determines whether double-sided printing
is supported in the current driver. The type argument specifies the type
of duplexing that is supported:</p>
<ul>
<li><code>none</code> - double-sided printing is not
supported</li>
<li><code>normal</code> - double-sided printing is
supported</li>
<li><code>flip</code> - double-sided printing is supported,
but the back side image needs to be flipped vertically
(used primarily with inkjet printers)</li>
<li><code>rotated</code> - double-sided printing is supported,
but the back side image needs to be rotated 180 degrees for
DuplexNoTumble</li>
<li><code>manualtumble</code> - double-sided printing is supported,
but the back side image needs to be rotated 180 degrees for
DuplexTumble</li>
</ul>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='FileName'>FileName</a></h2>
<h3>Syntax</h3>
<pre>
FileName <i>"filename"</i>
</pre>
<h3>Examples</h3>
<pre>
FileName "Acme Laser Printer 2000"
FileName "Acme Ink Waster 1000"
</pre>
<h3>Description</h3>
<p>The <code>FileName</code> attribute specifies the "long" name of the
PPD file for the current driver.</p>
<h3>See Also</h3>
<p><a href='#Manufacturer'><code>Manufacturer</code></a>,
<a href='#ModelName'><code>ModelName</code></a>,
<a href="#PCFileName"><code>PCFileName</code></a>,
<a href='#Version'><code>Version</code></a></p>
<h2 class="title"><a name='Filter'>Filter</a></h2>
<h3>Syntax</h3>
<pre>
Filter <i>mime-type cost program</i>
</pre>
<h3>Examples</h3>
<pre>
Filter application/vnd.cups-raster 50 rastertofoo
Filter application/vnd.hp-HPGL 25 /usr/foo/filter/hpgltofoo
</pre>
<h3>Description</h3>
<p>The <code>Filter</code> directive adds a filter for the current
driver. The mime-type argument is a valid MIME media type name
as defined in a CUPS <var>mime.types</var> file.</p>
<p>The cost argument specifies the relative cost of the filter.
In general, use a number representing the average percentage of
CPU time that is used when printing the specified MIME media
type.</p>
<p>The program argument specifies the program to run; if the
program is not an absolute filename, then CUPS will look for the
program in the CUPS filter directory.</p>
<h3>See Also</h3>
<p><a href='#DriverType'><code>DriverType</code></a></p>
<h2 class="title"><span class="info">Deprecated</span><a name='Finishing'>Finishing</a></h2>
<h3>Syntax</h3>
<pre>
Finishing <i>name</i>
Finishing <i>"name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
Finishing None
Finishing "Glossy/Photo Overcoat"
</pre>
<h3>Description</h3>
<p>The <code>Finishing</code> directive adds a choice to the
<code>cupsFinishing</code> option. The name may contain up to 40 ASCII
characters within the range of decimal 33 to decimal 126 inclusive,
except for the characters comma (44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<p>The name is stored in the <code>OutputType</code> attribute in the
PostScript page device dictionary.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='Font'>Font</a></h2>
<h3>Syntax</h3>
<pre>
Font <i>name encoding "version" charset status</i>
Font *
</pre>
<h3>Examples</h3>
<pre>
Font *
Font Courier Standard "(1.05)" Standard ROM
Font Symbol Special "(001.005)" Special ROM
Font Barcode-Foo Special "(1.0)" Special Disk
Font Unicode-Foo Expert "(2.0)" Adobe-Identity ROM
</pre>
<h3>Description</h3>
<p>The <code>Font</code> directive defines a "device font" for the
current printer driver. The name is the PostScript font name.</p>
<p>The encoding is the default encoding of the font, usually
<code>Standard</code>, <code>Expert</code>, or <code>Special</code>, as
defined in the Adobe PPD file specification.</p>
<p>The version is the PostScript string definition that
corresponds to the font version number.</p>
<p>The charset defines the available characters in the font,
usually <code>Standard</code> or <code>Special</code>, as defined in the
Adobe PPD file specification.</p>
<p>The status is the installation status of the font and must be
either the word <code>ROM</code> or <code>Disk</code>.</p>
<p>Device fonts differ from fonts defined using the <a
href='#_font'><code>#font</code></a> directive in that they are
automatically associated with the current driver. Fonts defined
using <code>#font</code> may be imported into the current driver
using the <code>Font *</code> form of this directive.</p>
<h3>See Also</h3>
<p><a href='#_font'><code>#font</code></a></p>
<h2 class="title"><a name='Group'>Group</a></h2>
<h3>Syntax</h3>
<pre>
Group <i>name</i>
Group <i>"name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
Group General
Group "InstallableOptions/Options Installed"
Group "Special/Vendor Options"
</pre>
<h3>Description</h3>
<p>The <code>Group</code> directive specifies the group for new
<code>Option</code> directives. The name may contain up to 40 ASCII
characters within the range of decimal 33 to decimal 126 inclusive,
except for the characters comma (44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 40 bytes in length.
If no text is provided, the name is used.</p>
<p>The names <code>General</code> and <code>InstallableOptions</code>
are predefined for the standard Adobe UI keywords and for installable
options, respectively.</p>
<center><table width='80%' border='1' bgcolor='#cccccc' cellpadding='5' cellspacing='0'>
<tr>
<td align='justify'><b>Note:</b>
<p>Because of certain API binary compatibility issues,
CUPS limits the length of PPD group translation strings
(text) to 40 bytes, while the PPD specification
allows for up to 80 bytes.</p>
</td>
</tr>
</table></center>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='HWMargins'>HWMargins</a></h2>
<h3>Syntax</h3>
<pre>
HWMargins <i>left bottom right top</i>
</pre>
<h3>Examples</h3>
<pre>
HWMargins 18 36 18 36
HWMargins 0.25in 0.5in 0.25in 0.5in
HWMargins 0.6cm 1.2cm 0.6cm 1.2cm
</pre>
<h3>Description</h3>
<p>The <code>HWMargins</code> directive specifies the current
margins for <a href='#MediaSize'><code>MediaSize</code></a> that
follow. The left, bottom, right, and top margin values specify
the printable margins.</p>
<h3>See Also</h3>
<p><a href='#MediaSize'><code>MediaSize</code></a></p>
<h2 class="title"><a name='InputSlot'>InputSlot</a></h2>
<h3>Syntax</h3>
<pre>
InputSlot <i>position name</i>
InputSlot <i>position "name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
InputSlot 0 Auto
InputSlot 1 "Upper/Tray 1"
</pre>
<h3>Description</h3>
<p>The <code>InputSlot</code> directive adds a new choice to the
<code>InputSlot</code> option. The position argument is a number
from 0 to 2<sup>32</sup>-1 specifying the value that is placed
in the <code>MediaPosition</code> attribute in the PostScript page
device dictionary.</p>
<p>The name may contain up to 40 ASCII characters within the range of
decimal 33 to decimal 126 inclusive, except for the characters comma
(44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='Installable'>Installable</a></h2>
<h3>Syntax</h3>
<pre>
Installable <i>name</i>
Installable <i>"name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
Installable EnvTray
Installable "Option1/Duplexer Installed"
</pre>
<h3>Description</h3>
<p>The <code>Installable</code> directive adds a new boolean option
to the <code>InstallableOptions</code> group with a default value of
<code>False</code>. The name may contain up to 40 ASCII characters
within the range of decimal 33 to decimal 126 inclusive, except for
the characters comma (44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<h2 class="title"><a name='LocAttribute'>LocAttribute</a></h2>
<h3>Syntax</h3>
<pre>
LocAttribute <i>name "keyword/text" value</i>
</pre>
<h3>Examples</h3>
<pre>
LocAttribute fooProfile "Photo/Photographic Profile" "photopro.icc"
</pre>
<h3>Description</h3>
<p>The <code>LocAttribute</code> directive creates a localized PPD
attribute. The name may contain up to 40 ASCII characters within the
range of decimal 33 to decimal 126 inclusive, except for the characters
comma (44), slash (47) and colon (58).</p>
<p>The selector can be the empty string (<code>""</code>) or text of up
to 80 bytes.</p>
<p>The value is any string or number; the string may contain multiple
lines, however no one line may exceed 255 bytes.</p>
<h3>See Also</h3>
<p><a href="#Attribute"><code>Attribute</code></a></p>
<h2 class="title"><a name='ManualCopies'>ManualCopies</a></h2>
<h3>Syntax</h3>
<pre>
ManualCopies <i>boolean-value</i>
</pre>
<h3>Examples</h3>
<pre>
ManualCopies no
ManualCopies yes
</pre>
<h3>Description</h3>
<p>The <code>ManualCopies</code> directive specifies whether copies
need to be produced by the RIP filters. The default is
<code>no</code>.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='Manufacturer'>Manufacturer</a></h2>
<h3>Syntax</h3>
<pre>
Manufacturer <i>"name"</i>
</pre>
<h3>Examples</h3>
<pre>
Manufacturer "Foo"
Manufacturer "HP"
</pre>
<h3>Description</h3>
<p>The <code>Manufacturer</code> directive specifies the
manufacturer name for the current driver. The name argument must
conform to the manufacturer name requirements in the Adobe PPD
file specification.</p>
<h3>See Also</h3>
<p><a href="#FileName"><code>FileName</code></a>,
<a href='#ModelName'><code>ModelName</code></a>,
<a href='#PCFileName'><code>PCFileName</code></a>,
<a href='#Version'><code>Version</code></a></p>
<h2 class="title"><a name='MaxSize'>MaxSize</a></h2>
<h3>Syntax</h3>
<pre>
MaxSize <i>width length</i>
</pre>
<h3>Examples</h3>
<pre>
MaxSize 36in 100ft
MaxSize 300cm 30m
</pre>
<h3>Description</h3>
<p>The <code>MaxSize</code> directive specifies the maximum width
and length that is supported for custom page sizes.</p>
<h3>See Also</h3>
<p><a href='#MinSize'><code>MinSize</code></a>,
<a href='#VariablePaperSize'><code>VariablePaperSize</code></a></p>
<h2 class="title"><a name='MediaSize'>MediaSize</a></h2>
<h3>Syntax</h3>
<pre>
MediaSize <i>name</i>
</pre>
<h3>Examples</h3>
<pre>
MediaSize Letter
MediaSize A4
</pre>
<h3>Description</h3>
<p>The <code>MediaSize</code> directive adds the named size to the
current printer driver using the current margins defined with
the <a href="#HWMargins"><code>HWMargins</code></a> directive. The
name argument must match a media size defined using the <a
href="#_media"><code>#media</code></a> directive.</p>
<h3>See Also</h3>
<p><a href='#_media'><code>#media</code></a>,
<a href='#HWMargins'><code>HWMargins</code></a></p>
<h2 class="title"><a name='MediaType'>MediaType</a></h2>
<h3>Syntax</h3>
<pre>
MediaType <i>type name</i>
MediaType <i>type "name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
MediaType 0 Auto
MediaType 1 "Plain/Plain Paper"
</pre>
<h3>Description</h3>
<p>The <code>MediaType</code> directive adds a new choice to the
<code>MediaType</code> option. The type argument is a number
from 0 to 2<sup>32</sup>-1 specifying the value that is placed
in the <code>cupsMediaType</code> attribute in the PostScript page
device dictionary.</p>
<p>The name may contain up to 40 ASCII characters within the range of
decimal 33 to decimal 126 inclusive, except for the characters comma
(44), slash (47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<p>The name is placed in the <code>MediaType</code> attribute in the
PostScript page device dictionary.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='MinSize'>MinSize</a></h2>
<h3>Syntax</h3>
<pre>
MinSize <i>width length</i>
</pre>
<h3>Examples</h3>
<pre>
MinSize 4in 8in
MinSize 10cm 20cm
</pre>
<h3>Description</h3>
<p>The <code>MinSize</code> directive specifies the minimum width
and length that is supported for custom page sizes.</p>
<h3>See Also</h3>
<p><a href='#MaxSize'><code>MaxSize</code></a>,
<a href='#VariablePaperSize'><code>VariablePaperSize</code></a></p>
<h2 class="title"><a name='ModelName'>ModelName</a></h2>
<h3>Syntax</h3>
<pre>
ModelName <i>"name"</i>
</pre>
<h3>Examples</h3>
<pre>
ModelName "Foo Laser Printer 2000"
ModelName "Colorific 123"
</pre>
<h3>Description</h3>
<p>The <code>ModelName</code> directive sets the printer name for
the <code>ModelName</code>, <code>NickName</code>, and
<code>ShortNickName</code> attributes for the printer driver. The
name is any string of letters, numbers, spaces, and the
characters ".", "/", "-", and "+" and should not begin with the
manufacturer name since the PPD compiler will add this
automatically for you. The maximum length of the name string is
31 bytes to conform to the Adobe limits on the length of
<code>ShortNickName</code>.</p>
<h3>See Also</h3>
<p><a href="#FileName"><code>FileName</code></a>,
<a href='#Manufacturer'><code>Manufacturer</code></a>,
<a href='#PCFileName'><code>PCFileName</code></a>,
<a href='#Version'><code>Version</code></a></p>
<h2 class="title"><a name='ModelNumber'>ModelNumber</a></h2>
<h3>Syntax</h3>
<pre>
ModelNumber <i>expression</i>
</pre>
<h3>Examples</h3>
<pre>
ModelNumber 123
ModelNumber ($PCL_PAPER_SIZE $PCL_PJL)
</pre>
<h3>Description</h3>
<p>The <code>ModelNumber</code> directive sets the
<code>cupsModelNumber</code> attribute for the printer driver, which
is often used by the printer driver filter to tailor its output
for the current device. The number is any integer or bitwise OR
of integers and constants that is appropriate for the printer
driver filters.<p>
<p>A complete list of printer driver model number constants is
available later in this appendix in the section titled, "<a
href='#REF_MODEL_NUMBER'>Printer Driver ModelNumber
Constants</a>".</p>
<h3>See Also</h3>
<p><a href='#DriverType'><code>DriverType</code></a>,
<a href='#Filter'><code>Filter</code></a></p>
<h2 class="title"><a name='Option'>Option</a></h2>
<h3>Syntax</h3>
<pre>
Option <i>name type section order</i>
Option <i>"name/text" type section order</i>
</pre>
<h3>Examples</h3>
<pre>
Option Punch Boolean AnySetup 10
Option "fooFinish/Finishing Option" PickOne DocumentSetup 10
</pre>
<h3>Description</h3>
<p>The <code>Option</code> directive creates a new option in the
current group, by default the <code>General</code> group. The name
may contain up to 40 ASCII characters within the range of decimal 33
to decimal 126 inclusive, except for the characters comma (44), slash
(47) and colon (58).</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<p>The type argument is one of the following keywords:</p>
<ul>
<li><code>Boolean</code> - a true/false option</li>
<li><code>PickOne</code> - allows the user to pick one
choice from a list</li>
<li><code>PickMany</code> - allows the user to pick zero or
more choices from a list</li>
</ul>
<p>The section argument is one of the following keywords:</p>
<ul>
<li><code>AnySetup</code> - The option can be placed in
either the DocumentSetup or PageSetup sections of the
PostScript document</li>
<li><code>DocumentSetup</code> - The option must be placed
in the DocumentSetup section of the PostScript document;
this does not allow the option to be overridden on
individual pages</li>
<li><code>ExitServer</code> - The option must be placed in a
separate initialization job prior to the document (not
used for raster printer drivers)</li>
<li><code>JCLSetup</code> - The option contains job control
language commands and must be sent prior to the document
using the <code>JCLBegin</code> and
<code>JCLToPSInterpreter</code> attributes (not used for
raster printer drivers)</li>
<li><code>PageSetup</code> - The option must be placed at the
beginning of each page in the PostScript document</li>
<li><code>Prolog</code> - The option must be placed in the
prolog section of the PostScript document; this is
typically used to add special comments for high-end
typesetters, but can also be used to add CUPS PostScript
job ticket comments.</li>
</ul>
<p>The order argument is a real number greater than or equal to
0.0 and is used to sort the printer commands from many options
before sending them to the printer or RIP filter.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Resolution'><code>Resolution</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><a name='PCFileName'>PCFileName</a></h2>
<h3>Syntax</h3>
<pre>
PCFileName <i>"filename.ppd"</i>
</pre>
<h3>Examples</h3>
<pre>
PCFileName "foljt2k1.ppd"
PCFileName "deskjet.ppd"
</pre>
<h3>Description</h3>
<p>The <code>PCFileName</code> attribute specifies the name of the
PPD file for the current driver. The filename argument must
conform to the Adobe PPD file specification and can be no more
than 8 filename characters plus the extension ".ppd".</p>
<h3>See Also</h3>
<p><a href="#FileName"><code>FileName</code></a>,
<a href='#Manufacturer'><code>Manufacturer</code></a>,
<a href='#ModelName'><code>ModelName</code></a>,
<a href='#Version'><code>Version</code></a></p>
<h2 class="title"><span class="info">Deprecated</span><a name='Resolution'>Resolution</a></h2>
<h3>Syntax</h3>
<pre>
Resolution <i>colorspace bits-per-color row-count row-feed row-step name</i>
Resolution <i>colorspace bits-per-color row-count row-feed row-step "name/text"</i>
</pre>
<h3>Examples</h3>
<pre>
Resolution - 8 0 0 0 300dpi
Resolution k 8 0 0 0 "600x300dpi/600 DPI Grayscale"
</pre>
<h3>Description</h3>
<p>The <code>Resolution</code> directive creates a new
<code>Resolution</code> option choice which sets the
<code>HWResolution</code>, <code>cupsBitsPerColor</code>,
<code>cupsRowCount</code>, <code>cupsRowFeed</code>,
<code>cupsRowStep</code>, and optionally the <code>cupsColorSpace</code>
page device dictionary attributes. The colorspace argument
specifies a colorspace to use for the specified resolution and
can be the hyphen (<code>-</code>) character to make no change to
the selected color model or any keyword listed in the section
titled, "<a href='#REF_COLOR_SPACE'>Colorspace Keywords</a>", to
force the named colorspace.</p>
<p>The bits-per-color argument specifies the number of bits per
color to generate when RIP'ing a job. The values 1, 2, 4, and 8
are currently supported by CUPS.</p>
<p>The row-count, row-feed, and row-step argument specify the
driver-dependent values for the <code>cupsRowCount</code>,
<code>cupsRowFeed</code>, and <code>cupsRowStep</code> attributes,
respectively. Most drivers leave these attributes set to 0, but
any number from 0 to 2<sup>32</sup>-1 is allowed.</p>
<p>The name argument must conform to the resolution naming
conventions in the Adobe PPD file specification, either
<code>HHHdpi</code> for symmetric resolutions or <code>HHHxVVVdpi</code>
for asymmetric resolutions. The <code>HHH</code> and <code>VVV</code> in
the examples represent the horizontal and vertical resolutions
which must be positive integer values.</p>
<p>If provided, the text can be any string up to 80 bytes in length.
If no text is provided, the name is used.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#UIConstraints'><code>UIConstraints</code></a></p>
<h2 class="title"><span class="info">Deprecated</span><a name='SimpleColorProfile'>SimpleColorProfile</a></h2>
<h3>Syntax</h3>
<pre>
SimpleColorProfile <i>resolution/mediatype density
yellow-density red-density gamma
red-adjust green-adjust blue-adjust</i>
</pre>
<h3>Examples</h3>
<pre>
SimpleColorProfile -/- 100 100 200 1.0 0 0 0
SimpleColorProfile 360dpi/- 100 95 150 1.2 5 10 15
SimpleColorProfile 720dpi/Glossy 100 90 120 1.5 -5 5 10
</pre>
<h3>Description</h3>
<p>The <code>SimpleColorProfile</code> directive creates a
matrix-based <a href="#ColorProfile"><code>ColorProfile</code></a>.
The resolution and mediatype arguments specify the
<code>Resolution</code> and <code>MediaType</code> choices which use the
profile; the hyphen (<code>-</code>) is used to specify that any
resolution or mediatype can be used with the profile.</p>
<p>The density argument specifies the linear density correction
to apply to the color values (P = d * 0.01 * p<sup>g</sup>) and
is an integer greater than 0 and less than or equal to 100. A
value 100 of disables density correction while lower values
produce proportionately lighter output. The density value
adjusts all color channels equally in all color modes.</p>
<p>The yellow-density argument specifies the density of the
yellow channel when printing in grayscale or RGB mode and is an
integer greater than 0 and less then or equal to 100. A value of
100 disables yellow density correction while lower values
produce proportionately lighter output.</p>
<P>The red-density argument specifies the two-color density
limit (e.g. C + M, C + Y, M + Y) when printing in grayscale or
RGB mode and is an integer greater than 0 and less then or equal
to 200. A value of 200 disables two-color density correction
while lower values produce proportionately lighter output.</p>
<p>The gamma argument specifies the gamma correction to apply to
the color values (P = p<sup>g</sup>) and is a real number
greater than 0. Values larger than 1 cause a general lightening
of the print while values smaller than 1 cause a general
darkening of the print. A value of 1 disables gamma
correction.</p>
<p>The red-adjust, green-adjust, blue-adjust arguments specify
the percentage of color to add or remove. Positive red-adjust
values add magenta and negative values add yellow. Positive
green-adjust values add cyan and negative values add yellow.
Positive blue-adjust values add cyan and negative values add
magenta. Values of 0 disable color adjustments.</p>
<h3>See Also</h3>
<p><a href='#ColorProfile'><code>ColorProfile</code></a></p>
<h2 class="title"><a name='Throughput'>Throughput</a></h2>
<h3>Syntax</h3>
<pre>
Throughput <i>pages-per-minute</i>
</pre>
<h3>Examples</h3>
<pre>
Throughput 1
Throughput 10
</pre>
<h3>Description</h3>
<p>The <code>Throughput</code> directive sets the <code>Throughput</code>
attribute for the current printer driver. The pages-per-minute
argument is a positive integer representing the peak number of
pages per minute that the printer is capable of producing. Use a
value of 1 for printers that produce less than 1 page per
minute.</p>
<h2 class="title"><a name='UIConstraints'>UIConstraints</a></h2>
<h3>Syntax</h3>
<pre>
UIConstraints <i>"*Option1 *Option2"</i>
UIConstraints <i>"*Option1 Choice1 *Option2"</i>
UIConstraints <i>"*Option1 *Option2 Choice2"</i>
UIConstraints <i>"*Option1 Choice1 *Option2 Choice2"</i>
</pre>
<h3>Examples</h3>
<pre>
UIConstraints "*Finishing *MediaType"
UIConstraints "*Option1 False *Duplex"
UIConstraints "*Duplex *MediaType Transparency"
UIConstraints "*Resolution 600dpi *ColorModel RGB"
</pre>
<h3>Description</h3>
<p>The <code>UIConstraints</code> directive adds a constraint
between two options. Constraints inform the application when a
user has chosen incompatible options. Each option name is
preceded by the asterisk (<code>*</code>). If no choice is given for
an option, then all choices <i>except</i> <code>False</code> and
<code>None</code> will conflict with the other option and choice(s).
Since the PPD compiler automatically adds reciprocal constraints
(option A conflicts with option B, so therefore option B
conflicts with option A), you need only specify the constraint
once.</p>
<h3>See Also</h3>
<p><a href='#Choice'><code>Choice</code></a>,
<a href='#ColorModel'><code>ColorModel</code></a>,
<a href='#Cutter'><code>Cutter</code></a>,
<a href='#Darkness'><code>Darkness</code></a>,
<a href='#Duplex'><code>Duplex</code></a>,
<a href='#Finishing'><code>Finishing</code></a>,
<a href='#Group'><code>Group</code></a>,
<a href='#InputSlot'><code>InputSlot</code></a>,
<a href='#Installable'><code>Installable</code></a>,
<a href='#MediaType'><code>MediaType</code></a>,
<a href='#Option'><code>Option</code></a>,
<a href='#Resolution'><code>Resolution</code></a></p>
<h2 class="title"><a name='VariablePaperSize'>VariablePaperSize</a></h2>
<h3>Syntax</h3>
<pre>
VariablePaperSize <i>boolean-value</i>
</pre>
<h3>Examples</h3>
<pre>
VariablePaperSize yes
VariablePaperSize no
</pre>
<h3>Description</h3>
<p>The <code>VariablePaperSize</code> directive specifies whether
the current printer supports variable (custom) page sizes. When
<code>yes</code> is specified, the PPD compiler will include the
standard PPD attributes required to support custom page
sizes.</p>
<h3>See Also</h3>
<p><a href='#MaxSize'><code>MaxSize</code></a>,
<a href='#MinSize'><code>MinSize</code></a></p>
<h2 class="title"><a name='Version'>Version</a></h2>
<h3>Syntax</h3>
<pre>
Version <i>number</i>
</pre>
<h3>Examples</h3>
<pre>
Version 1.0
Version 3.7
</pre>
<h3>Description</h3>
<p>The <code>Version</code> directive sets the <code>FileVersion</code>
attribute in the PPD file and is also used for the
<code>NickName</code> attribute. The number argument is a positive
real number.</p>
<h3>See Also</h3>
<p><a href='#Manufacturer'><code>Manufacturer</code></a>,
<a href='#ModelName'><code>ModelName</code></a>,
<a href='#PCFileName'><code>PCFileName</code></a></p>
<h2 class="title"><a name='REF_INCLUDE'>Standard Include Files</h2>
<p><a href='#TABLEB-1'>Table B-1</a> shows the standard include
files which are provided with the DDK.</p>
<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
<caption align='bottom'><a name='TABLEB-1'><i>Table B-1,
Standard Include Files</i></a></caption>
<tr bgcolor='#cccccc'>
<th>Include File</th>
<th>Description</th>
</tr>
<tr>
<td valign='top'><code>&lt;font.defs&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
standard fonts which are included with ESP Ghostscript
and the Apple PDF RIP.</td>
</tr>
<tr>
<td valign='top'><code>&lt;epson.h&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
CUPS ESC/P sample driver constants.</td>
</tr>
<tr>
<td valign='top'><code>&lt;escp.h&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
DDK ESC/P driver constants.</td>
</tr>
<tr>
<td valign='top'><code>&lt;hp.h&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
CUPS HP-PCL sample driver constants.</td>
</tr>
<tr>
<td valign='top'><code>&lt;label.h&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
CUPS label sample driver constants.</td>
</tr>
<tr>
<td valign='top'><code>&lt;media.defs&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
standard media sizes listed in Appendix B of the Adobe
PostScript Printer Description File Format
Specification.</td>
</tr>
<tr>
<td valign='top'><code>&lt;pcl.h&gt;</code></td>
<td align='justify' valign='top'>Defines all of the
DDK HP-PCL driver constants.</td>
</tr>
<tr>
<td valign='top'><code>&lt;raster.defs&gt;</code></td>
<td align='justify' valign='top'>Defines all of the CUPS
raster format constants.</td>
</tr>
</table></center>
<h2 class="title"><a name='REF_MODEL_NUMBER'>Printer Driver ModelNumber Constants</a></h2>
<p>The CUPS DDK and sample drivers use the
<code>cupsModelNumber</code> attribute in the PPD file to tailor
their output to the printer. The following sections describe the
constants for each driver.</p>
<h3><a name='REF_MODEL_EPSON'>The CUPS ESC/P Sample Driver (epson)</a></h3>
<p>The <code>epson</code> driver supports Epson and Okidata
dot-matrix, Epson Stylus Color, and Epson Stylus Photo printers.
<a href='#TABLEB-2'>Table B-2</a> lists the constants for the <a
href='#ModelNumber'><code>ModelNumber</code></a> directive.
<code>ModelNumber</code> values should be inserted by referencing
only one of these constants.</p>
<!-- NEED 20 -->
<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
<caption align='bottom'><a name='TABLEB-2'><i>Table B-2, <code>epson</code> driver
constants</i></a></caption>
<tr bgcolor='#cccccc'>
<th>Constant</th>
<th>Description</th>
</tr>
<tr>
<td valign='top'><code>EPSON_9PIN</code></td>
<td align='justify' valign='top'>Epson and Okidata 9-pin
dot-matrix printers</td>
</tr>
<tr>
<td valign='top'><code>EPSON_24PIN</code></td>
<td align='justify' valign='top'>Epson and Okidata 24-pin
dot-matrix printers</td>
</tr>
<tr>
<td valign='top'><code>EPSON_COLOR</code></td>
<td align='justify' valign='top'>Older Epson Stylus Color
printers that use the <code>ESC .</code> graphics command</td>
</tr>
<tr>
<td valign='top'><code>EPSON_PHOTO</code></td>
<td align='justify' valign='top'>Older Epson Stylus Photo
printers that use the <code>ESC .</code> graphics command</td>
</tr>
<tr>
<td valign='top'><code>EPSON_ICOLOR</code></td>
<td align='justify' valign='top'>Newer Epson Stylus Color
printers that use the <code>ESC i</code> graphics command</td>
</tr>
<tr>
<td valign='top'><code>EPSON_IPHOTO</code></td>
<td align='justify' valign='top'>Newer Epson Stylus Photo
printers that use the <code>ESC i</code> graphics command</td>
</tr>
</table></center>
<h3><a name='REF_MODEL_HP'>The CUPS HP-PCL Sample Driver (hp)</a></h3>
<p>The <code>hp</code> driver supports HP LaserJet and DeskJet
printers. <a href='#TABLEB-3'>Table B-3</a> lists the constants
for the <a href='#ModelNumber'><code>ModelNumber</code></a>
directive. <code>ModelNumber</code> values should be inserted by
referencing only one of these constants.</p>
<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
<caption align='bottom'><a name='TABLEB-3'><i>Table B-3, <code>hp</code> driver
constants</i></a></caption>
<tr bgcolor='#cccccc'>
<th>Constant</th>
<th>Description</th>
</tr>
<tr>
<td valign='top'><code>HP_LASERJET</code></td>
<td align='justify' valign='top'>HP LaserJet printers supporting
PCL 3, 4, or 5</td>
</tr>
<tr>
<td valign='top'><code>HP_DESKJET</code></td>
<td align='justify' valign='top'>HP DeskJet printers
supporting PCL 3 and using the simple color graphics
command (<code>ESC * r # U</code>)</td>
</tr>
<tr>
<td valign='top'><code>HP_DESKJET2</code></td>
<td align='justify' valign='top'>HP DeskJet printers
supporting PCL3GUI and using the configure raster graphics
command (<code>ESC * g # W</code>)</td>
</tr>
</table></center>
<h3><a name='REF_MODEL_LABEL'>The CUPS Label Sample Driver (label)</a></h3>
<p>The <code>label</code> driver supports the Dymo Labelwriter, Zebra CPCL, Zebra EPL, and Zebra ZPL, and Intellitech PCL label printers. <a href='#TABLEB-4'>Table B-4</a>
lists the constants for the <a
href='#ModelNumber'><code>ModelNumber</code></a> directive.
<code>ModelNumber</code> values should be inserted by referencing
only one of these constants.</p>
<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
<caption align='bottom'><a name='TABLEB-4'><i>Table B-4, <code>label</code> driver
constants</i></a></caption>
<tr bgcolor='#cccccc'>
<th>Constant</th>
<th>Description</th>
</tr>
<tr>
<td valign='top'><code>DYMO_3x0</code></td>
<td align='justify' valign='top'>Format output for the
Dymo Labelwriter 300, 330, or 330 Turbo.</td>
</tr>
<tr>
<td valign='top'><code>INTELLITECH_PCL</code></td>
<td align='justify' valign='top'>Format output for the Intellitech PCL printers.</td>
</tr>
<tr>
<td valign='top'><code>ZEBRA_CPCL</code></td>
<td align='justify' valign='top'>Format output for the Zebra CPCL printers.</td>
</tr>
<tr>
<td valign='top'><code>ZEBRA_EPL_LINE</code></td>
<td align='justify' valign='top'>Format output for the Zebra EPL line mode (EPL 1) printers.</td>
</tr>
<tr>
<td valign='top'><code>ZEBRA_EPL_PAGE</code></td>
<td align='justify' valign='top'>Format output for the Zebra EPL page mode (EPL 2) printers.</td>
</tr>
<tr>
<td valign='top'><code>ZEBRA_ZPL</code></td>
<td align='justify' valign='top'>Format output for the Zebra ZPL printers.</td>
</tr>
</table></center>
<h3><a name='REF_MODEL_ESCP'>The DDK ESC/P Driver (escp)</a></h3>
<p>The <code>escp</code> driver supports all Epson inkjet printers.
<a href='#TABLEB-6'>Table B-6</a> lists the constants for the <a
href='#ModelNumber'><code>ModelNumber</code></a> directive.
<code>ModelNumber</code> values should be specified as the bitwise
OR of one or more of these constants.</p>
<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
<caption align='bottom'><a name='TABLEB-6'><i>Table B-6, <code>escp</code> driver
constants</i></a></caption>
<tr bgcolor='#cccccc'>
<th>Constant</th>
<th>Description</th>
</tr>
<tr>
<td valign='top'><code>ESCP_MICROWEAVE</code></td>
<td align='justify' valign='top'>Use microweave command?</td>
</tr>
<tr>
<td valign='top'><code>ESCP_STAGGER</code></td>
<td align='justify' valign='top'>Are color jets staggered?</td>
</tr>
<tr>
<td valign='top'><code>ESCP_ESCK</code></td>
<td align='justify' valign='top'>Use print mode command?</td>
</tr>
<tr>
<td valign='top'><code>ESCP_EXT_UNITS</code></td>
<td align='justify' valign='top'>Use extended unit commands?</td>
</tr>
<tr>
<td valign='top'><code>ESCP_EXT_MARGINS</code></td>
<td align='justify' valign='top'>Use extended margin command?</td>
</tr>
<tr>
<td valign='top'><code>ESCP_USB</code></td>
<td align='justify' valign='top'>Send USB packet mode escape</td>
</tr>
<tr>
<td valign='top'><code>ESCP_PAGE_SIZE</code></td>
<td align='justify' valign='top'>Use page size command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_RASTER_ESCI</code></td>
<td align='justify' valign='top'>Use <code>ESC i</code> graphics command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE</code></td>
<td align='justify' valign='top'>Use remote mode commands</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_AC</code></td>
<td align='justify' valign='top'>Use auto-cutter command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_CO</code></td>
<td align='justify' valign='top'>Use cutter-operation command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_EX</code></td>
<td align='justify' valign='top'>Use media-position command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_MS</code></td>
<td align='justify' valign='top'>Use media-size command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_MT</code></td>
<td align='justify' valign='top'>Use media-type command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_PC</code></td>
<td align='justify' valign='top'>Use paper-check command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_PH</code></td>
<td align='justify' valign='top'>Use paper-thickness command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_PP</code></td>
<td align='justify' valign='top'>Use paper-path command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_SN0</code></td>
<td align='justify' valign='top'>Use feed-sequence-0 command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_SN1</code></td>
<td align='justify' valign='top'>Use platten-gap command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_SN2</code></td>
<td align='justify' valign='top'>Use feed-sequence-2 command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_SN6</code></td>
<td align='justify' valign='top'>Use eject-delay command</td>
</tr>
<tr>
<td valign='top'><code>ESCP_REMOTE_FP</code></td>
<td align='justify' valign='top'>Use print-position command</td>
</tr>
</table></center>
<h3><a name='REF_MODEL_PCL'>The DDK HP-PCL Driver (pcl)</a></h3>
<p>The <code>pcl</code> driver supports all HP LaserJet, DeskJet,
and DesignJet printers. <a href='#TABLEB-5'>Table B-5</a> lists
the constants for the <a
href='#ModelNumber'><code>ModelNumber</code></a> directive.
<code>ModelNumber</code> values should be specified as the bitwise
OR of one or more of these constants.</p>
<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
<caption align='bottom'><a name='TABLEB-5'><i>Table B-5, <code>pcl</code> driver
constants</i></a></caption>
<tr bgcolor='#cccccc'>
<th>Constant</th>
<th>Description</th>
</tr>
<tr>
<td valign='top'><code>PCL_PAPER_SIZE</code></td>
<td align='justify' valign='top'>Use paper size command (<code>ESC &amp; l # A</code>)</td>
</tr>
<tr>
<td valign='top'><code>PCL_INKJET</code></td>
<td align='justify' valign='top'>Use inkjet commands</td>
</tr>
<tr>
<td valign='top'><code>PCL_RASTER_END_COLOR</code></td>
<td align='justify' valign='top'>Use new end-raster command (<code>ESC * r C</code>)</td>
</tr>
<tr>
<td valign='top'><code>PCL_RASTER_CID</code></td>
<td align='justify' valign='top'>Use configure-image-data command (<code>ESC * v # W</code>)</td>
</tr>
<tr>
<td valign='top'><code>PCL_RASTER_CRD</code></td>
<td align='justify' valign='top'>Use configure-raster-data command (<code>ESC * g # W</code>)</td>
</tr>
<tr>
<td valign='top'><code>PCL_RASTER_SIMPLE</code></td>
<td align='justify' valign='top'>Use simple-raster-color command (<code>ESC * r # U</code>)</td>
</tr>
<tr>
<td valign='top'><code>PCL_RASTER_RGB24</code></td>
<td align='justify' valign='top'>Use 24-bit RGB mode</td>
</tr>
<tr>
<td valign='top'><code>PCL_PJL</code></td>
<td align='justify' valign='top'>Use PJL commands</td>
</tr>
<tr>
<td valign='top'><code>PCL_PJL_PAPERWIDTH</code></td>
<td align='justify' valign='top'>Use PJL PAPERWIDTH/LENGTH commands</td>
</tr>
<tr>
<td valign='top'><code>PCL_PJL_HPGL2</code></td>
<td align='justify' valign='top'>Use PJL ENTER HPGL2 command</td>
</tr>
<tr>
<td valign='top'><code>PCL_PJL_PCL3GUI</code></td>
<td align='justify' valign='top'>Use PJL ENTER PCL3GUI command</td>
</tr>
<tr>
<td valign='top'><code>PCL_PJL_RESOLUTION</code></td>
<td align='justify' valign='top'>Use PJL SET RESOLUTION command</td>
</tr>
</table></center>
<H2><A NAME="REF_COLOR">Color Keywords</A></H2>
<p>The PPD compiler defines two types of color keywords:
colorspace and color order. The following sections list the
supported keywords for each type.</p>
<H3><A NAME="REF_COLOR_SPACE">Colorspace Keywords</A></H3>
<P>The following colorspace keywords are recognized:</P>
<UL>
<LI><TT>cielab</TT> - CIE Lab <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>ciexyz</TT> - CIE XYZ <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>cmy</TT> - Cyan, magenta, yellow</LI>
<LI><TT>cmyk</TT> - Cyan, magenta, yellow, black</LI>
<LI><TT>gmck</TT> - Gold, magenta, yellow, black <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>gmcs</TT> - Gold, magenta, yellow, silver <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>gold</TT> - Gold foil <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc1</TT> - ICC-based, 1 color <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc2</TT> - ICC-based, 2 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc3</TT> - ICC-based, 3 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc4</TT> - ICC-based, 4 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc5</TT> - ICC-based, 5 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc6</TT> - ICC-based, 6 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc7</TT> - ICC-based, 7 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc8</TT> - ICC-based, 8 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icc9</TT> - ICC-based, 9 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icca</TT> - ICC-based, 10 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>iccb</TT> - ICC-based, 11 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>iccc</TT> - ICC-based, 12 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>iccd</TT> - ICC-based, 13 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>icce</TT> - ICC-based, 14 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>iccf</TT> - ICC-based, 15 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>k</TT> - Black</LI>
<LI><TT>kcmy</TT> - Black, cyan, magenta, yellow <A HREF="#REF_COLOR_APPLE">*</A></LI>
<LI><TT>kcmycm</TT> - Black, cyan, magenta, yellow, light-cyan, light-magenta <A HREF="#REF_COLOR_APPLE">*</A></LI>
<LI><TT>rgb</TT> - Red, green, blue</LI>
<LI><TT>rgba</TT> - Red, green, blue, alpha</LI>
<LI><TT>rgbw</TT> - Red, green, blue, luminance <A HREF="#REF_COLOR_APPLE">*</A></LI>
<LI><TT>silver</TT> - Silver foil <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>w</TT> - Luminance</LI>
<LI><TT>white</TT> - White ink (as black) <A HREF="#REF_COLOR_APPLE2">**</A></LI>
<LI><TT>ymc</TT> - Yellow, magenta, cyan <A HREF="#REF_COLOR_APPLE">*</A></LI>
<LI><TT>ymck</TT> - Yellow, magenta, cyan, black <A HREF="#REF_COLOR_APPLE">*</A>
<BR>&nbsp;
<BR><A NAME="REF_COLOR_APPLE">*</A> = This colorspace is not supported on macOS prior to 10.4.
<BR><A NAME="REF_COLOR_APPLE2">**</A> = This colorspace is not supported on macOS.</LI>
</UL>
<H3><A NAME="REF_COLOR_ORDER">Color Order Keywords</A></H3>
<P>The following color order keywords are recognized:</P>
<UL>
<LI><TT>chunked</TT> or <TT>chunky</TT> - Color values
are passed together on a line as RGB RGB RGB RGB</LI>
<LI><TT>banded</TT> - Color values are passed separately
on a line as RRRR GGGG BBBB <A
HREF="#REF_COLOR_APPLE2">*</A></LI>
<LI><TT>planar</TT> - Color values are passed separately
on a page as RRRR RRRR RRRR ... GGGG GGGG GGGG ... BBBB
BBBB BBBB <A HREF="#REF_COLOR_APPLE2">*</A>
<BR>&nbsp;
<BR><A NAME="REF_COLOR_APPLE2">*</A> = This color order
is not supported by the current Apple RIP filters and
should not be used when developing printer drivers for
macOS.</LI>
</UL>
</BODY>
</HTML>