]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/help/api-raster.html
Revive CUPS_PRINTER_DISCOVERED for cupsEnumDests.
[thirdparty/cups.git] / doc / help / api-raster.html
CommitLineData
abacc52b 1<!doctype html>
b423cd4c 2<html>
3<!-- SECTION: Programming -->
abacc52b
MS
4 <head>
5 <title>Raster API</title>
6 <meta name="keywords" content="Programming">
7 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
8 <meta name="creator" content="Mini-XML v2.11">
9 <meta name="author" content="Unknown">
10 <meta name="copyright" content="Unknown">
11 <style type="text/css"><!--
5a738aea
MS
12BODY {
13 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
14}
15
16H1, H2, H3, H4, H5, H6, P, TD, TH {
17 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
18}
19
20KBD {
21 font-family: monaco, courier, monospace;
22 font-weight: bold;
23}
24
25PRE {
26 font-family: monaco, courier, monospace;
27}
28
29PRE.command {
10d09e33 30 border: dotted thin #7f7f7f;
5a738aea 31 margin-left: 36pt;
10d09e33 32 padding: 10px;
5a738aea
MS
33}
34
f11a948a
MS
35P.compact {
36 margin: 0;
37}
38
e4572d57
MS
39P.example {
40 font-style: italic;
41 margin-left: 36pt;
42}
ca6b43fc 43
240214ef
MS
44DL.man DD {
45 margin-left: 5em;
46}
47
48DL.man DT {
49 margin-left: 0;
50}
51
52PRE.man {
53 margin: 0;
54}
55
5a738aea
MS
56PRE.example {
57 background: #eeeeee;
58 border: dotted thin #999999;
59 margin-left: 36pt;
178cb736 60 padding: 10pt;
5a738aea
MS
61}
62
63PRE.command EM, PRE.example EM {
64 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
65}
66
67P.command {
68 font-family: monaco, courier, monospace;
69 margin-left: 36pt;
70}
71
72P.formula {
73 font-style: italic;
74 margin-left: 36pt;
75}
76
77BLOCKQUOTE {
178cb736 78 background: #eeeeee;
5a738aea
MS
79 border: solid thin #999999;
80 padding: 10pt;
81}
82
e4572d57
MS
83A IMG {
84 border: none;
85}
86
87A:link:hover IMG {
88 background: #f0f0f0;
89 border-radius: 10px;
90 -moz-border-radius: 10px;
91}
92
5a738aea 93A:link, A:visited {
ca6b43fc 94 font-weight: inherit;
5a738aea 95 text-decoration: none;
5a738aea
MS
96}
97
98A:link:hover, A:visited:hover, A:active {
99 text-decoration: underline;
5a738aea
MS
100}
101
102SUB, SUP {
103 font-size: 50%;
104}
105
e4572d57
MS
106TR.data, TD.data, TR.data TD {
107 margin-top: 10pt;
108 padding: 5pt;
109 border-bottom: solid 1pt #999999;
110}
111
112TR.data TH {
113 border-bottom: solid 1pt #999999;
114 padding-top: 10pt;
115 padding-left: 5pt;
116 text-align: left;
117}
118
5a738aea
MS
119DIV.table TABLE {
120 border: solid thin #999999;
121 border-collapse: collapse;
122 border-spacing: 0;
123 margin-left: auto;
124 margin-right: auto;
125}
126
127DIV.table CAPTION {
128 caption-side: top;
129 font-size: 120%;
130 font-style: italic;
131 font-weight: bold;
132 margin-left: auto;
133 margin-right: auto;
134}
135
136DIV.table TABLE TD {
137 border: solid thin #cccccc;
138 padding-top: 5pt;
139}
140
141DIV.table TABLE TH {
142 background: #cccccc;
143 border: none;
144 border-bottom: solid thin #999999;
145}
146
147DIV.figure TABLE {
148 margin-left: auto;
149 margin-right: auto;
150}
151
152DIV.figure CAPTION {
153 caption-side: bottom;
154 font-size: 120%;
155 font-style: italic;
156 font-weight: bold;
157 margin-left: auto;
158 margin-right: auto;
159}
160
161TH.label {
5a738aea
MS
162 text-align: right;
163 vertical-align: top;
164}
165
e4572d57
MS
166TH.sublabel {
167 text-align: right;
168 font-weight: normal;
169}
170
5a738aea
MS
171HR {
172 border: solid thin;
173}
174
175SPAN.info {
e4572d57
MS
176 background: black;
177 border: thin solid black;
178 color: white;
5a738aea
MS
179 font-size: 80%;
180 font-style: italic;
181 font-weight: bold;
182 white-space: nowrap;
183}
184
185H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
186 float: right;
187 font-size: 100%;
188}
189
178cb736
MS
190H1.title {
191}
192
5a738aea
MS
193H2.title, H3.title {
194 border-bottom: solid 2pt #000000;
195}
196
e4572d57
MS
197DIV.indent, TABLE.indent {
198 margin-top: 2em;
199 margin-left: auto;
200 margin-right: auto;
201 width: 90%;
202}
203
204TABLE.indent {
205 border-collapse: collapse;
206}
207
208TABLE.indent TD, TABLE.indent TH {
209 padding: 0;
210}
211
212TABLE.list {
213 border-collapse: collapse;
214 margin-left: auto;
215 margin-right: auto;
216 width: 90%;
217}
218
219TABLE.list TH {
220 background: white;
221 border-bottom: solid thin #cccccc;
222 color: #444444;
223 padding-top: 10pt;
224 padding-left: 5pt;
225 text-align: left;
226 vertical-align: bottom;
227 white-space: nowrap;
228}
229
230TABLE.list TH A {
231 color: #4444cc;
232}
233
234TABLE.list TD {
235 border-bottom: solid thin #eeeeee;
236 padding-top: 5pt;
237 padding-left: 5pt;
238}
239
240TABLE.list TR:nth-child(even) {
241 background: #f8f8f8;
242}
243
244TABLE.list TR:nth-child(odd) {
245 background: #f4f4f4;
246}
247
5a738aea
MS
248DT {
249 margin-left: 36pt;
250 margin-top: 12pt;
251}
252
253DD {
254 margin-left: 54pt;
255}
256
257DL.category DT {
258 font-weight: bold;
259}
260
261P.summary {
262 margin-left: 36pt;
263 font-family: monaco, courier, monospace;
264}
265
5a738aea
MS
266DIV.summary TABLE {
267 border: solid thin #999999;
268 border-collapse: collapse;
269 border-spacing: 0;
270 margin: 10px;
271}
272
273DIV.summary TABLE TD, DIV.summary TABLE TH {
274 border: solid thin #999999;
275 padding: 5px;
276 text-align: left;
277 vertical-align: top;
278}
279
280DIV.summary TABLE THEAD TH {
281 background: #eeeeee;
282}
283
284/* API documentation styles... */
285div.body h1 {
286 margin: 0;
287}
288div.body h2 {
289 margin-top: 1.5em;
290}
291div.body h3, div.body h4, div.body h5 {
292 margin-bottom: 0.5em;
293 margin-top: 1.5em;
294}
295.class, .enumeration, .function, .struct, .typedef, .union {
296 border-bottom: solid thin #999999;
297 margin-bottom: 0;
298 margin-top: 2em;
299}
300.description {
301 margin-top: 0.5em;
302}
303code, p.code, pre, ul.code li {
304 font-family: monaco, courier, monospace;
305 font-size: 90%;
306}
307ul.code, ul.contents, ul.subcontents {
308 list-style-type: none;
309 margin: 0;
310 padding-left: 0;
311}
312ul.code li {
313 margin: 0;
314}
315ul.contents > li {
316 margin-top: 1em;
317}
318ul.contents li ul.code, ul.contents li ul.subcontents {
319 padding-left: 2em;
320}
321div.body dl {
322 margin-left: 0;
323 margin-top: 0;
324}
325div.body dt {
326 font-style: italic;
327 margin-left: 0;
328 margin-top: 0;
329}
330div.body dd {
331 margin-bottom: 0.5em;
332}
333
334/* This is just for the HTML files generated with the framedhelp target */
335div.contents {
336 background: #e8e8e8;
337 border: solid thin black;
338 padding: 10px;
339}
340div.contents h1 {
341 font-size: 110%;
342}
343div.contents h2 {
344 font-size: 100%;
345}
346div.contents ul.contents {
347 font-size: 80%;
348}
ac884b6a
MS
349div.contents ul.subcontents li {
350 margin-left: 1em;
351 text-indent: -1em;
352}
5a738aea 353--></style>
abacc52b
MS
354 </head>
355 <body>
5a738aea 356<!--
10d09e33 357 Raster API documentation for CUPS.
5a738aea 358
10d09e33 359 Copyright 2008-2010 by Apple Inc.
5a738aea
MS
360
361 These coded instructions, statements, and computer programs are the
362 property of Apple Inc. and are protected by Federal copyright
363 law. Distribution and use rights are outlined in the file "LICENSE.txt"
364 which should have been included with this file. If this file is
365 file is missing or damaged, see the license at "http://www.cups.org/".
366-->
367
178cb736
MS
368<h1 class='title'>Raster API</h1>
369
5a738aea
MS
370<div class='summary'><table summary='General Information'>
371<thead>
372<tr>
373 <th>Header</th>
374 <th>cups/raster.h</th>
375</tr>
376</thead>
377<tbody>
378<tr>
379 <th>Library</th>
380 <td>-lcupsimage</td>
381</tr>
382<tr>
383 <th>See Also</th>
384 <td>Programming: <a href='api-overview.html'>Introduction to CUPS Programming</a><br>
385 Programming: <a href='api-cups.html'>CUPS API</a><br>
386 Programming: <a href='api-cups.html'>PPD API</a><br>
387 References: <a href='spec-ppd.html'>CUPS PPD Specification</a></td>
388</tr>
389</tbody>
390</table></div>
abacc52b
MS
391 <div class="contents">
392 <h2 class="title">Contents</h2>
393 <ul class="contents">
394 <li><a href="#OVERVIEW">Overview</a></li>
395 <li><a href="#TASKS">Functions by Task</a><ul class="subcontents">
396 <li><a href="#OPENCLOSE">Opening and Closing Raster Streams</a></li>
397 <li><a href="#READING">Reading Raster Streams</a></li>
398 <li><a href="#WRITING">Writing Raster Streams</a></li>
399 </ul></li>
400 <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
401 <li><a href="#cupsRasterClose">cupsRasterClose</a></li>
402 <li><a href="#cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></li>
403 <li><a href="#cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></li>
404 <li><a href="#cupsRasterOpen">cupsRasterOpen</a></li>
405 <li><a href="#cupsRasterOpenIO">cupsRasterOpenIO</a></li>
406 <li><a href="#cupsRasterReadHeader">cupsRasterReadHeader</a></li>
407 <li><a href="#cupsRasterReadHeader2">cupsRasterReadHeader2</a></li>
408 <li><a href="#cupsRasterReadPixels">cupsRasterReadPixels</a></li>
409 <li><a href="#cupsRasterWriteHeader">cupsRasterWriteHeader</a></li>
410 <li><a href="#cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></li>
411 <li><a href="#cupsRasterWritePixels">cupsRasterWritePixels</a></li>
412 </ul></li>
413 <li><a href="#TYPES">Data Types</a><ul class="subcontents">
414 <li><a href="#cups_adv_t">cups_adv_t</a></li>
415 <li><a href="#cups_bool_t">cups_bool_t</a></li>
416 <li><a href="#cups_cspace_t">cups_cspace_t</a></li>
417 <li><a href="#cups_cut_t">cups_cut_t</a></li>
418 <li><a href="#cups_edge_t">cups_edge_t</a></li>
419 <li><a href="#cups_interpret_cb_t">cups_interpret_cb_t</a></li>
420 <li><a href="#cups_jog_t">cups_jog_t</a></li>
421 <li><a href="#cups_mode_t">cups_mode_t</a></li>
422 <li><a href="#cups_order_t">cups_order_t</a></li>
423 <li><a href="#cups_orient_t">cups_orient_t</a></li>
424 <li><a href="#cups_page_header2_t">cups_page_header2_t</a></li>
425 <li><a href="#cups_page_header_t">cups_page_header_t</a></li>
426 <li><a href="#cups_raster_iocb_t">cups_raster_iocb_t</a></li>
427 <li><a href="#cups_raster_t">cups_raster_t</a></li>
428 </ul></li>
429 <li><a href="#STRUCTURES">Structures</a><ul class="subcontents">
430 <li><a href="#cups_page_header2_s">cups_page_header2_s</a></li>
431 <li><a href="#cups_page_header_s">cups_page_header_s</a></li>
432 </ul></li>
433 <li><a href="#ENUMERATIONS">Enumerations</a><ul class="subcontents">
434 <li><a href="#cups_adv_e">cups_adv_e</a></li>
435 <li><a href="#cups_bool_e">cups_bool_e</a></li>
436 <li><a href="#cups_cspace_e">cups_cspace_e</a></li>
437 <li><a href="#cups_cut_e">cups_cut_e</a></li>
438 <li><a href="#cups_edge_e">cups_edge_e</a></li>
439 <li><a href="#cups_jog_e">cups_jog_e</a></li>
440 <li><a href="#cups_mode_e">cups_mode_e</a></li>
441 <li><a href="#cups_order_e">cups_order_e</a></li>
442 <li><a href="#cups_orient_e">cups_orient_e</a></li>
443 </ul></li>
444 </ul>
445 </div>
446 <div class="body">
b423cd4c 447<!--
eac3a0a0 448 Raster API introduction for CUPS.
b423cd4c 449
7374e9e5 450 Copyright 2007-2013 by Apple Inc.
5a738aea 451 Copyright 1997-2006 by Easy Software Products, all rights reserved.
b423cd4c 452
453 These coded instructions, statements, and computer programs are the
5a738aea
MS
454 property of Apple Inc. and are protected by Federal copyright
455 law. Distribution and use rights are outlined in the file "LICENSE.txt"
456 which should have been included with this file. If this file is
457 file is missing or damaged, see the license at "http://www.cups.org/".
b423cd4c 458-->
459
5a738aea
MS
460<h2 class='title'><a name="OVERVIEW">Overview</a></h2>
461
462<p>The CUPS raster API provides a standard interface for reading and writing
463CUPS raster streams which are used for printing to raster printers. Because the
464raster format is updated from time to time, it is important to use this API to
465avoid incompatibilities with newer versions of CUPS.</p>
466
79e1d494
MS
467<p>Two kinds of CUPS filters use the CUPS raster API - raster image processor
468(RIP) filters such as <code>pstoraster</code> and <code>cgpdftoraster</code>
8072030b 469(macOS) that produce CUPS raster files and printer driver filters that
79e1d494
MS
470convert CUPS raster files into a format usable by the printer. Printer
471driver filters are by far the most common.</p>
472
5a738aea
MS
473<p>CUPS raster files (<code>application/vnd.cups-raster</code>) consists of
474a stream of raster page descriptions produced by one of the RIP filters such as
475<var>pstoraster</var>, <var>imagetoraster</var>, or
476<var>cgpdftoraster</var>. CUPS raster files are referred to using the
477<a href='#cups_raster_t'><code>cups_raster_t</code></a> type and are
478opened using the <a href='#cupsRasterOpen'><code>cupsRasterOpen</code></a>
479function. For example, to read raster data from the standard input, open
480file descriptor 0:</p>
481
482<pre class="example">
8b3724f8 483#include &lt;cups/raster.h&gt;
5a738aea
MS
484
485<a href="#cups_raster_t">cups_raster_t</a> *ras = <a href="#cupsRasterOpen">cupsRasterOpen</a>(0, CUPS_RASTER_READ);
486</pre>
b423cd4c 487
5a738aea
MS
488<p>Each page of data begins with a page dictionary structure called
489<a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a>. This
490structure contains the colorspace, bits per color, media size, media type,
79e1d494
MS
491hardware resolution, and so forth used for the page.</p>
492
493<blockquote><b>Note:</b>
494
495 <p>Do not confuse the colorspace in the page header with the PPD
496 <tt>ColorModel</tt> keyword. <tt>ColorModel</tt> refers to the general type of
497 color used for a device (Gray, RGB, CMYK, DeviceN) and is often used to
498 select a particular colorspace for the page header along with the associate
499 color profile. The page header colorspace (<tt>cupsColorSpace</tt>) describes
500 both the type and organization of the color data, for example KCMY (black
501 first) instead of CMYK and RGBA (RGB + alpha) instead of RGB.</p>
502
503</blockquote>
504
505<p>You read the page header using the
5a738aea
MS
506<a href="#cupsRasterReadHeader2"><code>cupsRasterReadHeader2</code></a>
507function:</p>
b423cd4c 508
5a738aea 509<pre class="example">
8b3724f8 510#include &lt;cups/raster.h&gt;
b423cd4c 511
5a738aea
MS
512<a href="#cups_raster_t">cups_raster_t</a> *ras = <a href="#cupsRasterOpen">cupsRasterOpen</a>(0, CUPS_RASTER_READ);
513<a href="#cups_page_header2_t">cups_page_header2_t</a> header;
b423cd4c 514
5a738aea
MS
515while (<a href="#cupsRasterReadHeader2">cupsRasterReadHeader2</a>(ras, &amp;header))
516{
517 /* setup this page */
b423cd4c 518
5a738aea
MS
519 /* read raster data */
520
521 /* finish this page */
522}
b423cd4c 523</pre>
524
5a738aea
MS
525<p>After the page dictionary comes the page data which is a full-resolution,
526possibly compressed bitmap representing the page in the printer's output
527colorspace. You read uncompressed raster data using the
528<a href="#cupsRasterReadPixels"><code>cupsRasterReadPixels</code></a>
529function. A <code>for</code> loop is normally used to read the page one line
530at a time:</p>
b423cd4c 531
5a738aea 532<pre class="example">
8b3724f8 533#include &lt;cups/raster.h&gt;
b423cd4c 534
5a738aea
MS
535<a href="#cups_raster_t">cups_raster_t</a> *ras = <a href="#cupsRasterOpen">cupsRasterOpen</a>(0, CUPS_RASTER_READ);
536<a href="#cups_page_header2_t">cups_page_header2_t</a> header;
537int page = 0;
538int y;
539char *buffer;
b423cd4c 540
5a738aea
MS
541while (<a href="#cupsRasterReadHeader2">cupsRasterReadHeader2</a>(ras, &amp;header))
542{
543 /* setup this page */
544 page ++;
545 fprintf(stderr, "PAGE: %d %d\n", page, header.NumCopies);
546
547 /* allocate memory for 1 line */
548 buffer = malloc(header.cupsBytesPerLine);
549
550 /* read raster data */
551 for (y = 0; y &lt; header.cupsHeight; y ++)
552 {
553 if (<a href="#cupsRasterReadPixels">cupsRasterReadPixels</a>(ras, buffer, header.cupsBytesPerLine) == 0)
554 break;
555
79e1d494 556 /* write raster data to printer on stdout */
5a738aea
MS
557 }
558
559 /* finish this page */
560}
561</pre>
562
563<p>When you are done reading the raster data, call the
564<a href="#cupsRasterClose"><code>cupsRasterClose</code></a> function to free
565the memory used to read the raster file:</p>
566
567<pre class="example">
568<a href="#cups_raster_t">cups_raster_t</a> *ras;
569
570<a href="#cupsRasterClose">cupsRasterClose</a>(ras);
571</pre>
79e1d494
MS
572
573
574<h2 class='title'><a name="TASKS">Functions by Task</a></h2>
575
576<h3><a name="OPENCLOSE">Opening and Closing Raster Streams</a></h3>
577
578<ul class="code">
579
580 <li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
581 <li><a href="#cupsRasterOpen" title="Open a raster stream.">cupsRasterOpen</a></li>
582
583</ul>
584
585<h3><a name="READING">Reading Raster Streams</a></h3>
586
587<ul class="code">
588
8072030b 589 <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader</a> <span class="info">Deprecated in CUPS 1.2/macOS 10.5</span></li>
79e1d494
MS
590 <li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a version 2 page header structure.">cupsRasterReadHeader2</a></li>
591 <li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
592
593</ul>
594
595<h3><a name="WRITING">Writing Raster Streams</a></h3>
596
597<ul class="code">
598
599 <li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
8072030b 600 <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/macOS 10.5</span></li>
75bd9771 601 <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
79e1d494 602 <li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
f3c17241 603
79e1d494 604</ul>
abacc52b
MS
605 <h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
606<h3 class="function"><a id="cupsRasterClose">cupsRasterClose</a></h3>
607 <p class="description">Close a raster stream.</p>
5a738aea 608<p class="code">
abacc52b
MS
609void cupsRasterClose (<br />
610&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r<br />
5a738aea
MS
611);</p>
612<h4 class="parameters">Parameters</h4>
613<dl>
614<dt>r</dt>
abacc52b 615 <dd class="description">Stream to close</dd>
5a738aea 616</dl>
79e1d494 617<h4 class="discussion">Discussion</h4>
abacc52b 618 <p class="discussion">The file descriptor associated with the raster stream must be closed
79e1d494 619separately as needed.</p>
abacc52b
MS
620<h3 class="function"><span class="info">&#160;CUPS 2.2/macOS 10.12&#160;</span><a id="cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></h3>
621 <p class="description">Initialize a page header for PWG Raster output.</p>
6e5a57e8 622<p class="code">
abacc52b
MS
623int cupsRasterInitPWGHeader (<br />
624&#160;&#160;&#160;&#160;<a href="#cups_page_header2_t">cups_page_header2_t</a> *h,<br />
625&#160;&#160;&#160;&#160;pwg_media_t *media,<br />
626&#160;&#160;&#160;&#160;const char *type,<br />
627&#160;&#160;&#160;&#160;int xdpi,<br />
628&#160;&#160;&#160;&#160;int ydpi,<br />
629&#160;&#160;&#160;&#160;const char *sides,<br />
630&#160;&#160;&#160;&#160;const char *sheet_back<br />
6e5a57e8
MS
631);</p>
632<h4 class="parameters">Parameters</h4>
633<dl>
634<dt>h</dt>
abacc52b 635 <dd class="description">Page header</dd>
6e5a57e8 636<dt>media</dt>
abacc52b 637 <dd class="description">PWG media information</dd>
6e5a57e8 638<dt>type</dt>
abacc52b 639 <dd class="description">PWG raster type string</dd>
6e5a57e8 640<dt>xdpi</dt>
abacc52b 641 <dd class="description">Cross-feed direction (horizontal) resolution</dd>
6e5a57e8 642<dt>ydpi</dt>
abacc52b 643 <dd class="description">Feed direction (vertical) resolution</dd>
6e5a57e8 644<dt>sides</dt>
abacc52b 645 <dd class="description">IPP &quot;sides&quot; option value</dd>
6e5a57e8 646<dt>sheet_back</dt>
abacc52b 647 <dd class="description">Transform for back side or <code>NULL</code> for none</dd>
6e5a57e8
MS
648</dl>
649<h4 class="returnvalue">Return Value</h4>
abacc52b 650 <p class="description">1 on success, 0 on failure</p>
6e5a57e8 651<h4 class="discussion">Discussion</h4>
abacc52b 652 <p class="discussion">The &quot;media&quot; argument specifies the media to use.<br>
6e5a57e8
MS
653<br>
654The &quot;type&quot; argument specifies a &quot;pwg-raster-document-type-supported&quot; value
655that controls the color space and bit depth of the raster data.<br>
656<br>
657The &quot;xres&quot; and &quot;yres&quot; arguments specify the raster resolution in dots per
658inch.<br>
659<br>
660The &quot;sheet_back&quot; argument specifies a &quot;pwg-raster-document-sheet-back&quot; value
661to apply for the back side of a page. Pass <code>NULL</code> for the front side.
662
663</p>
abacc52b
MS
664<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
665 <p class="description">Interpret PPD commands to create a page header.</p>
5a738aea 666<p class="code">
abacc52b
MS
667int cupsRasterInterpretPPD (<br />
668&#160;&#160;&#160;&#160;<a href="#cups_page_header2_t">cups_page_header2_t</a> *h,<br />
669&#160;&#160;&#160;&#160;ppd_file_t *ppd,<br />
670&#160;&#160;&#160;&#160;int num_options,<br />
671&#160;&#160;&#160;&#160;cups_option_t *options,<br />
672&#160;&#160;&#160;&#160;<a href="#cups_interpret_cb_t">cups_interpret_cb_t</a> func<br />
5a738aea
MS
673);</p>
674<h4 class="parameters">Parameters</h4>
675<dl>
676<dt>h</dt>
abacc52b 677 <dd class="description">Page header to create</dd>
5a738aea 678<dt>ppd</dt>
abacc52b 679 <dd class="description">PPD file</dd>
5a738aea 680<dt>num_options</dt>
abacc52b 681 <dd class="description">Number of options</dd>
5a738aea 682<dt>options</dt>
abacc52b 683 <dd class="description">Options</dd>
5a738aea 684<dt>func</dt>
abacc52b 685 <dd class="description">Optional page header callback (<code>NULL</code> for none)</dd>
5a738aea
MS
686</dl>
687<h4 class="returnvalue">Return Value</h4>
abacc52b 688 <p class="description">0 on success, -1 on failure</p>
5a738aea 689<h4 class="discussion">Discussion</h4>
abacc52b 690 <p class="discussion">This function is used by raster image processing (RIP) filters like
79e1d494
MS
691cgpdftoraster and imagetoraster when writing CUPS raster data for a page.
692It is not used by raster printer driver filters which only read CUPS
693raster data.<br>
694<br>
695
696<code>cupsRasterInterpretPPD</code> does not mark the options in the PPD using
697the &quot;num_options&quot; and &quot;options&quot; arguments. Instead, mark the options with
698<code>cupsMarkOptions</code> and <code>ppdMarkOption</code> prior to calling it -
699this allows for per-page options without manipulating the options array.<br>
5a738aea
MS
700<br>
701The &quot;func&quot; argument specifies an optional callback function that is
26d47ec6 702called prior to the computation of the final raster data. The function
5a738aea 703can make changes to the <a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a> data as needed to use a
26d47ec6 704supported raster format and then returns 0 on success and -1 if the
79e1d494
MS
705requested attributes cannot be supported.<br>
706<br>
5a738aea
MS
707
708<code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language.
7374e9e5 709Currently only the <code>[</code>, <code>]</code>, <code>&lt;&lt;</code>, <code>&gt;&gt;</code>, <code>{</code>,
5a738aea
MS
710<code>}</code>, <code>cleartomark</code>, <code>copy</code>, <code>dup</code>, <code>index</code>,
711<code>pop</code>, <code>roll</code>, <code>setpagedevice</code>, and <code>stopped</code> operators
712are supported.
713
714</p>
abacc52b
MS
715<h3 class="function"><a id="cupsRasterOpen">cupsRasterOpen</a></h3>
716 <p class="description">Open a raster stream using a file descriptor.</p>
5a738aea 717<p class="code">
abacc52b
MS
718<a href="#cups_raster_t">cups_raster_t</a> *cupsRasterOpen (<br />
719&#160;&#160;&#160;&#160;int fd,<br />
720&#160;&#160;&#160;&#160;<a href="#cups_mode_t">cups_mode_t</a> mode<br />
5a738aea
MS
721);</p>
722<h4 class="parameters">Parameters</h4>
723<dl>
724<dt>fd</dt>
abacc52b 725 <dd class="description">File descriptor</dd>
5a738aea 726<dt>mode</dt>
abacc52b 727 <dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
c8fef167
MS
728<code>CUPS_RASTER_WRITE</code>,
729<code>CUPS_RASTER_WRITE_COMPRESSED</code>,
730or <code>CUPS_RASTER_WRITE_PWG</code></dd>
5a738aea
MS
731</dl>
732<h4 class="returnvalue">Return Value</h4>
abacc52b 733 <p class="description">New stream</p>
79e1d494 734<h4 class="discussion">Discussion</h4>
abacc52b 735 <p class="discussion">This function associates a raster stream with the given file descriptor.
79e1d494
MS
736For most printer driver filters, &quot;fd&quot; will be 0 (stdin). For most raster
737image processor (RIP) filters that generate raster data, &quot;fd&quot; will be 1
738(stdout).<br>
739<br>
c8fef167
MS
740When writing raster data, the <code>CUPS_RASTER_WRITE</code>,
741<code>CUPS_RASTER_WRITE_COMPRESS</code>, or <code>CUPS_RASTER_WRITE_PWG</code> mode can
742be used - compressed and PWG output is generally 25-50% smaller but adds a
743100-300% execution time overhead.</p>
abacc52b
MS
744<h3 class="function"><a id="cupsRasterOpenIO">cupsRasterOpenIO</a></h3>
745 <p class="description">Open a raster stream using a callback function.</p>
c8fef167 746<p class="code">
abacc52b
MS
747<a href="#cups_raster_t">cups_raster_t</a> *cupsRasterOpenIO (<br />
748&#160;&#160;&#160;&#160;<a href="#cups_raster_iocb_t">cups_raster_iocb_t</a> iocb,<br />
749&#160;&#160;&#160;&#160;void *ctx,<br />
750&#160;&#160;&#160;&#160;<a href="#cups_mode_t">cups_mode_t</a> mode<br />
c8fef167
MS
751);</p>
752<h4 class="parameters">Parameters</h4>
753<dl>
754<dt>iocb</dt>
abacc52b 755 <dd class="description">Read/write callback</dd>
c8fef167 756<dt>ctx</dt>
abacc52b 757 <dd class="description">Context pointer for callback</dd>
c8fef167 758<dt>mode</dt>
abacc52b 759 <dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
c8fef167
MS
760<code>CUPS_RASTER_WRITE</code>,
761<code>CUPS_RASTER_WRITE_COMPRESSED</code>,
762or <code>CUPS_RASTER_WRITE_PWG</code></dd>
763</dl>
764<h4 class="returnvalue">Return Value</h4>
abacc52b 765 <p class="description">New stream</p>
c8fef167 766<h4 class="discussion">Discussion</h4>
abacc52b 767 <p class="discussion">This function associates a raster stream with the given callback function and
c8fef167
MS
768context pointer.<br>
769<br>
770When writing raster data, the <code>CUPS_RASTER_WRITE</code>,
771<code>CUPS_RASTER_WRITE_COMPRESS</code>, or <code>CUPS_RASTER_WRITE_PWG</code> mode can
772be used - compressed and PWG output is generally 25-50% smaller but adds a
773100-300% execution time overhead.</p>
abacc52b
MS
774<h3 class="function"><span class="info">&#160;DEPRECATED&#160;</span><a id="cupsRasterReadHeader">cupsRasterReadHeader</a></h3>
775 <p class="description">Read a raster page header and store it in a
79e1d494 776version 1 page header structure.</p>
5a738aea 777<p class="code">
abacc52b
MS
778unsigned cupsRasterReadHeader (<br />
779&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r,<br />
780&#160;&#160;&#160;&#160;<a href="#cups_page_header_t">cups_page_header_t</a> *h<br />
5a738aea
MS
781);</p>
782<h4 class="parameters">Parameters</h4>
783<dl>
784<dt>r</dt>
abacc52b 785 <dd class="description">Raster stream</dd>
5a738aea 786<dt>h</dt>
abacc52b 787 <dd class="description">Pointer to header data</dd>
5a738aea
MS
788</dl>
789<h4 class="returnvalue">Return Value</h4>
abacc52b 790 <p class="description">1 on success, 0 on failure/end-of-file</p>
79e1d494 791<h4 class="discussion">Discussion</h4>
abacc52b 792 <p class="discussion">This function is deprecated. Use <a href="#cupsRasterReadHeader2"><code>cupsRasterReadHeader2</code></a> instead.<br>
79e1d494
MS
793<br>
794Version 1 page headers were used in CUPS 1.0 and 1.1 and contain a subset
795of the version 2 page header data. This function handles reading version 2
796page headers and copying only the version 1 data into the provided buffer.
797
798</p>
abacc52b
MS
799<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
800 <p class="description">Read a raster page header and store it in a
79e1d494 801version 2 page header structure.</p>
5a738aea 802<p class="code">
abacc52b
MS
803unsigned cupsRasterReadHeader2 (<br />
804&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r,<br />
805&#160;&#160;&#160;&#160;<a href="#cups_page_header2_t">cups_page_header2_t</a> *h<br />
5a738aea
MS
806);</p>
807<h4 class="parameters">Parameters</h4>
808<dl>
809<dt>r</dt>
abacc52b 810 <dd class="description">Raster stream</dd>
5a738aea 811<dt>h</dt>
abacc52b 812 <dd class="description">Pointer to header data</dd>
5a738aea
MS
813</dl>
814<h4 class="returnvalue">Return Value</h4>
abacc52b
MS
815 <p class="description">1 on success, 0 on failure/end-of-file</p>
816<h3 class="function"><a id="cupsRasterReadPixels">cupsRasterReadPixels</a></h3>
817 <p class="description">Read raster pixels.</p>
5a738aea 818<p class="code">
abacc52b
MS
819unsigned cupsRasterReadPixels (<br />
820&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r,<br />
821&#160;&#160;&#160;&#160;unsigned char *p,<br />
822&#160;&#160;&#160;&#160;unsigned len<br />
5a738aea
MS
823);</p>
824<h4 class="parameters">Parameters</h4>
825<dl>
826<dt>r</dt>
abacc52b 827 <dd class="description">Raster stream</dd>
5a738aea 828<dt>p</dt>
abacc52b 829 <dd class="description">Pointer to pixel buffer</dd>
5a738aea 830<dt>len</dt>
abacc52b 831 <dd class="description">Number of bytes to read</dd>
5a738aea
MS
832</dl>
833<h4 class="returnvalue">Return Value</h4>
abacc52b 834 <p class="description">Number of bytes read</p>
79e1d494 835<h4 class="discussion">Discussion</h4>
abacc52b 836 <p class="discussion">For best performance, filters should read one or more whole lines.
79e1d494
MS
837The &quot;cupsBytesPerLine&quot; value from the page header can be used to allocate
838the line buffer and as the number of bytes to read.</p>
abacc52b
MS
839<h3 class="function"><span class="info">&#160;DEPRECATED&#160;</span><a id="cupsRasterWriteHeader">cupsRasterWriteHeader</a></h3>
840 <p class="description">Write a raster page header from a version 1 page
5a738aea
MS
841header structure.</p>
842<p class="code">
abacc52b
MS
843unsigned cupsRasterWriteHeader (<br />
844&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r,<br />
845&#160;&#160;&#160;&#160;<a href="#cups_page_header_t">cups_page_header_t</a> *h<br />
5a738aea
MS
846);</p>
847<h4 class="parameters">Parameters</h4>
848<dl>
849<dt>r</dt>
abacc52b 850 <dd class="description">Raster stream</dd>
5a738aea 851<dt>h</dt>
abacc52b 852 <dd class="description">Raster page header</dd>
5a738aea
MS
853</dl>
854<h4 class="returnvalue">Return Value</h4>
abacc52b 855 <p class="description">1 on success, 0 on failure</p>
79e1d494 856<h4 class="discussion">Discussion</h4>
abacc52b 857 <p class="discussion">This function is deprecated. Use <a href="#cupsRasterWriteHeader2"><code>cupsRasterWriteHeader2</code></a> instead.
79e1d494
MS
858
859</p>
abacc52b
MS
860<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
861 <p class="description">Write a raster page header from a version 2
79e1d494 862page header structure.</p>
5a738aea 863<p class="code">
abacc52b
MS
864unsigned cupsRasterWriteHeader2 (<br />
865&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r,<br />
866&#160;&#160;&#160;&#160;<a href="#cups_page_header2_t">cups_page_header2_t</a> *h<br />
5a738aea
MS
867);</p>
868<h4 class="parameters">Parameters</h4>
869<dl>
870<dt>r</dt>
abacc52b 871 <dd class="description">Raster stream</dd>
5a738aea 872<dt>h</dt>
abacc52b 873 <dd class="description">Raster page header</dd>
5a738aea
MS
874</dl>
875<h4 class="returnvalue">Return Value</h4>
abacc52b 876 <p class="description">1 on success, 0 on failure</p>
79e1d494 877<h4 class="discussion">Discussion</h4>
abacc52b 878 <p class="discussion">The page header can be initialized using <a href="#cupsRasterInitPWGHeader"><code>cupsRasterInitPWGHeader</code></a>.
79e1d494
MS
879
880</p>
abacc52b
MS
881<h3 class="function"><a id="cupsRasterWritePixels">cupsRasterWritePixels</a></h3>
882 <p class="description">Write raster pixels.</p>
5a738aea 883<p class="code">
abacc52b
MS
884unsigned cupsRasterWritePixels (<br />
885&#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r,<br />
886&#160;&#160;&#160;&#160;unsigned char *p,<br />
887&#160;&#160;&#160;&#160;unsigned len<br />
5a738aea
MS
888);</p>
889<h4 class="parameters">Parameters</h4>
890<dl>
891<dt>r</dt>
abacc52b 892 <dd class="description">Raster stream</dd>
5a738aea 893<dt>p</dt>
abacc52b 894 <dd class="description">Bytes to write</dd>
5a738aea 895<dt>len</dt>
abacc52b 896 <dd class="description">Number of bytes to write</dd>
5a738aea
MS
897</dl>
898<h4 class="returnvalue">Return Value</h4>
abacc52b 899 <p class="description">Number of bytes written</p>
79e1d494 900<h4 class="discussion">Discussion</h4>
abacc52b 901 <p class="discussion">For best performance, filters should write one or more whole lines.
79e1d494
MS
902The &quot;cupsBytesPerLine&quot; value from the page header can be used to allocate
903the line buffer and as the number of bytes to write.</p>
abacc52b
MS
904 <h2 class="title"><a id="TYPES">Data Types</a></h2>
905 <h3 class="typedef"><a id="cups_adv_t">cups_adv_t</a></h3>
906 <p class="description">AdvanceMedia attribute values</p>
907 <p class="code">
79e1d494
MS
908typedef enum <a href="#cups_adv_e">cups_adv_e</a> cups_adv_t;
909</p>
abacc52b
MS
910 <h3 class="typedef"><a id="cups_bool_t">cups_bool_t</a></h3>
911 <p class="description">Boolean type</p>
912 <p class="code">
79e1d494
MS
913typedef enum <a href="#cups_bool_e">cups_bool_e</a> cups_bool_t;
914</p>
abacc52b
MS
915 <h3 class="typedef"><a id="cups_cspace_t">cups_cspace_t</a></h3>
916 <p class="description">cupsColorSpace attribute values</p>
917 <p class="code">
79e1d494
MS
918typedef enum <a href="#cups_cspace_e">cups_cspace_e</a> cups_cspace_t;
919</p>
abacc52b
MS
920 <h3 class="typedef"><a id="cups_cut_t">cups_cut_t</a></h3>
921 <p class="description">CutMedia attribute values</p>
922 <p class="code">
79e1d494
MS
923typedef enum <a href="#cups_cut_e">cups_cut_e</a> cups_cut_t;
924</p>
abacc52b
MS
925 <h3 class="typedef"><a id="cups_edge_t">cups_edge_t</a></h3>
926 <p class="description">LeadingEdge attribute values</p>
927 <p class="code">
79e1d494
MS
928typedef enum <a href="#cups_edge_e">cups_edge_e</a> cups_edge_t;
929</p>
abacc52b
MS
930 <h3 class="typedef"><a id="cups_interpret_cb_t">cups_interpret_cb_t</a></h3>
931 <p class="description">cupsRasterInterpretPPD callback function</p>
932 <p class="code">
5a738aea
MS
933typedef int (*cups_interpret_cb_t)(<a href="#cups_page_header2_t">cups_page_header2_t</a> *header, int preferred_bits);
934</p>
abacc52b
MS
935 <h3 class="typedef"><a id="cups_jog_t">cups_jog_t</a></h3>
936 <p class="description">Jog attribute values</p>
937 <p class="code">
79e1d494
MS
938typedef enum <a href="#cups_jog_e">cups_jog_e</a> cups_jog_t;
939</p>
abacc52b
MS
940 <h3 class="typedef"><a id="cups_mode_t">cups_mode_t</a></h3>
941 <p class="description">cupsRasterOpen modes</p>
942 <p class="code">
5a738aea
MS
943typedef enum <a href="#cups_mode_e">cups_mode_e</a> cups_mode_t;
944</p>
abacc52b
MS
945 <h3 class="typedef"><a id="cups_order_t">cups_order_t</a></h3>
946 <p class="description">cupsColorOrder attribute values</p>
947 <p class="code">
79e1d494
MS
948typedef enum <a href="#cups_order_e">cups_order_e</a> cups_order_t;
949</p>
abacc52b
MS
950 <h3 class="typedef"><a id="cups_orient_t">cups_orient_t</a></h3>
951 <p class="description">Orientation attribute values</p>
952 <p class="code">
79e1d494
MS
953typedef enum <a href="#cups_orient_e">cups_orient_e</a> cups_orient_t;
954</p>
abacc52b
MS
955 <h3 class="typedef"><a id="cups_page_header2_t"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span>cups_page_header2_t</a></h3>
956 <p class="description">Version 2 page header </p>
957 <p class="code">
5a738aea
MS
958typedef struct <a href="#cups_page_header2_s">cups_page_header2_s</a> cups_page_header2_t;
959</p>
abacc52b
MS
960 <h3 class="typedef"><a id="cups_page_header_t"><span class="info">&#160;DEPRECATED&#160;</span>cups_page_header_t</a></h3>
961 <p class="description">Version 1 page header </p>
962 <p class="code">
5a738aea
MS
963typedef struct <a href="#cups_page_header_s">cups_page_header_s</a> cups_page_header_t;
964</p>
abacc52b
MS
965 <h3 class="typedef"><a id="cups_raster_iocb_t">cups_raster_iocb_t</a></h3>
966 <p class="description">cupsRasterOpenIO callback function</p>
967 <p class="code">
c8fef167
MS
968typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length);
969</p>
abacc52b
MS
970 <h3 class="typedef"><a id="cups_raster_t">cups_raster_t</a></h3>
971 <p class="description">Raster stream data</p>
972 <p class="code">
b423cd4c 973typedef struct _cups_raster_s cups_raster_t;
5a738aea 974</p>
abacc52b
MS
975 <h2 class="title"><a id="STRUCTURES">Structures</a></h2>
976<h3 class="struct"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cups_page_header2_s">cups_page_header2_s</a></h3>
977 <p class="description">Version 2 page header </p>
978<p class="code">struct cups_page_header2_s {<br />
979&#160;&#160;&#160;&#160;unsigned AdvanceDistance;<br />
980&#160;&#160;&#160;&#160;<a href="#cups_adv_t">cups_adv_t</a> AdvanceMedia;<br />
981&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Collate;<br />
982&#160;&#160;&#160;&#160;<a href="#cups_cut_t">cups_cut_t</a> CutMedia;<br />
983&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Duplex;<br />
984&#160;&#160;&#160;&#160;unsigned HWResolution[2];<br />
985&#160;&#160;&#160;&#160;unsigned ImagingBoundingBox[4];<br />
986&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> InsertSheet;<br />
987&#160;&#160;&#160;&#160;<a href="#cups_jog_t">cups_jog_t</a> Jog;<br />
988&#160;&#160;&#160;&#160;<a href="#cups_edge_t">cups_edge_t</a> LeadingEdge;<br />
989&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> ManualFeed;<br />
990&#160;&#160;&#160;&#160;unsigned Margins[2];<br />
991&#160;&#160;&#160;&#160;char MediaClass[64];<br />
992&#160;&#160;&#160;&#160;char MediaColor[64];<br />
993&#160;&#160;&#160;&#160;unsigned MediaPosition;<br />
994&#160;&#160;&#160;&#160;char MediaType[64];<br />
995&#160;&#160;&#160;&#160;unsigned MediaWeight;<br />
996&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> MirrorPrint;<br />
997&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> NegativePrint;<br />
998&#160;&#160;&#160;&#160;unsigned NumCopies;<br />
999&#160;&#160;&#160;&#160;<a href="#cups_orient_t">cups_orient_t</a> Orientation;<br />
1000&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> OutputFaceUp;<br />
1001&#160;&#160;&#160;&#160;char OutputType[64];<br />
1002&#160;&#160;&#160;&#160;unsigned PageSize[2];<br />
1003&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Separations;<br />
1004&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> TraySwitch;<br />
1005&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Tumble;<br />
1006&#160;&#160;&#160;&#160;unsigned cupsBitsPerColor;<br />
1007&#160;&#160;&#160;&#160;unsigned cupsBitsPerPixel;<br />
1008&#160;&#160;&#160;&#160;float cupsBorderlessScalingFactor;<br />
1009&#160;&#160;&#160;&#160;unsigned cupsBytesPerLine;<br />
1010&#160;&#160;&#160;&#160;<a href="#cups_order_t">cups_order_t</a> cupsColorOrder;<br />
1011&#160;&#160;&#160;&#160;<a href="#cups_cspace_t">cups_cspace_t</a> cupsColorSpace;<br />
1012&#160;&#160;&#160;&#160;unsigned cupsCompression;<br />
1013&#160;&#160;&#160;&#160;unsigned cupsHeight;<br />
1014&#160;&#160;&#160;&#160;float cupsImagingBBox[4];<br />
1015&#160;&#160;&#160;&#160;unsigned cupsInteger[16];<br />
1016&#160;&#160;&#160;&#160;char cupsMarkerType[64];<br />
1017&#160;&#160;&#160;&#160;unsigned cupsMediaType;<br />
1018&#160;&#160;&#160;&#160;unsigned cupsNumColors;<br />
1019&#160;&#160;&#160;&#160;char cupsPageSizeName[64];<br />
1020&#160;&#160;&#160;&#160;float cupsPageSize[2];<br />
1021&#160;&#160;&#160;&#160;float cupsReal[16];<br />
1022&#160;&#160;&#160;&#160;char cupsRenderingIntent[64];<br />
1023&#160;&#160;&#160;&#160;unsigned cupsRowCount;<br />
1024&#160;&#160;&#160;&#160;unsigned cupsRowFeed;<br />
1025&#160;&#160;&#160;&#160;unsigned cupsRowStep;<br />
1026&#160;&#160;&#160;&#160;char cupsString[16][64];<br />
1027&#160;&#160;&#160;&#160;unsigned cupsWidth;<br />
5a738aea
MS
1028};</p>
1029<h4 class="members">Members</h4>
1030<dl>
1031<dt>AdvanceDistance </dt>
abacc52b 1032 <dd class="description">AdvanceDistance value in points</dd>
5a738aea 1033<dt>AdvanceMedia </dt>
abacc52b 1034 <dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
5a738aea 1035<dt>Collate </dt>
abacc52b 1036 <dd class="description">Collated copies value</dd>
5a738aea 1037<dt>CutMedia </dt>
abacc52b 1038 <dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
5a738aea 1039<dt>Duplex </dt>
abacc52b 1040 <dd class="description">Duplexed (double-sided) value</dd>
5a738aea 1041<dt>HWResolution[2] </dt>
abacc52b 1042 <dd class="description">Resolution in dots-per-inch</dd>
5a738aea 1043<dt>ImagingBoundingBox[4] </dt>
abacc52b 1044 <dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
5a738aea 1045<dt>InsertSheet </dt>
abacc52b 1046 <dd class="description">InsertSheet value</dd>
5a738aea 1047<dt>Jog </dt>
abacc52b 1048 <dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
5a738aea 1049<dt>LeadingEdge </dt>
abacc52b 1050 <dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
5a738aea 1051<dt>ManualFeed </dt>
abacc52b 1052 <dd class="description">ManualFeed value</dd>
5a738aea 1053<dt>Margins[2] </dt>
abacc52b 1054 <dd class="description">Lower-lefthand margins in points</dd>
5a738aea 1055<dt>MediaClass[64] </dt>
abacc52b 1056 <dd class="description">MediaClass string</dd>
5a738aea 1057<dt>MediaColor[64] </dt>
abacc52b 1058 <dd class="description">MediaColor string</dd>
5a738aea 1059<dt>MediaPosition </dt>
abacc52b 1060 <dd class="description">MediaPosition value</dd>
5a738aea 1061<dt>MediaType[64] </dt>
abacc52b 1062 <dd class="description">MediaType string</dd>
5a738aea 1063<dt>MediaWeight </dt>
abacc52b 1064 <dd class="description">MediaWeight value in grams/m^2</dd>
5a738aea 1065<dt>MirrorPrint </dt>
abacc52b 1066 <dd class="description">MirrorPrint value</dd>
5a738aea 1067<dt>NegativePrint </dt>
abacc52b 1068 <dd class="description">NegativePrint value</dd>
5a738aea 1069<dt>NumCopies </dt>
abacc52b 1070 <dd class="description">Number of copies to produce</dd>
5a738aea 1071<dt>Orientation </dt>
abacc52b 1072 <dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
5a738aea 1073<dt>OutputFaceUp </dt>
abacc52b 1074 <dd class="description">OutputFaceUp value</dd>
5a738aea 1075<dt>OutputType[64] </dt>
abacc52b 1076 <dd class="description">OutputType string</dd>
5a738aea 1077<dt>PageSize[2] </dt>
abacc52b 1078 <dd class="description">Width and length of page in points</dd>
5a738aea 1079<dt>Separations </dt>
abacc52b 1080 <dd class="description">Separations value</dd>
5a738aea 1081<dt>TraySwitch </dt>
abacc52b 1082 <dd class="description">TraySwitch value</dd>
5a738aea 1083<dt>Tumble </dt>
abacc52b 1084 <dd class="description">Tumble value</dd>
5a738aea 1085<dt>cupsBitsPerColor </dt>
abacc52b 1086 <dd class="description">Number of bits for each color</dd>
5a738aea 1087<dt>cupsBitsPerPixel </dt>
abacc52b
MS
1088 <dd class="description">Number of bits for each pixel</dd>
1089<dt>cupsBorderlessScalingFactor <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1090 <dd class="description">Scaling that was applied to page data </dd>
5a738aea 1091<dt>cupsBytesPerLine </dt>
abacc52b 1092 <dd class="description">Number of bytes per line</dd>
5a738aea 1093<dt>cupsColorOrder </dt>
abacc52b 1094 <dd class="description">Order of colors</dd>
5a738aea 1095<dt>cupsColorSpace </dt>
abacc52b 1096 <dd class="description">True colorspace</dd>
5a738aea 1097<dt>cupsCompression </dt>
abacc52b 1098 <dd class="description">Device compression to use</dd>
5a738aea 1099<dt>cupsHeight </dt>
abacc52b
MS
1100 <dd class="description">Height of page image in pixels</dd>
1101<dt>cupsImagingBBox[4] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1102 <dd class="description">Floating point ImagingBoundingBox
79e1d494
MS
1103(scaling factor not applied, left,
1104bottom, right, top) </dd>
abacc52b
MS
1105<dt>cupsInteger[16] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1106 <dd class="description">User-defined integer values </dd>
1107<dt>cupsMarkerType[64] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1108 <dd class="description">Ink/toner type </dd>
5a738aea 1109<dt>cupsMediaType </dt>
abacc52b
MS
1110 <dd class="description">Media type code</dd>
1111<dt>cupsNumColors <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1112 <dd class="description">Number of color compoents </dd>
1113<dt>cupsPageSizeName[64] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1114 <dd class="description">PageSize name </dd>
1115<dt>cupsPageSize[2] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1116 <dd class="description">Floating point PageSize (scaling *
5a738aea 1117factor not applied) </dd>
abacc52b
MS
1118<dt>cupsReal[16] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1119 <dd class="description">User-defined floating-point values </dd>
1120<dt>cupsRenderingIntent[64] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1121 <dd class="description">Color rendering intent </dd>
5a738aea 1122<dt>cupsRowCount </dt>
abacc52b 1123 <dd class="description">Rows per band</dd>
5a738aea 1124<dt>cupsRowFeed </dt>
abacc52b 1125 <dd class="description">Feed between bands</dd>
5a738aea 1126<dt>cupsRowStep </dt>
abacc52b
MS
1127 <dd class="description">Spacing between lines</dd>
1128<dt>cupsString[16][64] <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1129 <dd class="description">User-defined string values </dd>
5a738aea 1130<dt>cupsWidth </dt>
abacc52b 1131 <dd class="description">Width of page image in pixels</dd>
5a738aea 1132</dl>
abacc52b
MS
1133<h3 class="struct"><span class="info">&#160;DEPRECATED&#160;</span><a id="cups_page_header_s">cups_page_header_s</a></h3>
1134 <p class="description">Version 1 page header </p>
1135<p class="code">struct cups_page_header_s {<br />
1136&#160;&#160;&#160;&#160;unsigned AdvanceDistance;<br />
1137&#160;&#160;&#160;&#160;<a href="#cups_adv_t">cups_adv_t</a> AdvanceMedia;<br />
1138&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Collate;<br />
1139&#160;&#160;&#160;&#160;<a href="#cups_cut_t">cups_cut_t</a> CutMedia;<br />
1140&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Duplex;<br />
1141&#160;&#160;&#160;&#160;unsigned HWResolution[2];<br />
1142&#160;&#160;&#160;&#160;unsigned ImagingBoundingBox[4];<br />
1143&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> InsertSheet;<br />
1144&#160;&#160;&#160;&#160;<a href="#cups_jog_t">cups_jog_t</a> Jog;<br />
1145&#160;&#160;&#160;&#160;<a href="#cups_edge_t">cups_edge_t</a> LeadingEdge;<br />
1146&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> ManualFeed;<br />
1147&#160;&#160;&#160;&#160;unsigned Margins[2];<br />
1148&#160;&#160;&#160;&#160;char MediaClass[64];<br />
1149&#160;&#160;&#160;&#160;char MediaColor[64];<br />
1150&#160;&#160;&#160;&#160;unsigned MediaPosition;<br />
1151&#160;&#160;&#160;&#160;char MediaType[64];<br />
1152&#160;&#160;&#160;&#160;unsigned MediaWeight;<br />
1153&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> MirrorPrint;<br />
1154&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> NegativePrint;<br />
1155&#160;&#160;&#160;&#160;unsigned NumCopies;<br />
1156&#160;&#160;&#160;&#160;<a href="#cups_orient_t">cups_orient_t</a> Orientation;<br />
1157&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> OutputFaceUp;<br />
1158&#160;&#160;&#160;&#160;char OutputType[64];<br />
1159&#160;&#160;&#160;&#160;unsigned PageSize[2];<br />
1160&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Separations;<br />
1161&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> TraySwitch;<br />
1162&#160;&#160;&#160;&#160;<a href="#cups_bool_t">cups_bool_t</a> Tumble;<br />
1163&#160;&#160;&#160;&#160;unsigned cupsBitsPerColor;<br />
1164&#160;&#160;&#160;&#160;unsigned cupsBitsPerPixel;<br />
1165&#160;&#160;&#160;&#160;unsigned cupsBytesPerLine;<br />
1166&#160;&#160;&#160;&#160;<a href="#cups_order_t">cups_order_t</a> cupsColorOrder;<br />
1167&#160;&#160;&#160;&#160;<a href="#cups_cspace_t">cups_cspace_t</a> cupsColorSpace;<br />
1168&#160;&#160;&#160;&#160;unsigned cupsCompression;<br />
1169&#160;&#160;&#160;&#160;unsigned cupsHeight;<br />
1170&#160;&#160;&#160;&#160;unsigned cupsMediaType;<br />
1171&#160;&#160;&#160;&#160;unsigned cupsRowCount;<br />
1172&#160;&#160;&#160;&#160;unsigned cupsRowFeed;<br />
1173&#160;&#160;&#160;&#160;unsigned cupsRowStep;<br />
1174&#160;&#160;&#160;&#160;unsigned cupsWidth;<br />
5a738aea
MS
1175};</p>
1176<h4 class="members">Members</h4>
1177<dl>
1178<dt>AdvanceDistance </dt>
abacc52b 1179 <dd class="description">AdvanceDistance value in points</dd>
5a738aea 1180<dt>AdvanceMedia </dt>
abacc52b 1181 <dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
5a738aea 1182<dt>Collate </dt>
abacc52b 1183 <dd class="description">Collated copies value</dd>
5a738aea 1184<dt>CutMedia </dt>
abacc52b 1185 <dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
5a738aea 1186<dt>Duplex </dt>
abacc52b 1187 <dd class="description">Duplexed (double-sided) value</dd>
5a738aea 1188<dt>HWResolution[2] </dt>
abacc52b 1189 <dd class="description">Resolution in dots-per-inch</dd>
5a738aea 1190<dt>ImagingBoundingBox[4] </dt>
abacc52b 1191 <dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
5a738aea 1192<dt>InsertSheet </dt>
abacc52b 1193 <dd class="description">InsertSheet value</dd>
5a738aea 1194<dt>Jog </dt>
abacc52b 1195 <dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
5a738aea 1196<dt>LeadingEdge </dt>
abacc52b 1197 <dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
5a738aea 1198<dt>ManualFeed </dt>
abacc52b 1199 <dd class="description">ManualFeed value</dd>
5a738aea 1200<dt>Margins[2] </dt>
abacc52b 1201 <dd class="description">Lower-lefthand margins in points</dd>
5a738aea 1202<dt>MediaClass[64] </dt>
abacc52b 1203 <dd class="description">MediaClass string</dd>
5a738aea 1204<dt>MediaColor[64] </dt>
abacc52b 1205 <dd class="description">MediaColor string</dd>
5a738aea 1206<dt>MediaPosition </dt>
abacc52b 1207 <dd class="description">MediaPosition value</dd>
5a738aea 1208<dt>MediaType[64] </dt>
abacc52b 1209 <dd class="description">MediaType string</dd>
5a738aea 1210<dt>MediaWeight </dt>
abacc52b 1211 <dd class="description">MediaWeight value in grams/m^2</dd>
5a738aea 1212<dt>MirrorPrint </dt>
abacc52b 1213 <dd class="description">MirrorPrint value</dd>
5a738aea 1214<dt>NegativePrint </dt>
abacc52b 1215 <dd class="description">NegativePrint value</dd>
5a738aea 1216<dt>NumCopies </dt>
abacc52b 1217 <dd class="description">Number of copies to produce</dd>
5a738aea 1218<dt>Orientation </dt>
abacc52b 1219 <dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
5a738aea 1220<dt>OutputFaceUp </dt>
abacc52b 1221 <dd class="description">OutputFaceUp value</dd>
5a738aea 1222<dt>OutputType[64] </dt>
abacc52b 1223 <dd class="description">OutputType string</dd>
5a738aea 1224<dt>PageSize[2] </dt>
abacc52b 1225 <dd class="description">Width and length of page in points</dd>
5a738aea 1226<dt>Separations </dt>
abacc52b 1227 <dd class="description">Separations value</dd>
5a738aea 1228<dt>TraySwitch </dt>
abacc52b 1229 <dd class="description">TraySwitch value</dd>
5a738aea 1230<dt>Tumble </dt>
abacc52b 1231 <dd class="description">Tumble value</dd>
5a738aea 1232<dt>cupsBitsPerColor </dt>
abacc52b 1233 <dd class="description">Number of bits for each color</dd>
5a738aea 1234<dt>cupsBitsPerPixel </dt>
abacc52b 1235 <dd class="description">Number of bits for each pixel</dd>
5a738aea 1236<dt>cupsBytesPerLine </dt>
abacc52b 1237 <dd class="description">Number of bytes per line</dd>
5a738aea 1238<dt>cupsColorOrder </dt>
abacc52b 1239 <dd class="description">Order of colors</dd>
5a738aea 1240<dt>cupsColorSpace </dt>
abacc52b 1241 <dd class="description">True colorspace</dd>
5a738aea 1242<dt>cupsCompression </dt>
abacc52b 1243 <dd class="description">Device compression to use</dd>
5a738aea 1244<dt>cupsHeight </dt>
abacc52b 1245 <dd class="description">Height of page image in pixels</dd>
5a738aea 1246<dt>cupsMediaType </dt>
abacc52b 1247 <dd class="description">Media type code</dd>
5a738aea 1248<dt>cupsRowCount </dt>
abacc52b 1249 <dd class="description">Rows per band</dd>
5a738aea 1250<dt>cupsRowFeed </dt>
abacc52b 1251 <dd class="description">Feed between bands</dd>
5a738aea 1252<dt>cupsRowStep </dt>
abacc52b 1253 <dd class="description">Spacing between lines</dd>
5a738aea 1254<dt>cupsWidth </dt>
abacc52b 1255 <dd class="description">Width of page image in pixels</dd>
5a738aea 1256</dl>
abacc52b
MS
1257 <h2 class="title"><a id="ENUMERATIONS">Constants</a></h2>
1258 <h3 class="enumeration"><a id="cups_adv_e">cups_adv_e</a></h3>
1259 <p class="description">AdvanceMedia attribute values</p>
1260 <h4 class="constants">Constants</h4>
1261 <dl>
1262 <dt>CUPS_ADVANCE_FILE </dt>
1263 <dd class="description">Advance the roll after this file</dd>
1264 <dt>CUPS_ADVANCE_JOB </dt>
1265 <dd class="description">Advance the roll after this job</dd>
1266 <dt>CUPS_ADVANCE_NONE </dt>
1267 <dd class="description">Never advance the roll</dd>
1268 <dt>CUPS_ADVANCE_PAGE </dt>
1269 <dd class="description">Advance the roll after this page</dd>
1270 <dt>CUPS_ADVANCE_SET </dt>
1271 <dd class="description">Advance the roll after this set</dd>
5a738aea 1272</dl>
abacc52b
MS
1273 <h3 class="enumeration"><a id="cups_bool_e">cups_bool_e</a></h3>
1274 <p class="description">Boolean type</p>
1275 <h4 class="constants">Constants</h4>
1276 <dl>
1277 <dt>CUPS_FALSE </dt>
1278 <dd class="description">Logical false</dd>
1279 <dt>CUPS_TRUE </dt>
1280 <dd class="description">Logical true</dd>
5a738aea 1281</dl>
abacc52b
MS
1282 <h3 class="enumeration"><a id="cups_cspace_e">cups_cspace_e</a></h3>
1283 <p class="description">cupsColorSpace attribute values</p>
1284 <h4 class="constants">Constants</h4>
1285 <dl>
1286 <dt>CUPS_CSPACE_ADOBERGB <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1287 <dd class="description">Red, green, blue (Adobe RGB) </dd>
1288 <dt>CUPS_CSPACE_CIELab <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1289 <dd class="description">CIE Lab </dd>
1290 <dt>CUPS_CSPACE_CIEXYZ <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1291 <dd class="description">CIE XYZ </dd>
1292 <dt>CUPS_CSPACE_CMY </dt>
1293 <dd class="description">Cyan, magenta, yellow (DeviceCMY)</dd>
1294 <dt>CUPS_CSPACE_CMYK </dt>
1295 <dd class="description">Cyan, magenta, yellow, black (DeviceCMYK)</dd>
1296 <dt>CUPS_CSPACE_DEVICE1 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1297 <dd class="description">DeviceN, 1 color </dd>
1298 <dt>CUPS_CSPACE_DEVICE2 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1299 <dd class="description">DeviceN, 2 colors </dd>
1300 <dt>CUPS_CSPACE_DEVICE3 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1301 <dd class="description">DeviceN, 3 colors </dd>
1302 <dt>CUPS_CSPACE_DEVICE4 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1303 <dd class="description">DeviceN, 4 colors </dd>
1304 <dt>CUPS_CSPACE_DEVICE5 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1305 <dd class="description">DeviceN, 5 colors </dd>
1306 <dt>CUPS_CSPACE_DEVICE6 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1307 <dd class="description">DeviceN, 6 colors </dd>
1308 <dt>CUPS_CSPACE_DEVICE7 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1309 <dd class="description">DeviceN, 7 colors </dd>
1310 <dt>CUPS_CSPACE_DEVICE8 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1311 <dd class="description">DeviceN, 8 colors </dd>
1312 <dt>CUPS_CSPACE_DEVICE9 <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1313 <dd class="description">DeviceN, 9 colors </dd>
1314 <dt>CUPS_CSPACE_DEVICEA <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1315 <dd class="description">DeviceN, 10 colors </dd>
1316 <dt>CUPS_CSPACE_DEVICEB <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1317 <dd class="description">DeviceN, 11 colors </dd>
1318 <dt>CUPS_CSPACE_DEVICEC <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1319 <dd class="description">DeviceN, 12 colors </dd>
1320 <dt>CUPS_CSPACE_DEVICED <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1321 <dd class="description">DeviceN, 13 colors </dd>
1322 <dt>CUPS_CSPACE_DEVICEE <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1323 <dd class="description">DeviceN, 14 colors </dd>
1324 <dt>CUPS_CSPACE_DEVICEF <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1325 <dd class="description">DeviceN, 15 colors </dd>
1326 <dt>CUPS_CSPACE_GMCK <span class="info">&#160;DEPRECATED&#160;</span></dt>
1327 <dd class="description">Gold, magenta, yellow, black </dd>
1328 <dt>CUPS_CSPACE_GMCS <span class="info">&#160;DEPRECATED&#160;</span></dt>
1329 <dd class="description">Gold, magenta, yellow, silver </dd>
1330 <dt>CUPS_CSPACE_GOLD <span class="info">&#160;DEPRECATED&#160;</span></dt>
1331 <dd class="description">Gold foil </dd>
1332 <dt>CUPS_CSPACE_ICC1 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1333 <dd class="description">ICC-based, 1 color </dd>
1334 <dt>CUPS_CSPACE_ICC2 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1335 <dd class="description">ICC-based, 2 colors </dd>
1336 <dt>CUPS_CSPACE_ICC3 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1337 <dd class="description">ICC-based, 3 colors </dd>
1338 <dt>CUPS_CSPACE_ICC4 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1339 <dd class="description">ICC-based, 4 colors </dd>
1340 <dt>CUPS_CSPACE_ICC5 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1341 <dd class="description">ICC-based, 5 colors </dd>
1342 <dt>CUPS_CSPACE_ICC6 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1343 <dd class="description">ICC-based, 6 colors </dd>
1344 <dt>CUPS_CSPACE_ICC7 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1345 <dd class="description">ICC-based, 7 colors </dd>
1346 <dt>CUPS_CSPACE_ICC8 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1347 <dd class="description">ICC-based, 8 colors </dd>
1348 <dt>CUPS_CSPACE_ICC9 <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1349 <dd class="description">ICC-based, 9 colors </dd>
1350 <dt>CUPS_CSPACE_ICCA <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1351 <dd class="description">ICC-based, 10 colors </dd>
1352 <dt>CUPS_CSPACE_ICCB <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1353 <dd class="description">ICC-based, 11 colors </dd>
1354 <dt>CUPS_CSPACE_ICCC <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1355 <dd class="description">ICC-based, 12 colors </dd>
1356 <dt>CUPS_CSPACE_ICCD <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1357 <dd class="description">ICC-based, 13 colors </dd>
1358 <dt>CUPS_CSPACE_ICCE <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1359 <dd class="description">ICC-based, 14 colors </dd>
1360 <dt>CUPS_CSPACE_ICCF <span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span></dt>
1361 <dd class="description">ICC-based, 15 colors </dd>
1362 <dt>CUPS_CSPACE_K </dt>
1363 <dd class="description">Black (DeviceK)</dd>
1364 <dt>CUPS_CSPACE_KCMY <span class="info">&#160;DEPRECATED&#160;</span></dt>
1365 <dd class="description">Black, cyan, magenta, yellow </dd>
1366 <dt>CUPS_CSPACE_KCMYcm <span class="info">&#160;DEPRECATED&#160;</span></dt>
1367 <dd class="description">Black, cyan, magenta, yellow, light-cyan, light-magenta </dd>
1368 <dt>CUPS_CSPACE_RGB </dt>
1369 <dd class="description">Red, green, blue (DeviceRGB, sRGB by default)</dd>
1370 <dt>CUPS_CSPACE_RGBA </dt>
1371 <dd class="description">Red, green, blue, alpha (DeviceRGB, sRGB by default)</dd>
1372 <dt>CUPS_CSPACE_RGBW <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></dt>
1373 <dd class="description">Red, green, blue, white (DeviceRGB, sRGB by default) </dd>
1374 <dt>CUPS_CSPACE_SILVER <span class="info">&#160;DEPRECATED&#160;</span></dt>
1375 <dd class="description">Silver foil </dd>
1376 <dt>CUPS_CSPACE_SRGB <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1377 <dd class="description">Red, green, blue (sRGB) </dd>
1378 <dt>CUPS_CSPACE_SW <span class="info">&#160;CUPS 1.4.5&#160;</span></dt>
1379 <dd class="description">Luminance (gamma 2.2) </dd>
1380 <dt>CUPS_CSPACE_W </dt>
1381 <dd class="description">Luminance (DeviceGray, gamma 2.2 by default)</dd>
1382 <dt>CUPS_CSPACE_WHITE <span class="info">&#160;DEPRECATED&#160;</span></dt>
1383 <dd class="description">White ink (as black) </dd>
1384 <dt>CUPS_CSPACE_YMC <span class="info">&#160;DEPRECATED&#160;</span></dt>
1385 <dd class="description">Yellow, magenta, cyan </dd>
1386 <dt>CUPS_CSPACE_YMCK <span class="info">&#160;DEPRECATED&#160;</span></dt>
1387 <dd class="description">Yellow, magenta, cyan, black </dd>
5a738aea 1388</dl>
abacc52b
MS
1389 <h3 class="enumeration"><a id="cups_cut_e">cups_cut_e</a></h3>
1390 <p class="description">CutMedia attribute values</p>
1391 <h4 class="constants">Constants</h4>
1392 <dl>
1393 <dt>CUPS_CUT_FILE </dt>
1394 <dd class="description">Cut the roll after this file</dd>
1395 <dt>CUPS_CUT_JOB </dt>
1396 <dd class="description">Cut the roll after this job</dd>
1397 <dt>CUPS_CUT_NONE </dt>
1398 <dd class="description">Never cut the roll</dd>
1399 <dt>CUPS_CUT_PAGE </dt>
1400 <dd class="description">Cut the roll after this page</dd>
1401 <dt>CUPS_CUT_SET </dt>
1402 <dd class="description">Cut the roll after this set</dd>
5a738aea 1403</dl>
abacc52b
MS
1404 <h3 class="enumeration"><a id="cups_edge_e">cups_edge_e</a></h3>
1405 <p class="description">LeadingEdge attribute values</p>
1406 <h4 class="constants">Constants</h4>
1407 <dl>
1408 <dt>CUPS_EDGE_BOTTOM </dt>
1409 <dd class="description">Leading edge is the bottom of the page</dd>
1410 <dt>CUPS_EDGE_LEFT </dt>
1411 <dd class="description">Leading edge is the left of the page</dd>
1412 <dt>CUPS_EDGE_RIGHT </dt>
1413 <dd class="description">Leading edge is the right of the page</dd>
1414 <dt>CUPS_EDGE_TOP </dt>
1415 <dd class="description">Leading edge is the top of the page</dd>
5a738aea 1416</dl>
abacc52b
MS
1417 <h3 class="enumeration"><a id="cups_jog_e">cups_jog_e</a></h3>
1418 <p class="description">Jog attribute values</p>
1419 <h4 class="constants">Constants</h4>
1420 <dl>
1421 <dt>CUPS_JOG_FILE </dt>
1422 <dd class="description">Move pages after this file</dd>
1423 <dt>CUPS_JOG_JOB </dt>
1424 <dd class="description">Move pages after this job</dd>
1425 <dt>CUPS_JOG_NONE </dt>
1426 <dd class="description">Never move pages</dd>
1427 <dt>CUPS_JOG_SET </dt>
1428 <dd class="description">Move pages after this set</dd>
5a738aea 1429</dl>
abacc52b
MS
1430 <h3 class="enumeration"><a id="cups_mode_e">cups_mode_e</a></h3>
1431 <p class="description">cupsRasterOpen modes</p>
1432 <h4 class="constants">Constants</h4>
1433 <dl>
1434 <dt>CUPS_RASTER_READ </dt>
1435 <dd class="description">Open stream for reading</dd>
1436 <dt>CUPS_RASTER_WRITE </dt>
1437 <dd class="description">Open stream for writing</dd>
1438 <dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span></dt>
1439 <dd class="description">Open stream for compressed writing </dd>
1440 <dt>CUPS_RASTER_WRITE_PWG <span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span></dt>
1441 <dd class="description">Open stream for compressed writing in PWG Raster mode </dd>
5a738aea 1442</dl>
abacc52b
MS
1443 <h3 class="enumeration"><a id="cups_order_e">cups_order_e</a></h3>
1444 <p class="description">cupsColorOrder attribute values</p>
1445 <h4 class="constants">Constants</h4>
1446 <dl>
1447 <dt>CUPS_ORDER_BANDED </dt>
1448 <dd class="description">CCC MMM YYY KKK ...</dd>
1449 <dt>CUPS_ORDER_CHUNKED </dt>
1450 <dd class="description">CMYK CMYK CMYK ...</dd>
1451 <dt>CUPS_ORDER_PLANAR </dt>
1452 <dd class="description">CCC ... MMM ... YYY ... KKK ...</dd>
5a738aea 1453</dl>
abacc52b
MS
1454 <h3 class="enumeration"><a id="cups_orient_e">cups_orient_e</a></h3>
1455 <p class="description">Orientation attribute values</p>
1456 <h4 class="constants">Constants</h4>
1457 <dl>
1458 <dt>CUPS_ORIENT_0 </dt>
1459 <dd class="description">Don't rotate the page</dd>
1460 <dt>CUPS_ORIENT_180 </dt>
1461 <dd class="description">Turn the page upside down</dd>
1462 <dt>CUPS_ORIENT_270 </dt>
1463 <dd class="description">Rotate the page clockwise</dd>
1464 <dt>CUPS_ORIENT_90 </dt>
1465 <dd class="description">Rotate the page counter-clockwise</dd>
5a738aea 1466</dl>
abacc52b
MS
1467 </div>
1468 </body>
b423cd4c 1469</html>