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