]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/help/api-raster.html
Fix builds on systems without a working poll() implementation (Issue #4905)
[thirdparty/cups.git] / doc / help / api-raster.html
CommitLineData
745129be 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
b423cd4c 2<html>
3<!-- SECTION: Programming -->
4<head>
0268488e
MS
5 <title>Raster API </title>
6 <meta name="keywords" content="Programming">
7 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
d4874933 8 <meta name="creator" content="Mini-XML v2.8">
5a738aea
MS
9<style type="text/css"><!--
10BODY {
11 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
12}
13
14H1, H2, H3, H4, H5, H6, P, TD, TH {
15 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
16}
17
18KBD {
19 font-family: monaco, courier, monospace;
20 font-weight: bold;
21}
22
23PRE {
24 font-family: monaco, courier, monospace;
25}
26
27PRE.command {
10d09e33 28 border: dotted thin #7f7f7f;
5a738aea 29 margin-left: 36pt;
10d09e33 30 padding: 10px;
5a738aea
MS
31}
32
f11a948a
MS
33P.compact {
34 margin: 0;
35}
36
e4572d57
MS
37P.example {
38 font-style: italic;
39 margin-left: 36pt;
40}
ca6b43fc 41
240214ef
MS
42DL.man DD {
43 margin-left: 5em;
44}
45
46DL.man DT {
47 margin-left: 0;
48}
49
50PRE.man {
51 margin: 0;
52}
53
5a738aea
MS
54PRE.example {
55 background: #eeeeee;
56 border: dotted thin #999999;
57 margin-left: 36pt;
178cb736 58 padding: 10pt;
5a738aea
MS
59}
60
61PRE.command EM, PRE.example EM {
62 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
63}
64
65P.command {
66 font-family: monaco, courier, monospace;
67 margin-left: 36pt;
68}
69
70P.formula {
71 font-style: italic;
72 margin-left: 36pt;
73}
74
75BLOCKQUOTE {
178cb736 76 background: #eeeeee;
5a738aea
MS
77 border: solid thin #999999;
78 padding: 10pt;
79}
80
e4572d57
MS
81A IMG {
82 border: none;
83}
84
85A:link:hover IMG {
86 background: #f0f0f0;
87 border-radius: 10px;
88 -moz-border-radius: 10px;
89}
90
5a738aea 91A:link, A:visited {
ca6b43fc 92 font-weight: inherit;
5a738aea 93 text-decoration: none;
5a738aea
MS
94}
95
96A:link:hover, A:visited:hover, A:active {
97 text-decoration: underline;
5a738aea
MS
98}
99
100SUB, SUP {
101 font-size: 50%;
102}
103
e4572d57
MS
104TR.data, TD.data, TR.data TD {
105 margin-top: 10pt;
106 padding: 5pt;
107 border-bottom: solid 1pt #999999;
108}
109
110TR.data TH {
111 border-bottom: solid 1pt #999999;
112 padding-top: 10pt;
113 padding-left: 5pt;
114 text-align: left;
115}
116
5a738aea
MS
117DIV.table TABLE {
118 border: solid thin #999999;
119 border-collapse: collapse;
120 border-spacing: 0;
121 margin-left: auto;
122 margin-right: auto;
123}
124
125DIV.table CAPTION {
126 caption-side: top;
127 font-size: 120%;
128 font-style: italic;
129 font-weight: bold;
130 margin-left: auto;
131 margin-right: auto;
132}
133
134DIV.table TABLE TD {
135 border: solid thin #cccccc;
136 padding-top: 5pt;
137}
138
139DIV.table TABLE TH {
140 background: #cccccc;
141 border: none;
142 border-bottom: solid thin #999999;
143}
144
145DIV.figure TABLE {
146 margin-left: auto;
147 margin-right: auto;
148}
149
150DIV.figure CAPTION {
151 caption-side: bottom;
152 font-size: 120%;
153 font-style: italic;
154 font-weight: bold;
155 margin-left: auto;
156 margin-right: auto;
157}
158
159TH.label {
5a738aea
MS
160 text-align: right;
161 vertical-align: top;
162}
163
e4572d57
MS
164TH.sublabel {
165 text-align: right;
166 font-weight: normal;
167}
168
5a738aea
MS
169HR {
170 border: solid thin;
171}
172
173SPAN.info {
e4572d57
MS
174 background: black;
175 border: thin solid black;
176 color: white;
5a738aea
MS
177 font-size: 80%;
178 font-style: italic;
179 font-weight: bold;
180 white-space: nowrap;
181}
182
183H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
184 float: right;
185 font-size: 100%;
186}
187
178cb736
MS
188H1.title {
189}
190
5a738aea
MS
191H2.title, H3.title {
192 border-bottom: solid 2pt #000000;
193}
194
e4572d57
MS
195DIV.indent, TABLE.indent {
196 margin-top: 2em;
197 margin-left: auto;
198 margin-right: auto;
199 width: 90%;
200}
201
202TABLE.indent {
203 border-collapse: collapse;
204}
205
206TABLE.indent TD, TABLE.indent TH {
207 padding: 0;
208}
209
210TABLE.list {
211 border-collapse: collapse;
212 margin-left: auto;
213 margin-right: auto;
214 width: 90%;
215}
216
217TABLE.list TH {
218 background: white;
219 border-bottom: solid thin #cccccc;
220 color: #444444;
221 padding-top: 10pt;
222 padding-left: 5pt;
223 text-align: left;
224 vertical-align: bottom;
225 white-space: nowrap;
226}
227
228TABLE.list TH A {
229 color: #4444cc;
230}
231
232TABLE.list TD {
233 border-bottom: solid thin #eeeeee;
234 padding-top: 5pt;
235 padding-left: 5pt;
236}
237
238TABLE.list TR:nth-child(even) {
239 background: #f8f8f8;
240}
241
242TABLE.list TR:nth-child(odd) {
243 background: #f4f4f4;
244}
245
5a738aea
MS
246DT {
247 margin-left: 36pt;
248 margin-top: 12pt;
249}
250
251DD {
252 margin-left: 54pt;
253}
254
255DL.category DT {
256 font-weight: bold;
257}
258
259P.summary {
260 margin-left: 36pt;
261 font-family: monaco, courier, monospace;
262}
263
5a738aea
MS
264DIV.summary TABLE {
265 border: solid thin #999999;
266 border-collapse: collapse;
267 border-spacing: 0;
268 margin: 10px;
269}
270
271DIV.summary TABLE TD, DIV.summary TABLE TH {
272 border: solid thin #999999;
273 padding: 5px;
274 text-align: left;
275 vertical-align: top;
276}
277
278DIV.summary TABLE THEAD TH {
279 background: #eeeeee;
280}
281
282/* API documentation styles... */
283div.body h1 {
284 margin: 0;
285}
286div.body h2 {
287 margin-top: 1.5em;
288}
289div.body h3, div.body h4, div.body h5 {
290 margin-bottom: 0.5em;
291 margin-top: 1.5em;
292}
293.class, .enumeration, .function, .struct, .typedef, .union {
294 border-bottom: solid thin #999999;
295 margin-bottom: 0;
296 margin-top: 2em;
297}
298.description {
299 margin-top: 0.5em;
300}
301code, p.code, pre, ul.code li {
302 font-family: monaco, courier, monospace;
303 font-size: 90%;
304}
305ul.code, ul.contents, ul.subcontents {
306 list-style-type: none;
307 margin: 0;
308 padding-left: 0;
309}
310ul.code li {
311 margin: 0;
312}
313ul.contents > li {
314 margin-top: 1em;
315}
316ul.contents li ul.code, ul.contents li ul.subcontents {
317 padding-left: 2em;
318}
319div.body dl {
320 margin-left: 0;
321 margin-top: 0;
322}
323div.body dt {
324 font-style: italic;
325 margin-left: 0;
326 margin-top: 0;
327}
328div.body dd {
329 margin-bottom: 0.5em;
330}
331
332/* This is just for the HTML files generated with the framedhelp target */
333div.contents {
334 background: #e8e8e8;
335 border: solid thin black;
336 padding: 10px;
337}
338div.contents h1 {
339 font-size: 110%;
340}
341div.contents h2 {
342 font-size: 100%;
343}
344div.contents ul.contents {
345 font-size: 80%;
346}
ac884b6a
MS
347div.contents ul.subcontents li {
348 margin-left: 1em;
349 text-indent: -1em;
350}
5a738aea 351--></style>
b423cd4c 352</head>
353<body>
5a738aea
MS
354<div class='body'>
355<!--
10d09e33 356 Raster API documentation for CUPS.
5a738aea 357
10d09e33 358 Copyright 2008-2010 by Apple Inc.
5a738aea
MS
359
360 These coded instructions, statements, and computer programs are the
361 property of Apple Inc. and are protected by Federal copyright
362 law. Distribution and use rights are outlined in the file "LICENSE.txt"
363 which should have been included with this file. If this file is
364 file is missing or damaged, see the license at "http://www.cups.org/".
365-->
366
178cb736
MS
367<h1 class='title'>Raster API</h1>
368
5a738aea
MS
369<div class='summary'><table summary='General Information'>
370<thead>
371<tr>
372 <th>Header</th>
373 <th>cups/raster.h</th>
374</tr>
375</thead>
376<tbody>
377<tr>
378 <th>Library</th>
379 <td>-lcupsimage</td>
380</tr>
381<tr>
382 <th>See Also</th>
383 <td>Programming: <a href='api-overview.html'>Introduction to CUPS Programming</a><br>
384 Programming: <a href='api-cups.html'>CUPS API</a><br>
385 Programming: <a href='api-cups.html'>PPD API</a><br>
386 References: <a href='spec-ppd.html'>CUPS PPD Specification</a></td>
387</tr>
388</tbody>
389</table></div>
390<h2 class="title">Contents</h2>
391<ul class="contents">
5a738aea 392<li><a href="#OVERVIEW">Overview</a></li>
79e1d494 393<li><a href="#TASKS">Functions by Task</a><ul class="subcontents">
0268488e
MS
394 <li><a href="#OPENCLOSE">Opening and Closing Raster Streams</a></li>
395 <li><a href="#READING">Reading Raster Streams</a></li>
396 <li><a href="#WRITING">Writing Raster Streams</a></li>
79e1d494 397</ul></li>
5a738aea 398<li><a href="#FUNCTIONS">Functions</a><ul class="code">
0268488e 399 <li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
6e5a57e8 400 <li><a href="#cupsRasterInitPWGHeader" title="Initialize a page header for PWG Raster output.">cupsRasterInitPWGHeader</a></li>
0268488e 401 <li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
c8fef167
MS
402 <li><a href="#cupsRasterOpen" title="Open a raster stream using a file descriptor.">cupsRasterOpen</a></li>
403 <li><a href="#cupsRasterOpenIO" title="Open a raster stream using a callback function.">cupsRasterOpenIO</a></li>
0268488e 404 <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a
79e1d494 405version 1 page header structure.">cupsRasterReadHeader</a></li>
0268488e 406 <li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a
79e1d494 407version 2 page header structure.">cupsRasterReadHeader2</a></li>
0268488e
MS
408 <li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
409 <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page
5a738aea 410header structure.">cupsRasterWriteHeader</a></li>
0268488e 411 <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2
79e1d494 412page header structure.">cupsRasterWriteHeader2</a></li>
0268488e 413 <li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
8b450588 414</ul></li>
5a738aea 415<li><a href="#TYPES">Data Types</a><ul class="code">
79e1d494 416 <li><a href="#cups_adv_t" title="AdvanceMedia attribute values">cups_adv_t</a></li>
f11a948a
MS
417 <li><a href="#cups_bool_t" title="Boolean type">cups_bool_t</a></li>
418 <li><a href="#cups_cspace_t" title="cupsColorSpace attribute values">cups_cspace_t</a></li>
419 <li><a href="#cups_cut_t" title="CutMedia attribute values">cups_cut_t</a></li>
420 <li><a href="#cups_edge_t" title="LeadingEdge attribute values">cups_edge_t</a></li>
5a738aea 421 <li><a href="#cups_interpret_cb_t" title="cupsRasterInterpretPPD callback function">cups_interpret_cb_t</a></li>
f11a948a 422 <li><a href="#cups_jog_t" title="Jog attribute values">cups_jog_t</a></li>
5a738aea 423 <li><a href="#cups_mode_t" title="cupsRasterOpen modes">cups_mode_t</a></li>
79e1d494 424 <li><a href="#cups_order_t" title="cupsColorOrder attribute values">cups_order_t</a></li>
f11a948a 425 <li><a href="#cups_orient_t" title="Orientation attribute values">cups_orient_t</a></li>
5a738aea 426 <li><a href="#cups_page_header2_t" title="Version 2 page header ">cups_page_header2_t</a></li>
79e1d494 427 <li><a href="#cups_page_header_t" title="Version 1 page header ">cups_page_header_t</a></li>
c8fef167 428 <li><a href="#cups_raster_iocb_t" title="cupsRasterOpenIO callback function">cups_raster_iocb_t</a></li>
5a738aea
MS
429 <li><a href="#cups_raster_t" title="Raster stream data">cups_raster_t</a></li>
430</ul></li>
431<li><a href="#STRUCTURES">Structures</a><ul class="code">
432 <li><a href="#cups_page_header2_s" title="Version 2 page header ">cups_page_header2_s</a></li>
79e1d494 433 <li><a href="#cups_page_header_s" title="Version 1 page header ">cups_page_header_s</a></li>
5a738aea
MS
434</ul></li>
435<li><a href="#ENUMERATIONS">Constants</a><ul class="code">
436 <li><a href="#cups_adv_e" title="AdvanceMedia attribute values">cups_adv_e</a></li>
f11a948a
MS
437 <li><a href="#cups_bool_e" title="Boolean type">cups_bool_e</a></li>
438 <li><a href="#cups_cspace_e" title="cupsColorSpace attribute values">cups_cspace_e</a></li>
439 <li><a href="#cups_cut_e" title="CutMedia attribute values">cups_cut_e</a></li>
440 <li><a href="#cups_edge_e" title="LeadingEdge attribute values">cups_edge_e</a></li>
441 <li><a href="#cups_jog_e" title="Jog attribute values">cups_jog_e</a></li>
442 <li><a href="#cups_mode_e" title="cupsRasterOpen modes">cups_mode_e</a></li>
5a738aea 443 <li><a href="#cups_order_e" title="cupsColorOrder attribute values">cups_order_e</a></li>
f11a948a 444 <li><a href="#cups_orient_e" title="Orientation attribute values">cups_orient_e</a></li>
5a738aea 445</ul></li>
0268488e 446</ul>
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">
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>
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
MS
509<pre class="example">
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
MS
532<pre class="example">
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>
5a738aea
MS
605<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
606<h3 class="function"><a name="cupsRasterClose">cupsRasterClose</a></h3>
607<p class="description">Close a raster stream.</p>
608<p class="code">
609void cupsRasterClose (<br>
610&nbsp;&nbsp;&nbsp;&nbsp;<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>
79e1d494
MS
617<h4 class="discussion">Discussion</h4>
618<p class="discussion">The file descriptor associated with the raster stream must be closed
619separately as needed.</p>
b2e6c325 620<h3 class="function"><span class="info">&nbsp;CUPS 2.2/macOS 10.12&nbsp;</span><a name="cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></h3>
6e5a57e8
MS
621<p class="description">Initialize a page header for PWG Raster output.</p>
622<p class="code">
623int cupsRasterInitPWGHeader (<br>
624&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_page_header2_t">cups_page_header2_t</a> *h,<br>
625&nbsp;&nbsp;&nbsp;&nbsp;pwg_media_t *media,<br>
626&nbsp;&nbsp;&nbsp;&nbsp;const char *type,<br>
627&nbsp;&nbsp;&nbsp;&nbsp;int xdpi,<br>
628&nbsp;&nbsp;&nbsp;&nbsp;int ydpi,<br>
629&nbsp;&nbsp;&nbsp;&nbsp;const char *sides,<br>
630&nbsp;&nbsp;&nbsp;&nbsp;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>
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>
8072030b 664<h3 class="function"><span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
5a738aea
MS
665<p class="description">Interpret PPD commands to create a page header.</p>
666<p class="code">
667int cupsRasterInterpretPPD (<br>
668&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_page_header2_t">cups_page_header2_t</a> *h,<br>
669&nbsp;&nbsp;&nbsp;&nbsp;ppd_file_t *ppd,<br>
670&nbsp;&nbsp;&nbsp;&nbsp;int num_options,<br>
671&nbsp;&nbsp;&nbsp;&nbsp;cups_option_t *options,<br>
672&nbsp;&nbsp;&nbsp;&nbsp;<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>
79e1d494 677<dd class="description">Page header to create</dd>
5a738aea
MS
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>
79e1d494 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>
688<p class="description">0 on success, -1 on failure</p>
689<h4 class="discussion">Discussion</h4>
79e1d494
MS
690<p class="discussion">This function is used by raster image processing (RIP) filters like
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>
715<h3 class="function"><a name="cupsRasterOpen">cupsRasterOpen</a></h3>
c8fef167 716<p class="description">Open a raster stream using a file descriptor.</p>
5a738aea
MS
717<p class="code">
718<a href="#cups_raster_t">cups_raster_t</a> *cupsRasterOpen (<br>
719&nbsp;&nbsp;&nbsp;&nbsp;int fd,<br>
720&nbsp;&nbsp;&nbsp;&nbsp;<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>
c8fef167
MS
727<dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
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>
733<p class="description">New stream</p>
79e1d494
MS
734<h4 class="discussion">Discussion</h4>
735<p class="discussion">This function associates a raster stream with the given file descriptor.
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>
744<h3 class="function"><a name="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&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_iocb_t">cups_raster_iocb_t</a> iocb,<br>
749&nbsp;&nbsp;&nbsp;&nbsp;void *ctx,<br>
750&nbsp;&nbsp;&nbsp;&nbsp;<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>,
762or <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
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>
79e1d494 774<h3 class="function"><span class="info">&nbsp;DEPRECATED&nbsp;</span><a name="cupsRasterReadHeader">cupsRasterReadHeader</a></h3>
5a738aea 775<p class="description">Read a raster page header and store it in a
79e1d494 776version 1 page header structure.</p>
5a738aea
MS
777<p class="code">
778unsigned cupsRasterReadHeader (<br>
779&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
780&nbsp;&nbsp;&nbsp;&nbsp;<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>
79e1d494
MS
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>
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>
8072030b 799<h3 class="function"><span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
5a738aea 800<p class="description">Read a raster page header and store it in a
79e1d494 801version 2 page header structure.</p>
5a738aea
MS
802<p class="code">
803unsigned cupsRasterReadHeader2 (<br>
804&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
805&nbsp;&nbsp;&nbsp;&nbsp;<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>
79e1d494 815<p class="description">1 on success, 0 on failure/end-of-file</p>
5a738aea
MS
816<h3 class="function"><a name="cupsRasterReadPixels">cupsRasterReadPixels</a></h3>
817<p class="description">Read raster pixels.</p>
818<p class="code">
819unsigned cupsRasterReadPixels (<br>
820&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
821&nbsp;&nbsp;&nbsp;&nbsp;unsigned char *p,<br>
822&nbsp;&nbsp;&nbsp;&nbsp;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>
79e1d494
MS
835<h4 class="discussion">Discussion</h4>
836<p class="discussion">For best performance, filters should read one or more whole lines.
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>
839<h3 class="function"><span class="info">&nbsp;DEPRECATED&nbsp;</span><a name="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">
843unsigned cupsRasterWriteHeader (<br>
844&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
845&nbsp;&nbsp;&nbsp;&nbsp;<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>
79e1d494
MS
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>
8072030b 860<h3 class="function"><span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
79e1d494
MS
861<p class="description">Write a raster page header from a version 2
862page header structure.</p>
5a738aea
MS
863<p class="code">
864unsigned cupsRasterWriteHeader2 (<br>
865&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
866&nbsp;&nbsp;&nbsp;&nbsp;<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>
79e1d494
MS
877<h4 class="discussion">Discussion</h4>
878<p class="discussion">The page header can be initialized using <a href="#cupsRasterInterpretPPD"><code>cupsRasterInterpretPPD</code></a>.
879
880</p>
5a738aea
MS
881<h3 class="function"><a name="cupsRasterWritePixels">cupsRasterWritePixels</a></h3>
882<p class="description">Write raster pixels.</p>
883<p class="code">
884unsigned cupsRasterWritePixels (<br>
885&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
886&nbsp;&nbsp;&nbsp;&nbsp;unsigned char *p,<br>
887&nbsp;&nbsp;&nbsp;&nbsp;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>
79e1d494
MS
900<h4 class="discussion">Discussion</h4>
901<p class="discussion">For best performance, filters should write one or more whole lines.
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>
5a738aea 904<h2 class="title"><a name="TYPES">Data Types</a></h2>
79e1d494
MS
905<h3 class="typedef"><a name="cups_adv_t">cups_adv_t</a></h3>
906<p class="description">AdvanceMedia attribute values</p>
907<p class="code">
908typedef enum <a href="#cups_adv_e">cups_adv_e</a> cups_adv_t;
909</p>
910<h3 class="typedef"><a name="cups_bool_t">cups_bool_t</a></h3>
f11a948a 911<p class="description">Boolean type</p>
79e1d494
MS
912<p class="code">
913typedef enum <a href="#cups_bool_e">cups_bool_e</a> cups_bool_t;
914</p>
915<h3 class="typedef"><a name="cups_cspace_t">cups_cspace_t</a></h3>
f11a948a 916<p class="description">cupsColorSpace attribute values</p>
79e1d494
MS
917<p class="code">
918typedef enum <a href="#cups_cspace_e">cups_cspace_e</a> cups_cspace_t;
919</p>
920<h3 class="typedef"><a name="cups_cut_t">cups_cut_t</a></h3>
f11a948a 921<p class="description">CutMedia attribute values</p>
79e1d494
MS
922<p class="code">
923typedef enum <a href="#cups_cut_e">cups_cut_e</a> cups_cut_t;
924</p>
925<h3 class="typedef"><a name="cups_edge_t">cups_edge_t</a></h3>
f11a948a 926<p class="description">LeadingEdge attribute values</p>
79e1d494
MS
927<p class="code">
928typedef enum <a href="#cups_edge_e">cups_edge_e</a> cups_edge_t;
929</p>
5a738aea
MS
930<h3 class="typedef"><a name="cups_interpret_cb_t">cups_interpret_cb_t</a></h3>
931<p class="description">cupsRasterInterpretPPD callback function</p>
932<p class="code">
933typedef int (*cups_interpret_cb_t)(<a href="#cups_page_header2_t">cups_page_header2_t</a> *header, int preferred_bits);
934</p>
79e1d494 935<h3 class="typedef"><a name="cups_jog_t">cups_jog_t</a></h3>
f11a948a 936<p class="description">Jog attribute values</p>
79e1d494
MS
937<p class="code">
938typedef enum <a href="#cups_jog_e">cups_jog_e</a> cups_jog_t;
939</p>
5a738aea
MS
940<h3 class="typedef"><a name="cups_mode_t">cups_mode_t</a></h3>
941<p class="description">cupsRasterOpen modes</p>
942<p class="code">
943typedef enum <a href="#cups_mode_e">cups_mode_e</a> cups_mode_t;
944</p>
79e1d494
MS
945<h3 class="typedef"><a name="cups_order_t">cups_order_t</a></h3>
946<p class="description">cupsColorOrder attribute values</p>
947<p class="code">
948typedef enum <a href="#cups_order_e">cups_order_e</a> cups_order_t;
949</p>
950<h3 class="typedef"><a name="cups_orient_t">cups_orient_t</a></h3>
f11a948a 951<p class="description">Orientation attribute values</p>
79e1d494
MS
952<p class="code">
953typedef enum <a href="#cups_orient_e">cups_orient_e</a> cups_orient_t;
954</p>
8072030b 955<h3 class="typedef"><span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span><a name="cups_page_header2_t">cups_page_header2_t</a></h3>
5a738aea
MS
956<p class="description">Version 2 page header </p>
957<p class="code">
958typedef struct <a href="#cups_page_header2_s">cups_page_header2_s</a> cups_page_header2_t;
959</p>
79e1d494
MS
960<h3 class="typedef"><span class="info">&nbsp;DEPRECATED&nbsp;</span><a name="cups_page_header_t">cups_page_header_t</a></h3>
961<p class="description">Version 1 page header </p>
5a738aea
MS
962<p class="code">
963typedef struct <a href="#cups_page_header_s">cups_page_header_s</a> cups_page_header_t;
964</p>
c8fef167
MS
965<h3 class="typedef"><a name="cups_raster_iocb_t">cups_raster_iocb_t</a></h3>
966<p class="description">cupsRasterOpenIO callback function</p>
967<p class="code">
968typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length);
969</p>
5a738aea
MS
970<h3 class="typedef"><a name="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
MS
974</p>
975<h2 class="title"><a name="STRUCTURES">Structures</a></h2>
8072030b 976<h3 class="struct"><span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span><a name="cups_page_header2_s">cups_page_header2_s</a></h3>
5a738aea
MS
977<p class="description">Version 2 page header </p>
978<p class="code">struct cups_page_header2_s {<br>
979&nbsp;&nbsp;&nbsp;&nbsp;unsigned AdvanceDistance;<br>
79e1d494
MS
980&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_adv_t">cups_adv_t</a> AdvanceMedia;<br>
981&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Collate;<br>
982&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_cut_t">cups_cut_t</a> CutMedia;<br>
983&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Duplex;<br>
5a738aea
MS
984&nbsp;&nbsp;&nbsp;&nbsp;unsigned HWResolution[2];<br>
985&nbsp;&nbsp;&nbsp;&nbsp;unsigned ImagingBoundingBox[4];<br>
79e1d494
MS
986&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> InsertSheet;<br>
987&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_jog_t">cups_jog_t</a> Jog;<br>
988&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_edge_t">cups_edge_t</a> LeadingEdge;<br>
989&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> ManualFeed;<br>
5a738aea
MS
990&nbsp;&nbsp;&nbsp;&nbsp;unsigned Margins[2];<br>
991&nbsp;&nbsp;&nbsp;&nbsp;char MediaClass[64];<br>
992&nbsp;&nbsp;&nbsp;&nbsp;char MediaColor[64];<br>
993&nbsp;&nbsp;&nbsp;&nbsp;unsigned MediaPosition;<br>
994&nbsp;&nbsp;&nbsp;&nbsp;char MediaType[64];<br>
995&nbsp;&nbsp;&nbsp;&nbsp;unsigned MediaWeight;<br>
79e1d494
MS
996&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> MirrorPrint;<br>
997&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> NegativePrint;<br>
5a738aea 998&nbsp;&nbsp;&nbsp;&nbsp;unsigned NumCopies;<br>
79e1d494
MS
999&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_orient_t">cups_orient_t</a> Orientation;<br>
1000&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> OutputFaceUp;<br>
5a738aea
MS
1001&nbsp;&nbsp;&nbsp;&nbsp;char OutputType[64];<br>
1002&nbsp;&nbsp;&nbsp;&nbsp;unsigned PageSize[2];<br>
79e1d494
MS
1003&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Separations;<br>
1004&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> TraySwitch;<br>
1005&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Tumble;<br>
5a738aea
MS
1006&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsBitsPerColor;<br>
1007&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsBitsPerPixel;<br>
1008&nbsp;&nbsp;&nbsp;&nbsp;float cupsBorderlessScalingFactor;<br>
1009&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsBytesPerLine;<br>
79e1d494
MS
1010&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_order_t">cups_order_t</a> cupsColorOrder;<br>
1011&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_cspace_t">cups_cspace_t</a> cupsColorSpace;<br>
5a738aea
MS
1012&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsCompression;<br>
1013&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsHeight;<br>
1014&nbsp;&nbsp;&nbsp;&nbsp;float cupsImagingBBox[4];<br>
1015&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsInteger[16];<br>
1016&nbsp;&nbsp;&nbsp;&nbsp;char cupsMarkerType[64];<br>
1017&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsMediaType;<br>
1018&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsNumColors;<br>
1019&nbsp;&nbsp;&nbsp;&nbsp;char cupsPageSizeName[64];<br>
1020&nbsp;&nbsp;&nbsp;&nbsp;float cupsPageSize[2];<br>
1021&nbsp;&nbsp;&nbsp;&nbsp;float cupsReal[16];<br>
1022&nbsp;&nbsp;&nbsp;&nbsp;char cupsRenderingIntent[64];<br>
1023&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsRowCount;<br>
1024&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsRowFeed;<br>
1025&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsRowStep;<br>
1026&nbsp;&nbsp;&nbsp;&nbsp;char cupsString[16][64];<br>
1027&nbsp;&nbsp;&nbsp;&nbsp;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>
79e1d494 1034<dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
5a738aea
MS
1035<dt>Collate </dt>
1036<dd class="description">Collated copies value</dd>
1037<dt>CutMedia </dt>
79e1d494 1038<dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
5a738aea
MS
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>
79e1d494 1044<dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
5a738aea
MS
1045<dt>InsertSheet </dt>
1046<dd class="description">InsertSheet value</dd>
1047<dt>Jog </dt>
79e1d494 1048<dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
5a738aea 1049<dt>LeadingEdge </dt>
79e1d494 1050<dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
5a738aea
MS
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>
79e1d494 1072<dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
5a738aea
MS
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>
8072030b 1089<dt>cupsBorderlessScalingFactor <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea
MS
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>
8072030b 1101<dt>cupsImagingBBox[4] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
79e1d494
MS
1102<dd class="description">Floating point ImagingBoundingBox
1103(scaling factor not applied, left,
1104bottom, right, top) </dd>
8072030b 1105<dt>cupsInteger[16] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea 1106<dd class="description">User-defined integer values </dd>
8072030b 1107<dt>cupsMarkerType[64] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea
MS
1108<dd class="description">Ink/toner type </dd>
1109<dt>cupsMediaType </dt>
1110<dd class="description">Media type code</dd>
8072030b 1111<dt>cupsNumColors <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
79e1d494 1112<dd class="description">Number of color compoents </dd>
8072030b 1113<dt>cupsPageSizeName[64] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea 1114<dd class="description">PageSize name </dd>
8072030b 1115<dt>cupsPageSize[2] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea
MS
1116<dd class="description">Floating point PageSize (scaling *
1117factor not applied) </dd>
8072030b 1118<dt>cupsReal[16] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea 1119<dd class="description">User-defined floating-point values </dd>
8072030b 1120<dt>cupsRenderingIntent[64] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea
MS
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>
8072030b 1128<dt>cupsString[16][64] <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
5a738aea
MS
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>
79e1d494
MS
1133<h3 class="struct"><span class="info">&nbsp;DEPRECATED&nbsp;</span><a name="cups_page_header_s">cups_page_header_s</a></h3>
1134<p class="description">Version 1 page header </p>
5a738aea
MS
1135<p class="code">struct cups_page_header_s {<br>
1136&nbsp;&nbsp;&nbsp;&nbsp;unsigned AdvanceDistance;<br>
79e1d494
MS
1137&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_adv_t">cups_adv_t</a> AdvanceMedia;<br>
1138&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Collate;<br>
1139&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_cut_t">cups_cut_t</a> CutMedia;<br>
1140&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Duplex;<br>
5a738aea
MS
1141&nbsp;&nbsp;&nbsp;&nbsp;unsigned HWResolution[2];<br>
1142&nbsp;&nbsp;&nbsp;&nbsp;unsigned ImagingBoundingBox[4];<br>
79e1d494
MS
1143&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> InsertSheet;<br>
1144&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_jog_t">cups_jog_t</a> Jog;<br>
1145&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_edge_t">cups_edge_t</a> LeadingEdge;<br>
1146&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> ManualFeed;<br>
5a738aea
MS
1147&nbsp;&nbsp;&nbsp;&nbsp;unsigned Margins[2];<br>
1148&nbsp;&nbsp;&nbsp;&nbsp;char MediaClass[64];<br>
1149&nbsp;&nbsp;&nbsp;&nbsp;char MediaColor[64];<br>
1150&nbsp;&nbsp;&nbsp;&nbsp;unsigned MediaPosition;<br>
1151&nbsp;&nbsp;&nbsp;&nbsp;char MediaType[64];<br>
1152&nbsp;&nbsp;&nbsp;&nbsp;unsigned MediaWeight;<br>
79e1d494
MS
1153&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> MirrorPrint;<br>
1154&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> NegativePrint;<br>
5a738aea 1155&nbsp;&nbsp;&nbsp;&nbsp;unsigned NumCopies;<br>
79e1d494
MS
1156&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_orient_t">cups_orient_t</a> Orientation;<br>
1157&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> OutputFaceUp;<br>
5a738aea
MS
1158&nbsp;&nbsp;&nbsp;&nbsp;char OutputType[64];<br>
1159&nbsp;&nbsp;&nbsp;&nbsp;unsigned PageSize[2];<br>
79e1d494
MS
1160&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Separations;<br>
1161&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> TraySwitch;<br>
1162&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_bool_t">cups_bool_t</a> Tumble;<br>
5a738aea
MS
1163&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsBitsPerColor;<br>
1164&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsBitsPerPixel;<br>
1165&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsBytesPerLine;<br>
79e1d494
MS
1166&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_order_t">cups_order_t</a> cupsColorOrder;<br>
1167&nbsp;&nbsp;&nbsp;&nbsp;<a href="#cups_cspace_t">cups_cspace_t</a> cupsColorSpace;<br>
5a738aea
MS
1168&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsCompression;<br>
1169&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsHeight;<br>
1170&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsMediaType;<br>
1171&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsRowCount;<br>
1172&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsRowFeed;<br>
1173&nbsp;&nbsp;&nbsp;&nbsp;unsigned cupsRowStep;<br>
1174&nbsp;&nbsp;&nbsp;&nbsp;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>
79e1d494 1181<dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
5a738aea
MS
1182<dt>Collate </dt>
1183<dd class="description">Collated copies value</dd>
1184<dt>CutMedia </dt>
79e1d494 1185<dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
5a738aea
MS
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>
79e1d494 1191<dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
5a738aea
MS
1192<dt>InsertSheet </dt>
1193<dd class="description">InsertSheet value</dd>
1194<dt>Jog </dt>
79e1d494 1195<dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
5a738aea 1196<dt>LeadingEdge </dt>
79e1d494 1197<dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
5a738aea
MS
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>
79e1d494 1219<dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
5a738aea
MS
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 name="ENUMERATIONS">Constants</a></h2>
1258<h3 class="enumeration"><a name="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 name="cups_bool_e">cups_bool_e</a></h3>
f11a948a 1274<p class="description">Boolean type</p>
5a738aea
MS
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 name="cups_cspace_e">cups_cspace_e</a></h3>
f11a948a 1283<p class="description">cupsColorSpace attribute values</p>
5a738aea
MS
1284<h4 class="constants">Constants</h4>
1285<dl>
10d09e33
MS
1286<dt>CUPS_CSPACE_ADOBERGB <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1287<dd class="description">Red, green, blue (Adobe RGB) </dd>
8072030b 1288<dt>CUPS_CSPACE_CIELab <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1289<dd class="description">CIE Lab </dd>
8072030b 1290<dt>CUPS_CSPACE_CIEXYZ <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea
MS
1291<dd class="description">CIE XYZ </dd>
1292<dt>CUPS_CSPACE_CMY </dt>
10d09e33 1293<dd class="description">Cyan, magenta, yellow (DeviceCMY)</dd>
5a738aea 1294<dt>CUPS_CSPACE_CMYK </dt>
10d09e33
MS
1295<dd class="description">Cyan, magenta, yellow, black (DeviceCMYK)</dd>
1296<dt>CUPS_CSPACE_DEVICE1 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1297<dd class="description">DeviceN, 1 color </dd>
1298<dt>CUPS_CSPACE_DEVICE2 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1299<dd class="description">DeviceN, 2 colors </dd>
1300<dt>CUPS_CSPACE_DEVICE3 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1301<dd class="description">DeviceN, 3 colors </dd>
1302<dt>CUPS_CSPACE_DEVICE4 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1303<dd class="description">DeviceN, 4 colors </dd>
1304<dt>CUPS_CSPACE_DEVICE5 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1305<dd class="description">DeviceN, 5 colors </dd>
1306<dt>CUPS_CSPACE_DEVICE6 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1307<dd class="description">DeviceN, 6 colors </dd>
1308<dt>CUPS_CSPACE_DEVICE7 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1309<dd class="description">DeviceN, 7 colors </dd>
1310<dt>CUPS_CSPACE_DEVICE8 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1311<dd class="description">DeviceN, 8 colors </dd>
1312<dt>CUPS_CSPACE_DEVICE9 <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1313<dd class="description">DeviceN, 9 colors </dd>
1314<dt>CUPS_CSPACE_DEVICEA <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1315<dd class="description">DeviceN, 10 colors </dd>
1316<dt>CUPS_CSPACE_DEVICEB <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1317<dd class="description">DeviceN, 11 colors </dd>
1318<dt>CUPS_CSPACE_DEVICEC <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1319<dd class="description">DeviceN, 12 colors </dd>
1320<dt>CUPS_CSPACE_DEVICED <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1321<dd class="description">DeviceN, 13 colors </dd>
1322<dt>CUPS_CSPACE_DEVICEE <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1323<dd class="description">DeviceN, 14 colors </dd>
1324<dt>CUPS_CSPACE_DEVICEF <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1325<dd class="description">DeviceN, 15 colors </dd>
1326<dt>CUPS_CSPACE_GMCK <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1327<dd class="description">Gold, magenta, yellow, black </dd>
1328<dt>CUPS_CSPACE_GMCS <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1329<dd class="description">Gold, magenta, yellow, silver </dd>
1330<dt>CUPS_CSPACE_GOLD <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1331<dd class="description">Gold foil </dd>
8072030b 1332<dt>CUPS_CSPACE_ICC1 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1333<dd class="description">ICC-based, 1 color </dd>
8072030b 1334<dt>CUPS_CSPACE_ICC2 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1335<dd class="description">ICC-based, 2 colors </dd>
8072030b 1336<dt>CUPS_CSPACE_ICC3 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1337<dd class="description">ICC-based, 3 colors </dd>
8072030b 1338<dt>CUPS_CSPACE_ICC4 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1339<dd class="description">ICC-based, 4 colors </dd>
8072030b 1340<dt>CUPS_CSPACE_ICC5 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1341<dd class="description">ICC-based, 5 colors </dd>
8072030b 1342<dt>CUPS_CSPACE_ICC6 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1343<dd class="description">ICC-based, 6 colors </dd>
8072030b 1344<dt>CUPS_CSPACE_ICC7 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1345<dd class="description">ICC-based, 7 colors </dd>
8072030b 1346<dt>CUPS_CSPACE_ICC8 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1347<dd class="description">ICC-based, 8 colors </dd>
8072030b 1348<dt>CUPS_CSPACE_ICC9 <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1349<dd class="description">ICC-based, 9 colors </dd>
8072030b 1350<dt>CUPS_CSPACE_ICCA <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1351<dd class="description">ICC-based, 10 colors </dd>
8072030b 1352<dt>CUPS_CSPACE_ICCB <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1353<dd class="description">ICC-based, 11 colors </dd>
8072030b 1354<dt>CUPS_CSPACE_ICCC <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1355<dd class="description">ICC-based, 12 colors </dd>
8072030b 1356<dt>CUPS_CSPACE_ICCD <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1357<dd class="description">ICC-based, 13 colors </dd>
8072030b 1358<dt>CUPS_CSPACE_ICCE <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea 1359<dd class="description">ICC-based, 14 colors </dd>
8072030b 1360<dt>CUPS_CSPACE_ICCF <span class="info">&nbsp;CUPS 1.1.19/macOS 10.3&nbsp;</span></dt>
5a738aea
MS
1361<dd class="description">ICC-based, 15 colors </dd>
1362<dt>CUPS_CSPACE_K </dt>
10d09e33
MS
1363<dd class="description">Black (DeviceK)</dd>
1364<dt>CUPS_CSPACE_KCMY <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1365<dd class="description">Black, cyan, magenta, yellow </dd>
1366<dt>CUPS_CSPACE_KCMYcm <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1367<dd class="description">Black, cyan, magenta, yellow, light-cyan, light-magenta </dd>
5a738aea 1368<dt>CUPS_CSPACE_RGB </dt>
10d09e33 1369<dd class="description">Red, green, blue (DeviceRGB, sRGB by default)</dd>
5a738aea 1370<dt>CUPS_CSPACE_RGBA </dt>
10d09e33 1371<dd class="description">Red, green, blue, alpha (DeviceRGB, sRGB by default)</dd>
8072030b 1372<dt>CUPS_CSPACE_RGBW <span class="info">&nbsp;CUPS 1.2/macOS 10.5&nbsp;</span></dt>
10d09e33
MS
1373<dd class="description">Red, green, blue, white (DeviceRGB, sRGB by default) </dd>
1374<dt>CUPS_CSPACE_SILVER <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1375<dd class="description">Silver foil </dd>
1376<dt>CUPS_CSPACE_SRGB <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1377<dd class="description">Red, green, blue (sRGB) </dd>
1378<dt>CUPS_CSPACE_SW <span class="info">&nbsp;CUPS 1.4.5&nbsp;</span></dt>
1379<dd class="description">Luminance (gamma 2.2) </dd>
5a738aea 1380<dt>CUPS_CSPACE_W </dt>
10d09e33
MS
1381<dd class="description">Luminance (DeviceGray, gamma 2.2 by default)</dd>
1382<dt>CUPS_CSPACE_WHITE <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1383<dd class="description">White ink (as black) </dd>
1384<dt>CUPS_CSPACE_YMC <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1385<dd class="description">Yellow, magenta, cyan </dd>
1386<dt>CUPS_CSPACE_YMCK <span class="info">&nbsp;DEPRECATED&nbsp;</span></dt>
1387<dd class="description">Yellow, magenta, cyan, black </dd>
5a738aea
MS
1388</dl>
1389<h3 class="enumeration"><a name="cups_cut_e">cups_cut_e</a></h3>
f11a948a 1390<p class="description">CutMedia attribute values</p>
5a738aea
MS
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 name="cups_edge_e">cups_edge_e</a></h3>
f11a948a 1405<p class="description">LeadingEdge attribute values</p>
5a738aea
MS
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 name="cups_jog_e">cups_jog_e</a></h3>
f11a948a 1418<p class="description">Jog attribute values</p>
5a738aea
MS
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 name="cups_mode_e">cups_mode_e</a></h3>
f11a948a 1431<p class="description">cupsRasterOpen modes</p>
5a738aea
MS
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>
8072030b 1438<dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info">&nbsp;CUPS 1.3/macOS 10.5&nbsp;</span></dt>
5a738aea 1439<dd class="description">Open stream for compressed writing </dd>
8072030b 1440<dt>CUPS_RASTER_WRITE_PWG <span class="info">&nbsp;CUPS 1.5/macOS 10.7&nbsp;</span></dt>
c8fef167 1441<dd class="description">Open stream for compressed writing in PWG mode </dd>
5a738aea
MS
1442</dl>
1443<h3 class="enumeration"><a name="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 name="cups_orient_e">cups_orient_e</a></h3>
f11a948a 1455<p class="description">Orientation attribute values</p>
5a738aea
MS
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>
b423cd4c 1468</body>
1469</html>