]> git.ipfire.org Git - thirdparty/cups.git/blob - doc/help/api-raster.html
Save work on new CUPS Programming Manual.
[thirdparty/cups.git] / doc / help / api-raster.html
1 <!doctype html>
2 <html>
3 <!-- SECTION: Programming -->
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"><!--
12 BODY {
13 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
14 }
15
16 H1, H2, H3, H4, H5, H6, P, TD, TH {
17 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
18 }
19
20 KBD {
21 font-family: monaco, courier, monospace;
22 font-weight: bold;
23 }
24
25 PRE {
26 font-family: monaco, courier, monospace;
27 }
28
29 PRE.command {
30 border: dotted thin #7f7f7f;
31 margin-left: 36pt;
32 padding: 10px;
33 }
34
35 P.compact {
36 margin: 0;
37 }
38
39 P.example {
40 font-style: italic;
41 margin-left: 36pt;
42 }
43
44 DL.man DD {
45 margin-left: 5em;
46 }
47
48 DL.man DT {
49 margin-left: 0;
50 }
51
52 PRE.man {
53 margin: 0;
54 }
55
56 PRE.example {
57 background: #eeeeee;
58 border: dotted thin #999999;
59 margin-left: 36pt;
60 padding: 10pt;
61 }
62
63 PRE.command EM, PRE.example EM {
64 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
65 }
66
67 P.command {
68 font-family: monaco, courier, monospace;
69 margin-left: 36pt;
70 }
71
72 P.formula {
73 font-style: italic;
74 margin-left: 36pt;
75 }
76
77 BLOCKQUOTE {
78 background: #eeeeee;
79 border: solid thin #999999;
80 padding: 10pt;
81 }
82
83 A IMG {
84 border: none;
85 }
86
87 A:link:hover IMG {
88 background: #f0f0f0;
89 border-radius: 10px;
90 -moz-border-radius: 10px;
91 }
92
93 A:link, A:visited {
94 font-weight: inherit;
95 text-decoration: none;
96 }
97
98 A:link:hover, A:visited:hover, A:active {
99 text-decoration: underline;
100 }
101
102 SUB, SUP {
103 font-size: 50%;
104 }
105
106 TR.data, TD.data, TR.data TD {
107 margin-top: 10pt;
108 padding: 5pt;
109 border-bottom: solid 1pt #999999;
110 }
111
112 TR.data TH {
113 border-bottom: solid 1pt #999999;
114 padding-top: 10pt;
115 padding-left: 5pt;
116 text-align: left;
117 }
118
119 DIV.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
127 DIV.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
136 DIV.table TABLE TD {
137 border: solid thin #cccccc;
138 padding-top: 5pt;
139 }
140
141 DIV.table TABLE TH {
142 background: #cccccc;
143 border: none;
144 border-bottom: solid thin #999999;
145 }
146
147 DIV.figure TABLE {
148 margin-left: auto;
149 margin-right: auto;
150 }
151
152 DIV.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
161 TH.label {
162 text-align: right;
163 vertical-align: top;
164 }
165
166 TH.sublabel {
167 text-align: right;
168 font-weight: normal;
169 }
170
171 HR {
172 border: solid thin;
173 }
174
175 SPAN.info {
176 background: black;
177 border: thin solid black;
178 color: white;
179 font-size: 80%;
180 font-style: italic;
181 font-weight: bold;
182 white-space: nowrap;
183 }
184
185 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
186 float: right;
187 font-size: 100%;
188 }
189
190 H1.title {
191 }
192
193 H2.title, H3.title {
194 border-bottom: solid 2pt #000000;
195 }
196
197 DIV.indent, TABLE.indent {
198 margin-top: 2em;
199 margin-left: auto;
200 margin-right: auto;
201 width: 90%;
202 }
203
204 TABLE.indent {
205 border-collapse: collapse;
206 }
207
208 TABLE.indent TD, TABLE.indent TH {
209 padding: 0;
210 }
211
212 TABLE.list {
213 border-collapse: collapse;
214 margin-left: auto;
215 margin-right: auto;
216 width: 90%;
217 }
218
219 TABLE.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
230 TABLE.list TH A {
231 color: #4444cc;
232 }
233
234 TABLE.list TD {
235 border-bottom: solid thin #eeeeee;
236 padding-top: 5pt;
237 padding-left: 5pt;
238 }
239
240 TABLE.list TR:nth-child(even) {
241 background: #f8f8f8;
242 }
243
244 TABLE.list TR:nth-child(odd) {
245 background: #f4f4f4;
246 }
247
248 DT {
249 margin-left: 36pt;
250 margin-top: 12pt;
251 }
252
253 DD {
254 margin-left: 54pt;
255 }
256
257 DL.category DT {
258 font-weight: bold;
259 }
260
261 P.summary {
262 margin-left: 36pt;
263 font-family: monaco, courier, monospace;
264 }
265
266 DIV.summary TABLE {
267 border: solid thin #999999;
268 border-collapse: collapse;
269 border-spacing: 0;
270 margin: 10px;
271 }
272
273 DIV.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
280 DIV.summary TABLE THEAD TH {
281 background: #eeeeee;
282 }
283
284 /* API documentation styles... */
285 div.body h1 {
286 margin: 0;
287 }
288 div.body h2 {
289 margin-top: 1.5em;
290 }
291 div.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 }
303 code, p.code, pre, ul.code li {
304 font-family: monaco, courier, monospace;
305 font-size: 90%;
306 }
307 ul.code, ul.contents, ul.subcontents {
308 list-style-type: none;
309 margin: 0;
310 padding-left: 0;
311 }
312 ul.code li {
313 margin: 0;
314 }
315 ul.contents > li {
316 margin-top: 1em;
317 }
318 ul.contents li ul.code, ul.contents li ul.subcontents {
319 padding-left: 2em;
320 }
321 div.body dl {
322 margin-left: 0;
323 margin-top: 0;
324 }
325 div.body dt {
326 font-style: italic;
327 margin-left: 0;
328 margin-top: 0;
329 }
330 div.body dd {
331 margin-bottom: 0.5em;
332 }
333
334 /* This is just for the HTML files generated with the framedhelp target */
335 div.contents {
336 background: #e8e8e8;
337 border: solid thin black;
338 padding: 10px;
339 }
340 div.contents h1 {
341 font-size: 110%;
342 }
343 div.contents h2 {
344 font-size: 100%;
345 }
346 div.contents ul.contents {
347 font-size: 80%;
348 }
349 div.contents ul.subcontents li {
350 margin-left: 1em;
351 text-indent: -1em;
352 }
353 --></style>
354 </head>
355 <body>
356 <!--
357 Raster API documentation for CUPS.
358
359 Copyright 2008-2010 by Apple Inc.
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
368 <h1 class='title'>Raster API</h1>
369
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>
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">
447 <!--
448 Raster API introduction for CUPS.
449
450 Copyright 2007-2013 by Apple Inc.
451 Copyright 1997-2006 by Easy Software Products, all rights reserved.
452
453 These coded instructions, statements, and computer programs are the
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/".
458 -->
459
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
463 CUPS raster streams which are used for printing to raster printers. Because the
464 raster format is updated from time to time, it is important to use this API to
465 avoid incompatibilities with newer versions of CUPS.</p>
466
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>
469 (macOS) that produce CUPS raster files and printer driver filters that
470 convert CUPS raster files into a format usable by the printer. Printer
471 driver filters are by far the most common.</p>
472
473 <p>CUPS raster files (<code>application/vnd.cups-raster</code>) consists of
474 a 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
478 opened using the <a href='#cupsRasterOpen'><code>cupsRasterOpen</code></a>
479 function. For example, to read raster data from the standard input, open
480 file descriptor 0:</p>
481
482 <pre class="example">
483 #include &lt;cups/raster.h&gt;
484
485 <a href="#cups_raster_t">cups_raster_t</a> *ras = <a href="#cupsRasterOpen">cupsRasterOpen</a>(0, CUPS_RASTER_READ);
486 </pre>
487
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
490 structure contains the colorspace, bits per color, media size, media type,
491 hardware 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
506 <a href="#cupsRasterReadHeader2"><code>cupsRasterReadHeader2</code></a>
507 function:</p>
508
509 <pre class="example">
510 #include &lt;cups/raster.h&gt;
511
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;
514
515 while (<a href="#cupsRasterReadHeader2">cupsRasterReadHeader2</a>(ras, &amp;header))
516 {
517 /* setup this page */
518
519 /* read raster data */
520
521 /* finish this page */
522 }
523 </pre>
524
525 <p>After the page dictionary comes the page data which is a full-resolution,
526 possibly compressed bitmap representing the page in the printer's output
527 colorspace. You read uncompressed raster data using the
528 <a href="#cupsRasterReadPixels"><code>cupsRasterReadPixels</code></a>
529 function. A <code>for</code> loop is normally used to read the page one line
530 at a time:</p>
531
532 <pre class="example">
533 #include &lt;cups/raster.h&gt;
534
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;
537 int page = 0;
538 int y;
539 char *buffer;
540
541 while (<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
556 /* write raster data to printer on stdout */
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
565 the 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>
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
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>
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>
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>
601 <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
602 <li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
603
604 </ul>
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>
608 <p class="code">
609 void cupsRasterClose (<br />
610 &#160;&#160;&#160;&#160;<a href="#cups_raster_t">cups_raster_t</a> *r<br />
611 );</p>
612 <h4 class="parameters">Parameters</h4>
613 <dl>
614 <dt>r</dt>
615 <dd class="description">Stream to close</dd>
616 </dl>
617 <h4 class="discussion">Discussion</h4>
618 <p class="discussion">The file descriptor associated with the raster stream must be closed
619 separately as needed.</p>
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>
622 <p class="code">
623 int 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 />
631 );</p>
632 <h4 class="parameters">Parameters</h4>
633 <dl>
634 <dt>h</dt>
635 <dd class="description">Page header</dd>
636 <dt>media</dt>
637 <dd class="description">PWG media information</dd>
638 <dt>type</dt>
639 <dd class="description">PWG raster type string</dd>
640 <dt>xdpi</dt>
641 <dd class="description">Cross-feed direction (horizontal) resolution</dd>
642 <dt>ydpi</dt>
643 <dd class="description">Feed direction (vertical) resolution</dd>
644 <dt>sides</dt>
645 <dd class="description">IPP &quot;sides&quot; option value</dd>
646 <dt>sheet_back</dt>
647 <dd class="description">Transform for back side or <code>NULL</code> for none</dd>
648 </dl>
649 <h4 class="returnvalue">Return Value</h4>
650 <p class="description">1 on success, 0 on failure</p>
651 <h4 class="discussion">Discussion</h4>
652 <p class="discussion">The &quot;media&quot; argument specifies the media to use.<br>
653 <br>
654 The &quot;type&quot; argument specifies a &quot;pwg-raster-document-type-supported&quot; value
655 that controls the color space and bit depth of the raster data.<br>
656 <br>
657 The &quot;xres&quot; and &quot;yres&quot; arguments specify the raster resolution in dots per
658 inch.<br>
659 <br>
660 The &quot;sheet_back&quot; argument specifies a &quot;pwg-raster-document-sheet-back&quot; value
661 to apply for the back side of a page. Pass <code>NULL</code> for the front side.
662
663 </p>
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>
666 <p class="code">
667 int 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 />
673 );</p>
674 <h4 class="parameters">Parameters</h4>
675 <dl>
676 <dt>h</dt>
677 <dd class="description">Page header to create</dd>
678 <dt>ppd</dt>
679 <dd class="description">PPD file</dd>
680 <dt>num_options</dt>
681 <dd class="description">Number of options</dd>
682 <dt>options</dt>
683 <dd class="description">Options</dd>
684 <dt>func</dt>
685 <dd class="description">Optional page header callback (<code>NULL</code> for none)</dd>
686 </dl>
687 <h4 class="returnvalue">Return Value</h4>
688 <p class="description">0 on success, -1 on failure</p>
689 <h4 class="discussion">Discussion</h4>
690 <p class="discussion">This function is used by raster image processing (RIP) filters like
691 cgpdftoraster and imagetoraster when writing CUPS raster data for a page.
692 It is not used by raster printer driver filters which only read CUPS
693 raster data.<br>
694 <br>
695
696 <code>cupsRasterInterpretPPD</code> does not mark the options in the PPD using
697 the &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 -
699 this allows for per-page options without manipulating the options array.<br>
700 <br>
701 The &quot;func&quot; argument specifies an optional callback function that is
702 called prior to the computation of the final raster data. The function
703 can make changes to the <a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a> data as needed to use a
704 supported raster format and then returns 0 on success and -1 if the
705 requested attributes cannot be supported.<br>
706 <br>
707
708 <code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language.
709 Currently only the <code>[</code>, <code>]</code>, <code>&lt;&lt;</code>, <code>&gt;&gt;</code>, <code>{</code>,
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
712 are supported.
713
714 </p>
715 <h3 class="function"><a id="cupsRasterOpen">cupsRasterOpen</a></h3>
716 <p class="description">Open a raster stream using a file descriptor.</p>
717 <p class="code">
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 />
721 );</p>
722 <h4 class="parameters">Parameters</h4>
723 <dl>
724 <dt>fd</dt>
725 <dd class="description">File descriptor</dd>
726 <dt>mode</dt>
727 <dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
728 <code>CUPS_RASTER_WRITE</code>,
729 <code>CUPS_RASTER_WRITE_COMPRESSED</code>,
730 or <code>CUPS_RASTER_WRITE_PWG</code></dd>
731 </dl>
732 <h4 class="returnvalue">Return Value</h4>
733 <p class="description">New stream</p>
734 <h4 class="discussion">Discussion</h4>
735 <p class="discussion">This function associates a raster stream with the given file descriptor.
736 For most printer driver filters, &quot;fd&quot; will be 0 (stdin). For most raster
737 image processor (RIP) filters that generate raster data, &quot;fd&quot; will be 1
738 (stdout).<br>
739 <br>
740 When 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
742 be used - compressed and PWG output is generally 25-50% smaller but adds a
743 100-300% execution time overhead.</p>
744 <h3 class="function"><a id="cupsRasterOpenIO">cupsRasterOpenIO</a></h3>
745 <p class="description">Open a raster stream using a callback function.</p>
746 <p class="code">
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 />
751 );</p>
752 <h4 class="parameters">Parameters</h4>
753 <dl>
754 <dt>iocb</dt>
755 <dd class="description">Read/write callback</dd>
756 <dt>ctx</dt>
757 <dd class="description">Context pointer for callback</dd>
758 <dt>mode</dt>
759 <dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
760 <code>CUPS_RASTER_WRITE</code>,
761 <code>CUPS_RASTER_WRITE_COMPRESSED</code>,
762 or <code>CUPS_RASTER_WRITE_PWG</code></dd>
763 </dl>
764 <h4 class="returnvalue">Return Value</h4>
765 <p class="description">New stream</p>
766 <h4 class="discussion">Discussion</h4>
767 <p class="discussion">This function associates a raster stream with the given callback function and
768 context pointer.<br>
769 <br>
770 When 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
772 be used - compressed and PWG output is generally 25-50% smaller but adds a
773 100-300% execution time overhead.</p>
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
776 version 1 page header structure.</p>
777 <p class="code">
778 unsigned 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 />
781 );</p>
782 <h4 class="parameters">Parameters</h4>
783 <dl>
784 <dt>r</dt>
785 <dd class="description">Raster stream</dd>
786 <dt>h</dt>
787 <dd class="description">Pointer to header data</dd>
788 </dl>
789 <h4 class="returnvalue">Return Value</h4>
790 <p class="description">1 on success, 0 on failure/end-of-file</p>
791 <h4 class="discussion">Discussion</h4>
792 <p class="discussion">This function is deprecated. Use <a href="#cupsRasterReadHeader2"><code>cupsRasterReadHeader2</code></a> instead.<br>
793 <br>
794 Version 1 page headers were used in CUPS 1.0 and 1.1 and contain a subset
795 of the version 2 page header data. This function handles reading version 2
796 page headers and copying only the version 1 data into the provided buffer.
797
798 </p>
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
801 version 2 page header structure.</p>
802 <p class="code">
803 unsigned 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 />
806 );</p>
807 <h4 class="parameters">Parameters</h4>
808 <dl>
809 <dt>r</dt>
810 <dd class="description">Raster stream</dd>
811 <dt>h</dt>
812 <dd class="description">Pointer to header data</dd>
813 </dl>
814 <h4 class="returnvalue">Return Value</h4>
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>
818 <p class="code">
819 unsigned 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 />
823 );</p>
824 <h4 class="parameters">Parameters</h4>
825 <dl>
826 <dt>r</dt>
827 <dd class="description">Raster stream</dd>
828 <dt>p</dt>
829 <dd class="description">Pointer to pixel buffer</dd>
830 <dt>len</dt>
831 <dd class="description">Number of bytes to read</dd>
832 </dl>
833 <h4 class="returnvalue">Return Value</h4>
834 <p class="description">Number of bytes read</p>
835 <h4 class="discussion">Discussion</h4>
836 <p class="discussion">For best performance, filters should read one or more whole lines.
837 The &quot;cupsBytesPerLine&quot; value from the page header can be used to allocate
838 the line buffer and as the number of bytes to read.</p>
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
841 header structure.</p>
842 <p class="code">
843 unsigned 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 />
846 );</p>
847 <h4 class="parameters">Parameters</h4>
848 <dl>
849 <dt>r</dt>
850 <dd class="description">Raster stream</dd>
851 <dt>h</dt>
852 <dd class="description">Raster page header</dd>
853 </dl>
854 <h4 class="returnvalue">Return Value</h4>
855 <p class="description">1 on success, 0 on failure</p>
856 <h4 class="discussion">Discussion</h4>
857 <p class="discussion">This function is deprecated. Use <a href="#cupsRasterWriteHeader2"><code>cupsRasterWriteHeader2</code></a> instead.
858
859 </p>
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
862 page header structure.</p>
863 <p class="code">
864 unsigned 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 />
867 );</p>
868 <h4 class="parameters">Parameters</h4>
869 <dl>
870 <dt>r</dt>
871 <dd class="description">Raster stream</dd>
872 <dt>h</dt>
873 <dd class="description">Raster page header</dd>
874 </dl>
875 <h4 class="returnvalue">Return Value</h4>
876 <p class="description">1 on success, 0 on failure</p>
877 <h4 class="discussion">Discussion</h4>
878 <p class="discussion">The page header can be initialized using <a href="#cupsRasterInitPWGHeader"><code>cupsRasterInitPWGHeader</code></a>.
879
880 </p>
881 <h3 class="function"><a id="cupsRasterWritePixels">cupsRasterWritePixels</a></h3>
882 <p class="description">Write raster pixels.</p>
883 <p class="code">
884 unsigned 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 />
888 );</p>
889 <h4 class="parameters">Parameters</h4>
890 <dl>
891 <dt>r</dt>
892 <dd class="description">Raster stream</dd>
893 <dt>p</dt>
894 <dd class="description">Bytes to write</dd>
895 <dt>len</dt>
896 <dd class="description">Number of bytes to write</dd>
897 </dl>
898 <h4 class="returnvalue">Return Value</h4>
899 <p class="description">Number of bytes written</p>
900 <h4 class="discussion">Discussion</h4>
901 <p class="discussion">For best performance, filters should write one or more whole lines.
902 The &quot;cupsBytesPerLine&quot; value from the page header can be used to allocate
903 the line buffer and as the number of bytes to write.</p>
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">
908 typedef enum <a href="#cups_adv_e">cups_adv_e</a> cups_adv_t;
909 </p>
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">
913 typedef enum <a href="#cups_bool_e">cups_bool_e</a> cups_bool_t;
914 </p>
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">
918 typedef enum <a href="#cups_cspace_e">cups_cspace_e</a> cups_cspace_t;
919 </p>
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">
923 typedef enum <a href="#cups_cut_e">cups_cut_e</a> cups_cut_t;
924 </p>
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">
928 typedef enum <a href="#cups_edge_e">cups_edge_e</a> cups_edge_t;
929 </p>
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">
933 typedef int (*cups_interpret_cb_t)(<a href="#cups_page_header2_t">cups_page_header2_t</a> *header, int preferred_bits);
934 </p>
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">
938 typedef enum <a href="#cups_jog_e">cups_jog_e</a> cups_jog_t;
939 </p>
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">
943 typedef enum <a href="#cups_mode_e">cups_mode_e</a> cups_mode_t;
944 </p>
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">
948 typedef enum <a href="#cups_order_e">cups_order_e</a> cups_order_t;
949 </p>
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">
953 typedef enum <a href="#cups_orient_e">cups_orient_e</a> cups_orient_t;
954 </p>
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">
958 typedef struct <a href="#cups_page_header2_s">cups_page_header2_s</a> cups_page_header2_t;
959 </p>
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">
963 typedef struct <a href="#cups_page_header_s">cups_page_header_s</a> cups_page_header_t;
964 </p>
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">
968 typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length);
969 </p>
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">
973 typedef struct _cups_raster_s cups_raster_t;
974 </p>
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 />
1028 };</p>
1029 <h4 class="members">Members</h4>
1030 <dl>
1031 <dt>AdvanceDistance </dt>
1032 <dd class="description">AdvanceDistance value in points</dd>
1033 <dt>AdvanceMedia </dt>
1034 <dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
1035 <dt>Collate </dt>
1036 <dd class="description">Collated copies value</dd>
1037 <dt>CutMedia </dt>
1038 <dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
1039 <dt>Duplex </dt>
1040 <dd class="description">Duplexed (double-sided) value</dd>
1041 <dt>HWResolution[2] </dt>
1042 <dd class="description">Resolution in dots-per-inch</dd>
1043 <dt>ImagingBoundingBox[4] </dt>
1044 <dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
1045 <dt>InsertSheet </dt>
1046 <dd class="description">InsertSheet value</dd>
1047 <dt>Jog </dt>
1048 <dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
1049 <dt>LeadingEdge </dt>
1050 <dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
1051 <dt>ManualFeed </dt>
1052 <dd class="description">ManualFeed value</dd>
1053 <dt>Margins[2] </dt>
1054 <dd class="description">Lower-lefthand margins in points</dd>
1055 <dt>MediaClass[64] </dt>
1056 <dd class="description">MediaClass string</dd>
1057 <dt>MediaColor[64] </dt>
1058 <dd class="description">MediaColor string</dd>
1059 <dt>MediaPosition </dt>
1060 <dd class="description">MediaPosition value</dd>
1061 <dt>MediaType[64] </dt>
1062 <dd class="description">MediaType string</dd>
1063 <dt>MediaWeight </dt>
1064 <dd class="description">MediaWeight value in grams/m^2</dd>
1065 <dt>MirrorPrint </dt>
1066 <dd class="description">MirrorPrint value</dd>
1067 <dt>NegativePrint </dt>
1068 <dd class="description">NegativePrint value</dd>
1069 <dt>NumCopies </dt>
1070 <dd class="description">Number of copies to produce</dd>
1071 <dt>Orientation </dt>
1072 <dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
1073 <dt>OutputFaceUp </dt>
1074 <dd class="description">OutputFaceUp value</dd>
1075 <dt>OutputType[64] </dt>
1076 <dd class="description">OutputType string</dd>
1077 <dt>PageSize[2] </dt>
1078 <dd class="description">Width and length of page in points</dd>
1079 <dt>Separations </dt>
1080 <dd class="description">Separations value</dd>
1081 <dt>TraySwitch </dt>
1082 <dd class="description">TraySwitch value</dd>
1083 <dt>Tumble </dt>
1084 <dd class="description">Tumble value</dd>
1085 <dt>cupsBitsPerColor </dt>
1086 <dd class="description">Number of bits for each color</dd>
1087 <dt>cupsBitsPerPixel </dt>
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>
1091 <dt>cupsBytesPerLine </dt>
1092 <dd class="description">Number of bytes per line</dd>
1093 <dt>cupsColorOrder </dt>
1094 <dd class="description">Order of colors</dd>
1095 <dt>cupsColorSpace </dt>
1096 <dd class="description">True colorspace</dd>
1097 <dt>cupsCompression </dt>
1098 <dd class="description">Device compression to use</dd>
1099 <dt>cupsHeight </dt>
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
1103 (scaling factor not applied, left,
1104 bottom, right, top) </dd>
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>
1109 <dt>cupsMediaType </dt>
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 *
1117 factor not applied) </dd>
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>
1122 <dt>cupsRowCount </dt>
1123 <dd class="description">Rows per band</dd>
1124 <dt>cupsRowFeed </dt>
1125 <dd class="description">Feed between bands</dd>
1126 <dt>cupsRowStep </dt>
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>
1130 <dt>cupsWidth </dt>
1131 <dd class="description">Width of page image in pixels</dd>
1132 </dl>
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 />
1175 };</p>
1176 <h4 class="members">Members</h4>
1177 <dl>
1178 <dt>AdvanceDistance </dt>
1179 <dd class="description">AdvanceDistance value in points</dd>
1180 <dt>AdvanceMedia </dt>
1181 <dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
1182 <dt>Collate </dt>
1183 <dd class="description">Collated copies value</dd>
1184 <dt>CutMedia </dt>
1185 <dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
1186 <dt>Duplex </dt>
1187 <dd class="description">Duplexed (double-sided) value</dd>
1188 <dt>HWResolution[2] </dt>
1189 <dd class="description">Resolution in dots-per-inch</dd>
1190 <dt>ImagingBoundingBox[4] </dt>
1191 <dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
1192 <dt>InsertSheet </dt>
1193 <dd class="description">InsertSheet value</dd>
1194 <dt>Jog </dt>
1195 <dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
1196 <dt>LeadingEdge </dt>
1197 <dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
1198 <dt>ManualFeed </dt>
1199 <dd class="description">ManualFeed value</dd>
1200 <dt>Margins[2] </dt>
1201 <dd class="description">Lower-lefthand margins in points</dd>
1202 <dt>MediaClass[64] </dt>
1203 <dd class="description">MediaClass string</dd>
1204 <dt>MediaColor[64] </dt>
1205 <dd class="description">MediaColor string</dd>
1206 <dt>MediaPosition </dt>
1207 <dd class="description">MediaPosition value</dd>
1208 <dt>MediaType[64] </dt>
1209 <dd class="description">MediaType string</dd>
1210 <dt>MediaWeight </dt>
1211 <dd class="description">MediaWeight value in grams/m^2</dd>
1212 <dt>MirrorPrint </dt>
1213 <dd class="description">MirrorPrint value</dd>
1214 <dt>NegativePrint </dt>
1215 <dd class="description">NegativePrint value</dd>
1216 <dt>NumCopies </dt>
1217 <dd class="description">Number of copies to produce</dd>
1218 <dt>Orientation </dt>
1219 <dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
1220 <dt>OutputFaceUp </dt>
1221 <dd class="description">OutputFaceUp value</dd>
1222 <dt>OutputType[64] </dt>
1223 <dd class="description">OutputType string</dd>
1224 <dt>PageSize[2] </dt>
1225 <dd class="description">Width and length of page in points</dd>
1226 <dt>Separations </dt>
1227 <dd class="description">Separations value</dd>
1228 <dt>TraySwitch </dt>
1229 <dd class="description">TraySwitch value</dd>
1230 <dt>Tumble </dt>
1231 <dd class="description">Tumble value</dd>
1232 <dt>cupsBitsPerColor </dt>
1233 <dd class="description">Number of bits for each color</dd>
1234 <dt>cupsBitsPerPixel </dt>
1235 <dd class="description">Number of bits for each pixel</dd>
1236 <dt>cupsBytesPerLine </dt>
1237 <dd class="description">Number of bytes per line</dd>
1238 <dt>cupsColorOrder </dt>
1239 <dd class="description">Order of colors</dd>
1240 <dt>cupsColorSpace </dt>
1241 <dd class="description">True colorspace</dd>
1242 <dt>cupsCompression </dt>
1243 <dd class="description">Device compression to use</dd>
1244 <dt>cupsHeight </dt>
1245 <dd class="description">Height of page image in pixels</dd>
1246 <dt>cupsMediaType </dt>
1247 <dd class="description">Media type code</dd>
1248 <dt>cupsRowCount </dt>
1249 <dd class="description">Rows per band</dd>
1250 <dt>cupsRowFeed </dt>
1251 <dd class="description">Feed between bands</dd>
1252 <dt>cupsRowStep </dt>
1253 <dd class="description">Spacing between lines</dd>
1254 <dt>cupsWidth </dt>
1255 <dd class="description">Width of page image in pixels</dd>
1256 </dl>
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>
1272 </dl>
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>
1281 </dl>
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>
1388 </dl>
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>
1403 </dl>
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>
1416 </dl>
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>
1429 </dl>
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>
1442 </dl>
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>
1453 </dl>
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>
1466 </dl>
1467 </div>
1468 </body>
1469 </html>