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