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