1<HTML>
2<!-- SECTION: References -->
3<HEAD>
4	<TITLE>PPD Compiler Driver Information File Reference</TITLE>
5	<LINK REL="STYLESHEET" TYPE="text/css" HREF="../cups-printable.css">
6</HEAD>
7<BODY>
8
9<H1 CLASS="title">PPD Compiler Driver Information File Reference</H1>
10
11<p>The CUPS PPD compiler reads meta files that contain descriptions
12of one or more PPD files to be generated by
13<a href="man-ppdc.html">ppdc(1)</a> or the corresponding driver interface
14program <a href="man-drv.html">drv(1)</a>. The source file format is plain
15ASCII text that can be edited using your favorite text editor.</p>
16
17<p>Directives may be placed anywhere on a line and are followed by
18zero or more values.</p>
19
20<p>Comments are supported using the C (/* ... */) and C++ (// ...) comment
21mechanisms.</p>
22
23<p>Directives that accept expressions look for sequences of the form:</p>
24
25<dl>
26
27	<dt>NAME</dt>
28	<dd>Evaluates to 1 if NAME is defined, otherwise 0.</dd>
29
30	<dt>number</dt>
31
32	<dd>Evaluates to the specified integer; the number can be preceded by
33	a leading sign (+/-) followed by a decimal number (1234), octal number
34	(01234), or hexadecimal number (0x1234) using the same rules as C and
35	C++.</dd>
36
37	<dt>(NAME NAME ... number number ...)</dt>
38	<dd>Evaluates to the bitwise OR of each named #define constant or
39	number.</dd>
40
41	<dt>(NAME == OTHERNAME)</dt>
42	<dt>(NAME == number)</dt>
43	<dd>Evaluates to 1 if NAME is equal to the other named constant or
44	number, otherwise 0.</dd>
45
46	<dt>(NAME != OTHERNAME)</dt>
47	<dt>(NAME != number)</dt>
48	<dd>Evaluates to 1 if NAME is not equal to the other named constant or
49	number, otherwise 0.</dd>
50
51	<dt>(NAME &lt; OTHERNAME)</dt>
52	<dt>(NAME &lt; number)</dt>
53	<dd>Evaluates to 1 if NAME is less than to the other named constant or
54	number, otherwise 0.</dd>
55
56	<dt>(NAME &lt;= OTHERNAME)</dt>
57	<dt>(NAME &lt;= number)</dt>
58	<dd>Evaluates to 1 if NAME is less than or equal to the other named
59	constant or number, otherwise 0.</dd>
60
61	<dt>(NAME &gt; OTHERNAME)</dt>
62	<dt>(NAME &gt; number)</dt>
63	<dd>Evaluates to 1 if NAME is greater than to the other named constant
64	or number, otherwise 0.</dd>
65
66	<dt>(NAME &gt;= OTHERNAME)</dt>
67	<dt>(NAME &gt;= number)</dt>
68	<dd>Evaluates to 1 if NAME is greater than or equal to the other named
69	constant or number, otherwise 0.</dd>
70
71</dl>
72
73<p>Printer driver information can be grouped and shared using
74curly braces ({ ... }); PPD files are written when a close
75brace or end-of-file is seen and a <a href="#PCFileName">PCFileName</a>
76directive has been defined.</p>
77
78
79<h2 class="title"><a name='_define'>#define</a></h2>
80
81<h3>Syntax</h3>
82
83<pre>
84#define <i>name expression</i>
85</pre>
86
87<h3>Examples</h3>
88
89<pre>
90#define FOO 100
91#define BAR "Bar, Inc."
92</pre>
93
94<h3>Description</h3>
95
96<p>The <code>#define</code> directive assigns a value to a name
97which can be later referenced using <code>$name</code>. The name is
98case-insensitive and can be any sequence of letters, numbers,
99and the underscore. The value can be any valid expression.</p>
100
101<h3>Predefined Names</h3>
102
103<p>The following <code>#define</code> names are set by the PPD compiler:</p>
104
105<ul>
106
107	<li><code>CUPS_VERSION</code> - The full CUPS version string, e.g.
108	"1.4.0"</li>
109
110	<li><code>CUPS_VERSION_MAJOR</code> - The major version number, e.g.
111	"1"</li>
112
113	<li><code>CUPS_VERSION_MINOR</code> - The minor version number, e.g.
114	"4"</li>
115
116	<li><code>CUPS_VERSION_PATCH</code> - The patch version number, e.g.
117	"0"</li>
118
119	<li><code>PLATFORM_NAME</code> - The operating system name used by the
120	current system as reported by "uname" ("Windows" on Microsoft
121	Windows)</li>
122
123	<li><code>PLATFORM_ARCH</code> - The processor architecture used by the
124	current system as reported by "uname -m" ("X86" or "X64" on Microsoft
125	Windows)</li>
126
127</ul>
128
129<h3>See Also</h3>
130
131<p><a href='#_include'><code>#include</code></a></p>
132
133
134<h2 class="title"><a name='_elif'>#elif</a></h2>
135
136<h3>Syntax</h3>
137
138<pre>
139#elif <i>expression</i>
140</pre>
141
142<h3>Examples</h3>
143
144<pre>
145#if HAVE_FOO
146...
147#elif (HAVE_BAR &gt;= 999)
148...
149#else
150...
151#endif
152</pre>
153
154<h3>Description</h3>
155
156<p>The <code>#elif</code> directive allows portions of a driver information file
157to be used conditionally. <code>#elif</code> directives must appear after a
158corresponding <a href="#_if"><code>#if</code></a> directive.</p>
159
160<h3>See Also</h3>
161
162<p><a href='#_else'><code>#else</code></a>,
163<a href='#_endif'><code>#endif</code></a>,
164<a href='#_if'><code>#if</code></a></p>
165
166
167<h2 class="title"><a name='_else'>#else</a></h2>
168
169<h3>Syntax</h3>
170
171<pre>
172#else
173</pre>
174
175<h3>Examples</h3>
176
177<pre>
178#if HAVE_FOO
179...
180#elif (HAVE_BAR &gt;= 999)
181...
182#else
183...
184#endif
185</pre>
186
187<h3>Description</h3>
188
189<p>The <code>#else</code> directive allows portions of a driver information file
190to be used conditionally when the corresponding
191<a href="#_if"><code>#if</code></a> and <a href="#_elif"><code>#elif</code></a>
192expressions are non-zero.</p>
193
194<h3>See Also</h3>
195
196<p><a href='#_elif'><code>#elif</code></a>,
197<a href='#_endif'><code>#endif</code></a>,
198<a href='#_if'><code>#if</code></a></p>
199
200
201<h2 class="title"><a name='_endif'>#endif</a></h2>
202
203<h3>Syntax</h3>
204
205<pre>
206#endif
207</pre>
208
209<h3>Examples</h3>
210
211<pre>
212#if HAVE_FOO
213...
214#elif (HAVE_BAR &gt;= 999)
215...
216#else
217...
218#endif
219</pre>
220
221<h3>Description</h3>
222
223<p>The <code>#endif</code> directive ends a conditional block of a driver
224information file. It must appear after all of the
225<a href="#_if"><code>#if</code></a>, <a href="#_elif"><code>#elif</code></a>,
226and <a href="#_else"><code>#else</code></a> directives for the current
227conditional block.</p>
228
229<h3>See Also</h3>
230
231<p><a href='#_elif'><code>#elif</code></a>,
232<a href='#_else'><code>#else</code></a>,
233<a href='#_if'><code>#if</code></a></p>
234
235
236<h2 class="title"><a name='_font'>#font</a></h2>
237
238<h3>Syntax</h3>
239
240<pre>
241#font <i>name encoding "version" charset status</i>
242</pre>
243
244<h3>Examples</h3>
245
246<pre>
247#font Courier Standard "(1.05)" Standard ROM
248#font Symbol Special "(001.005)" Special ROM
249#font Barcode-Foo Special "(1.0)" Special Disk
250#font Unicode-Foo Expert "(2.0)" Adobe-Identity ROM
251</pre>
252
253<h3>Description</h3>
254
255<p>The <code>#font</code> directive defines a "base font" for all
256printer drivers. The name is the PostScript font name.</p>
257
258<p>The encoding is the default encoding of the font, usually
259<code>Standard</code>, <code>Expert</code>, or <code>Special</code>, as
260defined in the Adobe PPD file specification.</p>
261
262<p>The version is the PostScript string definition that
263corresponds to the font version number.</p>
264
265<p>The charset defines the available characters in the font,
266usually <code>Standard</code> or <code>Special</code>, as defined in the
267Adobe PPD file specification.</p>
268
269<p>The status is the installation status of the font and must be
270either the word <code>ROM</code> or <code>Disk</code>.
271
272<p>Base fonts differ from fonts defined using the <a
273href='#Font'><code>Font</code></a> directive in that they are not
274automatically associated with all drivers - you must use the
275special <code>Font *</code> directive to include them in a
276driver.</p>
277
278<p>Currently the <code>#font</code> directive is used mainly for
279defining the standard raster fonts in the
280<code>&lt;font.defs&gt;</code> include file.</p>
281
282<h3>See Also</h3>
283
284<p><a href='#_include'><code>#include</code></a>,
285<a href='#Font'><code>Font</code></a></p>
286
287
288<h2 class="title"><a name='_if'>#if</a></h2>
289
290<h3>Syntax</h3>
291
292<pre>
293#if <i>name or expression</i>
294</pre>
295
296<h3>Examples</h3>
297
298<pre>
299#if HAVE_FOO
300...
301#elif (HAVE_BAR &gt;= 999)
302...
303#else
304...
305#endif
306</pre>
307
308<h3>Description</h3>
309
310<p>The <code>#if</code> directive allows portions of a driver information file
311to be used conditionally. When followed by a name, the data that follows is
312used only when the name is defined, otherwise the data is ignored.
313<code>#if</code> directives can be nested up to 100 times.</p>
314
315<h3>See Also</h3>
316
317<p><a href='#_elif'><code>#elif</code></a>,
318<a href='#_else'><code>#else</code></a>,
319<a href='#_endif'><code>#endif</code></a></p>
320
321
322<h2 class="title"><a name='_include'>#include</a></h2>
323
324<h3>Syntax</h3>
325
326<pre>
327#include &lt;<i>filename</i>&gt;
328#include "<i>filename</i>"
329</pre>
330
331<h3>Examples</h3>
332
333<pre>
334#include &lt;font.defs&gt;
335#include "myfile.h"
336</pre>
337
338<h3>Description</h3>
339
340<p>The <code>#include</code> directive reads the named driver
341information file. If the filename is included inside angle
342brackets (<code>&lt;filename&gt;</code>), then the PPD compiler will
343look for the file in all of the include directories it knows
344about. Otherwise, the file is opened in the current directory
345relative to the current driver information file, and if that
346fails then it looks in the include directories for the file.</p>
347
348<p>The <code>#include</code> directive can be nested to as many
349files as are allowed by the host operating system, typically at
350least 100 files.</p>
351
352<h3>See Also</h3>
353
354<p><a href='#_define'><code>#define</code></a>,
355<a href='#_font'><code>#font</code></a>,
356<a href='#_media'><code>#media</code></a></p>
357
358
359<h2 class="title"><a name='_media'>#media</a></h2>
360
361<h3>Syntax</h3>
362
363<pre>
364#media <i>name width length</i>
365#media <i>"name/text" width length</i>
366</pre>
367
368<h3>Examples</h3>
369
370<pre>
371#media "Letter/Letter - 8.5x11in" 8.5in 11in
372#media "A4/A4 - 210x297mm" 210mm 297mm
373#media "w936h1368/Super B/A3 - 13x19in" 936 1368
374#media Photo 4in 6in
375</pre>
376
377<h3>Description</h3>
378
379<p>The <code>#media</code> directive defines a named media size for
380inclusion in a driver. The name with optional user text defines
381the name for the media size and is used with the <a
382href='#MediaSize'><code>MediaSize</code></a> directive to associate
383the media size with the driver. The name may contain up to 40 ASCII
384characters within the range of decimal 33 to decimal 126 inclusive,
385except for the characters comma (44), slash (47) and colon (58).
386The user text, if supplied, may not exceed 80 bytes in length.</p>
387
388<p>The width and length define the dimensions of the media. Each
389number is optionally followed by one of the following unit
390suffixes:</p>
391
392<ul>
393
394	<li><code>cm</code> - centimeters</li>
395
396	<li><code>ft</code> - feet</li>
397
398	<li><code>in</code> - inches</li>
399
400	<li><code>m</code> - meters</li>
401
402	<li><code>mm</code> - millimeters</li>
403
404	<li><code>pt</code> - points (72 points = 1 inch)</li>
405
406</ul>
407
408<p>Points are assumed if no units are specified.
409
410<h3>See Also</h3>
411
412<p><a href='#_include'><code>#include</code></a>,
413<a href='#CustomMedia'><code>CustomMedia</code></a>,
414<a href='#MediaSize'><code>MediaSize</code></a></p>
415
416
417<h2 class="title"><a name='_po'>#po</a></h2>
418
419<h3>Syntax</h3>
420
421<pre>
422#po <i>locale filename</i>
423</pre>
424
425<h3>Examples</h3>
426
427<pre>
428#po es "es.po"
429#po fr_CA "mydriver-fr_CA.po"
430</pre>
431
432<h3>Description</h3>
433
434<p>The <code>#po</code> directive defines a message catalog to use for the
435given POSIX language abbreviation. Multiple <code>#po</code> directives can be
436specified to list multiple catalogs. The filename can be an absolute path or
437relative to the driver information file. GNU gettext and macOS .strings
438files are supported.</p>
439
440
441<h2 class="title"><a name='Attribute'>Attribute</a></h2>
442
443<h3>Syntax</h3>
444
445<pre>
446Attribute <i>name "" value</i>
447Attribute <i>name keyword value</i>
448Attribute <i>name "keyword/text" value</i>
449</pre>
450
451<h3>Examples</h3>
452
453<pre>
454Attribute cupsInkChannels "" 1
455Attribute cupsAllDither 600dpi "1.0"
456Attribute fooProfile "Photo/Photographic Profile" "photopro.icc"
457</pre>
458
459<h3>Description</h3>
460
461<p>The <code>Attribute</code> directive creates a PPD attribute. The
462name may contain up to 40 ASCII characters within the range of decimal
46333 to decimal 126 inclusive, except for the characters comma (44),
464slash (47) and colon (58).</p>
465
466<p>The selector can be the empty string (<code>""</code>) or text of up
467to 80 bytes.</p>
468
469<p>The value is any string or number; the string may contain multiple
470lines, however no one line may exceed 255 bytes.</p>
471
472<h3>See Also</h3>
473
474<p><a href="#LocAttribute"><code>LocAttribute</code></a></p>
475
476
477<h2 class="title"><a name='Choice'>Choice</a></h2>
478
479<h3>Syntax</h3>
480
481<pre>
482Choice <i>name "code"</i>
483Choice <i>"name/text" "code"</i>
484</pre>
485
486<h3>Examples</h3>
487
488<pre>
489Choice None "&lt;&lt;/MediaType (None)&gt;&gt;setpagedevice"
490Choice "False/No" "&lt;&lt;/cupsCompression 0&gt;&gt;setpagedevice"
491</pre>
492
493<h3>Description</h3>
494
495<p>The <code>Choice</code> directive adds a single choice to the
496current option. The name may contain up to 40 ASCII characters within
497the range of decimal 33 to decimal 126 inclusive, except for the
498characters comma (44), slash (47) and colon (58).</p>
499
500<p>If provided, the text can be any string up to 80 bytes
501in length. If no text is provided, the name is used.</p>
502
503<p>The code is any string and may contain multiple lines,
504however no one line may exceed 255 bytes.</p>
505
506<h3>See Also</h3>
507
508<p><a href='#ColorModel'><code>ColorModel</code></a>,
509<a href='#Cutter'><code>Cutter</code></a>,
510<a href='#Darkness'><code>Darkness</code></a>,
511<a href='#Duplex'><code>Duplex</code></a>,
512<a href='#Finishing'><code>Finishing</code></a>,
513<a href='#Group'><code>Group</code></a>,
514<a href='#InputSlot'><code>InputSlot</code></a>,
515<a href='#Installable'><code>Installable</code></a>,
516<a href='#MediaType'><code>MediaType</code></a>,
517<a href='#Option'><code>Option</code></a>,
518<a href='#Resolution'><code>Resolution</code></a>,
519<a href='#UIConstraints'><code>UIConstraints</code></a></p>
520
521
522<h2 class="title"><a name='ColorDevice'>ColorDevice</a></h2>
523
524<h3>Syntax</h3>
525
526<pre>
527ColorDevice <i>boolean-value</i>
528</pre>
529
530<h3>Examples</h3>
531
532<pre>
533ColorDevice no
534ColorDevice yes
535</pre>
536
537<h3>Description</h3>
538
539<p>The <code>ColorDevice</code> directive tells the application if
540the printer supports color. It is typically used in conjunction
541with the <a href='#ColorModel'><code>ColorModel</code></a> directive
542to provide color printing support.</p>
543
544<h3>See Also</h3>
545
546<p><a href='#ColorModel'><code>ColorModel</code></a></p>
547
548
549<h2 class="title"><span class="info">Deprecated</span><a name='ColorModel'>ColorModel</a></h2>
550
551<h3>Syntax</h3>
552
553<pre>
554ColorModel <i>name colorspace colororder compression</i>
555ColorModel <i>"name/text" colorspace colororder compression</i>
556</pre>
557
558<h3>Examples</h3>
559
560<pre>
561ColorModel Gray/Grayscale w chunky 0
562ColorModel RGB/Color rgb chunky 0
563ColorModel CMYK cmyk chunky 0
564</pre>
565
566<h3>Description</h3>
567
568<p>The <code>ColorModel</code> directive is a convenience directive
569which creates a ColorModel option and choice for the current
570printer driver. The name may contain up to 40 ASCII characters within
571the range of decimal 33 to decimal 126 inclusive, except for the
572characters comma (44), slash (47) and colon (58).</p>
573
574<p>If provided, the text can be any string up to 80 bytes in length.
575If no text is provided, the name is used.</p>
576
577<p>The colorspace argument is one of the standard colorspace
578keywords defined later in this appendix in the section titled,
579"<a href='#REF_COLOR_SPACE'>Colorspace Keywords</a>".</p>
580
581<P>The colororder argument is one of the standard color order
582keywords defined later in this appendix in the section titled,
583"<a href='#REF_COLOR_ORDER'>Color Order Keywords</a>".</p>
584
585<p>The compression argument is any number and is assigned to the
586<code>cupsCompression</code> attribute in the PostScript page device
587dictionary.</p>
588
589<h3>See Also</h3>
590
591<p><a href='#Choice'><code>Choice</code></a>,
592<a href='#ColorDevice'><code>ColorDevice</code></a>,
593<a href='#Cutter'><code>Cutter</code></a>,
594<a href='#Darkness'><code>Darkness</code></a>,
595<a href='#Duplex'><code>Duplex</code></a>,
596<a href='#Finishing'><code>Finishing</code></a>,
597<a href='#Group'><code>Group</code></a>,
598<a href='#InputSlot'><code>InputSlot</code></a>,
599<a href='#Installable'><code>Installable</code></a>,
600<a href='#MediaType'><code>MediaType</code></a>,
601<a href='#Option'><code>Option</code></a>,
602<a href='#Resolution'><code>Resolution</code></a>,
603<a href='#UIConstraints'><code>UIConstraints</code></a></p>
604
605
606<h2 class="title"><span class="info">Deprecated</span><a name='ColorProfile'>ColorProfile</a></h2>
607
608<h3>Syntax</h3>
609
610<pre>
611ColorProfile <i>resolution/mediatype gamma density matrix</i>
612</pre>
613
614<h3>Examples</h3>
615
616<pre>
617ColorProfile -/- 1.7 1.0
618     1.0    0.0    0.0
619     0.0    1.0    0.0
620     0.0    0.0    1.0
621
622ColorProfile 360dpi/- 1.6 1.0
623     1.0   -0.05  -0.3
624    -0.35   1.0   -0.15
625    -0.095 -0.238  0.95
626
627ColorProfile 720dpi/Special 1.5 1.0
628     1.0    0.0   -0.38
629    -0.4    1.0    0.0
630     0.0   -0.38   0.9
631</pre>
632
633<h3>Description</h3>
634
635<p>The <code>ColorProfile</code> directive defines a CMY
636transform-based color profile. The resolution and mediatype
637arguments specify the <code>Resolution</code> and <code>MediaType</code>
638choices which use the profile; the hyphen (<code>-</code>) is used to
639specify that any resolution or mediatype can be used with the
640profile.</p>
641
642<p>The gamma argument specifies the gamma correction to apply to
643the color values (P = p<sup>g</sup>) and is a real number
644greater than 0. Values larger than 1 cause a general lightening
645of the print while values smaller than 1 cause a general
646darkening of the print. A value of 1 disables gamma
647correction.</p>
648
649<p>The density argument specifies the linear density correction
650to apply to the color values (P = d * p<sup>g</sup>) and is a
651real number greater than 0 and less than or equal to 1. A value
6521 of disables density correction while lower values produce
653proportionately lighter output.</p>
654
655<p>The matrix argument specifies a 3x3 linear transformation
656matrix in row-major order. The matrix is applied only to the CMY
657component of a RGB to CMYK transformation and is not used when
658printing in grayscale or CMYK mode unless the printer only
659supports printing with 3 colors.</p>
660
661<h3>See Also</h3>
662
663<p><a href='#SimpleColorProfile'><code>SimpleColorProfile</code></a></p>
664
665
666<h2 class="title"><a name='Copyright'>Copyright</a></h2>
667
668<h3>Syntax</h3>
669
670<pre>
671Copyright <i>"text"</i>
672</pre>
673
674<h3>Examples</h3>
675
676<pre>
677Copyright "Copyright 2008 by Foo Enterprises"
678
679Copyright
680"This software is free software; you can redistribute it and/or
681modify it under the terms of the GNU General Public License as
682published by the Free Software Foundation; either version 2 of
683the License, or (at your option) any later version.
684
685This software is distributed in the hope that it will be useful,
686but WITHOUT ANY WARRANTY; without even the implied warranty of
687MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
688GNU General Public License for more details.
689
690You should have received a copy of the GNU General Public
691License along with this software; if not, write to the Free
692Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
693MA 02111 USA"
694</pre>
695
696<h3>Description</h3>
697
698<p>The <code>Copyright</code> directive adds text comments to the
699top of a PPD file, typically for use in copyright notices. The
700text argument can contain multiple lines of text, but no line
701may exceed 255 bytes.</p>
702
703
704<h2 class="title"><a name='CustomMedia'>CustomMedia</a></h2>
705
706<h3>Syntax</h3>
707
708<pre>
709CustomMedia <i>name width length left bottom right top
710    "size-code" "region-code"</i>
711
712CustomMedia <i>"name/text" width length left bottom right top
713    "size-code" "region-code"</i>
714</pre>
715
716<h3>Examples</h3>
717
718<pre>
719CustomMedia Letter 8.5in 11in 0.25in 0.46in 0.25in 0.04in
720    "&lt;&lt;/PageSize[612 792]/ImagingBBox null/ManualFeed false&gt;&gt;
721     setpagedevice"
722    "&lt;&lt;/PageSize[612 792]/ImagingBBox null/ManualFeed true&gt;&gt;
723     setpagedevice"
724
725CustomMedia "A4/A4 - 210x297mm" 210mm 297mm 12 12 12 12
726    "&lt;&lt;/PageSize[595 842]/ImagingBBox null&gt;&gt;setpagedevice"
727    "&lt;&lt;/PageSize[595 842]/ImagingBBox null&gt;&gt;setpagedevice"
728</pre>
729
730<h3>Description</h3>
731
732<p>The <code>CustomMedia</code> directive adds a custom media size to
733the driver. The name may contain up to 40 ASCII characters within the
734range of decimal 33 to decimal 126 inclusive, except for the characters
735comma (44), slash (47) and colon (58).</p>
736
737<p>If provided, the text can be any string up to 80 bytes in length.
738If no text is provided, the name is used.</p>
739
740<p>The width and length arguments specify the dimensions of the
741media as defined for the <a href="#_media"><code>#media</code></a>
742directive.</p>
743
744<p>The left, bottom, right, and top arguments specify the
745printable margins of the media.</p>
746
747<p>The size-code and region-code arguments specify the
748PostScript commands to run for the <code>PageSize</code> and
749<code>PageRegion</code> options, respectively. The commands can
750contain multiple lines, however no line may be more than 255
751bytes in length.</p>
752
753<h3>See Also</h3>
754
755<p><a href='#_media'><code>#media</code></a>,
756<a href='#MediaSize'><code>MediaSize</code></a></p>
757
758
759<h2 class="title"><a name='Cutter'>Cutter</a></h2>
760
761<h3>Syntax</h3>
762
763<pre>
764Cutter <i>boolean-value</i>
765</pre>
766
767<h3>Examples</h3>
768
769<pre>
770Cutter yes
771Cutter no
772</pre>
773
774<h3>Description</h3>
775
776<p>The <code>Cutter</code> directive specifies whether the printer
777has a built-in media cutter. When a cutter is present, the
778printer's PPD file will contain a <code>CutMedia</code> option that
779allows the user to control whether the media is cut at the end
780of the job.</p>
781
782<h3>See Also</h3>
783
784<p><a href='#Choice'><code>Choice</code></a>,
785<a href='#ColorModel'><code>ColorModel</code></a>,
786<a href='#Darkness'><code>Darkness</code></a>,
787<a href='#Duplex'><code>Duplex</code></a>,
788<a href='#Finishing'><code>Finishing</code></a>,
789<a href='#Group'><code>Group</code></a>,
790<a href='#InputSlot'><code>InputSlot</code></a>,
791<a href='#Installable'><code>Installable</code></a>,
792<a href='#MediaType'><code>MediaType</code></a>,
793<a href='#Option'><code>Option</code></a>,
794<a href='#Resolution'><code>Resolution</code></a>,
795<a href='#UIConstraints'><code>UIConstraints</code></a></p>
796
797
798<h2 class="title"><span class="info">Deprecated</span><a name='Darkness'>Darkness</a></h2>
799
800<h3>Syntax</h3>
801
802<pre>
803Darkness <i>temperature name</i>
804Darkness <i>temperature "name/text"</i>
805</pre>
806
807<h3>Examples</h3>
808
809<pre>
810Darkness 0 Light
811Darkness 2 "Normal/Standard"
812</pre>
813
814<h3>Description</h3>
815
816<p>The <code>Darkness</code> directive defines a choice for the
817<code>cupsDarkness</code> option which sets the
818<code>cupsCompression</code> attribute in the PostScript page device
819dictionary. It is used with the CUPS <VAR>rastertolabel</VAR>
820sample driver to control the print head temperature and
821therefore the darkness of the print.</p>
822
823<p>The temperature argument specifies a temperature value for
824the Dymo driver from 0 (lowest) to 3 (highest), with 2
825representing the normal setting.</p>
826
827<p>The name may contain up to 40 ASCII characters within the range of
828decimal 33 to decimal 126 inclusive, except for the characters comma
829(44), slash (47) and colon (58).</p>
830
831<p>If provided, the text can be any string up to 80 bytes in length.
832If no text is provided, the name is used.</p>
833
834<h3>See Also</h3>
835
836<p><a href='#Choice'><code>Choice</code></a>,
837<a href='#ColorModel'><code>ColorModel</code></a>,
838<a href='#Cutter'><code>Cutter</code></a>,
839<a href='#Duplex'><code>Duplex</code></a>,
840<a href='#Finishing'><code>Finishing</code></a>,
841<a href='#Group'><code>Group</code></a>,
842<a href='#InputSlot'><code>InputSlot</code></a>,
843<a href='#Installable'><code>Installable</code></a>,
844<a href='#MediaType'><code>MediaType</code></a>,
845<a href='#Option'><code>Option</code></a>,
846<a href='#Resolution'><code>Resolution</code></a>,
847<a href='#UIConstraints'><code>UIConstraints</code></a></p>
848
849
850<h2 class="title"><a name='DriverType'>DriverType</a></h2>
851
852<h3>Syntax</h3>
853
854<pre>
855DriverType <i>type</i>
856</pre>
857
858<h3>Examples</h3>
859
860<pre>
861DriverType custom
862DriverType escp
863DriverType pcl
864DriverType ps
865</pre>
866
867<h3>Description</h3>
868
869<p>The <code>DriverType</code> directive tells the PPD compiler
870which DDK filters to include in the PPD file. The following
871types are supported:</p>
872
873<ul>
874
875	<li><code>custom</code> - Use only those filters that are
876	defined in the driver information file</li>
877
878	<li><code>epson</code> - Use the CUPS sample Epson driver filter
879	<var>rastertoepson</var></li>
880
881	<li><code>escp</code> - Use the ESC/P DDK driver filters
882	<var>commandtoescpx</var> and
883	<var>rastertoescpx</var></li>
884
885	<li><code>hp</code> - Use the CUPS sample HP driver filter
886	<var>rastertohp</var></li>
887
888	<li><code>label</code> - Use the CUPS sample label driver filter <var>rastertolabel</var></li>
889
890	<li><code>pcl</code> - Use the HP-PCL DDK driver filters
891	<var>commandtopclx</var> and
892	<var>rastertopclx</var></li>
893
894	<li><code>ps</code> - Use no filters; this driver is for a
895	standard PostScript device</li>
896
897</ul>
898
899<h3>See Also</h3>
900
901<p><a href='#Filter'><code>Filter</code></a>,
902<a href='#ModelNumber'><code>ModelNumber</code></a></p>
903
904
905<h2 class="title"><a name='Duplex'>Duplex</a></h2>
906
907<h3>Syntax</h3>
908
909<pre>
910Duplex <i>type</i>
911</pre>
912
913<h3>Examples</h3>
914
915<pre>
916Duplex none
917Duplex normal
918Duplex flip
919Duplex rotated
920Duplex manualtumble
921</pre>
922
923<h3>Description</h3>
924
925<p>The <code>Duplex</code> directive determines whether double-sided printing
926is supported in the current driver. The type argument specifies the type
927of duplexing that is supported:</p>
928
929<ul>
930
931	<li><code>none</code> - double-sided printing is not
932	supported</li>
933
934	<li><code>normal</code> - double-sided printing is
935	supported</li>
936
937	<li><code>flip</code> - double-sided printing is supported,
938	but the back side image needs to be flipped vertically
939	(used primarily with inkjet printers)</li>
940
941	<li><code>rotated</code> - double-sided printing is supported,
942	but the back side image needs to be rotated 180 degrees for
943	DuplexNoTumble</li>
944
945	<li><code>manualtumble</code> - double-sided printing is supported,
946	but the back side image needs to be rotated 180 degrees for
947        DuplexTumble</li>
948
949</ul>
950
951<h3>See Also</h3>
952
953<p><a href='#Choice'><code>Choice</code></a>,
954<a href='#ColorModel'><code>ColorModel</code></a>,
955<a href='#Cutter'><code>Cutter</code></a>,
956<a href='#Darkness'><code>Darkness</code></a>,
957<a href='#Finishing'><code>Finishing</code></a>,
958<a href='#Group'><code>Group</code></a>,
959<a href='#InputSlot'><code>InputSlot</code></a>,
960<a href='#Installable'><code>Installable</code></a>,
961<a href='#MediaType'><code>MediaType</code></a>,
962<a href='#Option'><code>Option</code></a>,
963<a href='#Resolution'><code>Resolution</code></a>,
964<a href='#UIConstraints'><code>UIConstraints</code></a></p>
965
966
967<h2 class="title"><a name='FileName'>FileName</a></h2>
968
969<h3>Syntax</h3>
970
971<pre>
972FileName <i>"filename"</i>
973</pre>
974
975<h3>Examples</h3>
976
977<pre>
978FileName "Acme Laser Printer 2000"
979FileName "Acme Ink Waster 1000"
980</pre>
981
982<h3>Description</h3>
983
984<p>The <code>FileName</code> attribute specifies the "long" name of the
985PPD file for the current driver.</p>
986
987<h3>See Also</h3>
988
989<p><a href='#Manufacturer'><code>Manufacturer</code></a>,
990<a href='#ModelName'><code>ModelName</code></a>,
991<a href="#PCFileName"><code>PCFileName</code></a>,
992<a href='#Version'><code>Version</code></a></p>
993
994
995<h2 class="title"><a name='Filter'>Filter</a></h2>
996
997<h3>Syntax</h3>
998
999<pre>
1000Filter <i>mime-type cost program</i>
1001</pre>
1002
1003<h3>Examples</h3>
1004
1005<pre>
1006Filter application/vnd.cups-raster 50 rastertofoo
1007Filter application/vnd.hp-HPGL 25 /usr/foo/filter/hpgltofoo
1008</pre>
1009
1010<h3>Description</h3>
1011
1012<p>The <code>Filter</code> directive adds a filter for the current
1013driver. The mime-type argument is a valid MIME media type name
1014as defined in a CUPS <var>mime.types</var> file.</p>
1015
1016<p>The cost argument specifies the relative cost of the filter.
1017In general, use a number representing the average percentage of
1018CPU time that is used when printing the specified MIME media
1019type.</p>
1020
1021<p>The program argument specifies the program to run; if the
1022program is not an absolute filename, then CUPS will look for the
1023program in the CUPS filter directory.</p>
1024
1025<h3>See Also</h3>
1026
1027<p><a href='#DriverType'><code>DriverType</code></a></p>
1028
1029
1030<h2 class="title"><span class="info">Deprecated</span><a name='Finishing'>Finishing</a></h2>
1031
1032<h3>Syntax</h3>
1033
1034<pre>
1035Finishing <i>name</i>
1036Finishing <i>"name/text"</i>
1037</pre>
1038
1039<h3>Examples</h3>
1040
1041<pre>
1042Finishing None
1043Finishing "Glossy/Photo Overcoat"
1044</pre>
1045
1046<h3>Description</h3>
1047
1048<p>The <code>Finishing</code> directive adds a choice to the
1049<code>cupsFinishing</code> option. The name may contain up to 40 ASCII
1050characters within the range of decimal 33 to decimal 126 inclusive,
1051except for the characters comma (44), slash (47) and colon (58).</p>
1052
1053<p>If provided, the text can be any string up to 80 bytes in length.
1054If no text is provided, the name is used.</p>
1055
1056<p>The name is stored in the <code>OutputType</code> attribute in the
1057PostScript page device dictionary.</p>
1058
1059<h3>See Also</h3>
1060
1061<p><a href='#Choice'><code>Choice</code></a>,
1062<a href='#ColorModel'><code>ColorModel</code></a>,
1063<a href='#Cutter'><code>Cutter</code></a>,
1064<a href='#Darkness'><code>Darkness</code></a>,
1065<a href='#Duplex'><code>Duplex</code></a>,
1066<a href='#Group'><code>Group</code></a>,
1067<a href='#InputSlot'><code>InputSlot</code></a>,
1068<a href='#Installable'><code>Installable</code></a>,
1069<a href='#MediaType'><code>MediaType</code></a>,
1070<a href='#Option'><code>Option</code></a>,
1071<a href='#Resolution'><code>Resolution</code></a>,
1072<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1073
1074
1075<h2 class="title"><a name='Font'>Font</a></h2>
1076
1077<h3>Syntax</h3>
1078
1079<pre>
1080Font <i>name encoding "version" charset status</i>
1081Font *
1082</pre>
1083
1084<h3>Examples</h3>
1085
1086<pre>
1087Font *
1088Font Courier Standard "(1.05)" Standard ROM
1089Font Symbol Special "(001.005)" Special ROM
1090Font Barcode-Foo Special "(1.0)" Special Disk
1091Font Unicode-Foo Expert "(2.0)" Adobe-Identity ROM
1092</pre>
1093
1094<h3>Description</h3>
1095
1096<p>The <code>Font</code> directive defines a "device font" for the
1097current printer driver. The name is the PostScript font name.</p>
1098
1099<p>The encoding is the default encoding of the font, usually
1100<code>Standard</code>, <code>Expert</code>, or <code>Special</code>, as
1101defined in the Adobe PPD file specification.</p>
1102
1103<p>The version is the PostScript string definition that
1104corresponds to the font version number.</p>
1105
1106<p>The charset defines the available characters in the font,
1107usually <code>Standard</code> or <code>Special</code>, as defined in the
1108Adobe PPD file specification.</p>
1109
1110<p>The status is the installation status of the font and must be
1111either the word <code>ROM</code> or <code>Disk</code>.</p>
1112
1113<p>Device fonts differ from fonts defined using the <a
1114href='#_font'><code>#font</code></a> directive in that they are
1115automatically associated with the current driver. Fonts defined
1116using <code>#font</code> may be imported into the current driver
1117using the <code>Font *</code> form of this directive.</p>
1118
1119<h3>See Also</h3>
1120
1121<p><a href='#_font'><code>#font</code></a></p>
1122
1123
1124<h2 class="title"><a name='Group'>Group</a></h2>
1125
1126<h3>Syntax</h3>
1127
1128<pre>
1129Group <i>name</i>
1130Group <i>"name/text"</i>
1131</pre>
1132
1133<h3>Examples</h3>
1134
1135<pre>
1136Group General
1137Group "InstallableOptions/Options Installed"
1138Group "Special/Vendor Options"
1139</pre>
1140
1141<h3>Description</h3>
1142
1143<p>The <code>Group</code> directive specifies the group for new
1144<code>Option</code> directives. The name may contain up to 40 ASCII
1145characters within the range of decimal 33 to decimal 126 inclusive,
1146except for the characters comma (44), slash (47) and colon (58).</p>
1147
1148<p>If provided, the text can be any string up to 40 bytes in length.
1149If no text is provided, the name is used.</p>
1150
1151<p>The names <code>General</code> and <code>InstallableOptions</code>
1152are predefined for the standard Adobe UI keywords and for installable
1153options, respectively.</p>
1154
1155<center><table width='80%' border='1' bgcolor='#cccccc' cellpadding='5' cellspacing='0'>
1156<tr>
1157	<td align='justify'><b>Note:</b>
1158
1159	<p>Because of certain API binary compatibility issues,
1160	CUPS limits the length of PPD group translation strings
1161	(text) to 40 bytes, while the PPD specification
1162	allows for up to 80 bytes.</p>
1163
1164	</td>
1165</tr>
1166</table></center>
1167
1168<h3>See Also</h3>
1169
1170<p><a href='#Choice'><code>Choice</code></a>,
1171<a href='#ColorModel'><code>ColorModel</code></a>,
1172<a href='#Cutter'><code>Cutter</code></a>,
1173<a href='#Darkness'><code>Darkness</code></a>,
1174<a href='#Duplex'><code>Duplex</code></a>,
1175<a href='#Finishing'><code>Finishing</code></a>,
1176<a href='#InputSlot'><code>InputSlot</code></a>,
1177<a href='#Installable'><code>Installable</code></a>,
1178<a href='#MediaType'><code>MediaType</code></a>,
1179<a href='#Option'><code>Option</code></a>,
1180<a href='#Resolution'><code>Resolution</code></a>,
1181<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1182
1183
1184<h2 class="title"><a name='HWMargins'>HWMargins</a></h2>
1185
1186<h3>Syntax</h3>
1187
1188<pre>
1189HWMargins <i>left bottom right top</i>
1190</pre>
1191
1192<h3>Examples</h3>
1193
1194<pre>
1195HWMargins 18 36 18 36
1196HWMargins 0.25in 0.5in 0.25in 0.5in
1197HWMargins 0.6cm 1.2cm 0.6cm 1.2cm
1198</pre>
1199
1200<h3>Description</h3>
1201
1202<p>The <code>HWMargins</code> directive specifies the current
1203margins for <a href='#MediaSize'><code>MediaSize</code></a> that
1204follow. The left, bottom, right, and top margin values specify
1205the printable margins.</p>
1206
1207<h3>See Also</h3>
1208
1209<p><a href='#MediaSize'><code>MediaSize</code></a></p>
1210
1211
1212<h2 class="title"><a name='InputSlot'>InputSlot</a></h2>
1213
1214<h3>Syntax</h3>
1215
1216<pre>
1217InputSlot <i>position name</i>
1218InputSlot <i>position "name/text"</i>
1219</pre>
1220
1221<h3>Examples</h3>
1222
1223<pre>
1224InputSlot 0 Auto
1225InputSlot 1 "Upper/Tray 1"
1226</pre>
1227
1228<h3>Description</h3>
1229
1230<p>The <code>InputSlot</code> directive adds a new choice to the
1231<code>InputSlot</code> option. The position argument is a number
1232from 0 to 2<sup>32</sup>-1 specifying the value that is placed
1233in the <code>MediaPosition</code> attribute in the PostScript page
1234device dictionary.</p>
1235
1236<p>The name may contain up to 40 ASCII characters within the range of
1237decimal 33 to decimal 126 inclusive, except for the characters comma
1238(44), slash (47) and colon (58).</p>
1239
1240<p>If provided, the text can be any string up to 80 bytes in length.
1241If no text is provided, the name is used.</p>
1242
1243<h3>See Also</h3>
1244
1245<p><a href='#Choice'><code>Choice</code></a>,
1246<a href='#ColorModel'><code>ColorModel</code></a>,
1247<a href='#Cutter'><code>Cutter</code></a>,
1248<a href='#Darkness'><code>Darkness</code></a>,
1249<a href='#Duplex'><code>Duplex</code></a>,
1250<a href='#Finishing'><code>Finishing</code></a>,
1251<a href='#Group'><code>Group</code></a>,
1252<a href='#Installable'><code>Installable</code></a>,
1253<a href='#MediaType'><code>MediaType</code></a>,
1254<a href='#Option'><code>Option</code></a>,
1255<a href='#Resolution'><code>Resolution</code></a>,
1256<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1257
1258
1259<h2 class="title"><a name='Installable'>Installable</a></h2>
1260
1261<h3>Syntax</h3>
1262
1263<pre>
1264Installable <i>name</i>
1265Installable <i>"name/text"</i>
1266</pre>
1267
1268<h3>Examples</h3>
1269
1270<pre>
1271Installable EnvTray
1272Installable "Option1/Duplexer Installed"
1273</pre>
1274
1275<h3>Description</h3>
1276
1277<p>The <code>Installable</code> directive adds a new boolean option
1278to the <code>InstallableOptions</code> group with a default value of
1279<code>False</code>. The name may contain up to 40 ASCII characters
1280within the range of decimal 33 to decimal 126 inclusive, except for
1281the characters comma (44), slash (47) and colon (58).</p>
1282
1283<p>If provided, the text can be any string up to 80 bytes in length.
1284If no text is provided, the name is used.</p>
1285
1286
1287<h2 class="title"><a name='LocAttribute'>LocAttribute</a></h2>
1288
1289<h3>Syntax</h3>
1290
1291<pre>
1292LocAttribute <i>name "keyword/text" value</i>
1293</pre>
1294
1295<h3>Examples</h3>
1296
1297<pre>
1298LocAttribute fooProfile "Photo/Photographic Profile" "photopro.icc"
1299</pre>
1300
1301<h3>Description</h3>
1302
1303<p>The <code>LocAttribute</code> directive creates a localized PPD
1304attribute. The name may contain up to 40 ASCII characters within the
1305range of decimal 33 to decimal 126 inclusive, except for the characters
1306comma (44), slash (47) and colon (58).</p>
1307
1308<p>The selector can be the empty string (<code>""</code>) or text of up
1309to 80 bytes.</p>
1310
1311<p>The value is any string or number; the string may contain multiple
1312lines, however no one line may exceed 255 bytes.</p>
1313
1314<h3>See Also</h3>
1315
1316<p><a href="#Attribute"><code>Attribute</code></a></p>
1317
1318
1319<h2 class="title"><a name='ManualCopies'>ManualCopies</a></h2>
1320
1321<h3>Syntax</h3>
1322
1323<pre>
1324ManualCopies <i>boolean-value</i>
1325</pre>
1326
1327<h3>Examples</h3>
1328
1329<pre>
1330ManualCopies no
1331ManualCopies yes
1332</pre>
1333
1334<h3>Description</h3>
1335
1336<p>The <code>ManualCopies</code> directive specifies whether copies
1337need to be produced by the RIP filters. The default is
1338<code>no</code>.</p>
1339
1340<h3>See Also</h3>
1341
1342<p><a href='#Choice'><code>Choice</code></a>,
1343<a href='#ColorModel'><code>ColorModel</code></a>,
1344<a href='#Cutter'><code>Cutter</code></a>,
1345<a href='#Darkness'><code>Darkness</code></a>,
1346<a href='#Duplex'><code>Duplex</code></a>,
1347<a href='#Finishing'><code>Finishing</code></a>,
1348<a href='#Group'><code>Group</code></a>,
1349<a href='#InputSlot'><code>InputSlot</code></a>,
1350<a href='#MediaType'><code>MediaType</code></a>,
1351<a href='#Option'><code>Option</code></a>,
1352<a href='#Resolution'><code>Resolution</code></a>,
1353<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1354
1355
1356<h2 class="title"><a name='Manufacturer'>Manufacturer</a></h2>
1357
1358<h3>Syntax</h3>
1359
1360<pre>
1361Manufacturer <i>"name"</i>
1362</pre>
1363
1364<h3>Examples</h3>
1365
1366<pre>
1367Manufacturer "Foo"
1368Manufacturer "HP"
1369</pre>
1370
1371<h3>Description</h3>
1372
1373<p>The <code>Manufacturer</code> directive specifies the
1374manufacturer name for the current driver. The name argument must
1375conform to the manufacturer name requirements in the Adobe PPD
1376file specification.</p>
1377
1378<h3>See Also</h3>
1379
1380<p><a href="#FileName"><code>FileName</code></a>,
1381<a href='#ModelName'><code>ModelName</code></a>,
1382<a href='#PCFileName'><code>PCFileName</code></a>,
1383<a href='#Version'><code>Version</code></a></p>
1384
1385
1386<h2 class="title"><a name='MaxSize'>MaxSize</a></h2>
1387
1388<h3>Syntax</h3>
1389
1390<pre>
1391MaxSize <i>width length</i>
1392</pre>
1393
1394<h3>Examples</h3>
1395
1396<pre>
1397MaxSize 36in 100ft
1398MaxSize 300cm 30m
1399</pre>
1400
1401<h3>Description</h3>
1402
1403<p>The <code>MaxSize</code> directive specifies the maximum width
1404and length that is supported for custom page sizes.</p>
1405
1406<h3>See Also</h3>
1407
1408<p><a href='#MinSize'><code>MinSize</code></a>,
1409<a href='#VariablePaperSize'><code>VariablePaperSize</code></a></p>
1410
1411
1412<h2 class="title"><a name='MediaSize'>MediaSize</a></h2>
1413
1414<h3>Syntax</h3>
1415
1416<pre>
1417MediaSize <i>name</i>
1418</pre>
1419
1420<h3>Examples</h3>
1421
1422<pre>
1423MediaSize Letter
1424MediaSize A4
1425</pre>
1426
1427<h3>Description</h3>
1428
1429<p>The <code>MediaSize</code> directive adds the named size to the
1430current printer driver using the current margins defined with
1431the <a href="#HWMargins"><code>HWMargins</code></a> directive. The
1432name argument must match a media size defined using the <a
1433href="#_media"><code>#media</code></a> directive.</p>
1434
1435<h3>See Also</h3>
1436
1437<p><a href='#_media'><code>#media</code></a>,
1438<a href='#HWMargins'><code>HWMargins</code></a></p>
1439
1440
1441<h2 class="title"><a name='MediaType'>MediaType</a></h2>
1442
1443<h3>Syntax</h3>
1444
1445<pre>
1446MediaType <i>type name</i>
1447MediaType <i>type "name/text"</i>
1448</pre>
1449
1450<h3>Examples</h3>
1451
1452<pre>
1453MediaType 0 Auto
1454MediaType 1 "Plain/Plain Paper"
1455</pre>
1456
1457<h3>Description</h3>
1458
1459<p>The <code>MediaType</code> directive adds a new choice to the
1460<code>MediaType</code> option. The type argument is a number
1461from 0 to 2<sup>32</sup>-1 specifying the value that is placed
1462in the <code>cupsMediaType</code> attribute in the PostScript page
1463device dictionary.</p>
1464
1465<p>The name may contain up to 40 ASCII characters within the range of
1466decimal 33 to decimal 126 inclusive, except for the characters comma
1467(44), slash (47) and colon (58).</p>
1468
1469<p>If provided, the text can be any string up to 80 bytes in length.
1470If no text is provided, the name is used.</p>
1471
1472<p>The name is placed in the <code>MediaType</code> attribute in the
1473PostScript page device dictionary.</p>
1474
1475<h3>See Also</h3>
1476
1477<p><a href='#Choice'><code>Choice</code></a>,
1478<a href='#ColorModel'><code>ColorModel</code></a>,
1479<a href='#Cutter'><code>Cutter</code></a>,
1480<a href='#Darkness'><code>Darkness</code></a>,
1481<a href='#Duplex'><code>Duplex</code></a>,
1482<a href='#Finishing'><code>Finishing</code></a>,
1483<a href='#Group'><code>Group</code></a>,
1484<a href='#InputSlot'><code>InputSlot</code></a>,
1485<a href='#Installable'><code>Installable</code></a>,
1486<a href='#Option'><code>Option</code></a>,
1487<a href='#Resolution'><code>Resolution</code></a>,
1488<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1489
1490
1491<h2 class="title"><a name='MinSize'>MinSize</a></h2>
1492
1493<h3>Syntax</h3>
1494
1495<pre>
1496MinSize <i>width length</i>
1497</pre>
1498
1499<h3>Examples</h3>
1500
1501<pre>
1502MinSize 4in 8in
1503MinSize 10cm 20cm
1504</pre>
1505
1506<h3>Description</h3>
1507
1508<p>The <code>MinSize</code> directive specifies the minimum width
1509and length that is supported for custom page sizes.</p>
1510
1511<h3>See Also</h3>
1512
1513<p><a href='#MaxSize'><code>MaxSize</code></a>,
1514<a href='#VariablePaperSize'><code>VariablePaperSize</code></a></p>
1515
1516
1517<h2 class="title"><a name='ModelName'>ModelName</a></h2>
1518
1519<h3>Syntax</h3>
1520
1521<pre>
1522ModelName <i>"name"</i>
1523</pre>
1524
1525<h3>Examples</h3>
1526
1527<pre>
1528ModelName "Foo Laser Printer 2000"
1529ModelName "Colorific 123"
1530</pre>
1531
1532<h3>Description</h3>
1533
1534<p>The <code>ModelName</code> directive sets the printer name for
1535the <code>ModelName</code>, <code>NickName</code>, and
1536<code>ShortNickName</code> attributes for the printer driver. The
1537name is any string of letters, numbers, spaces, and the
1538characters ".", "/", "-", and "+" and should not begin with the
1539manufacturer name since the PPD compiler will add this
1540automatically for you. The maximum length of the name string is
154131 bytes to conform to the Adobe limits on the length of
1542<code>ShortNickName</code>.</p>
1543
1544<h3>See Also</h3>
1545
1546<p><a href="#FileName"><code>FileName</code></a>,
1547<a href='#Manufacturer'><code>Manufacturer</code></a>,
1548<a href='#PCFileName'><code>PCFileName</code></a>,
1549<a href='#Version'><code>Version</code></a></p>
1550
1551
1552<h2 class="title"><a name='ModelNumber'>ModelNumber</a></h2>
1553
1554<h3>Syntax</h3>
1555
1556<pre>
1557ModelNumber <i>expression</i>
1558</pre>
1559
1560<h3>Examples</h3>
1561
1562<pre>
1563ModelNumber 123
1564ModelNumber ($PCL_PAPER_SIZE $PCL_PJL)
1565</pre>
1566
1567<h3>Description</h3>
1568
1569<p>The <code>ModelNumber</code> directive sets the
1570<code>cupsModelNumber</code> attribute for the printer driver, which
1571is often used by the printer driver filter to tailor its output
1572for the current device. The number is any integer or bitwise OR
1573of integers and constants that is appropriate for the printer
1574driver filters.<p>
1575
1576<p>A complete list of printer driver model number constants is
1577available later in this appendix in the section titled, "<a
1578href='#REF_MODEL_NUMBER'>Printer Driver ModelNumber
1579Constants</a>".</p>
1580
1581<h3>See Also</h3>
1582
1583<p><a href='#DriverType'><code>DriverType</code></a>,
1584<a href='#Filter'><code>Filter</code></a></p>
1585
1586
1587<h2 class="title"><a name='Option'>Option</a></h2>
1588
1589<h3>Syntax</h3>
1590
1591<pre>
1592Option <i>name type section order</i>
1593Option <i>"name/text" type section order</i>
1594</pre>
1595
1596<h3>Examples</h3>
1597
1598<pre>
1599Option Punch Boolean AnySetup 10
1600Option "fooFinish/Finishing Option" PickOne DocumentSetup 10
1601</pre>
1602
1603<h3>Description</h3>
1604
1605<p>The <code>Option</code> directive creates a new option in the
1606current group, by default the <code>General</code> group. The name
1607may contain up to 40 ASCII characters within the range of decimal 33
1608to decimal 126 inclusive, except for the characters comma (44), slash
1609(47) and colon (58).</p>
1610
1611<p>If provided, the text can be any string up to 80 bytes in length.
1612If no text is provided, the name is used.</p>
1613
1614<p>The type argument is one of the following keywords:</p>
1615
1616<ul>
1617
1618	<li><code>Boolean</code> - a true/false option</li>
1619
1620	<li><code>PickOne</code> - allows the user to pick one
1621	choice from a list</li>
1622
1623	<li><code>PickMany</code> - allows the user to pick zero or
1624	more choices from a list</li>
1625
1626</ul>
1627
1628<p>The section argument is one of the following keywords:</p>
1629
1630<ul>
1631
1632	<li><code>AnySetup</code> - The option can be placed in
1633	either the DocumentSetup or PageSetup sections of the
1634	PostScript document</li>
1635
1636	<li><code>DocumentSetup</code> - The option must be placed
1637	in the DocumentSetup section of the PostScript document;
1638	this does not allow the option to be overridden on
1639	individual pages</li>
1640
1641	<li><code>ExitServer</code> - The option must be placed in a
1642	separate initialization job prior to the document (not
1643	used for raster printer drivers)</li>
1644
1645	<li><code>JCLSetup</code> - The option contains job control
1646	language commands and must be sent prior to the document
1647	using the <code>JCLBegin</code> and
1648	<code>JCLToPSInterpreter</code> attributes (not used for
1649	raster printer drivers)</li>
1650
1651	<li><code>PageSetup</code> - The option must be placed at the
1652	beginning of each page in the PostScript document</li>
1653
1654	<li><code>Prolog</code> - The option must be placed in the
1655	prolog section of the PostScript document; this is
1656	typically used to add special comments for high-end
1657	typesetters, but can also be used to add CUPS PostScript
1658	job ticket comments.</li>
1659
1660</ul>
1661
1662<p>The order argument is a real number greater than or equal to
16630.0 and is used to sort the printer commands from many options
1664before sending them to the printer or RIP filter.</p>
1665
1666<h3>See Also</h3>
1667
1668<p><a href='#Choice'><code>Choice</code></a>,
1669<a href='#ColorModel'><code>ColorModel</code></a>,
1670<a href='#Cutter'><code>Cutter</code></a>,
1671<a href='#Darkness'><code>Darkness</code></a>,
1672<a href='#Duplex'><code>Duplex</code></a>,
1673<a href='#Finishing'><code>Finishing</code></a>,
1674<a href='#Group'><code>Group</code></a>,
1675<a href='#InputSlot'><code>InputSlot</code></a>,
1676<a href='#Installable'><code>Installable</code></a>,
1677<a href='#MediaType'><code>MediaType</code></a>,
1678<a href='#Resolution'><code>Resolution</code></a>,
1679<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1680
1681
1682<h2 class="title"><a name='PCFileName'>PCFileName</a></h2>
1683
1684<h3>Syntax</h3>
1685
1686<pre>
1687PCFileName <i>"filename.ppd"</i>
1688</pre>
1689
1690<h3>Examples</h3>
1691
1692<pre>
1693PCFileName "foljt2k1.ppd"
1694PCFileName "deskjet.ppd"
1695</pre>
1696
1697<h3>Description</h3>
1698
1699<p>The <code>PCFileName</code> attribute specifies the name of the
1700PPD file for the current driver. The filename argument must
1701conform to the Adobe PPD file specification and can be no more
1702than 8 filename characters plus the extension ".ppd".</p>
1703
1704<h3>See Also</h3>
1705
1706<p><a href="#FileName"><code>FileName</code></a>,
1707<a href='#Manufacturer'><code>Manufacturer</code></a>,
1708<a href='#ModelName'><code>ModelName</code></a>,
1709<a href='#Version'><code>Version</code></a></p>
1710
1711
1712<h2 class="title"><span class="info">Deprecated</span><a name='Resolution'>Resolution</a></h2>
1713
1714<h3>Syntax</h3>
1715
1716<pre>
1717Resolution <i>colorspace bits-per-color row-count row-feed row-step name</i>
1718Resolution <i>colorspace bits-per-color row-count row-feed row-step "name/text"</i>
1719</pre>
1720
1721<h3>Examples</h3>
1722
1723<pre>
1724Resolution - 8 0 0 0 300dpi
1725Resolution k 8 0 0 0 "600x300dpi/600 DPI Grayscale"
1726</pre>
1727
1728<h3>Description</h3>
1729
1730<p>The <code>Resolution</code> directive creates a new
1731<code>Resolution</code> option choice which sets the
1732<code>HWResolution</code>, <code>cupsBitsPerColor</code>,
1733<code>cupsRowCount</code>, <code>cupsRowFeed</code>,
1734<code>cupsRowStep</code>, and optionally the <code>cupsColorSpace</code>
1735page device dictionary attributes. The colorspace argument
1736specifies a colorspace to use for the specified resolution and
1737can be the hyphen (<code>-</code>) character to make no change to
1738the selected color model or any keyword listed in the section
1739titled, "<a href='#REF_COLOR_SPACE'>Colorspace Keywords</a>", to
1740force the named colorspace.</p>
1741
1742<p>The bits-per-color argument specifies the number of bits per
1743color to generate when RIP'ing a job. The values 1, 2, 4, and 8
1744are currently supported by CUPS.</p>
1745
1746<p>The row-count, row-feed, and row-step argument specify the
1747driver-dependent values for the <code>cupsRowCount</code>,
1748<code>cupsRowFeed</code>, and <code>cupsRowStep</code> attributes,
1749respectively. Most drivers leave these attributes set to 0, but
1750any number from 0 to 2<sup>32</sup>-1 is allowed.</p>
1751
1752<p>The name argument must conform to the resolution naming
1753conventions in the Adobe PPD file specification, either
1754<code>HHHdpi</code> for symmetric resolutions or <code>HHHxVVVdpi</code>
1755for asymmetric resolutions. The <code>HHH</code> and <code>VVV</code> in
1756the examples represent the horizontal and vertical resolutions
1757which must be positive integer values.</p>
1758
1759<p>If provided, the text can be any string up to 80 bytes in length.
1760If no text is provided, the name is used.</p>
1761
1762<h3>See Also</h3>
1763
1764<p><a href='#Choice'><code>Choice</code></a>,
1765<a href='#ColorModel'><code>ColorModel</code></a>,
1766<a href='#Cutter'><code>Cutter</code></a>,
1767<a href='#Darkness'><code>Darkness</code></a>,
1768<a href='#Duplex'><code>Duplex</code></a>,
1769<a href='#Finishing'><code>Finishing</code></a>,
1770<a href='#Group'><code>Group</code></a>,
1771<a href='#InputSlot'><code>InputSlot</code></a>,
1772<a href='#Installable'><code>Installable</code></a>,
1773<a href='#MediaType'><code>MediaType</code></a>,
1774<a href='#Option'><code>Option</code></a>,
1775<a href='#UIConstraints'><code>UIConstraints</code></a></p>
1776
1777
1778<h2 class="title"><span class="info">Deprecated</span><a name='SimpleColorProfile'>SimpleColorProfile</a></h2>
1779
1780<h3>Syntax</h3>
1781
1782<pre>
1783SimpleColorProfile <i>resolution/mediatype density
1784    yellow-density red-density gamma
1785    red-adjust green-adjust blue-adjust</i>
1786</pre>
1787
1788<h3>Examples</h3>
1789
1790<pre>
1791SimpleColorProfile -/- 100 100 200 1.0 0 0 0
1792
1793SimpleColorProfile 360dpi/- 100 95 150 1.2 5 10 15
1794
1795SimpleColorProfile 720dpi/Glossy 100 90 120 1.5 -5 5 10
1796</pre>
1797
1798<h3>Description</h3>
1799
1800<p>The <code>SimpleColorProfile</code> directive creates a
1801matrix-based <a href="#ColorProfile"><code>ColorProfile</code></a>.
1802The resolution and mediatype arguments specify the
1803<code>Resolution</code> and <code>MediaType</code> choices which use the
1804profile; the hyphen (<code>-</code>) is used to specify that any
1805resolution or mediatype can be used with the profile.</p>
1806
1807<p>The density argument specifies the linear density correction
1808to apply to the color values (P = d * 0.01 * p<sup>g</sup>) and
1809is an integer greater than 0 and less than or equal to 100. A
1810value 100 of disables density correction while lower values
1811produce proportionately lighter output. The density value
1812adjusts all color channels equally in all color modes.</p>
1813
1814<p>The yellow-density argument specifies the density of the
1815yellow channel when printing in grayscale or RGB mode and is an
1816integer greater than 0 and less then or equal to 100. A value of
1817100 disables yellow density correction while lower values
1818produce proportionately lighter output.</p>
1819
1820<P>The red-density argument specifies the two-color density
1821limit (e.g. C + M, C + Y, M + Y) when printing in grayscale or
1822RGB mode and is an integer greater than 0 and less then or equal
1823to 200. A value of 200 disables two-color density correction
1824while lower values produce proportionately lighter output.</p>
1825
1826<p>The gamma argument specifies the gamma correction to apply to
1827the color values (P = p<sup>g</sup>) and is a real number
1828greater than 0. Values larger than 1 cause a general lightening
1829of the print while values smaller than 1 cause a general
1830darkening of the print. A value of 1 disables gamma
1831correction.</p>
1832
1833<p>The red-adjust, green-adjust, blue-adjust arguments specify
1834the percentage of color to add or remove. Positive red-adjust
1835values add magenta and negative values add yellow. Positive
1836green-adjust values add cyan and negative values add yellow.
1837Positive blue-adjust values add cyan and negative values add
1838magenta. Values of 0 disable color adjustments.</p>
1839
1840<h3>See Also</h3>
1841
1842<p><a href='#ColorProfile'><code>ColorProfile</code></a></p>
1843
1844
1845<h2 class="title"><a name='Throughput'>Throughput</a></h2>
1846
1847<h3>Syntax</h3>
1848
1849<pre>
1850Throughput <i>pages-per-minute</i>
1851</pre>
1852
1853<h3>Examples</h3>
1854
1855<pre>
1856Throughput 1
1857Throughput 10
1858</pre>
1859
1860<h3>Description</h3>
1861
1862<p>The <code>Throughput</code> directive sets the <code>Throughput</code>
1863attribute for the current printer driver. The pages-per-minute
1864argument is a positive integer representing the peak number of
1865pages per minute that the printer is capable of producing. Use a
1866value of 1 for printers that produce less than 1 page per
1867minute.</p>
1868
1869
1870<h2 class="title"><a name='UIConstraints'>UIConstraints</a></h2>
1871
1872<h3>Syntax</h3>
1873
1874<pre>
1875UIConstraints <i>"*Option1 *Option2"</i>
1876UIConstraints <i>"*Option1 Choice1 *Option2"</i>
1877UIConstraints <i>"*Option1 *Option2 Choice2"</i>
1878UIConstraints <i>"*Option1 Choice1 *Option2 Choice2"</i>
1879</pre>
1880
1881<h3>Examples</h3>
1882
1883<pre>
1884UIConstraints "*Finishing *MediaType"
1885UIConstraints "*Option1 False *Duplex"
1886UIConstraints "*Duplex *MediaType Transparency"
1887UIConstraints "*Resolution 600dpi *ColorModel RGB"
1888</pre>
1889
1890<h3>Description</h3>
1891
1892<p>The <code>UIConstraints</code> directive adds a constraint
1893between two options. Constraints inform the application when a
1894user has chosen incompatible options. Each option name is
1895preceded by the asterisk (<code>*</code>). If no choice is given for
1896an option, then all choices <i>except</i> <code>False</code> and
1897<code>None</code> will conflict with the other option and choice(s).
1898Since the PPD compiler automatically adds reciprocal constraints
1899(option A conflicts with option B, so therefore option B
1900conflicts with option A), you need only specify the constraint
1901once.</p>
1902
1903<h3>See Also</h3>
1904
1905<p><a href='#Choice'><code>Choice</code></a>,
1906<a href='#ColorModel'><code>ColorModel</code></a>,
1907<a href='#Cutter'><code>Cutter</code></a>,
1908<a href='#Darkness'><code>Darkness</code></a>,
1909<a href='#Duplex'><code>Duplex</code></a>,
1910<a href='#Finishing'><code>Finishing</code></a>,
1911<a href='#Group'><code>Group</code></a>,
1912<a href='#InputSlot'><code>InputSlot</code></a>,
1913<a href='#Installable'><code>Installable</code></a>,
1914<a href='#MediaType'><code>MediaType</code></a>,
1915<a href='#Option'><code>Option</code></a>,
1916<a href='#Resolution'><code>Resolution</code></a></p>
1917
1918
1919<h2 class="title"><a name='VariablePaperSize'>VariablePaperSize</a></h2>
1920
1921<h3>Syntax</h3>
1922
1923<pre>
1924VariablePaperSize <i>boolean-value</i>
1925</pre>
1926
1927<h3>Examples</h3>
1928
1929<pre>
1930VariablePaperSize yes
1931VariablePaperSize no
1932</pre>
1933
1934<h3>Description</h3>
1935
1936<p>The <code>VariablePaperSize</code> directive specifies whether
1937the current printer supports variable (custom) page sizes. When
1938<code>yes</code> is specified, the PPD compiler will include the
1939standard PPD attributes required to support custom page
1940sizes.</p>
1941
1942<h3>See Also</h3>
1943
1944<p><a href='#MaxSize'><code>MaxSize</code></a>,
1945<a href='#MinSize'><code>MinSize</code></a></p>
1946
1947
1948<h2 class="title"><a name='Version'>Version</a></h2>
1949
1950<h3>Syntax</h3>
1951
1952<pre>
1953Version <i>number</i>
1954</pre>
1955
1956<h3>Examples</h3>
1957
1958<pre>
1959Version 1.0
1960Version 3.7
1961</pre>
1962
1963<h3>Description</h3>
1964
1965<p>The <code>Version</code> directive sets the <code>FileVersion</code>
1966attribute in the PPD file and is also used for the
1967<code>NickName</code> attribute. The number argument is a positive
1968real number.</p>
1969
1970<h3>See Also</h3>
1971
1972<p><a href='#Manufacturer'><code>Manufacturer</code></a>,
1973<a href='#ModelName'><code>ModelName</code></a>,
1974<a href='#PCFileName'><code>PCFileName</code></a></p>
1975
1976
1977<h2 class="title"><a name='REF_INCLUDE'>Standard Include Files</h2>
1978
1979<p><a href='#TABLEB-1'>Table B-1</a> shows the standard include
1980files which are provided with the DDK.</p>
1981
1982<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
1983<caption align='bottom'><a name='TABLEB-1'><i>Table B-1,
1984Standard Include Files</i></a></caption>
1985<tr bgcolor='#cccccc'>
1986	<th>Include File</th>
1987	<th>Description</th>
1988</tr>
1989<tr>
1990	<td valign='top'><code>&lt;font.defs&gt;</code></td>
1991	<td align='justify' valign='top'>Defines all of the
1992	standard fonts which are included with ESP Ghostscript
1993	and the Apple PDF RIP.</td>
1994</tr>
1995<tr>
1996	<td valign='top'><code>&lt;epson.h&gt;</code></td>
1997	<td align='justify' valign='top'>Defines all of the
1998	CUPS ESC/P sample driver constants.</td>
1999</tr>
2000<tr>
2001	<td valign='top'><code>&lt;escp.h&gt;</code></td>
2002	<td align='justify' valign='top'>Defines all of the
2003	DDK ESC/P driver constants.</td>
2004</tr>
2005<tr>
2006	<td valign='top'><code>&lt;hp.h&gt;</code></td>
2007	<td align='justify' valign='top'>Defines all of the
2008	CUPS HP-PCL sample driver constants.</td>
2009</tr>
2010<tr>
2011	<td valign='top'><code>&lt;label.h&gt;</code></td>
2012	<td align='justify' valign='top'>Defines all of the
2013	CUPS label sample driver constants.</td>
2014</tr>
2015<tr>
2016	<td valign='top'><code>&lt;media.defs&gt;</code></td>
2017	<td align='justify' valign='top'>Defines all of the
2018	standard media sizes listed in Appendix B of the Adobe
2019	PostScript Printer Description File Format
2020	Specification.</td>
2021</tr>
2022<tr>
2023	<td valign='top'><code>&lt;pcl.h&gt;</code></td>
2024	<td align='justify' valign='top'>Defines all of the
2025	DDK HP-PCL driver constants.</td>
2026</tr>
2027<tr>
2028	<td valign='top'><code>&lt;raster.defs&gt;</code></td>
2029	<td align='justify' valign='top'>Defines all of the CUPS
2030	raster format constants.</td>
2031</tr>
2032</table></center>
2033
2034<h2 class="title"><a name='REF_MODEL_NUMBER'>Printer Driver ModelNumber Constants</a></h2>
2035
2036<p>The CUPS DDK and sample drivers use the
2037<code>cupsModelNumber</code> attribute in the PPD file to tailor
2038their output to the printer. The following sections describe the
2039constants for each driver.</p>
2040
2041<h3><a name='REF_MODEL_EPSON'>The CUPS ESC/P Sample Driver (epson)</a></h3>
2042
2043<p>The <code>epson</code> driver supports Epson and Okidata
2044dot-matrix, Epson Stylus Color, and Epson Stylus Photo printers.
2045<a href='#TABLEB-2'>Table B-2</a> lists the constants for the <a
2046href='#ModelNumber'><code>ModelNumber</code></a> directive.
2047<code>ModelNumber</code> values should be inserted by referencing
2048only one of these constants.</p>
2049
2050<!-- NEED 20 -->
2051<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
2052<caption align='bottom'><a name='TABLEB-2'><i>Table B-2, <code>epson</code> driver
2053constants</i></a></caption>
2054<tr bgcolor='#cccccc'>
2055	<th>Constant</th>
2056	<th>Description</th>
2057</tr>
2058<tr>
2059	<td valign='top'><code>EPSON_9PIN</code></td>
2060	<td align='justify' valign='top'>Epson and Okidata 9-pin
2061	dot-matrix printers</td>
2062</tr>
2063<tr>
2064	<td valign='top'><code>EPSON_24PIN</code></td>
2065	<td align='justify' valign='top'>Epson and Okidata 24-pin
2066	dot-matrix printers</td>
2067</tr>
2068<tr>
2069	<td valign='top'><code>EPSON_COLOR</code></td>
2070	<td align='justify' valign='top'>Older Epson Stylus Color
2071	printers that use the <code>ESC .</code> graphics command</td>
2072</tr>
2073<tr>
2074	<td valign='top'><code>EPSON_PHOTO</code></td>
2075	<td align='justify' valign='top'>Older Epson Stylus Photo
2076	printers that use the <code>ESC .</code> graphics command</td>
2077</tr>
2078<tr>
2079	<td valign='top'><code>EPSON_ICOLOR</code></td>
2080	<td align='justify' valign='top'>Newer Epson Stylus Color
2081	printers that use the <code>ESC i</code> graphics command</td>
2082</tr>
2083<tr>
2084	<td valign='top'><code>EPSON_IPHOTO</code></td>
2085	<td align='justify' valign='top'>Newer Epson Stylus Photo
2086	printers that use the <code>ESC i</code> graphics command</td>
2087</tr>
2088</table></center>
2089
2090<h3><a name='REF_MODEL_HP'>The CUPS HP-PCL Sample Driver (hp)</a></h3>
2091
2092<p>The <code>hp</code> driver supports HP LaserJet and DeskJet
2093printers. <a href='#TABLEB-3'>Table B-3</a> lists the constants
2094for the <a href='#ModelNumber'><code>ModelNumber</code></a>
2095directive. <code>ModelNumber</code> values should be inserted by
2096referencing only one of these constants.</p>
2097
2098<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
2099<caption align='bottom'><a name='TABLEB-3'><i>Table B-3, <code>hp</code> driver
2100constants</i></a></caption>
2101<tr bgcolor='#cccccc'>
2102	<th>Constant</th>
2103	<th>Description</th>
2104</tr>
2105<tr>
2106	<td valign='top'><code>HP_LASERJET</code></td>
2107	<td align='justify' valign='top'>HP LaserJet printers supporting
2108	PCL 3, 4, or 5</td>
2109</tr>
2110<tr>
2111	<td valign='top'><code>HP_DESKJET</code></td>
2112	<td align='justify' valign='top'>HP DeskJet printers
2113	supporting PCL 3 and using the simple color graphics
2114	command (<code>ESC * r # U</code>)</td>
2115</tr>
2116<tr>
2117	<td valign='top'><code>HP_DESKJET2</code></td>
2118	<td align='justify' valign='top'>HP DeskJet printers
2119	supporting PCL3GUI and using the configure raster graphics
2120	command (<code>ESC * g # W</code>)</td>
2121</tr>
2122</table></center>
2123
2124<h3><a name='REF_MODEL_LABEL'>The CUPS Label Sample Driver (label)</a></h3>
2125
2126<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>
2127lists the constants for the <a
2128href='#ModelNumber'><code>ModelNumber</code></a> directive.
2129<code>ModelNumber</code> values should be inserted by referencing
2130only one of these constants.</p>
2131
2132<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
2133<caption align='bottom'><a name='TABLEB-4'><i>Table B-4, <code>label</code> driver
2134constants</i></a></caption>
2135<tr bgcolor='#cccccc'>
2136	<th>Constant</th>
2137	<th>Description</th>
2138</tr>
2139<tr>
2140	<td valign='top'><code>DYMO_3x0</code></td>
2141	<td align='justify' valign='top'>Format output for the
2142	Dymo Labelwriter 300, 330, or 330 Turbo.</td>
2143</tr>
2144<tr>
2145	<td valign='top'><code>INTELLITECH_PCL</code></td>
2146	<td align='justify' valign='top'>Format output for the Intellitech PCL printers.</td>
2147</tr>
2148<tr>
2149	<td valign='top'><code>ZEBRA_CPCL</code></td>
2150	<td align='justify' valign='top'>Format output for the Zebra CPCL printers.</td>
2151</tr>
2152<tr>
2153	<td valign='top'><code>ZEBRA_EPL_LINE</code></td>
2154	<td align='justify' valign='top'>Format output for the Zebra EPL line mode (EPL 1) printers.</td>
2155</tr>
2156<tr>
2157	<td valign='top'><code>ZEBRA_EPL_PAGE</code></td>
2158	<td align='justify' valign='top'>Format output for the Zebra EPL page mode (EPL 2) printers.</td>
2159</tr>
2160<tr>
2161	<td valign='top'><code>ZEBRA_ZPL</code></td>
2162	<td align='justify' valign='top'>Format output for the Zebra ZPL printers.</td>
2163</tr>
2164</table></center>
2165
2166<h3><a name='REF_MODEL_ESCP'>The DDK ESC/P Driver (escp)</a></h3>
2167
2168<p>The <code>escp</code> driver supports all Epson inkjet printers.
2169<a href='#TABLEB-6'>Table B-6</a> lists the constants for the <a
2170href='#ModelNumber'><code>ModelNumber</code></a> directive.
2171<code>ModelNumber</code> values should be specified as the bitwise
2172OR of one or more of these constants.</p>
2173
2174<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
2175<caption align='bottom'><a name='TABLEB-6'><i>Table B-6, <code>escp</code> driver
2176constants</i></a></caption>
2177<tr bgcolor='#cccccc'>
2178	<th>Constant</th>
2179	<th>Description</th>
2180</tr>
2181<tr>
2182	<td valign='top'><code>ESCP_MICROWEAVE</code></td>
2183	<td align='justify' valign='top'>Use microweave command?</td>
2184</tr>
2185<tr>
2186	<td valign='top'><code>ESCP_STAGGER</code></td>
2187	<td align='justify' valign='top'>Are color jets staggered?</td>
2188</tr>
2189<tr>
2190	<td valign='top'><code>ESCP_ESCK</code></td>
2191	<td align='justify' valign='top'>Use print mode command?</td>
2192</tr>
2193<tr>
2194	<td valign='top'><code>ESCP_EXT_UNITS</code></td>
2195	<td align='justify' valign='top'>Use extended unit commands?</td>
2196</tr>
2197<tr>
2198	<td valign='top'><code>ESCP_EXT_MARGINS</code></td>
2199	<td align='justify' valign='top'>Use extended margin command?</td>
2200</tr>
2201<tr>
2202	<td valign='top'><code>ESCP_USB</code></td>
2203	<td align='justify' valign='top'>Send USB packet mode escape</td>
2204</tr>
2205<tr>
2206	<td valign='top'><code>ESCP_PAGE_SIZE</code></td>
2207	<td align='justify' valign='top'>Use page size command</td>
2208</tr>
2209<tr>
2210	<td valign='top'><code>ESCP_RASTER_ESCI</code></td>
2211	<td align='justify' valign='top'>Use <code>ESC i</code> graphics command</td>
2212</tr>
2213<tr>
2214	<td valign='top'><code>ESCP_REMOTE</code></td>
2215	<td align='justify' valign='top'>Use remote mode commands</td>
2216</tr>
2217<tr>
2218	<td valign='top'><code>ESCP_REMOTE_AC</code></td>
2219	<td align='justify' valign='top'>Use auto-cutter command</td>
2220</tr>
2221<tr>
2222	<td valign='top'><code>ESCP_REMOTE_CO</code></td>
2223	<td align='justify' valign='top'>Use cutter-operation command</td>
2224</tr>
2225<tr>
2226	<td valign='top'><code>ESCP_REMOTE_EX</code></td>
2227	<td align='justify' valign='top'>Use media-position command</td>
2228</tr>
2229<tr>
2230	<td valign='top'><code>ESCP_REMOTE_MS</code></td>
2231	<td align='justify' valign='top'>Use media-size command</td>
2232</tr>
2233<tr>
2234	<td valign='top'><code>ESCP_REMOTE_MT</code></td>
2235	<td align='justify' valign='top'>Use media-type command</td>
2236</tr>
2237<tr>
2238	<td valign='top'><code>ESCP_REMOTE_PC</code></td>
2239	<td align='justify' valign='top'>Use paper-check command</td>
2240</tr>
2241<tr>
2242	<td valign='top'><code>ESCP_REMOTE_PH</code></td>
2243	<td align='justify' valign='top'>Use paper-thickness command</td>
2244</tr>
2245<tr>
2246	<td valign='top'><code>ESCP_REMOTE_PP</code></td>
2247	<td align='justify' valign='top'>Use paper-path command</td>
2248</tr>
2249<tr>
2250	<td valign='top'><code>ESCP_REMOTE_SN0</code></td>
2251	<td align='justify' valign='top'>Use feed-sequence-0 command</td>
2252</tr>
2253<tr>
2254	<td valign='top'><code>ESCP_REMOTE_SN1</code></td>
2255	<td align='justify' valign='top'>Use platten-gap command</td>
2256</tr>
2257<tr>
2258	<td valign='top'><code>ESCP_REMOTE_SN2</code></td>
2259	<td align='justify' valign='top'>Use feed-sequence-2 command</td>
2260</tr>
2261<tr>
2262	<td valign='top'><code>ESCP_REMOTE_SN6</code></td>
2263	<td align='justify' valign='top'>Use eject-delay command</td>
2264</tr>
2265<tr>
2266	<td valign='top'><code>ESCP_REMOTE_FP</code></td>
2267	<td align='justify' valign='top'>Use print-position command</td>
2268</tr>
2269</table></center>
2270
2271<h3><a name='REF_MODEL_PCL'>The DDK HP-PCL Driver (pcl)</a></h3>
2272
2273<p>The <code>pcl</code> driver supports all HP LaserJet, DeskJet,
2274and DesignJet printers. <a href='#TABLEB-5'>Table B-5</a> lists
2275the constants for the <a
2276href='#ModelNumber'><code>ModelNumber</code></a> directive.
2277<code>ModelNumber</code> values should be specified as the bitwise
2278OR of one or more of these constants.</p>
2279
2280<center><table border='1' cellpadding='5' cellspacing='0' width='80%'>
2281<caption align='bottom'><a name='TABLEB-5'><i>Table B-5, <code>pcl</code> driver
2282constants</i></a></caption>
2283<tr bgcolor='#cccccc'>
2284	<th>Constant</th>
2285	<th>Description</th>
2286</tr>
2287<tr>
2288	<td valign='top'><code>PCL_PAPER_SIZE</code></td>
2289	<td align='justify' valign='top'>Use paper size command (<code>ESC &amp; l # A</code>)</td>
2290</tr>
2291<tr>
2292	<td valign='top'><code>PCL_INKJET</code></td>
2293	<td align='justify' valign='top'>Use inkjet commands</td>
2294</tr>
2295<tr>
2296	<td valign='top'><code>PCL_RASTER_END_COLOR</code></td>
2297	<td align='justify' valign='top'>Use new end-raster command (<code>ESC * r C</code>)</td>
2298</tr>
2299<tr>
2300	<td valign='top'><code>PCL_RASTER_CID</code></td>
2301	<td align='justify' valign='top'>Use configure-image-data command (<code>ESC * v # W</code>)</td>
2302</tr>
2303<tr>
2304	<td valign='top'><code>PCL_RASTER_CRD</code></td>
2305	<td align='justify' valign='top'>Use configure-raster-data command (<code>ESC * g # W</code>)</td>
2306</tr>
2307<tr>
2308	<td valign='top'><code>PCL_RASTER_SIMPLE</code></td>
2309	<td align='justify' valign='top'>Use simple-raster-color command (<code>ESC * r # U</code>)</td>
2310</tr>
2311<tr>
2312	<td valign='top'><code>PCL_RASTER_RGB24</code></td>
2313	<td align='justify' valign='top'>Use 24-bit RGB mode</td>
2314</tr>
2315<tr>
2316	<td valign='top'><code>PCL_PJL</code></td>
2317	<td align='justify' valign='top'>Use PJL commands</td>
2318</tr>
2319<tr>
2320	<td valign='top'><code>PCL_PJL_PAPERWIDTH</code></td>
2321	<td align='justify' valign='top'>Use PJL PAPERWIDTH/LENGTH commands</td>
2322</tr>
2323<tr>
2324	<td valign='top'><code>PCL_PJL_HPGL2</code></td>
2325	<td align='justify' valign='top'>Use PJL ENTER HPGL2 command</td>
2326</tr>
2327<tr>
2328	<td valign='top'><code>PCL_PJL_PCL3GUI</code></td>
2329	<td align='justify' valign='top'>Use PJL ENTER PCL3GUI command</td>
2330</tr>
2331<tr>
2332	<td valign='top'><code>PCL_PJL_RESOLUTION</code></td>
2333	<td align='justify' valign='top'>Use PJL SET RESOLUTION command</td>
2334</tr>
2335</table></center>
2336
2337<H2><A NAME="REF_COLOR">Color Keywords</A></H2>
2338
2339<p>The PPD compiler defines two types of color keywords:
2340colorspace and color order. The following sections list the
2341supported keywords for each type.</p>
2342
2343<H3><A NAME="REF_COLOR_SPACE">Colorspace Keywords</A></H3>
2344
2345<P>The following colorspace keywords are recognized:</P>
2346
2347<UL>
2348
2349	<LI><TT>cielab</TT> - CIE Lab <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2350
2351	<LI><TT>ciexyz</TT> - CIE XYZ <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2352
2353	<LI><TT>cmy</TT> - Cyan, magenta, yellow</LI>
2354
2355	<LI><TT>cmyk</TT> - Cyan, magenta, yellow, black</LI>
2356
2357	<LI><TT>gmck</TT> - Gold, magenta, yellow, black <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2358
2359	<LI><TT>gmcs</TT> - Gold, magenta, yellow, silver <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2360
2361	<LI><TT>gold</TT> - Gold foil <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2362
2363	<LI><TT>icc1</TT> - ICC-based, 1 color <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2364
2365	<LI><TT>icc2</TT> - ICC-based, 2 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2366
2367	<LI><TT>icc3</TT> - ICC-based, 3 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2368
2369	<LI><TT>icc4</TT> - ICC-based, 4 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2370
2371	<LI><TT>icc5</TT> - ICC-based, 5 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2372
2373	<LI><TT>icc6</TT> - ICC-based, 6 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2374
2375	<LI><TT>icc7</TT> - ICC-based, 7 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2376
2377	<LI><TT>icc8</TT> - ICC-based, 8 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2378
2379	<LI><TT>icc9</TT> - ICC-based, 9 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2380
2381	<LI><TT>icca</TT> - ICC-based, 10 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2382
2383	<LI><TT>iccb</TT> - ICC-based, 11 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2384
2385	<LI><TT>iccc</TT> - ICC-based, 12 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2386
2387	<LI><TT>iccd</TT> - ICC-based, 13 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2388
2389	<LI><TT>icce</TT> - ICC-based, 14 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2390
2391	<LI><TT>iccf</TT> - ICC-based, 15 colors <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2392
2393	<LI><TT>k</TT> - Black</LI>
2394
2395	<LI><TT>kcmy</TT> - Black, cyan, magenta, yellow <A HREF="#REF_COLOR_APPLE">*</A></LI>
2396
2397	<LI><TT>kcmycm</TT> - Black, cyan, magenta, yellow, light-cyan, light-magenta <A HREF="#REF_COLOR_APPLE">*</A></LI>
2398
2399	<LI><TT>rgb</TT> - Red, green, blue</LI>
2400
2401	<LI><TT>rgba</TT> - Red, green, blue, alpha</LI>
2402
2403	<LI><TT>rgbw</TT> - Red, green, blue, luminance <A HREF="#REF_COLOR_APPLE">*</A></LI>
2404
2405	<LI><TT>silver</TT> - Silver foil <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2406
2407	<LI><TT>w</TT> - Luminance</LI>
2408
2409	<LI><TT>white</TT> - White ink (as black) <A HREF="#REF_COLOR_APPLE2">**</A></LI>
2410
2411	<LI><TT>ymc</TT> - Yellow, magenta, cyan <A HREF="#REF_COLOR_APPLE">*</A></LI>
2412
2413	<LI><TT>ymck</TT> - Yellow, magenta, cyan, black <A HREF="#REF_COLOR_APPLE">*</A>
2414
2415	<BR>&nbsp;
2416
2417	<BR><A NAME="REF_COLOR_APPLE">*</A> = This colorspace is not supported on macOS prior to 10.4.
2418	<BR><A NAME="REF_COLOR_APPLE2">**</A> = This colorspace is not supported on macOS.</LI>
2419
2420</UL>
2421
2422<H3><A NAME="REF_COLOR_ORDER">Color Order Keywords</A></H3>
2423
2424<P>The following color order keywords are recognized:</P>
2425
2426<UL>
2427
2428	<LI><TT>chunked</TT> or <TT>chunky</TT> - Color values
2429	are passed together on a line as RGB RGB RGB RGB</LI>
2430
2431	<LI><TT>banded</TT> - Color values are passed separately
2432	on a line as RRRR GGGG BBBB <A
2433	HREF="#REF_COLOR_APPLE2">*</A></LI>
2434
2435	<LI><TT>planar</TT> - Color values are passed separately
2436	on a page as RRRR RRRR RRRR ... GGGG GGGG GGGG ... BBBB
2437	BBBB BBBB <A HREF="#REF_COLOR_APPLE2">*</A>
2438
2439	<BR>&nbsp;
2440
2441	<BR><A NAME="REF_COLOR_APPLE2">*</A> = This color order
2442	is not supported by the current Apple RIP filters and
2443	should not be used when developing printer drivers for
2444	macOS.</LI>
2445
2446</UL>
2447
2448</BODY>
2449</HTML>
2450