]> git.ipfire.org Git - thirdparty/cups.git/blob - doc/help/api-raster.html
Load cups into easysw/current.
[thirdparty/cups.git] / doc / help / api-raster.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/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.3'>
8 <style type='text/css'><!--
9 h1, h2, h3, p { font-family: sans-serif; text-align: justify; }
10 tt, pre a:link, pre a:visited, tt a:link, tt a:visited { font-weight: bold; color: #7f0000; }
11 pre { font-weight: bold; color: #7f0000; margin-left: 2em; }
12 span.info { background: #000000; border: solid thin #000000; color: #ffffff; font-size: 80%; font-style: italic; font-weight: bold; white-space: nowrap; }
13 h3 span.info { float: right; font-size: 100%; }
14 h1.title, h2.title, h3.title { border-bottom: solid 2px #000000; }
15 --></style>
16 </head>
17 <body>
18 <!--
19 "$Id$"
20
21 Raster API introduction for the Common UNIX Printing System (CUPS).
22
23 Copyright 1997-2006 by Easy Software Products.
24
25 These coded instructions, statements, and computer programs are the
26 property of Easy Software Products and are protected by Federal
27 copyright law. Distribution and use rights are outlined in the file
28 "LICENSE.txt" which should have been included with this file. If this
29 file is missing or damaged please contact Easy Software Products
30 at:
31
32 Attn: CUPS Licensing Information
33 Easy Software Products
34 44141 Airport View Drive, Suite 204
35 Hollywood, Maryland 20636 USA
36
37 Voice: (301) 373-9600
38 EMail: cups-info@cups.org
39 WWW: http://www.cups.org
40 -->
41
42 <h2 class='title'>Introduction</h2>
43
44 <p>The CUPS raster API provides a standard interface for reading
45 and writing CUPS raster streams which are used for printing to
46 raster printers. Because the raster format is updated from time
47 to time, it is important to use this API to avoid
48 incompatibilities with newer versions of CUPS.</p>
49
50 <h2 class='title'>General Usage</h2>
51
52 <p>The <var>&lt;cups/raster.h&gt;</var> header file must be
53 included to use the <tt>cupsRaster</tt> functions.</p>
54
55 <p>Programs using these functions must be linked to the CUPS
56 imaging library: <var>libcupsimage.a</var>,
57 <var>libcupsimage.so.2</var>, <var>libcupsimage.2.dylib</var>,
58 <var>libcupsimage_s.a</var>, or <var>libcupsimage2.lib</var>
59 depending on the platform. The following command compiles
60 <var>myprogram.c</var> using GCC and the CUPS imaging
61 library:</p>
62
63 <pre class='command'>
64 <kbd>gcc -o myprogram myprogram.c -lcupsimage</kbd>
65 </pre>
66
67 <h2 class='title'>Compatibility</h2>
68
69 <p>Unless otherwise specified, the raster API functions require
70 CUPS 1.1 or higher.</p>
71
72 <h2 class='title'>Licensing</h2>
73
74 <p>The CUPS raster API is provided under the terms of the GNU
75 Library General Public License, with exceptions for MacOS X-based
76 programs. Please see the CUPS license agreement for more
77 information.</p>
78 <h2 class='title'>Contents</h2>
79 <ul>
80 <li><a href='#ENUMERATIONS'>Enumerations</a></li>
81 <li><a href='#FUNCTIONS'>Functions</a></li>
82 <li><a href='#STRUCTURES'>Structures</a></li>
83 <li><a href='#TYPES'>Types</a></li>
84 </ul>
85 <!-- NEW PAGE -->
86 <h2 class='title'><a name='ENUMERATIONS'>Enumerations</a></h2>
87 <ul>
88 <li><a href='#cups_adv_e'><tt>cups_adv_e</tt></a> </li>
89 <li><a href='#cups_bool_e'><tt>cups_bool_e</tt></a> </li>
90 <li><a href='#cups_cspace_e'><tt>cups_cspace_e</tt></a> </li>
91 <li><a href='#cups_cut_e'><tt>cups_cut_e</tt></a> </li>
92 <li><a href='#cups_edge_e'><tt>cups_edge_e</tt></a> </li>
93 <li><a href='#cups_jog_e'><tt>cups_jog_e</tt></a> </li>
94 <li><a href='#cups_mode_e'><tt>cups_mode_e</tt></a> </li>
95 <li><a href='#cups_order_e'><tt>cups_order_e</tt></a> </li>
96 <li><a href='#cups_orient_e'><tt>cups_orient_e</tt></a> </li>
97 </ul>
98 <!-- NEW PAGE -->
99 <h3 class='title'><a name='cups_adv_e'>cups_adv_e</a></h3>
100 <h4>Description</h4>
101 <p>AdvanceMedia attribute values
102 <h4>Values</h4>
103 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
104 <thead><tr><th>Name</th><th>Description</th></tr></thead>
105 <tbody>
106 <tr><td><tt>CUPS_ADVANCE_FILE</tt> </td><td>Advance the roll after this file
107 </td></tr>
108 <tr><td><tt>CUPS_ADVANCE_JOB</tt> </td><td>Advance the roll after this job
109 </td></tr>
110 <tr><td><tt>CUPS_ADVANCE_NONE</tt> </td><td>Never advance the roll
111 </td></tr>
112 <tr><td><tt>CUPS_ADVANCE_PAGE</tt> </td><td>Advance the roll after this page
113 </td></tr>
114 <tr><td><tt>CUPS_ADVANCE_SET</tt> </td><td>Advance the roll after this set
115 </td></tr>
116 </tbody></table></div>
117 <!-- NEW PAGE -->
118 <h3 class='title'><a name='cups_bool_e'>cups_bool_e</a></h3>
119 <h4>Description</h4>
120 <p>Types...
121 <h4>Values</h4>
122 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
123 <thead><tr><th>Name</th><th>Description</th></tr></thead>
124 <tbody>
125 <tr><td><tt>CUPS_FALSE</tt> </td><td>Logical false
126 </td></tr>
127 <tr><td><tt>CUPS_TRUE</tt> </td><td>Logical true
128 </td></tr>
129 </tbody></table></div>
130 <!-- NEW PAGE -->
131 <h3 class='title'><a name='cups_cspace_e'>cups_cspace_e</a></h3>
132 <h4>Description</h4>
133 <p>
134 <h4>Values</h4>
135 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
136 <thead><tr><th>Name</th><th>Description</th></tr></thead>
137 <tbody>
138 <tr><td><tt>CUPS_CSPACE_CIELab</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>CIE Lab
139 </td></tr>
140 <tr><td><tt>CUPS_CSPACE_CIEXYZ</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>CIE XYZ
141 </td></tr>
142 <tr><td><tt>CUPS_CSPACE_CMY</tt> </td><td>Cyan, magenta, yellow
143 </td></tr>
144 <tr><td><tt>CUPS_CSPACE_CMYK</tt> </td><td>Cyan, magenta, yellow, black
145 </td></tr>
146 <tr><td><tt>CUPS_CSPACE_GMCK</tt> </td><td>Gold, magenta, yellow, black
147 </td></tr>
148 <tr><td><tt>CUPS_CSPACE_GMCS</tt> </td><td>Gold, magenta, yellow, silver
149 </td></tr>
150 <tr><td><tt>CUPS_CSPACE_GOLD</tt> </td><td>Gold foil
151 </td></tr>
152 <tr><td><tt>CUPS_CSPACE_ICC1</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 1 color
153 </td></tr>
154 <tr><td><tt>CUPS_CSPACE_ICC2</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 2 colors
155 </td></tr>
156 <tr><td><tt>CUPS_CSPACE_ICC3</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 3 colors
157 </td></tr>
158 <tr><td><tt>CUPS_CSPACE_ICC4</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 4 colors
159 </td></tr>
160 <tr><td><tt>CUPS_CSPACE_ICC5</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 5 colors
161 </td></tr>
162 <tr><td><tt>CUPS_CSPACE_ICC6</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 6 colors
163 </td></tr>
164 <tr><td><tt>CUPS_CSPACE_ICC7</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 7 colors
165 </td></tr>
166 <tr><td><tt>CUPS_CSPACE_ICC8</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 8 colors
167 </td></tr>
168 <tr><td><tt>CUPS_CSPACE_ICC9</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 9 colors
169 </td></tr>
170 <tr><td><tt>CUPS_CSPACE_ICCA</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 10 colors
171 </td></tr>
172 <tr><td><tt>CUPS_CSPACE_ICCB</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 11 colors
173 </td></tr>
174 <tr><td><tt>CUPS_CSPACE_ICCC</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 12 colors
175 </td></tr>
176 <tr><td><tt>CUPS_CSPACE_ICCD</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 13 colors
177 </td></tr>
178 <tr><td><tt>CUPS_CSPACE_ICCE</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 14 colors
179 </td></tr>
180 <tr><td><tt>CUPS_CSPACE_ICCF</tt> <span class='info'>&nbsp;CUPS 1.1.19&nbsp;</span></td><td>ICC-based, 15 colors
181 </td></tr>
182 <tr><td><tt>CUPS_CSPACE_K</tt> </td><td>Black
183 </td></tr>
184 <tr><td><tt>CUPS_CSPACE_KCMY</tt> </td><td>Black, cyan, magenta, yellow
185 </td></tr>
186 <tr><td><tt>CUPS_CSPACE_KCMYcm</tt> </td><td>Black, cyan, magenta, yellow, *
187 light-cyan, light-magenta
188 </td></tr>
189 <tr><td><tt>CUPS_CSPACE_RGB</tt> </td><td>Red, green, blue
190 </td></tr>
191 <tr><td><tt>CUPS_CSPACE_RGBA</tt> </td><td>Red, green, blue, alpha
192 </td></tr>
193 <tr><td><tt>CUPS_CSPACE_RGBW</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Red, green, blue, white
194 </td></tr>
195 <tr><td><tt>CUPS_CSPACE_SILVER</tt> </td><td>Silver foil
196 </td></tr>
197 <tr><td><tt>CUPS_CSPACE_W</tt> </td><td>Luminance
198 </td></tr>
199 <tr><td><tt>CUPS_CSPACE_WHITE</tt> </td><td>White ink (as black)
200 </td></tr>
201 <tr><td><tt>CUPS_CSPACE_YMC</tt> </td><td>Yellow, magenta, cyan
202 </td></tr>
203 <tr><td><tt>CUPS_CSPACE_YMCK</tt> </td><td>Yellow, magenta, cyan, black
204 </td></tr>
205 </tbody></table></div>
206 <!-- NEW PAGE -->
207 <h3 class='title'><a name='cups_cut_e'>cups_cut_e</a></h3>
208 <h4>Description</h4>
209 <p>
210 <h4>Values</h4>
211 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
212 <thead><tr><th>Name</th><th>Description</th></tr></thead>
213 <tbody>
214 <tr><td><tt>CUPS_CUT_FILE</tt> </td><td>Cut the roll after this file
215 </td></tr>
216 <tr><td><tt>CUPS_CUT_JOB</tt> </td><td>Cut the roll after this job
217 </td></tr>
218 <tr><td><tt>CUPS_CUT_NONE</tt> </td><td>Never cut the roll
219 </td></tr>
220 <tr><td><tt>CUPS_CUT_PAGE</tt> </td><td>Cut the roll after this page
221 </td></tr>
222 <tr><td><tt>CUPS_CUT_SET</tt> </td><td>Cut the roll after this set
223 </td></tr>
224 </tbody></table></div>
225 <!-- NEW PAGE -->
226 <h3 class='title'><a name='cups_edge_e'>cups_edge_e</a></h3>
227 <h4>Description</h4>
228 <p>
229 <h4>Values</h4>
230 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
231 <thead><tr><th>Name</th><th>Description</th></tr></thead>
232 <tbody>
233 <tr><td><tt>CUPS_EDGE_BOTTOM</tt> </td><td>Leading edge is the bottom of the page
234 </td></tr>
235 <tr><td><tt>CUPS_EDGE_LEFT</tt> </td><td>Leading edge is the left of the page
236 </td></tr>
237 <tr><td><tt>CUPS_EDGE_RIGHT</tt> </td><td>Leading edge is the right of the page
238 </td></tr>
239 <tr><td><tt>CUPS_EDGE_TOP</tt> </td><td>Leading edge is the top of the page
240 </td></tr>
241 </tbody></table></div>
242 <!-- NEW PAGE -->
243 <h3 class='title'><a name='cups_jog_e'>cups_jog_e</a></h3>
244 <h4>Description</h4>
245 <p>
246 <h4>Values</h4>
247 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
248 <thead><tr><th>Name</th><th>Description</th></tr></thead>
249 <tbody>
250 <tr><td><tt>CUPS_JOG_FILE</tt> </td><td>Move pages after this file
251 </td></tr>
252 <tr><td><tt>CUPS_JOG_JOB</tt> </td><td>Move pages after this job
253 </td></tr>
254 <tr><td><tt>CUPS_JOG_NONE</tt> </td><td>Never move pages
255 </td></tr>
256 <tr><td><tt>CUPS_JOG_SET</tt> </td><td>Move pages after this set
257 </td></tr>
258 </tbody></table></div>
259 <!-- NEW PAGE -->
260 <h3 class='title'><a name='cups_mode_e'>cups_mode_e</a></h3>
261 <h4>Description</h4>
262 <p>
263 <h4>Values</h4>
264 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
265 <thead><tr><th>Name</th><th>Description</th></tr></thead>
266 <tbody>
267 <tr><td><tt>CUPS_RASTER_READ</tt> </td><td>Open stream for reading
268 </td></tr>
269 <tr><td><tt>CUPS_RASTER_WRITE</tt> </td><td>Open stream for writing
270 </td></tr>
271 <tr><td><tt>CUPS_RASTER_WRITE_COMPRESSED</tt> <span class='info'>&nbsp;CUPS 1.3&nbsp;</span></td><td>Open stream for compressed writing
272 </td></tr>
273 </tbody></table></div>
274 <!-- NEW PAGE -->
275 <h3 class='title'><a name='cups_order_e'>cups_order_e</a></h3>
276 <h4>Description</h4>
277 <p>
278 <h4>Values</h4>
279 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
280 <thead><tr><th>Name</th><th>Description</th></tr></thead>
281 <tbody>
282 <tr><td><tt>CUPS_ORDER_BANDED</tt> </td><td>CCC MMM YYY KKK ...
283 </td></tr>
284 <tr><td><tt>CUPS_ORDER_CHUNKED</tt> </td><td>CMYK CMYK CMYK ...
285 </td></tr>
286 <tr><td><tt>CUPS_ORDER_PLANAR</tt> </td><td>CCC ... MMM ... YYY ... KKK ...
287 </td></tr>
288 </tbody></table></div>
289 <!-- NEW PAGE -->
290 <h3 class='title'><a name='cups_orient_e'>cups_orient_e</a></h3>
291 <h4>Description</h4>
292 <p>
293 <h4>Values</h4>
294 <div class='table'><table align='center' border='1' width='80%' summary='Values'>
295 <thead><tr><th>Name</th><th>Description</th></tr></thead>
296 <tbody>
297 <tr><td><tt>CUPS_ORIENT_0</tt> </td><td>Don't rotate the page
298 </td></tr>
299 <tr><td><tt>CUPS_ORIENT_180</tt> </td><td>Turn the page upside down
300 </td></tr>
301 <tr><td><tt>CUPS_ORIENT_270</tt> </td><td>Rotate the page clockwise
302 </td></tr>
303 <tr><td><tt>CUPS_ORIENT_90</tt> </td><td>Rotate the page counter-clockwise
304 </td></tr>
305 </tbody></table></div>
306 <!-- NEW PAGE -->
307 <h2 class='title'><a name='FUNCTIONS'>Functions</a></h2>
308 <ul>
309 <li><a href='#cupsRasterClose'><tt>cupsRasterClose()</tt></a> </li>
310 <li><a href='#cupsRasterInterpretPPD'><tt>cupsRasterInterpretPPD()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
311 <li><a href='#cupsRasterOpen'><tt>cupsRasterOpen()</tt></a> </li>
312 <li><a href='#cupsRasterReadHeader'><tt>cupsRasterReadHeader()</tt></a> </li>
313 <li><a href='#cupsRasterReadHeader2'><tt>cupsRasterReadHeader2()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
314 <li><a href='#cupsRasterReadPixels'><tt>cupsRasterReadPixels()</tt></a> </li>
315 <li><a href='#cupsRasterWriteHeader'><tt>cupsRasterWriteHeader()</tt></a> </li>
316 <li><a href='#cupsRasterWriteHeader2'><tt>cupsRasterWriteHeader2()</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
317 <li><a href='#cupsRasterWritePixels'><tt>cupsRasterWritePixels()</tt></a> </li>
318 </ul>
319 <!-- NEW PAGE -->
320 <h3 class='title'><a name='cupsRasterClose'>cupsRasterClose()</a></h3>
321 <h4>Description</h4>
322 <p>Close a raster stream.
323 <h4>Syntax</h4>
324 <p><tt>
325 void<br>
326 cupsRasterClose(
327 <a href='#cups_raster_t'>cups_raster_t</a> * r);
328 </tt></p>
329 <h4>Arguments</h4>
330 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
331 <thead><tr><th>Name</th><th>Description</th></tr></thead>
332 <tbody>
333 <tr><td><tt>r</tt></td><td>Stream to close</td></tr>
334 </tbody></table></div>
335 <h4>Returns</h4>
336 <p>Nothing.</p>
337 <!-- NEW PAGE -->
338 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsRasterInterpretPPD'>cupsRasterInterpretPPD()</a></h3>
339 <h4>Description</h4>
340 <p>Interpret PPD commands to create a page header.
341 <p>This function does not mark the options in the PPD using the &quot;num_options&quot;
342 and &quot;options&quot; arguments. Instead, mark the options prior to calling
343 cupsRasterInterpretPPD() - this allows you to do per-page options
344 without manipulating the options array.
345 <p>The &quot;func&quot; argument specifies an optional callback function that is
346 called prior to the computation of the final raster data. The function
347 can make changes to the cups_page_header2_t data as needed to use a
348 supported raster format and then returns 0 on success and -1 if the
349 requested attributes cannot be supported.
350 <p>cupsRasterInterpretPPD() supports a subset of the PostScript language.
351 Currently only the [, ], &lt;&lt;, &gt;&gt;, {, }, cleartomark, copy, dup, index,
352 pop, roll, setpagedevice, and stopped operators are supported.
353
354
355 <h4>Syntax</h4>
356 <p><tt>
357 int<br>
358 cupsRasterInterpretPPD(
359 <a href='#cups_page_header2_t'>cups_page_header2_t</a> * h,
360 ppd_file_t * ppd,
361 int num_options,
362 cups_option_t * options,
363 <a href='#cups_interpret_cb_t'>cups_interpret_cb_t</a> func);
364 </tt></p>
365 <h4>Arguments</h4>
366 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
367 <thead><tr><th>Name</th><th>Description</th></tr></thead>
368 <tbody>
369 <tr><td><tt>h</tt></td><td>Page header</td></tr>
370 <tr><td><tt>ppd</tt></td><td>PPD file</td></tr>
371 <tr><td><tt>num_options</tt></td><td>Number of options</td></tr>
372 <tr><td><tt>options</tt></td><td>Options</td></tr>
373 <tr><td><tt>func</tt></td><td>Optional page header callback</td></tr>
374 </tbody></table></div>
375 <h4>Returns</h4>
376 <p>0 on success, -1 on failure</p>
377 <!-- NEW PAGE -->
378 <h3 class='title'><a name='cupsRasterOpen'>cupsRasterOpen()</a></h3>
379 <h4>Description</h4>
380 <p>Open a raster stream.
381 <h4>Syntax</h4>
382 <p><tt>
383 <a href='#cups_raster_t'>cups_raster_t</a> *<br>
384 cupsRasterOpen(
385 int fd,
386 cups_mode_t mode);
387 </tt></p>
388 <h4>Arguments</h4>
389 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
390 <thead><tr><th>Name</th><th>Description</th></tr></thead>
391 <tbody>
392 <tr><td><tt>fd</tt></td><td>File descriptor</td></tr>
393 <tr><td><tt>mode</tt></td><td>Mode</td></tr>
394 </tbody></table></div>
395 <h4>Returns</h4>
396 <p>New stream</p>
397 <!-- NEW PAGE -->
398 <h3 class='title'><a name='cupsRasterReadHeader'>cupsRasterReadHeader()</a></h3>
399 <h4>Description</h4>
400 <p>Read a raster page header and store it in a
401 V1 page header structure.
402 <h4>Syntax</h4>
403 <p><tt>
404 unsigned<br>
405 cupsRasterReadHeader(
406 <a href='#cups_raster_t'>cups_raster_t</a> * r,
407 <a href='#cups_page_header_t'>cups_page_header_t</a> * h);
408 </tt></p>
409 <h4>Arguments</h4>
410 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
411 <thead><tr><th>Name</th><th>Description</th></tr></thead>
412 <tbody>
413 <tr><td><tt>r</tt></td><td>Raster stream</td></tr>
414 <tr><td><tt>h</tt></td><td>Pointer to header data</td></tr>
415 </tbody></table></div>
416 <h4>Returns</h4>
417 <p>1 on success, 0 on fail</p>
418 <!-- NEW PAGE -->
419 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsRasterReadHeader2'>cupsRasterReadHeader2()</a></h3>
420 <h4>Description</h4>
421 <p>Read a raster page header and store it in a
422 V2 page header structure.
423
424
425 <h4>Syntax</h4>
426 <p><tt>
427 unsigned<br>
428 cupsRasterReadHeader2(
429 <a href='#cups_raster_t'>cups_raster_t</a> * r,
430 <a href='#cups_page_header2_t'>cups_page_header2_t</a> * h);
431 </tt></p>
432 <h4>Arguments</h4>
433 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
434 <thead><tr><th>Name</th><th>Description</th></tr></thead>
435 <tbody>
436 <tr><td><tt>r</tt></td><td>Raster stream</td></tr>
437 <tr><td><tt>h</tt></td><td>Pointer to header data</td></tr>
438 </tbody></table></div>
439 <h4>Returns</h4>
440 <p>1 on success, 0 on fail</p>
441 <!-- NEW PAGE -->
442 <h3 class='title'><a name='cupsRasterReadPixels'>cupsRasterReadPixels()</a></h3>
443 <h4>Description</h4>
444 <p>Read raster pixels.
445 <h4>Syntax</h4>
446 <p><tt>
447 unsigned<br>
448 cupsRasterReadPixels(
449 <a href='#cups_raster_t'>cups_raster_t</a> * r,
450 unsigned char * p,
451 unsigned len);
452 </tt></p>
453 <h4>Arguments</h4>
454 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
455 <thead><tr><th>Name</th><th>Description</th></tr></thead>
456 <tbody>
457 <tr><td><tt>r</tt></td><td>Raster stream</td></tr>
458 <tr><td><tt>p</tt></td><td>Pointer to pixel buffer</td></tr>
459 <tr><td><tt>len</tt></td><td>Number of bytes to read</td></tr>
460 </tbody></table></div>
461 <h4>Returns</h4>
462 <p>Number of bytes read</p>
463 <!-- NEW PAGE -->
464 <h3 class='title'><a name='cupsRasterWriteHeader'>cupsRasterWriteHeader()</a></h3>
465 <h4>Description</h4>
466 <p>Write a raster page header from a V1 page
467 header structure.
468 <h4>Syntax</h4>
469 <p><tt>
470 unsigned<br>
471 cupsRasterWriteHeader(
472 <a href='#cups_raster_t'>cups_raster_t</a> * r,
473 <a href='#cups_page_header_t'>cups_page_header_t</a> * h);
474 </tt></p>
475 <h4>Arguments</h4>
476 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
477 <thead><tr><th>Name</th><th>Description</th></tr></thead>
478 <tbody>
479 <tr><td><tt>r</tt></td><td>Raster stream</td></tr>
480 <tr><td><tt>h</tt></td><td>Raster page header</td></tr>
481 </tbody></table></div>
482 <h4>Returns</h4>
483 <p>1 on success, 0 on failure</p>
484 <!-- NEW PAGE -->
485 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cupsRasterWriteHeader2'>cupsRasterWriteHeader2()</a></h3>
486 <h4>Description</h4>
487 <p>Write a raster page header from a V2 page
488 header structure.
489
490
491 <h4>Syntax</h4>
492 <p><tt>
493 unsigned<br>
494 cupsRasterWriteHeader2(
495 <a href='#cups_raster_t'>cups_raster_t</a> * r,
496 <a href='#cups_page_header2_t'>cups_page_header2_t</a> * h);
497 </tt></p>
498 <h4>Arguments</h4>
499 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
500 <thead><tr><th>Name</th><th>Description</th></tr></thead>
501 <tbody>
502 <tr><td><tt>r</tt></td><td>Raster stream</td></tr>
503 <tr><td><tt>h</tt></td><td>Raster page header</td></tr>
504 </tbody></table></div>
505 <h4>Returns</h4>
506 <p>1 on success, 0 on failure</p>
507 <!-- NEW PAGE -->
508 <h3 class='title'><a name='cupsRasterWritePixels'>cupsRasterWritePixels()</a></h3>
509 <h4>Description</h4>
510 <p>Write raster pixels.
511 <h4>Syntax</h4>
512 <p><tt>
513 unsigned<br>
514 cupsRasterWritePixels(
515 <a href='#cups_raster_t'>cups_raster_t</a> * r,
516 unsigned char * p,
517 unsigned len);
518 </tt></p>
519 <h4>Arguments</h4>
520 <div class='table'><table align='center' border='1' width='80%' cellpadding='5' cellspacing='0' summary='Arguments'>
521 <thead><tr><th>Name</th><th>Description</th></tr></thead>
522 <tbody>
523 <tr><td><tt>r</tt></td><td>Raster stream</td></tr>
524 <tr><td><tt>p</tt></td><td>Bytes to write</td></tr>
525 <tr><td><tt>len</tt></td><td>Number of bytes to write</td></tr>
526 </tbody></table></div>
527 <h4>Returns</h4>
528 <p>Number of bytes written</p>
529 <!-- NEW PAGE -->
530 <h2 class='title'><a name='STRUCTURES'>Structures</a></h2>
531 <ul>
532 <li><a href='#cups_page_header2_s'><tt>cups_page_header2_s</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
533 <li><a href='#cups_page_header_s'><tt>cups_page_header_s</tt></a> </li>
534 </ul>
535 <!-- NEW PAGE -->
536 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cups_page_header2_s'>cups_page_header2_s</a></h3>
537 <h4>Description</h4>
538 <p>Version 2 Page Header
539 <h4>Definition</h4>
540 <p><tt>
541 struct cups_page_header2_s<br>
542 {<br>
543 &nbsp;&nbsp;unsigned AdvanceDistance;<br>
544 &nbsp;&nbsp;cups_adv_t AdvanceMedia;<br>
545 &nbsp;&nbsp;cups_bool_t Collate;<br>
546 &nbsp;&nbsp;cups_cut_t CutMedia;<br>
547 &nbsp;&nbsp;cups_bool_t Duplex;<br>
548 &nbsp;&nbsp;unsigned HWResolution[2];<br>
549 &nbsp;&nbsp;unsigned ImagingBoundingBox[4];<br>
550 &nbsp;&nbsp;cups_bool_t InsertSheet;<br>
551 &nbsp;&nbsp;cups_jog_t Jog;<br>
552 &nbsp;&nbsp;cups_edge_t LeadingEdge;<br>
553 &nbsp;&nbsp;cups_bool_t ManualFeed;<br>
554 &nbsp;&nbsp;unsigned Margins[2];<br>
555 &nbsp;&nbsp;char MediaClass[64];<br>
556 &nbsp;&nbsp;char MediaColor[64];<br>
557 &nbsp;&nbsp;unsigned MediaPosition;<br>
558 &nbsp;&nbsp;char MediaType[64];<br>
559 &nbsp;&nbsp;unsigned MediaWeight;<br>
560 &nbsp;&nbsp;cups_bool_t MirrorPrint;<br>
561 &nbsp;&nbsp;cups_bool_t NegativePrint;<br>
562 &nbsp;&nbsp;unsigned NumCopies;<br>
563 &nbsp;&nbsp;cups_orient_t Orientation;<br>
564 &nbsp;&nbsp;cups_bool_t OutputFaceUp;<br>
565 &nbsp;&nbsp;char OutputType[64];<br>
566 &nbsp;&nbsp;unsigned PageSize[2];<br>
567 &nbsp;&nbsp;cups_bool_t Separations;<br>
568 &nbsp;&nbsp;cups_bool_t TraySwitch;<br>
569 &nbsp;&nbsp;cups_bool_t Tumble;<br>
570 &nbsp;&nbsp;unsigned cupsBitsPerColor;<br>
571 &nbsp;&nbsp;unsigned cupsBitsPerPixel;<br>
572 &nbsp;&nbsp;float cupsBorderlessScalingFactor;<br>
573 &nbsp;&nbsp;unsigned cupsBytesPerLine;<br>
574 &nbsp;&nbsp;cups_order_t cupsColorOrder;<br>
575 &nbsp;&nbsp;cups_cspace_t cupsColorSpace;<br>
576 &nbsp;&nbsp;unsigned cupsCompression;<br>
577 &nbsp;&nbsp;unsigned cupsHeight;<br>
578 &nbsp;&nbsp;float cupsImagingBBox[4];<br>
579 &nbsp;&nbsp;unsigned cupsInteger[16];<br>
580 &nbsp;&nbsp;char cupsMarkerType[64];<br>
581 &nbsp;&nbsp;unsigned cupsMediaType;<br>
582 &nbsp;&nbsp;unsigned cupsNumColors;<br>
583 &nbsp;&nbsp;char cupsPageSizeName[64];<br>
584 &nbsp;&nbsp;float cupsPageSize[2];<br>
585 &nbsp;&nbsp;float cupsReal[16];<br>
586 &nbsp;&nbsp;char cupsRenderingIntent[64];<br>
587 &nbsp;&nbsp;unsigned cupsRowCount;<br>
588 &nbsp;&nbsp;unsigned cupsRowFeed;<br>
589 &nbsp;&nbsp;unsigned cupsRowStep;<br>
590 &nbsp;&nbsp;char cupsString[16][64];<br>
591 &nbsp;&nbsp;unsigned cupsWidth;<br>
592 };</tt></p>
593 <h4>Members</h4>
594 <div class='table'><table align='center' border='1' width='80%' summary='Members'>
595 <thead><tr><th>Name</th><th>Description</th></tr></thead>
596 <tbody>
597 <tr><td><tt>AdvanceDistance</tt> </td><td>AdvanceDistance value in points
598 </td></tr>
599 <tr><td><tt>AdvanceMedia</tt> </td><td>AdvanceMedia value (see above)
600 </td></tr>
601 <tr><td><tt>Collate</tt> </td><td>Collated copies value
602 </td></tr>
603 <tr><td><tt>CutMedia</tt> </td><td>CutMedia value (see above)
604 </td></tr>
605 <tr><td><tt>Duplex</tt> </td><td>Duplexed (double-sided) value
606 </td></tr>
607 <tr><td><tt>HWResolution[2]</tt> </td><td>Resolution in dots-per-inch
608 </td></tr>
609 <tr><td><tt>ImagingBoundingBox[4]</tt> </td><td>Pixel region that is painted (points)
610 </td></tr>
611 <tr><td><tt>InsertSheet</tt> </td><td>InsertSheet value
612 </td></tr>
613 <tr><td><tt>Jog</tt> </td><td>Jog value (see above)
614 </td></tr>
615 <tr><td><tt>LeadingEdge</tt> </td><td>LeadingEdge value (see above)
616 </td></tr>
617 <tr><td><tt>ManualFeed</tt> </td><td>ManualFeed value
618 </td></tr>
619 <tr><td><tt>Margins[2]</tt> </td><td>Lower-lefthand margins in points
620 </td></tr>
621 <tr><td><tt>MediaClass[64]</tt> </td><td>MediaClass string
622 </td></tr>
623 <tr><td><tt>MediaColor[64]</tt> </td><td>MediaColor string
624 </td></tr>
625 <tr><td><tt>MediaPosition</tt> </td><td>MediaPosition value
626 </td></tr>
627 <tr><td><tt>MediaType[64]</tt> </td><td>MediaType string
628 </td></tr>
629 <tr><td><tt>MediaWeight</tt> </td><td>MediaWeight value in grams/m^2
630 </td></tr>
631 <tr><td><tt>MirrorPrint</tt> </td><td>MirrorPrint value
632 </td></tr>
633 <tr><td><tt>NegativePrint</tt> </td><td>NegativePrint value
634 </td></tr>
635 <tr><td><tt>NumCopies</tt> </td><td>Number of copies to produce
636 </td></tr>
637 <tr><td><tt>Orientation</tt> </td><td>Orientation value (see above)
638 </td></tr>
639 <tr><td><tt>OutputFaceUp</tt> </td><td>OutputFaceUp value
640 </td></tr>
641 <tr><td><tt>OutputType[64]</tt> </td><td>OutputType string
642 </td></tr>
643 <tr><td><tt>PageSize[2]</tt> </td><td>Width and length of page in points
644 </td></tr>
645 <tr><td><tt>Separations</tt> </td><td>Separations value
646 </td></tr>
647 <tr><td><tt>TraySwitch</tt> </td><td>TraySwitch value
648 </td></tr>
649 <tr><td><tt>Tumble</tt> </td><td>Tumble value
650 </td></tr>
651 <tr><td><tt>cupsBitsPerColor</tt> </td><td>Number of bits for each color
652 </td></tr>
653 <tr><td><tt>cupsBitsPerPixel</tt> </td><td>Number of bits for each pixel
654 </td></tr>
655 <tr><td><tt>cupsBorderlessScalingFactor</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Scaling that was applied to page data
656 </td></tr>
657 <tr><td><tt>cupsBytesPerLine</tt> </td><td>Number of bytes per line
658 </td></tr>
659 <tr><td><tt>cupsColorOrder</tt> </td><td>Order of colors
660 </td></tr>
661 <tr><td><tt>cupsColorSpace</tt> </td><td>True colorspace
662 </td></tr>
663 <tr><td><tt>cupsCompression</tt> </td><td>Device compression to use
664 </td></tr>
665 <tr><td><tt>cupsHeight</tt> </td><td>Height of page image in pixels
666 </td></tr>
667 <tr><td><tt>cupsImagingBBox[4]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Floating point ImagingBoundingBox *
668 (scaling factor not applied)
669 </td></tr>
670 <tr><td><tt>cupsInteger[16]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>User-defined integer values
671 </td></tr>
672 <tr><td><tt>cupsMarkerType[64]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Ink/toner type
673 </td></tr>
674 <tr><td><tt>cupsMediaType</tt> </td><td>Media type code
675 </td></tr>
676 <tr><td><tt>cupsNumColors</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Number of colors
677 </td></tr>
678 <tr><td><tt>cupsPageSizeName[64]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>PageSize name
679 </td></tr>
680 <tr><td><tt>cupsPageSize[2]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Floating point PageSize (scaling *
681 factor not applied)
682 </td></tr>
683 <tr><td><tt>cupsReal[16]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>User-defined floating-point values
684 </td></tr>
685 <tr><td><tt>cupsRenderingIntent[64]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>Color rendering intent
686 </td></tr>
687 <tr><td><tt>cupsRowCount</tt> </td><td>Rows per band
688 </td></tr>
689 <tr><td><tt>cupsRowFeed</tt> </td><td>Feed between bands
690 </td></tr>
691 <tr><td><tt>cupsRowStep</tt> </td><td>Spacing between lines
692 </td></tr>
693 <tr><td><tt>cupsString[16][64]</tt> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></td><td>User-defined string values
694 </td></tr>
695 <tr><td><tt>cupsWidth</tt> </td><td>Width of page image in pixels
696 </td></tr>
697 </tbody></table></div>
698 <!-- NEW PAGE -->
699 <h3 class='title'><a name='cups_page_header_s'>cups_page_header_s</a></h3>
700 <h4>Description</h4>
701 <p>Version 1 Page Header
702 <h4>Definition</h4>
703 <p><tt>
704 struct cups_page_header_s<br>
705 {<br>
706 &nbsp;&nbsp;unsigned AdvanceDistance;<br>
707 &nbsp;&nbsp;cups_adv_t AdvanceMedia;<br>
708 &nbsp;&nbsp;cups_bool_t Collate;<br>
709 &nbsp;&nbsp;cups_cut_t CutMedia;<br>
710 &nbsp;&nbsp;cups_bool_t Duplex;<br>
711 &nbsp;&nbsp;unsigned HWResolution[2];<br>
712 &nbsp;&nbsp;unsigned ImagingBoundingBox[4];<br>
713 &nbsp;&nbsp;cups_bool_t InsertSheet;<br>
714 &nbsp;&nbsp;cups_jog_t Jog;<br>
715 &nbsp;&nbsp;cups_edge_t LeadingEdge;<br>
716 &nbsp;&nbsp;cups_bool_t ManualFeed;<br>
717 &nbsp;&nbsp;unsigned Margins[2];<br>
718 &nbsp;&nbsp;char MediaClass[64];<br>
719 &nbsp;&nbsp;char MediaColor[64];<br>
720 &nbsp;&nbsp;unsigned MediaPosition;<br>
721 &nbsp;&nbsp;char MediaType[64];<br>
722 &nbsp;&nbsp;unsigned MediaWeight;<br>
723 &nbsp;&nbsp;cups_bool_t MirrorPrint;<br>
724 &nbsp;&nbsp;cups_bool_t NegativePrint;<br>
725 &nbsp;&nbsp;unsigned NumCopies;<br>
726 &nbsp;&nbsp;cups_orient_t Orientation;<br>
727 &nbsp;&nbsp;cups_bool_t OutputFaceUp;<br>
728 &nbsp;&nbsp;char OutputType[64];<br>
729 &nbsp;&nbsp;unsigned PageSize[2];<br>
730 &nbsp;&nbsp;cups_bool_t Separations;<br>
731 &nbsp;&nbsp;cups_bool_t TraySwitch;<br>
732 &nbsp;&nbsp;cups_bool_t Tumble;<br>
733 &nbsp;&nbsp;unsigned cupsBitsPerColor;<br>
734 &nbsp;&nbsp;unsigned cupsBitsPerPixel;<br>
735 &nbsp;&nbsp;unsigned cupsBytesPerLine;<br>
736 &nbsp;&nbsp;cups_order_t cupsColorOrder;<br>
737 &nbsp;&nbsp;cups_cspace_t cupsColorSpace;<br>
738 &nbsp;&nbsp;unsigned cupsCompression;<br>
739 &nbsp;&nbsp;unsigned cupsHeight;<br>
740 &nbsp;&nbsp;unsigned cupsMediaType;<br>
741 &nbsp;&nbsp;unsigned cupsRowCount;<br>
742 &nbsp;&nbsp;unsigned cupsRowFeed;<br>
743 &nbsp;&nbsp;unsigned cupsRowStep;<br>
744 &nbsp;&nbsp;unsigned cupsWidth;<br>
745 };</tt></p>
746 <h4>Members</h4>
747 <div class='table'><table align='center' border='1' width='80%' summary='Members'>
748 <thead><tr><th>Name</th><th>Description</th></tr></thead>
749 <tbody>
750 <tr><td><tt>AdvanceDistance</tt> </td><td>AdvanceDistance value in points
751 </td></tr>
752 <tr><td><tt>AdvanceMedia</tt> </td><td>AdvanceMedia value (see above)
753 </td></tr>
754 <tr><td><tt>Collate</tt> </td><td>Collated copies value
755 </td></tr>
756 <tr><td><tt>CutMedia</tt> </td><td>CutMedia value (see above)
757 </td></tr>
758 <tr><td><tt>Duplex</tt> </td><td>Duplexed (double-sided) value
759 </td></tr>
760 <tr><td><tt>HWResolution[2]</tt> </td><td>Resolution in dots-per-inch
761 </td></tr>
762 <tr><td><tt>ImagingBoundingBox[4]</tt> </td><td>Pixel region that is painted (points)
763 </td></tr>
764 <tr><td><tt>InsertSheet</tt> </td><td>InsertSheet value
765 </td></tr>
766 <tr><td><tt>Jog</tt> </td><td>Jog value (see above)
767 </td></tr>
768 <tr><td><tt>LeadingEdge</tt> </td><td>LeadingEdge value (see above)
769 </td></tr>
770 <tr><td><tt>ManualFeed</tt> </td><td>ManualFeed value
771 </td></tr>
772 <tr><td><tt>Margins[2]</tt> </td><td>Lower-lefthand margins in points
773 </td></tr>
774 <tr><td><tt>MediaClass[64]</tt> </td><td>MediaClass string
775 </td></tr>
776 <tr><td><tt>MediaColor[64]</tt> </td><td>MediaColor string
777 </td></tr>
778 <tr><td><tt>MediaPosition</tt> </td><td>MediaPosition value
779 </td></tr>
780 <tr><td><tt>MediaType[64]</tt> </td><td>MediaType string
781 </td></tr>
782 <tr><td><tt>MediaWeight</tt> </td><td>MediaWeight value in grams/m^2
783 </td></tr>
784 <tr><td><tt>MirrorPrint</tt> </td><td>MirrorPrint value
785 </td></tr>
786 <tr><td><tt>NegativePrint</tt> </td><td>NegativePrint value
787 </td></tr>
788 <tr><td><tt>NumCopies</tt> </td><td>Number of copies to produce
789 </td></tr>
790 <tr><td><tt>Orientation</tt> </td><td>Orientation value (see above)
791 </td></tr>
792 <tr><td><tt>OutputFaceUp</tt> </td><td>OutputFaceUp value
793 </td></tr>
794 <tr><td><tt>OutputType[64]</tt> </td><td>OutputType string
795 </td></tr>
796 <tr><td><tt>PageSize[2]</tt> </td><td>Width and length of page in points
797 </td></tr>
798 <tr><td><tt>Separations</tt> </td><td>Separations value
799 </td></tr>
800 <tr><td><tt>TraySwitch</tt> </td><td>TraySwitch value
801 </td></tr>
802 <tr><td><tt>Tumble</tt> </td><td>Tumble value
803 </td></tr>
804 <tr><td><tt>cupsBitsPerColor</tt> </td><td>Number of bits for each color
805 </td></tr>
806 <tr><td><tt>cupsBitsPerPixel</tt> </td><td>Number of bits for each pixel
807 </td></tr>
808 <tr><td><tt>cupsBytesPerLine</tt> </td><td>Number of bytes per line
809 </td></tr>
810 <tr><td><tt>cupsColorOrder</tt> </td><td>Order of colors
811 </td></tr>
812 <tr><td><tt>cupsColorSpace</tt> </td><td>True colorspace
813 </td></tr>
814 <tr><td><tt>cupsCompression</tt> </td><td>Device compression to use
815 </td></tr>
816 <tr><td><tt>cupsHeight</tt> </td><td>Height of page image in pixels
817 </td></tr>
818 <tr><td><tt>cupsMediaType</tt> </td><td>Media type code
819 </td></tr>
820 <tr><td><tt>cupsRowCount</tt> </td><td>Rows per band
821 </td></tr>
822 <tr><td><tt>cupsRowFeed</tt> </td><td>Feed between bands
823 </td></tr>
824 <tr><td><tt>cupsRowStep</tt> </td><td>Spacing between lines
825 </td></tr>
826 <tr><td><tt>cupsWidth</tt> </td><td>Width of page image in pixels
827 </td></tr>
828 </tbody></table></div>
829 <!-- NEW PAGE -->
830 <h2 class='title'><a name='TYPES'>Types</a></h2>
831 <ul>
832 <li><a href='#cups_interpret_cb_t'><tt>cups_interpret_cb_t</tt></a> </li>
833 <li><a href='#cups_page_header2_t'><tt>cups_page_header2_t</tt></a> <span class='info'>&nbsp;CUPS 1.2&nbsp;</span></li>
834 <li><a href='#cups_page_header_t'><tt>cups_page_header_t</tt></a> </li>
835 <li><a href='#cups_raster_t'><tt>cups_raster_t</tt></a> </li>
836 </ul>
837 <!-- NEW PAGE -->
838 <h3 class='title'><a name='cups_interpret_cb_t'>cups_interpret_cb_t</a></h3>
839 <h4>Description</h4>
840 <p>Prototypes...
841 <h4>Definition</h4>
842 <p><tt>
843 typedef int (*cups_interpret_cb_t)(<a href='#cups_page_header2_t'>cups_page_header2_t</a> *header, int preferred_bits);
844 </tt></p>
845 <!-- NEW PAGE -->
846 <h3 class='title'><span class='info'>&nbsp;CUPS 1.2&nbsp;</span><a name='cups_page_header2_t'>cups_page_header2_t</a></h3>
847 <h4>Description</h4>
848 <p>Version 2 Page Header
849 <h4>Definition</h4>
850 <p><tt>
851 typedef struct <a href='#cups_page_header2_s'>cups_page_header2_s</a> cups_page_header2_t;
852 </tt></p>
853 <!-- NEW PAGE -->
854 <h3 class='title'><a name='cups_page_header_t'>cups_page_header_t</a></h3>
855 <h4>Description</h4>
856 <p>Version 1 Page Header
857 <h4>Definition</h4>
858 <p><tt>
859 typedef struct <a href='#cups_page_header_s'>cups_page_header_s</a> cups_page_header_t;
860 </tt></p>
861 <!-- NEW PAGE -->
862 <h3 class='title'><a name='cups_raster_t'>cups_raster_t</a></h3>
863 <h4>Description</h4>
864 <p>Raster stream data
865 <h4>Definition</h4>
866 <p><tt>
867 typedef struct _cups_raster_s cups_raster_t;
868 </tt></p>
869 </body>
870 </html>