1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
3 <!-- SECTION: Programming -->
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; }
21 Raster API introduction for the Common UNIX Printing System (CUPS).
23 Copyright 1997-2006 by Easy Software Products.
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
32 Attn: CUPS Licensing Information
33 Easy Software Products
34 44141 Airport View Drive, Suite 204
35 Hollywood, Maryland 20636 USA
38 EMail: cups-info@cups.org
39 WWW: http://www.cups.org
42 <h2 class='title'
>Introduction
</h2>
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>
50 <h2 class='title'
>General Usage
</h2>
52 <p>The
<var><cups/raster.h
></var> header file must be
53 included to use the
<tt>cupsRaster
</tt> functions.
</p>
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
64 <kbd>gcc -o myprogram myprogram.c -lcupsimage
</kbd>
67 <h2 class='title'
>Compatibility
</h2>
69 <p>Unless otherwise specified, the raster API functions require
70 CUPS
1.1 or higher.
</p>
72 <h2 class='title'
>Licensing
</h2>
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
78 <h2 class='title'
>Contents
</h2>
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>
86 <h2 class='title'
><a name='ENUMERATIONS'
>Enumerations
</a></h2>
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>
99 <h3 class='title'
><a name='cups_adv_e'
>cups_adv_e
</a></h3>
101 <p>AdvanceMedia attribute values
103 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
104 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
106 <tr><td><tt>CUPS_ADVANCE_FILE
</tt> </td><td>Advance the roll after this file
108 <tr><td><tt>CUPS_ADVANCE_JOB
</tt> </td><td>Advance the roll after this job
110 <tr><td><tt>CUPS_ADVANCE_NONE
</tt> </td><td>Never advance the roll
112 <tr><td><tt>CUPS_ADVANCE_PAGE
</tt> </td><td>Advance the roll after this page
114 <tr><td><tt>CUPS_ADVANCE_SET
</tt> </td><td>Advance the roll after this set
116 </tbody></table></div>
118 <h3 class='title'
><a name='cups_bool_e'
>cups_bool_e
</a></h3>
122 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
123 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
125 <tr><td><tt>CUPS_FALSE
</tt> </td><td>Logical false
127 <tr><td><tt>CUPS_TRUE
</tt> </td><td>Logical true
129 </tbody></table></div>
131 <h3 class='title'
><a name='cups_cspace_e'
>cups_cspace_e
</a></h3>
135 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
136 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
138 <tr><td><tt>CUPS_CSPACE_CIELab
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>CIE Lab
140 <tr><td><tt>CUPS_CSPACE_CIEXYZ
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>CIE XYZ
142 <tr><td><tt>CUPS_CSPACE_CMY
</tt> </td><td>Cyan, magenta, yellow
144 <tr><td><tt>CUPS_CSPACE_CMYK
</tt> </td><td>Cyan, magenta, yellow, black
146 <tr><td><tt>CUPS_CSPACE_GMCK
</tt> </td><td>Gold, magenta, yellow, black
148 <tr><td><tt>CUPS_CSPACE_GMCS
</tt> </td><td>Gold, magenta, yellow, silver
150 <tr><td><tt>CUPS_CSPACE_GOLD
</tt> </td><td>Gold foil
152 <tr><td><tt>CUPS_CSPACE_ICC1
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
1 color
154 <tr><td><tt>CUPS_CSPACE_ICC2
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
2 colors
156 <tr><td><tt>CUPS_CSPACE_ICC3
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
3 colors
158 <tr><td><tt>CUPS_CSPACE_ICC4
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
4 colors
160 <tr><td><tt>CUPS_CSPACE_ICC5
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
5 colors
162 <tr><td><tt>CUPS_CSPACE_ICC6
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
6 colors
164 <tr><td><tt>CUPS_CSPACE_ICC7
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
7 colors
166 <tr><td><tt>CUPS_CSPACE_ICC8
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
8 colors
168 <tr><td><tt>CUPS_CSPACE_ICC9
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
9 colors
170 <tr><td><tt>CUPS_CSPACE_ICCA
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
10 colors
172 <tr><td><tt>CUPS_CSPACE_ICCB
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
11 colors
174 <tr><td><tt>CUPS_CSPACE_ICCC
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
12 colors
176 <tr><td><tt>CUPS_CSPACE_ICCD
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
13 colors
178 <tr><td><tt>CUPS_CSPACE_ICCE
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
14 colors
180 <tr><td><tt>CUPS_CSPACE_ICCF
</tt> <span class='info'
> CUPS
1.1.19 </span></td><td>ICC-based,
15 colors
182 <tr><td><tt>CUPS_CSPACE_K
</tt> </td><td>Black
184 <tr><td><tt>CUPS_CSPACE_KCMY
</tt> </td><td>Black, cyan, magenta, yellow
186 <tr><td><tt>CUPS_CSPACE_KCMYcm
</tt> </td><td>Black, cyan, magenta, yellow, *
187 light-cyan, light-magenta
189 <tr><td><tt>CUPS_CSPACE_RGB
</tt> </td><td>Red, green, blue
191 <tr><td><tt>CUPS_CSPACE_RGBA
</tt> </td><td>Red, green, blue, alpha
193 <tr><td><tt>CUPS_CSPACE_RGBW
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Red, green, blue, white
195 <tr><td><tt>CUPS_CSPACE_SILVER
</tt> </td><td>Silver foil
197 <tr><td><tt>CUPS_CSPACE_W
</tt> </td><td>Luminance
199 <tr><td><tt>CUPS_CSPACE_WHITE
</tt> </td><td>White ink (as black)
201 <tr><td><tt>CUPS_CSPACE_YMC
</tt> </td><td>Yellow, magenta, cyan
203 <tr><td><tt>CUPS_CSPACE_YMCK
</tt> </td><td>Yellow, magenta, cyan, black
205 </tbody></table></div>
207 <h3 class='title'
><a name='cups_cut_e'
>cups_cut_e
</a></h3>
211 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
212 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
214 <tr><td><tt>CUPS_CUT_FILE
</tt> </td><td>Cut the roll after this file
216 <tr><td><tt>CUPS_CUT_JOB
</tt> </td><td>Cut the roll after this job
218 <tr><td><tt>CUPS_CUT_NONE
</tt> </td><td>Never cut the roll
220 <tr><td><tt>CUPS_CUT_PAGE
</tt> </td><td>Cut the roll after this page
222 <tr><td><tt>CUPS_CUT_SET
</tt> </td><td>Cut the roll after this set
224 </tbody></table></div>
226 <h3 class='title'
><a name='cups_edge_e'
>cups_edge_e
</a></h3>
230 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
231 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
233 <tr><td><tt>CUPS_EDGE_BOTTOM
</tt> </td><td>Leading edge is the bottom of the page
235 <tr><td><tt>CUPS_EDGE_LEFT
</tt> </td><td>Leading edge is the left of the page
237 <tr><td><tt>CUPS_EDGE_RIGHT
</tt> </td><td>Leading edge is the right of the page
239 <tr><td><tt>CUPS_EDGE_TOP
</tt> </td><td>Leading edge is the top of the page
241 </tbody></table></div>
243 <h3 class='title'
><a name='cups_jog_e'
>cups_jog_e
</a></h3>
247 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
248 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
250 <tr><td><tt>CUPS_JOG_FILE
</tt> </td><td>Move pages after this file
252 <tr><td><tt>CUPS_JOG_JOB
</tt> </td><td>Move pages after this job
254 <tr><td><tt>CUPS_JOG_NONE
</tt> </td><td>Never move pages
256 <tr><td><tt>CUPS_JOG_SET
</tt> </td><td>Move pages after this set
258 </tbody></table></div>
260 <h3 class='title'
><a name='cups_mode_e'
>cups_mode_e
</a></h3>
264 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
265 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
267 <tr><td><tt>CUPS_RASTER_READ
</tt> </td><td>Open stream for reading
269 <tr><td><tt>CUPS_RASTER_WRITE
</tt> </td><td>Open stream for writing
271 <tr><td><tt>CUPS_RASTER_WRITE_COMPRESSED
</tt> <span class='info'
> CUPS
1.3 </span></td><td>Open stream for compressed writing
273 </tbody></table></div>
275 <h3 class='title'
><a name='cups_order_e'
>cups_order_e
</a></h3>
279 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
280 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
282 <tr><td><tt>CUPS_ORDER_BANDED
</tt> </td><td>CCC MMM YYY KKK ...
284 <tr><td><tt>CUPS_ORDER_CHUNKED
</tt> </td><td>CMYK CMYK CMYK ...
286 <tr><td><tt>CUPS_ORDER_PLANAR
</tt> </td><td>CCC ... MMM ... YYY ... KKK ...
288 </tbody></table></div>
290 <h3 class='title'
><a name='cups_orient_e'
>cups_orient_e
</a></h3>
294 <div class='table'
><table align='center' border='
1' width='
80%' summary='Values'
>
295 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
297 <tr><td><tt>CUPS_ORIENT_0
</tt> </td><td>Don't rotate the page
299 <tr><td><tt>CUPS_ORIENT_180
</tt> </td><td>Turn the page upside down
301 <tr><td><tt>CUPS_ORIENT_270
</tt> </td><td>Rotate the page clockwise
303 <tr><td><tt>CUPS_ORIENT_90
</tt> </td><td>Rotate the page counter-clockwise
305 </tbody></table></div>
307 <h2 class='title'
><a name='FUNCTIONS'
>Functions
</a></h2>
309 <li><a href='#cupsRasterClose'
><tt>cupsRasterClose()
</tt></a> </li>
310 <li><a href='#cupsRasterInterpretPPD'
><tt>cupsRasterInterpretPPD()
</tt></a> <span class='info'
> CUPS
1.2 </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'
> CUPS
1.2 </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'
> CUPS
1.2 </span></li>
317 <li><a href='#cupsRasterWritePixels'
><tt>cupsRasterWritePixels()
</tt></a> </li>
320 <h3 class='title'
><a name='cupsRasterClose'
>cupsRasterClose()
</a></h3>
322 <p>Close a raster stream.
327 <a href='#cups_raster_t'
>cups_raster_t
</a> * r);
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>
333 <tr><td><tt>r
</tt></td><td>Stream to close
</td></tr>
334 </tbody></table></div>
338 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cupsRasterInterpretPPD'
>cupsRasterInterpretPPD()
</a></h3>
340 <p>Interpret PPD commands to create a page header.
341 <p>This function does not mark the options in the PPD using the
"num_options
"
342 and
"options
" 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
"func
" 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 [, ],
<<,
>>, {, }, cleartomark, copy, dup, index,
352 pop, roll, setpagedevice, and stopped operators are supported.
358 cupsRasterInterpretPPD(
359 <a href='#cups_page_header2_t'
>cups_page_header2_t
</a> * h,
362 cups_option_t * options,
363 <a href='#cups_interpret_cb_t'
>cups_interpret_cb_t
</a> func);
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>
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>
376 <p>0 on success, -
1 on failure
</p>
378 <h3 class='title'
><a name='cupsRasterOpen'
>cupsRasterOpen()
</a></h3>
380 <p>Open a raster stream.
383 <a href='#cups_raster_t'
>cups_raster_t
</a> *
<br>
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>
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>
398 <h3 class='title'
><a name='cupsRasterReadHeader'
>cupsRasterReadHeader()
</a></h3>
400 <p>Read a raster page header and store it in a
401 V1 page header structure.
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);
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>
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>
417 <p>1 on success,
0 on fail
</p>
419 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cupsRasterReadHeader2'
>cupsRasterReadHeader2()
</a></h3>
421 <p>Read a raster page header and store it in a
422 V2 page header structure.
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);
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>
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>
440 <p>1 on success,
0 on fail
</p>
442 <h3 class='title'
><a name='cupsRasterReadPixels'
>cupsRasterReadPixels()
</a></h3>
444 <p>Read raster pixels.
448 cupsRasterReadPixels(
449 <a href='#cups_raster_t'
>cups_raster_t
</a> * r,
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>
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>
462 <p>Number of bytes read
</p>
464 <h3 class='title'
><a name='cupsRasterWriteHeader'
>cupsRasterWriteHeader()
</a></h3>
466 <p>Write a raster page header from a V1 page
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);
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>
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>
483 <p>1 on success,
0 on failure
</p>
485 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cupsRasterWriteHeader2'
>cupsRasterWriteHeader2()
</a></h3>
487 <p>Write a raster page header from a V2 page
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);
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>
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>
506 <p>1 on success,
0 on failure
</p>
508 <h3 class='title'
><a name='cupsRasterWritePixels'
>cupsRasterWritePixels()
</a></h3>
510 <p>Write raster pixels.
514 cupsRasterWritePixels(
515 <a href='#cups_raster_t'
>cups_raster_t
</a> * r,
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>
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>
528 <p>Number of bytes written
</p>
530 <h2 class='title'
><a name='STRUCTURES'
>Structures
</a></h2>
532 <li><a href='#cups_page_header2_s'
><tt>cups_page_header2_s
</tt></a> <span class='info'
> CUPS
1.2 </span></li>
533 <li><a href='#cups_page_header_s'
><tt>cups_page_header_s
</tt></a> </li>
536 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cups_page_header2_s'
>cups_page_header2_s
</a></h3>
538 <p>Version
2 Page Header
541 struct cups_page_header2_s
<br>
543 unsigned AdvanceDistance;
<br>
544 cups_adv_t AdvanceMedia;
<br>
545 cups_bool_t Collate;
<br>
546 cups_cut_t CutMedia;
<br>
547 cups_bool_t Duplex;
<br>
548 unsigned HWResolution[
2];
<br>
549 unsigned ImagingBoundingBox[
4];
<br>
550 cups_bool_t InsertSheet;
<br>
551 cups_jog_t Jog;
<br>
552 cups_edge_t LeadingEdge;
<br>
553 cups_bool_t ManualFeed;
<br>
554 unsigned Margins[
2];
<br>
555 char MediaClass[
64];
<br>
556 char MediaColor[
64];
<br>
557 unsigned MediaPosition;
<br>
558 char MediaType[
64];
<br>
559 unsigned MediaWeight;
<br>
560 cups_bool_t MirrorPrint;
<br>
561 cups_bool_t NegativePrint;
<br>
562 unsigned NumCopies;
<br>
563 cups_orient_t Orientation;
<br>
564 cups_bool_t OutputFaceUp;
<br>
565 char OutputType[
64];
<br>
566 unsigned PageSize[
2];
<br>
567 cups_bool_t Separations;
<br>
568 cups_bool_t TraySwitch;
<br>
569 cups_bool_t Tumble;
<br>
570 unsigned cupsBitsPerColor;
<br>
571 unsigned cupsBitsPerPixel;
<br>
572 float cupsBorderlessScalingFactor;
<br>
573 unsigned cupsBytesPerLine;
<br>
574 cups_order_t cupsColorOrder;
<br>
575 cups_cspace_t cupsColorSpace;
<br>
576 unsigned cupsCompression;
<br>
577 unsigned cupsHeight;
<br>
578 float cupsImagingBBox[
4];
<br>
579 unsigned cupsInteger[
16];
<br>
580 char cupsMarkerType[
64];
<br>
581 unsigned cupsMediaType;
<br>
582 unsigned cupsNumColors;
<br>
583 char cupsPageSizeName[
64];
<br>
584 float cupsPageSize[
2];
<br>
585 float cupsReal[
16];
<br>
586 char cupsRenderingIntent[
64];
<br>
587 unsigned cupsRowCount;
<br>
588 unsigned cupsRowFeed;
<br>
589 unsigned cupsRowStep;
<br>
590 char cupsString[
16][
64];
<br>
591 unsigned cupsWidth;
<br>
594 <div class='table'
><table align='center' border='
1' width='
80%' summary='Members'
>
595 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
597 <tr><td><tt>AdvanceDistance
</tt> </td><td>AdvanceDistance value in points
599 <tr><td><tt>AdvanceMedia
</tt> </td><td>AdvanceMedia value (see above)
601 <tr><td><tt>Collate
</tt> </td><td>Collated copies value
603 <tr><td><tt>CutMedia
</tt> </td><td>CutMedia value (see above)
605 <tr><td><tt>Duplex
</tt> </td><td>Duplexed (double-sided) value
607 <tr><td><tt>HWResolution[
2]
</tt> </td><td>Resolution in dots-per-inch
609 <tr><td><tt>ImagingBoundingBox[
4]
</tt> </td><td>Pixel region that is painted (points)
611 <tr><td><tt>InsertSheet
</tt> </td><td>InsertSheet value
613 <tr><td><tt>Jog
</tt> </td><td>Jog value (see above)
615 <tr><td><tt>LeadingEdge
</tt> </td><td>LeadingEdge value (see above)
617 <tr><td><tt>ManualFeed
</tt> </td><td>ManualFeed value
619 <tr><td><tt>Margins[
2]
</tt> </td><td>Lower-lefthand margins in points
621 <tr><td><tt>MediaClass[
64]
</tt> </td><td>MediaClass string
623 <tr><td><tt>MediaColor[
64]
</tt> </td><td>MediaColor string
625 <tr><td><tt>MediaPosition
</tt> </td><td>MediaPosition value
627 <tr><td><tt>MediaType[
64]
</tt> </td><td>MediaType string
629 <tr><td><tt>MediaWeight
</tt> </td><td>MediaWeight value in grams/m^
2
631 <tr><td><tt>MirrorPrint
</tt> </td><td>MirrorPrint value
633 <tr><td><tt>NegativePrint
</tt> </td><td>NegativePrint value
635 <tr><td><tt>NumCopies
</tt> </td><td>Number of copies to produce
637 <tr><td><tt>Orientation
</tt> </td><td>Orientation value (see above)
639 <tr><td><tt>OutputFaceUp
</tt> </td><td>OutputFaceUp value
641 <tr><td><tt>OutputType[
64]
</tt> </td><td>OutputType string
643 <tr><td><tt>PageSize[
2]
</tt> </td><td>Width and length of page in points
645 <tr><td><tt>Separations
</tt> </td><td>Separations value
647 <tr><td><tt>TraySwitch
</tt> </td><td>TraySwitch value
649 <tr><td><tt>Tumble
</tt> </td><td>Tumble value
651 <tr><td><tt>cupsBitsPerColor
</tt> </td><td>Number of bits for each color
653 <tr><td><tt>cupsBitsPerPixel
</tt> </td><td>Number of bits for each pixel
655 <tr><td><tt>cupsBorderlessScalingFactor
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Scaling that was applied to page data
657 <tr><td><tt>cupsBytesPerLine
</tt> </td><td>Number of bytes per line
659 <tr><td><tt>cupsColorOrder
</tt> </td><td>Order of colors
661 <tr><td><tt>cupsColorSpace
</tt> </td><td>True colorspace
663 <tr><td><tt>cupsCompression
</tt> </td><td>Device compression to use
665 <tr><td><tt>cupsHeight
</tt> </td><td>Height of page image in pixels
667 <tr><td><tt>cupsImagingBBox[
4]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Floating point ImagingBoundingBox *
668 (scaling factor not applied)
670 <tr><td><tt>cupsInteger[
16]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>User-defined integer values
672 <tr><td><tt>cupsMarkerType[
64]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Ink/toner type
674 <tr><td><tt>cupsMediaType
</tt> </td><td>Media type code
676 <tr><td><tt>cupsNumColors
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Number of colors
678 <tr><td><tt>cupsPageSizeName[
64]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>PageSize name
680 <tr><td><tt>cupsPageSize[
2]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Floating point PageSize (scaling *
683 <tr><td><tt>cupsReal[
16]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>User-defined floating-point values
685 <tr><td><tt>cupsRenderingIntent[
64]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>Color rendering intent
687 <tr><td><tt>cupsRowCount
</tt> </td><td>Rows per band
689 <tr><td><tt>cupsRowFeed
</tt> </td><td>Feed between bands
691 <tr><td><tt>cupsRowStep
</tt> </td><td>Spacing between lines
693 <tr><td><tt>cupsString[
16][
64]
</tt> <span class='info'
> CUPS
1.2 </span></td><td>User-defined string values
695 <tr><td><tt>cupsWidth
</tt> </td><td>Width of page image in pixels
697 </tbody></table></div>
699 <h3 class='title'
><a name='cups_page_header_s'
>cups_page_header_s
</a></h3>
701 <p>Version
1 Page Header
704 struct cups_page_header_s
<br>
706 unsigned AdvanceDistance;
<br>
707 cups_adv_t AdvanceMedia;
<br>
708 cups_bool_t Collate;
<br>
709 cups_cut_t CutMedia;
<br>
710 cups_bool_t Duplex;
<br>
711 unsigned HWResolution[
2];
<br>
712 unsigned ImagingBoundingBox[
4];
<br>
713 cups_bool_t InsertSheet;
<br>
714 cups_jog_t Jog;
<br>
715 cups_edge_t LeadingEdge;
<br>
716 cups_bool_t ManualFeed;
<br>
717 unsigned Margins[
2];
<br>
718 char MediaClass[
64];
<br>
719 char MediaColor[
64];
<br>
720 unsigned MediaPosition;
<br>
721 char MediaType[
64];
<br>
722 unsigned MediaWeight;
<br>
723 cups_bool_t MirrorPrint;
<br>
724 cups_bool_t NegativePrint;
<br>
725 unsigned NumCopies;
<br>
726 cups_orient_t Orientation;
<br>
727 cups_bool_t OutputFaceUp;
<br>
728 char OutputType[
64];
<br>
729 unsigned PageSize[
2];
<br>
730 cups_bool_t Separations;
<br>
731 cups_bool_t TraySwitch;
<br>
732 cups_bool_t Tumble;
<br>
733 unsigned cupsBitsPerColor;
<br>
734 unsigned cupsBitsPerPixel;
<br>
735 unsigned cupsBytesPerLine;
<br>
736 cups_order_t cupsColorOrder;
<br>
737 cups_cspace_t cupsColorSpace;
<br>
738 unsigned cupsCompression;
<br>
739 unsigned cupsHeight;
<br>
740 unsigned cupsMediaType;
<br>
741 unsigned cupsRowCount;
<br>
742 unsigned cupsRowFeed;
<br>
743 unsigned cupsRowStep;
<br>
744 unsigned cupsWidth;
<br>
747 <div class='table'
><table align='center' border='
1' width='
80%' summary='Members'
>
748 <thead><tr><th>Name
</th><th>Description
</th></tr></thead>
750 <tr><td><tt>AdvanceDistance
</tt> </td><td>AdvanceDistance value in points
752 <tr><td><tt>AdvanceMedia
</tt> </td><td>AdvanceMedia value (see above)
754 <tr><td><tt>Collate
</tt> </td><td>Collated copies value
756 <tr><td><tt>CutMedia
</tt> </td><td>CutMedia value (see above)
758 <tr><td><tt>Duplex
</tt> </td><td>Duplexed (double-sided) value
760 <tr><td><tt>HWResolution[
2]
</tt> </td><td>Resolution in dots-per-inch
762 <tr><td><tt>ImagingBoundingBox[
4]
</tt> </td><td>Pixel region that is painted (points)
764 <tr><td><tt>InsertSheet
</tt> </td><td>InsertSheet value
766 <tr><td><tt>Jog
</tt> </td><td>Jog value (see above)
768 <tr><td><tt>LeadingEdge
</tt> </td><td>LeadingEdge value (see above)
770 <tr><td><tt>ManualFeed
</tt> </td><td>ManualFeed value
772 <tr><td><tt>Margins[
2]
</tt> </td><td>Lower-lefthand margins in points
774 <tr><td><tt>MediaClass[
64]
</tt> </td><td>MediaClass string
776 <tr><td><tt>MediaColor[
64]
</tt> </td><td>MediaColor string
778 <tr><td><tt>MediaPosition
</tt> </td><td>MediaPosition value
780 <tr><td><tt>MediaType[
64]
</tt> </td><td>MediaType string
782 <tr><td><tt>MediaWeight
</tt> </td><td>MediaWeight value in grams/m^
2
784 <tr><td><tt>MirrorPrint
</tt> </td><td>MirrorPrint value
786 <tr><td><tt>NegativePrint
</tt> </td><td>NegativePrint value
788 <tr><td><tt>NumCopies
</tt> </td><td>Number of copies to produce
790 <tr><td><tt>Orientation
</tt> </td><td>Orientation value (see above)
792 <tr><td><tt>OutputFaceUp
</tt> </td><td>OutputFaceUp value
794 <tr><td><tt>OutputType[
64]
</tt> </td><td>OutputType string
796 <tr><td><tt>PageSize[
2]
</tt> </td><td>Width and length of page in points
798 <tr><td><tt>Separations
</tt> </td><td>Separations value
800 <tr><td><tt>TraySwitch
</tt> </td><td>TraySwitch value
802 <tr><td><tt>Tumble
</tt> </td><td>Tumble value
804 <tr><td><tt>cupsBitsPerColor
</tt> </td><td>Number of bits for each color
806 <tr><td><tt>cupsBitsPerPixel
</tt> </td><td>Number of bits for each pixel
808 <tr><td><tt>cupsBytesPerLine
</tt> </td><td>Number of bytes per line
810 <tr><td><tt>cupsColorOrder
</tt> </td><td>Order of colors
812 <tr><td><tt>cupsColorSpace
</tt> </td><td>True colorspace
814 <tr><td><tt>cupsCompression
</tt> </td><td>Device compression to use
816 <tr><td><tt>cupsHeight
</tt> </td><td>Height of page image in pixels
818 <tr><td><tt>cupsMediaType
</tt> </td><td>Media type code
820 <tr><td><tt>cupsRowCount
</tt> </td><td>Rows per band
822 <tr><td><tt>cupsRowFeed
</tt> </td><td>Feed between bands
824 <tr><td><tt>cupsRowStep
</tt> </td><td>Spacing between lines
826 <tr><td><tt>cupsWidth
</tt> </td><td>Width of page image in pixels
828 </tbody></table></div>
830 <h2 class='title'
><a name='TYPES'
>Types
</a></h2>
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'
> CUPS
1.2 </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>
838 <h3 class='title'
><a name='cups_interpret_cb_t'
>cups_interpret_cb_t
</a></h3>
843 typedef int (*cups_interpret_cb_t)(
<a href='#cups_page_header2_t'
>cups_page_header2_t
</a> *header, int preferred_bits);
846 <h3 class='title'
><span class='info'
> CUPS
1.2 </span><a name='cups_page_header2_t'
>cups_page_header2_t
</a></h3>
848 <p>Version
2 Page Header
851 typedef struct
<a href='#cups_page_header2_s'
>cups_page_header2_s
</a> cups_page_header2_t;
854 <h3 class='title'
><a name='cups_page_header_t'
>cups_page_header_t
</a></h3>
856 <p>Version
1 Page Header
859 typedef struct
<a href='#cups_page_header_s'
>cups_page_header_s
</a> cups_page_header_t;
862 <h3 class='title'
><a name='cups_raster_t'
>cups_raster_t
</a></h3>
864 <p>Raster stream data
867 typedef struct _cups_raster_s cups_raster_t;