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