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