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