3 <!-- SECTION: Programming -->
5 <title>Raster API
</title>
6 <meta name=
"keywords" content=
"Programming">
7 <meta http-equiv=
"Content-Type" content=
"text/html;charset=utf-8">
8 <meta name=
"creator" content=
"Mini-XML v2.11">
9 <meta name=
"author" content=
"Unknown">
10 <meta name=
"copyright" content=
"Unknown">
11 <meta name=
"version" content=
"0.0">
12 <style type=
"text/css"><!--
14 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
17 H1, H2, H3, H4, H5, H6, P, TD, TH {
18 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
22 font-family: monaco, courier, monospace;
27 font-family: monaco, courier, monospace;
31 border: dotted thin #7f7f7f;
59 border: dotted thin #999999;
64 PRE.command EM, PRE.example EM {
65 font-family: lucida grande, geneva, helvetica, arial, sans-serif;
69 font-family: monaco, courier, monospace;
80 border: solid thin #999999;
91 -moz-border-radius: 10px;
96 text-decoration: none;
99 A:link:hover, A:visited:hover, A:active {
100 text-decoration: underline;
107 TR.data, TD.data, TR.data TD {
110 border-bottom: solid 1pt #999999;
114 border-bottom: solid 1pt #999999;
121 border: solid thin #999999;
122 border-collapse: collapse;
138 border: solid thin #cccccc;
145 border-bottom: solid thin #999999;
154 caption-side: bottom;
178 border: thin solid black;
186 H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
195 border-bottom: solid 2pt #000000;
198 DIV.indent, TABLE.indent {
206 border-collapse: collapse;
209 TABLE.indent TD, TABLE.indent TH {
214 border-collapse: collapse;
222 border-bottom: solid thin #cccccc;
227 vertical-align: bottom;
236 border-bottom: solid thin #eeeeee;
241 TABLE.list TR:nth-child(even) {
245 TABLE.list TR:nth-child(odd) {
264 font-family: monaco, courier, monospace;
268 border: solid thin #999999;
269 border-collapse: collapse;
274 DIV.summary TABLE TD, DIV.summary TABLE TH {
275 border: solid thin #999999;
281 DIV.summary TABLE THEAD TH {
285 /* API documentation styles... */
292 div.body h3, div.body h4, div.body h5 {
293 margin-bottom: 0.5em;
296 .class, .enumeration, .function, .struct, .typedef, .union {
297 border-bottom: solid thin #999999;
304 code, p.code, pre, ul.code li {
305 font-family: monaco, courier, monospace;
308 ul.code, ul.contents, ul.subcontents {
309 list-style-type: none;
319 ul.contents li ul.code, ul.contents li ul.subcontents {
332 margin-bottom: 0.5em;
335 /* This is just for the HTML files generated with the framedhelp target */
338 border: solid thin black;
347 div.contents ul.contents {
350 div.contents ul.subcontents li {
358 Raster API documentation for CUPS.
360 Copyright 2008-2010 by Apple Inc.
362 These coded instructions, statements, and computer programs are the
363 property of Apple Inc. and are protected by Federal copyright
364 law. Distribution and use rights are outlined in the file "LICENSE.txt"
365 which should have been included with this file. If this file is
366 file is missing or damaged, see the license at "http://www.cups.org/".
369 <h1 class='title'
>Raster API
</h1>
371 <div class='summary'
><table summary='General Information'
>
375 <th>cups/raster.h
</th>
385 <td>Programming:
<a href='api-overview.html'
>Introduction to CUPS Programming
</a><br>
386 Programming:
<a href='api-cups.html'
>CUPS API
</a><br>
387 Programming:
<a href='api-cups.html'
>PPD API
</a><br>
388 References:
<a href='spec-ppd.html'
>CUPS PPD Specification
</a></td>
392 <div class=
"contents">
393 <h2 class=
"title">Contents
</h2>
394 <ul class=
"contents">
395 <li><a href=
"#OVERVIEW">Overview
</a></li>
396 <li><a href=
"#TASKS">Functions by Task
</a><ul class=
"subcontents">
397 <li><a href=
"#OPENCLOSE">Opening and Closing Raster Streams
</a></li>
398 <li><a href=
"#READING">Reading Raster Streams
</a></li>
399 <li><a href=
"#WRITING">Writing Raster Streams
</a></li>
401 <li><a href=
"#FUNCTIONS">Functions
</a><ul class=
"subcontents">
402 <li><a href=
"#cupsRasterClose">cupsRasterClose
</a></li>
403 <li><a href=
"#cupsRasterInitPWGHeader">cupsRasterInitPWGHeader
</a></li>
404 <li><a href=
"#cupsRasterInterpretPPD">cupsRasterInterpretPPD
</a></li>
405 <li><a href=
"#cupsRasterOpen">cupsRasterOpen
</a></li>
406 <li><a href=
"#cupsRasterOpenIO">cupsRasterOpenIO
</a></li>
407 <li><a href=
"#cupsRasterReadHeader">cupsRasterReadHeader
</a></li>
408 <li><a href=
"#cupsRasterReadHeader2">cupsRasterReadHeader2
</a></li>
409 <li><a href=
"#cupsRasterReadPixels">cupsRasterReadPixels
</a></li>
410 <li><a href=
"#cupsRasterWriteHeader">cupsRasterWriteHeader
</a></li>
411 <li><a href=
"#cupsRasterWriteHeader2">cupsRasterWriteHeader2
</a></li>
412 <li><a href=
"#cupsRasterWritePixels">cupsRasterWritePixels
</a></li>
414 <li><a href=
"#TYPES">Data Types
</a><ul class=
"subcontents">
415 <li><a href=
"#cups_adv_t">cups_adv_t
</a></li>
416 <li><a href=
"#cups_bool_t">cups_bool_t
</a></li>
417 <li><a href=
"#cups_cspace_t">cups_cspace_t
</a></li>
418 <li><a href=
"#cups_cut_t">cups_cut_t
</a></li>
419 <li><a href=
"#cups_edge_t">cups_edge_t
</a></li>
420 <li><a href=
"#cups_interpret_cb_t">cups_interpret_cb_t
</a></li>
421 <li><a href=
"#cups_jog_t">cups_jog_t
</a></li>
422 <li><a href=
"#cups_mode_t">cups_mode_t
</a></li>
423 <li><a href=
"#cups_order_t">cups_order_t
</a></li>
424 <li><a href=
"#cups_orient_t">cups_orient_t
</a></li>
425 <li><a href=
"#cups_page_header2_t">cups_page_header2_t
</a></li>
426 <li><a href=
"#cups_page_header_t">cups_page_header_t
</a></li>
427 <li><a href=
"#cups_raster_iocb_t">cups_raster_iocb_t
</a></li>
428 <li><a href=
"#cups_raster_t">cups_raster_t
</a></li>
430 <li><a href=
"#STRUCTURES">Structures
</a><ul class=
"subcontents">
431 <li><a href=
"#cups_page_header2_s">cups_page_header2_s
</a></li>
432 <li><a href=
"#cups_page_header_s">cups_page_header_s
</a></li>
434 <li><a href=
"#ENUMERATIONS">Enumerations
</a><ul class=
"subcontents">
435 <li><a href=
"#cups_adv_e">cups_adv_e
</a></li>
436 <li><a href=
"#cups_bool_e">cups_bool_e
</a></li>
437 <li><a href=
"#cups_cspace_e">cups_cspace_e
</a></li>
438 <li><a href=
"#cups_cut_e">cups_cut_e
</a></li>
439 <li><a href=
"#cups_edge_e">cups_edge_e
</a></li>
440 <li><a href=
"#cups_jog_e">cups_jog_e
</a></li>
441 <li><a href=
"#cups_mode_e">cups_mode_e
</a></li>
442 <li><a href=
"#cups_order_e">cups_order_e
</a></li>
443 <li><a href=
"#cups_orient_e">cups_orient_e
</a></li>
449 Raster API introduction for CUPS.
451 Copyright 2007-2013 by Apple Inc.
452 Copyright 1997-2006 by Easy Software Products, all rights reserved.
454 These coded instructions, statements, and computer programs are the
455 property of Apple Inc. and are protected by Federal copyright
456 law. Distribution and use rights are outlined in the file "LICENSE.txt"
457 which should have been included with this file. If this file is
458 file is missing or damaged, see the license at "http://www.cups.org/".
461 <h2 class='title'
><a name=
"OVERVIEW">Overview
</a></h2>
463 <p>The CUPS raster API provides a standard interface for reading and writing
464 CUPS raster streams which are used for printing to raster printers. Because the
465 raster format is updated from time to time, it is important to use this API to
466 avoid incompatibilities with newer versions of CUPS.
</p>
468 <p>Two kinds of CUPS filters use the CUPS raster API - raster image processor
469 (RIP) filters such as
<code>pstoraster
</code> and
<code>cgpdftoraster
</code>
470 (macOS) that produce CUPS raster files and printer driver filters that
471 convert CUPS raster files into a format usable by the printer. Printer
472 driver filters are by far the most common.
</p>
474 <p>CUPS raster files (
<code>application/vnd.cups-raster
</code>) consists of
475 a stream of raster page descriptions produced by one of the RIP filters such as
476 <var>pstoraster
</var>,
<var>imagetoraster
</var>, or
477 <var>cgpdftoraster
</var>. CUPS raster files are referred to using the
478 <a href='#cups_raster_t'
><code>cups_raster_t
</code></a> type and are
479 opened using the
<a href='#cupsRasterOpen'
><code>cupsRasterOpen
</code></a>
480 function. For example, to read raster data from the standard input, open
481 file descriptor
0:
</p>
483 <pre class=
"example">
484 #include
<cups/raster.h
>
486 <a href=
"#cups_raster_t">cups_raster_t
</a> *ras =
<a href=
"#cupsRasterOpen">cupsRasterOpen
</a>(
0, CUPS_RASTER_READ);
489 <p>Each page of data begins with a page dictionary structure called
490 <a href=
"#cups_page_header2_t"><code>cups_page_header2_t
</code></a>. This
491 structure contains the colorspace, bits per color, media size, media type,
492 hardware resolution, and so forth used for the page.
</p>
494 <blockquote><b>Note:
</b>
496 <p>Do not confuse the colorspace in the page header with the PPD
497 <tt>ColorModel
</tt> keyword.
<tt>ColorModel
</tt> refers to the general type of
498 color used for a device (Gray, RGB, CMYK, DeviceN) and is often used to
499 select a particular colorspace for the page header along with the associate
500 color profile. The page header colorspace (
<tt>cupsColorSpace
</tt>) describes
501 both the type and organization of the color data, for example KCMY (black
502 first) instead of CMYK and RGBA (RGB + alpha) instead of RGB.
</p>
506 <p>You read the page header using the
507 <a href=
"#cupsRasterReadHeader2"><code>cupsRasterReadHeader2
</code></a>
510 <pre class=
"example">
511 #include
<cups/raster.h
>
513 <a href=
"#cups_raster_t">cups_raster_t
</a> *ras =
<a href=
"#cupsRasterOpen">cupsRasterOpen
</a>(
0, CUPS_RASTER_READ);
514 <a href=
"#cups_page_header2_t">cups_page_header2_t
</a> header;
516 while (
<a href=
"#cupsRasterReadHeader2">cupsRasterReadHeader2
</a>(ras,
&header))
518 /* setup this page */
520 /* read raster data */
522 /* finish this page */
526 <p>After the page dictionary comes the page data which is a full-resolution,
527 possibly compressed bitmap representing the page in the printer's output
528 colorspace. You read uncompressed raster data using the
529 <a href=
"#cupsRasterReadPixels"><code>cupsRasterReadPixels
</code></a>
530 function. A
<code>for
</code> loop is normally used to read the page one line
533 <pre class=
"example">
534 #include
<cups/raster.h
>
536 <a href=
"#cups_raster_t">cups_raster_t
</a> *ras =
<a href=
"#cupsRasterOpen">cupsRasterOpen
</a>(
0, CUPS_RASTER_READ);
537 <a href=
"#cups_page_header2_t">cups_page_header2_t
</a> header;
542 while (
<a href=
"#cupsRasterReadHeader2">cupsRasterReadHeader2
</a>(ras,
&header))
544 /* setup this page */
546 fprintf(stderr,
"PAGE: %d %d\n", page, header.NumCopies);
548 /* allocate memory for
1 line */
549 buffer = malloc(header.cupsBytesPerLine);
551 /* read raster data */
552 for (y =
0; y
< header.cupsHeight; y ++)
554 if (
<a href=
"#cupsRasterReadPixels">cupsRasterReadPixels
</a>(ras, buffer, header.cupsBytesPerLine) ==
0)
557 /* write raster data to printer on stdout */
560 /* finish this page */
564 <p>When you are done reading the raster data, call the
565 <a href=
"#cupsRasterClose"><code>cupsRasterClose
</code></a> function to free
566 the memory used to read the raster file:
</p>
568 <pre class=
"example">
569 <a href=
"#cups_raster_t">cups_raster_t
</a> *ras;
571 <a href=
"#cupsRasterClose">cupsRasterClose
</a>(ras);
575 <h2 class='title'
><a name=
"TASKS">Functions by Task
</a></h2>
577 <h3><a name=
"OPENCLOSE">Opening and Closing Raster Streams
</a></h3>
581 <li><a href=
"#cupsRasterClose" title=
"Close a raster stream.">cupsRasterClose
</a></li>
582 <li><a href=
"#cupsRasterOpen" title=
"Open a raster stream.">cupsRasterOpen
</a></li>
586 <h3><a name=
"READING">Reading Raster Streams
</a></h3>
590 <li><a href=
"#cupsRasterReadHeader" title=
"Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader
</a> <span class=
"info">Deprecated in CUPS
1.2/macOS
10.5</span></li>
591 <li><a href=
"#cupsRasterReadHeader2" title=
"Read a raster page header and store it in a version 2 page header structure.">cupsRasterReadHeader2
</a></li>
592 <li><a href=
"#cupsRasterReadPixels" title=
"Read raster pixels.">cupsRasterReadPixels
</a></li>
596 <h3><a name=
"WRITING">Writing Raster Streams
</a></h3>
600 <li><a href=
"#cupsRasterInterpretPPD" title=
"Interpret PPD commands to create a page header.">cupsRasterInterpretPPD
</a></li>
601 <li><a href=
"#cupsRasterWriteHeader" title=
"Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader
</a> <span class=
"info">Deprecated in CUPS
1.2/macOS
10.5</span></li>
602 <li><a href=
"#cupsRasterWriteHeader2" title=
"Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2
</a></li>
603 <li><a href=
"#cupsRasterWritePixels" title=
"Write raster pixels.">cupsRasterWritePixels
</a></li>
606 <h2 class=
"title"><a id=
"FUNCTIONS">Functions
</a></h2>
607 <h3 class=
"function"><a id=
"cupsRasterClose">cupsRasterClose
</a></h3>
608 <p class=
"description">Close a raster stream.
</p>
610 void cupsRasterClose (
<br>
611     <a href=
"#cups_raster_t">cups_raster_t
</a> *r
<br>
613 <h4 class=
"parameters">Parameters
</h4>
616 <dd class=
"description">Stream to close
</dd>
618 <h4 class=
"discussion">Discussion
</h4>
619 <p class=
"discussion">The file descriptor associated with the raster stream must be closed
620 separately as needed.
</p>
621 <h3 class=
"function"><span class=
"info"> CUPS
2.2/macOS
10.12 </span><a id=
"cupsRasterInitPWGHeader">cupsRasterInitPWGHeader
</a></h3>
622 <p class=
"description">Initialize a page header for PWG Raster output.
</p>
624 int cupsRasterInitPWGHeader (
<br>
625     <a href=
"#cups_page_header2_t">cups_page_header2_t
</a> *h,
<br>
626     pwg_media_t *media,
<br>
627     const char *type,
<br>
628     int xdpi,
<br>
629     int ydpi,
<br>
630     const char *sides,
<br>
631     const char *sheet_back
<br>
633 <h4 class=
"parameters">Parameters
</h4>
636 <dd class=
"description">Page header
</dd>
638 <dd class=
"description">PWG media information
</dd>
640 <dd class=
"description">PWG raster type string
</dd>
642 <dd class=
"description">Cross-feed direction (horizontal) resolution
</dd>
644 <dd class=
"description">Feed direction (vertical) resolution
</dd>
646 <dd class=
"description">IPP
"sides
" option value
</dd>
648 <dd class=
"description">Transform for back side or
<code>NULL
</code> for none
</dd>
650 <h4 class=
"returnvalue">Return Value
</h4>
651 <p class=
"description">1 on success,
0 on failure
</p>
652 <h4 class=
"discussion">Discussion
</h4>
653 <p class=
"discussion">The
"media
" argument specifies the media to use.
<br>
655 The
"type
" argument specifies a
"pwg-raster-document-type-supported
" value
656 that controls the color space and bit depth of the raster data.
<br>
658 The
"xres
" and
"yres
" arguments specify the raster resolution in dots per
661 The
"sheet_back
" argument specifies a
"pwg-raster-document-sheet-back
" value
662 to apply for the back side of a page. Pass
<code>NULL
</code> for the front side.
665 <h3 class=
"function"><span class=
"info"> CUPS
1.2/macOS
10.5 </span><a id=
"cupsRasterInterpretPPD">cupsRasterInterpretPPD
</a></h3>
666 <p class=
"description">Interpret PPD commands to create a page header.
</p>
668 int cupsRasterInterpretPPD (
<br>
669     <a href=
"#cups_page_header2_t">cups_page_header2_t
</a> *h,
<br>
670     ppd_file_t *ppd,
<br>
671     int num_options,
<br>
672     cups_option_t *options,
<br>
673     <a href=
"#cups_interpret_cb_t">cups_interpret_cb_t
</a> func
<br>
675 <h4 class=
"parameters">Parameters
</h4>
678 <dd class=
"description">Page header to create
</dd>
680 <dd class=
"description">PPD file
</dd>
682 <dd class=
"description">Number of options
</dd>
684 <dd class=
"description">Options
</dd>
686 <dd class=
"description">Optional page header callback (
<code>NULL
</code> for none)
</dd>
688 <h4 class=
"returnvalue">Return Value
</h4>
689 <p class=
"description">0 on success, -
1 on failure
</p>
690 <h4 class=
"discussion">Discussion
</h4>
691 <p class=
"discussion">This function is used by raster image processing (RIP) filters like
692 cgpdftoraster and imagetoraster when writing CUPS raster data for a page.
693 It is not used by raster printer driver filters which only read CUPS
697 <code>cupsRasterInterpretPPD
</code> does not mark the options in the PPD using
698 the
"num_options
" and
"options
" arguments. Instead, mark the options with
699 <code>cupsMarkOptions
</code> and
<code>ppdMarkOption
</code> prior to calling it -
700 this allows for per-page options without manipulating the options array.
<br>
702 The
"func
" argument specifies an optional callback function that is
703 called prior to the computation of the final raster data. The function
704 can make changes to the
<a href=
"#cups_page_header2_t"><code>cups_page_header2_t
</code></a> data as needed to use a
705 supported raster format and then returns
0 on success and -
1 if the
706 requested attributes cannot be supported.
<br>
709 <code>cupsRasterInterpretPPD
</code> supports a subset of the PostScript language.
710 Currently only the
<code>[
</code>,
<code>]
</code>,
<code><<</code>,
<code>>></code>,
<code>{
</code>,
711 <code>}
</code>,
<code>cleartomark
</code>,
<code>copy
</code>,
<code>dup
</code>,
<code>index
</code>,
712 <code>pop
</code>,
<code>roll
</code>,
<code>setpagedevice
</code>, and
<code>stopped
</code> operators
716 <h3 class=
"function"><a id=
"cupsRasterOpen">cupsRasterOpen
</a></h3>
717 <p class=
"description">Open a raster stream using a file descriptor.
</p>
719 <a href=
"#cups_raster_t">cups_raster_t
</a> *cupsRasterOpen (
<br>
720     int fd,
<br>
721     <a href=
"#cups_mode_t">cups_mode_t
</a> mode
<br>
723 <h4 class=
"parameters">Parameters
</h4>
726 <dd class=
"description">File descriptor
</dd>
728 <dd class=
"description">Mode -
<code>CUPS_RASTER_READ
</code>,
729 <code>CUPS_RASTER_WRITE
</code>,
730 <code>CUPS_RASTER_WRITE_COMPRESSED
</code>,
731 or
<code>CUPS_RASTER_WRITE_PWG
</code></dd>
733 <h4 class=
"returnvalue">Return Value
</h4>
734 <p class=
"description">New stream
</p>
735 <h4 class=
"discussion">Discussion
</h4>
736 <p class=
"discussion">This function associates a raster stream with the given file descriptor.
737 For most printer driver filters,
"fd
" will be
0 (stdin). For most raster
738 image processor (RIP) filters that generate raster data,
"fd
" will be
1
741 When writing raster data, the
<code>CUPS_RASTER_WRITE
</code>,
742 <code>CUPS_RASTER_WRITE_COMPRESS
</code>, or
<code>CUPS_RASTER_WRITE_PWG
</code> mode can
743 be used - compressed and PWG output is generally
25-
50% smaller but adds a
744 100-
300% execution time overhead.
</p>
745 <h3 class=
"function"><a id=
"cupsRasterOpenIO">cupsRasterOpenIO
</a></h3>
746 <p class=
"description">Open a raster stream using a callback function.
</p>
748 <a href=
"#cups_raster_t">cups_raster_t
</a> *cupsRasterOpenIO (
<br>
749     <a href=
"#cups_raster_iocb_t">cups_raster_iocb_t
</a> iocb,
<br>
750     void *ctx,
<br>
751     <a href=
"#cups_mode_t">cups_mode_t
</a> mode
<br>
753 <h4 class=
"parameters">Parameters
</h4>
756 <dd class=
"description">Read/write callback
</dd>
758 <dd class=
"description">Context pointer for callback
</dd>
760 <dd class=
"description">Mode -
<code>CUPS_RASTER_READ
</code>,
761 <code>CUPS_RASTER_WRITE
</code>,
762 <code>CUPS_RASTER_WRITE_COMPRESSED
</code>,
763 or
<code>CUPS_RASTER_WRITE_PWG
</code></dd>
765 <h4 class=
"returnvalue">Return Value
</h4>
766 <p class=
"description">New stream
</p>
767 <h4 class=
"discussion">Discussion
</h4>
768 <p class=
"discussion">This function associates a raster stream with the given callback function and
771 When writing raster data, the
<code>CUPS_RASTER_WRITE
</code>,
772 <code>CUPS_RASTER_WRITE_COMPRESS
</code>, or
<code>CUPS_RASTER_WRITE_PWG
</code> mode can
773 be used - compressed and PWG output is generally
25-
50% smaller but adds a
774 100-
300% execution time overhead.
</p>
775 <h3 class=
"function"><span class=
"info"> DEPRECATED
 </span><a id=
"cupsRasterReadHeader">cupsRasterReadHeader
</a></h3>
776 <p class=
"description">Read a raster page header and store it in a
777 version
1 page header structure.
</p>
779 unsigned cupsRasterReadHeader (
<br>
780     <a href=
"#cups_raster_t">cups_raster_t
</a> *r,
<br>
781     <a href=
"#cups_page_header_t">cups_page_header_t
</a> *h
<br>
783 <h4 class=
"parameters">Parameters
</h4>
786 <dd class=
"description">Raster stream
</dd>
788 <dd class=
"description">Pointer to header data
</dd>
790 <h4 class=
"returnvalue">Return Value
</h4>
791 <p class=
"description">1 on success,
0 on failure/end-of-file
</p>
792 <h4 class=
"discussion">Discussion
</h4>
793 <p class=
"discussion">This function is deprecated. Use
<a href=
"#cupsRasterReadHeader2"><code>cupsRasterReadHeader2
</code></a> instead.
<br>
795 Version
1 page headers were used in CUPS
1.0 and
1.1 and contain a subset
796 of the version
2 page header data. This function handles reading version
2
797 page headers and copying only the version
1 data into the provided buffer.
800 <h3 class=
"function"><span class=
"info"> CUPS
1.2/macOS
10.5 </span><a id=
"cupsRasterReadHeader2">cupsRasterReadHeader2
</a></h3>
801 <p class=
"description">Read a raster page header and store it in a
802 version
2 page header structure.
</p>
804 unsigned cupsRasterReadHeader2 (
<br>
805     <a href=
"#cups_raster_t">cups_raster_t
</a> *r,
<br>
806     <a href=
"#cups_page_header2_t">cups_page_header2_t
</a> *h
<br>
808 <h4 class=
"parameters">Parameters
</h4>
811 <dd class=
"description">Raster stream
</dd>
813 <dd class=
"description">Pointer to header data
</dd>
815 <h4 class=
"returnvalue">Return Value
</h4>
816 <p class=
"description">1 on success,
0 on failure/end-of-file
</p>
817 <h3 class=
"function"><a id=
"cupsRasterReadPixels">cupsRasterReadPixels
</a></h3>
818 <p class=
"description">Read raster pixels.
</p>
820 unsigned cupsRasterReadPixels (
<br>
821     <a href=
"#cups_raster_t">cups_raster_t
</a> *r,
<br>
822     unsigned char *p,
<br>
823     unsigned len
<br>
825 <h4 class=
"parameters">Parameters
</h4>
828 <dd class=
"description">Raster stream
</dd>
830 <dd class=
"description">Pointer to pixel buffer
</dd>
832 <dd class=
"description">Number of bytes to read
</dd>
834 <h4 class=
"returnvalue">Return Value
</h4>
835 <p class=
"description">Number of bytes read
</p>
836 <h4 class=
"discussion">Discussion
</h4>
837 <p class=
"discussion">For best performance, filters should read one or more whole lines.
838 The
"cupsBytesPerLine
" value from the page header can be used to allocate
839 the line buffer and as the number of bytes to read.
</p>
840 <h3 class=
"function"><span class=
"info"> DEPRECATED
 </span><a id=
"cupsRasterWriteHeader">cupsRasterWriteHeader
</a></h3>
841 <p class=
"description">Write a raster page header from a version
1 page
842 header structure.
</p>
844 unsigned cupsRasterWriteHeader (
<br>
845     <a href=
"#cups_raster_t">cups_raster_t
</a> *r,
<br>
846     <a href=
"#cups_page_header_t">cups_page_header_t
</a> *h
<br>
848 <h4 class=
"parameters">Parameters
</h4>
851 <dd class=
"description">Raster stream
</dd>
853 <dd class=
"description">Raster page header
</dd>
855 <h4 class=
"returnvalue">Return Value
</h4>
856 <p class=
"description">1 on success,
0 on failure
</p>
857 <h4 class=
"discussion">Discussion
</h4>
858 <p class=
"discussion">This function is deprecated. Use
<a href=
"#cupsRasterWriteHeader2"><code>cupsRasterWriteHeader2
</code></a> instead.
861 <h3 class=
"function"><span class=
"info"> CUPS
1.2/macOS
10.5 </span><a id=
"cupsRasterWriteHeader2">cupsRasterWriteHeader2
</a></h3>
862 <p class=
"description">Write a raster page header from a version
2
863 page header structure.
</p>
865 unsigned cupsRasterWriteHeader2 (
<br>
866     <a href=
"#cups_raster_t">cups_raster_t
</a> *r,
<br>
867     <a href=
"#cups_page_header2_t">cups_page_header2_t
</a> *h
<br>
869 <h4 class=
"parameters">Parameters
</h4>
872 <dd class=
"description">Raster stream
</dd>
874 <dd class=
"description">Raster page header
</dd>
876 <h4 class=
"returnvalue">Return Value
</h4>
877 <p class=
"description">1 on success,
0 on failure
</p>
878 <h4 class=
"discussion">Discussion
</h4>
879 <p class=
"discussion">The page header can be initialized using
<a href=
"#cupsRasterInitPWGHeader"><code>cupsRasterInitPWGHeader
</code></a>.
882 <h3 class=
"function"><a id=
"cupsRasterWritePixels">cupsRasterWritePixels
</a></h3>
883 <p class=
"description">Write raster pixels.
</p>
885 unsigned cupsRasterWritePixels (
<br>
886     <a href=
"#cups_raster_t">cups_raster_t
</a> *r,
<br>
887     unsigned char *p,
<br>
888     unsigned len
<br>
890 <h4 class=
"parameters">Parameters
</h4>
893 <dd class=
"description">Raster stream
</dd>
895 <dd class=
"description">Bytes to write
</dd>
897 <dd class=
"description">Number of bytes to write
</dd>
899 <h4 class=
"returnvalue">Return Value
</h4>
900 <p class=
"description">Number of bytes written
</p>
901 <h4 class=
"discussion">Discussion
</h4>
902 <p class=
"discussion">For best performance, filters should write one or more whole lines.
903 The
"cupsBytesPerLine
" value from the page header can be used to allocate
904 the line buffer and as the number of bytes to write.
</p>
905 <h2 class=
"title"><a id=
"TYPES">Data Types
</a></h2>
906 <h3 class=
"typedef"><a id=
"cups_adv_t">cups_adv_t
</a></h3>
907 <p class=
"description">AdvanceMedia attribute values
</p>
909 typedef enum
<a href=
"#cups_adv_e">cups_adv_e
</a> cups_adv_t;
911 <h3 class=
"typedef"><a id=
"cups_bool_t">cups_bool_t
</a></h3>
912 <p class=
"description">Boolean type
</p>
914 typedef enum
<a href=
"#cups_bool_e">cups_bool_e
</a> cups_bool_t;
916 <h3 class=
"typedef"><a id=
"cups_cspace_t">cups_cspace_t
</a></h3>
917 <p class=
"description">cupsColorSpace attribute values
</p>
919 typedef enum
<a href=
"#cups_cspace_e">cups_cspace_e
</a> cups_cspace_t;
921 <h3 class=
"typedef"><a id=
"cups_cut_t">cups_cut_t
</a></h3>
922 <p class=
"description">CutMedia attribute values
</p>
924 typedef enum
<a href=
"#cups_cut_e">cups_cut_e
</a> cups_cut_t;
926 <h3 class=
"typedef"><a id=
"cups_edge_t">cups_edge_t
</a></h3>
927 <p class=
"description">LeadingEdge attribute values
</p>
929 typedef enum
<a href=
"#cups_edge_e">cups_edge_e
</a> cups_edge_t;
931 <h3 class=
"typedef"><a id=
"cups_interpret_cb_t">cups_interpret_cb_t
</a></h3>
932 <p class=
"description">cupsRasterInterpretPPD callback function
</p>
934 typedef int (*cups_interpret_cb_t)(
<a href=
"#cups_page_header2_t">cups_page_header2_t
</a> *header, int preferred_bits);
936 <h3 class=
"typedef"><a id=
"cups_jog_t">cups_jog_t
</a></h3>
937 <p class=
"description">Jog attribute values
</p>
939 typedef enum
<a href=
"#cups_jog_e">cups_jog_e
</a> cups_jog_t;
941 <h3 class=
"typedef"><a id=
"cups_mode_t">cups_mode_t
</a></h3>
942 <p class=
"description">cupsRasterOpen modes
</p>
944 typedef enum
<a href=
"#cups_mode_e">cups_mode_e
</a> cups_mode_t;
946 <h3 class=
"typedef"><a id=
"cups_order_t">cups_order_t
</a></h3>
947 <p class=
"description">cupsColorOrder attribute values
</p>
949 typedef enum
<a href=
"#cups_order_e">cups_order_e
</a> cups_order_t;
951 <h3 class=
"typedef"><a id=
"cups_orient_t">cups_orient_t
</a></h3>
952 <p class=
"description">Orientation attribute values
</p>
954 typedef enum
<a href=
"#cups_orient_e">cups_orient_e
</a> cups_orient_t;
956 <h3 class=
"typedef"><a id=
"cups_page_header2_t"><span class=
"info"> CUPS
1.2/macOS
10.5 </span>cups_page_header2_t
</a></h3>
957 <p class=
"description">Version
2 page header
</p>
959 typedef struct
<a href=
"#cups_page_header2_s">cups_page_header2_s
</a> cups_page_header2_t;
961 <h3 class=
"typedef"><a id=
"cups_page_header_t"><span class=
"info"> DEPRECATED
 </span>cups_page_header_t
</a></h3>
962 <p class=
"description">Version
1 page header
</p>
964 typedef struct
<a href=
"#cups_page_header_s">cups_page_header_s
</a> cups_page_header_t;
966 <h3 class=
"typedef"><a id=
"cups_raster_iocb_t">cups_raster_iocb_t
</a></h3>
967 <p class=
"description">cupsRasterOpenIO callback function
</p>
969 typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length);
971 <h3 class=
"typedef"><a id=
"cups_raster_t">cups_raster_t
</a></h3>
972 <p class=
"description">Raster stream data
</p>
974 typedef struct _cups_raster_s cups_raster_t;
976 <h2 class=
"title"><a id=
"STRUCTURES">Structures
</a></h2>
977 <h3 class=
"struct"><span class=
"info"> CUPS
1.2/macOS
10.5 </span><a id=
"cups_page_header2_s">cups_page_header2_s
</a></h3>
978 <p class=
"description">Version
2 page header
</p>
979 <p class=
"code">struct cups_page_header2_s {
<br>
980     unsigned AdvanceDistance;
<br>
981     <a href=
"#cups_adv_t">cups_adv_t
</a> AdvanceMedia;
<br>
982     <a href=
"#cups_bool_t">cups_bool_t
</a> Collate;
<br>
983     <a href=
"#cups_cut_t">cups_cut_t
</a> CutMedia;
<br>
984     <a href=
"#cups_bool_t">cups_bool_t
</a> Duplex;
<br>
985     unsigned HWResolution[
2];
<br>
986     unsigned ImagingBoundingBox[
4];
<br>
987     <a href=
"#cups_bool_t">cups_bool_t
</a> InsertSheet;
<br>
988     <a href=
"#cups_jog_t">cups_jog_t
</a> Jog;
<br>
989     <a href=
"#cups_edge_t">cups_edge_t
</a> LeadingEdge;
<br>
990     <a href=
"#cups_bool_t">cups_bool_t
</a> ManualFeed;
<br>
991     unsigned Margins[
2];
<br>
992     char MediaClass[
64];
<br>
993     char MediaColor[
64];
<br>
994     unsigned MediaPosition;
<br>
995     char MediaType[
64];
<br>
996     unsigned MediaWeight;
<br>
997     <a href=
"#cups_bool_t">cups_bool_t
</a> MirrorPrint;
<br>
998     <a href=
"#cups_bool_t">cups_bool_t
</a> NegativePrint;
<br>
999     unsigned NumCopies;
<br>
1000     <a href=
"#cups_orient_t">cups_orient_t
</a> Orientation;
<br>
1001     <a href=
"#cups_bool_t">cups_bool_t
</a> OutputFaceUp;
<br>
1002     char OutputType[
64];
<br>
1003     unsigned PageSize[
2];
<br>
1004     <a href=
"#cups_bool_t">cups_bool_t
</a> Separations;
<br>
1005     <a href=
"#cups_bool_t">cups_bool_t
</a> TraySwitch;
<br>
1006     <a href=
"#cups_bool_t">cups_bool_t
</a> Tumble;
<br>
1007     unsigned cupsBitsPerColor;
<br>
1008     unsigned cupsBitsPerPixel;
<br>
1009     float cupsBorderlessScalingFactor;
<br>
1010     unsigned cupsBytesPerLine;
<br>
1011     <a href=
"#cups_order_t">cups_order_t
</a> cupsColorOrder;
<br>
1012     <a href=
"#cups_cspace_t">cups_cspace_t
</a> cupsColorSpace;
<br>
1013     unsigned cupsCompression;
<br>
1014     unsigned cupsHeight;
<br>
1015     float cupsImagingBBox[
4];
<br>
1016     unsigned cupsInteger[
16];
<br>
1017     char cupsMarkerType[
64];
<br>
1018     unsigned cupsMediaType;
<br>
1019     unsigned cupsNumColors;
<br>
1020     char cupsPageSizeName[
64];
<br>
1021     float cupsPageSize[
2];
<br>
1022     float cupsReal[
16];
<br>
1023     char cupsRenderingIntent[
64];
<br>
1024     unsigned cupsRowCount;
<br>
1025     unsigned cupsRowFeed;
<br>
1026     unsigned cupsRowStep;
<br>
1027     char cupsString[
16][
64];
<br>
1028     unsigned cupsWidth;
<br>
1030 <h4 class=
"members">Members
</h4>
1032 <dt>AdvanceDistance
</dt>
1033 <dd class=
"description">AdvanceDistance value in points
</dd>
1034 <dt>AdvanceMedia
</dt>
1035 <dd class=
"description">AdvanceMedia value (
<a href=
"#cups_adv_t"><code>cups_adv_t
</code></a>)
</dd>
1037 <dd class=
"description">Collated copies value
</dd>
1039 <dd class=
"description">CutMedia value (
<a href=
"#cups_cut_t"><code>cups_cut_t
</code></a>)
</dd>
1041 <dd class=
"description">Duplexed (double-sided) value
</dd>
1042 <dt>HWResolution[
2]
</dt>
1043 <dd class=
"description">Resolution in dots-per-inch
</dd>
1044 <dt>ImagingBoundingBox[
4]
</dt>
1045 <dd class=
"description">Pixel region that is painted (points, left, bottom, right, top)
</dd>
1046 <dt>InsertSheet
</dt>
1047 <dd class=
"description">InsertSheet value
</dd>
1049 <dd class=
"description">Jog value (
<a href=
"#cups_jog_t"><code>cups_jog_t
</code></a>)
</dd>
1050 <dt>LeadingEdge
</dt>
1051 <dd class=
"description">LeadingEdge value (
<a href=
"#cups_edge_t"><code>cups_edge_t
</code></a>)
</dd>
1052 <dt>ManualFeed
</dt>
1053 <dd class=
"description">ManualFeed value
</dd>
1054 <dt>Margins[
2]
</dt>
1055 <dd class=
"description">Lower-lefthand margins in points
</dd>
1056 <dt>MediaClass[
64]
</dt>
1057 <dd class=
"description">MediaClass string
</dd>
1058 <dt>MediaColor[
64]
</dt>
1059 <dd class=
"description">MediaColor string
</dd>
1060 <dt>MediaPosition
</dt>
1061 <dd class=
"description">MediaPosition value
</dd>
1062 <dt>MediaType[
64]
</dt>
1063 <dd class=
"description">MediaType string
</dd>
1064 <dt>MediaWeight
</dt>
1065 <dd class=
"description">MediaWeight value in grams/m^
2</dd>
1066 <dt>MirrorPrint
</dt>
1067 <dd class=
"description">MirrorPrint value
</dd>
1068 <dt>NegativePrint
</dt>
1069 <dd class=
"description">NegativePrint value
</dd>
1071 <dd class=
"description">Number of copies to produce
</dd>
1072 <dt>Orientation
</dt>
1073 <dd class=
"description">Orientation value (
<a href=
"#cups_orient_t"><code>cups_orient_t
</code></a>)
</dd>
1074 <dt>OutputFaceUp
</dt>
1075 <dd class=
"description">OutputFaceUp value
</dd>
1076 <dt>OutputType[
64]
</dt>
1077 <dd class=
"description">OutputType string
</dd>
1078 <dt>PageSize[
2]
</dt>
1079 <dd class=
"description">Width and length of page in points
</dd>
1080 <dt>Separations
</dt>
1081 <dd class=
"description">Separations value
</dd>
1082 <dt>TraySwitch
</dt>
1083 <dd class=
"description">TraySwitch value
</dd>
1085 <dd class=
"description">Tumble value
</dd>
1086 <dt>cupsBitsPerColor
</dt>
1087 <dd class=
"description">Number of bits for each color
</dd>
1088 <dt>cupsBitsPerPixel
</dt>
1089 <dd class=
"description">Number of bits for each pixel
</dd>
1090 <dt>cupsBorderlessScalingFactor
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1091 <dd class=
"description">Scaling that was applied to page data
</dd>
1092 <dt>cupsBytesPerLine
</dt>
1093 <dd class=
"description">Number of bytes per line
</dd>
1094 <dt>cupsColorOrder
</dt>
1095 <dd class=
"description">Order of colors
</dd>
1096 <dt>cupsColorSpace
</dt>
1097 <dd class=
"description">True colorspace
</dd>
1098 <dt>cupsCompression
</dt>
1099 <dd class=
"description">Device compression to use
</dd>
1100 <dt>cupsHeight
</dt>
1101 <dd class=
"description">Height of page image in pixels
</dd>
1102 <dt>cupsImagingBBox[
4]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1103 <dd class=
"description">Floating point ImagingBoundingBox
1104 (scaling factor not applied, left,
1105 bottom, right, top)
</dd>
1106 <dt>cupsInteger[
16]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1107 <dd class=
"description">User-defined integer values
</dd>
1108 <dt>cupsMarkerType[
64]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1109 <dd class=
"description">Ink/toner type
</dd>
1110 <dt>cupsMediaType
</dt>
1111 <dd class=
"description">Media type code
</dd>
1112 <dt>cupsNumColors
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1113 <dd class=
"description">Number of color compoents
</dd>
1114 <dt>cupsPageSizeName[
64]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1115 <dd class=
"description">PageSize name
</dd>
1116 <dt>cupsPageSize[
2]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1117 <dd class=
"description">Floating point PageSize (scaling *
1118 factor not applied)
</dd>
1119 <dt>cupsReal[
16]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1120 <dd class=
"description">User-defined floating-point values
</dd>
1121 <dt>cupsRenderingIntent[
64]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1122 <dd class=
"description">Color rendering intent
</dd>
1123 <dt>cupsRowCount
</dt>
1124 <dd class=
"description">Rows per band
</dd>
1125 <dt>cupsRowFeed
</dt>
1126 <dd class=
"description">Feed between bands
</dd>
1127 <dt>cupsRowStep
</dt>
1128 <dd class=
"description">Spacing between lines
</dd>
1129 <dt>cupsString[
16][
64]
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1130 <dd class=
"description">User-defined string values
</dd>
1132 <dd class=
"description">Width of page image in pixels
</dd>
1134 <h3 class=
"struct"><span class=
"info"> DEPRECATED
 </span><a id=
"cups_page_header_s">cups_page_header_s
</a></h3>
1135 <p class=
"description">Version
1 page header
</p>
1136 <p class=
"code">struct cups_page_header_s {
<br>
1137     unsigned AdvanceDistance;
<br>
1138     <a href=
"#cups_adv_t">cups_adv_t
</a> AdvanceMedia;
<br>
1139     <a href=
"#cups_bool_t">cups_bool_t
</a> Collate;
<br>
1140     <a href=
"#cups_cut_t">cups_cut_t
</a> CutMedia;
<br>
1141     <a href=
"#cups_bool_t">cups_bool_t
</a> Duplex;
<br>
1142     unsigned HWResolution[
2];
<br>
1143     unsigned ImagingBoundingBox[
4];
<br>
1144     <a href=
"#cups_bool_t">cups_bool_t
</a> InsertSheet;
<br>
1145     <a href=
"#cups_jog_t">cups_jog_t
</a> Jog;
<br>
1146     <a href=
"#cups_edge_t">cups_edge_t
</a> LeadingEdge;
<br>
1147     <a href=
"#cups_bool_t">cups_bool_t
</a> ManualFeed;
<br>
1148     unsigned Margins[
2];
<br>
1149     char MediaClass[
64];
<br>
1150     char MediaColor[
64];
<br>
1151     unsigned MediaPosition;
<br>
1152     char MediaType[
64];
<br>
1153     unsigned MediaWeight;
<br>
1154     <a href=
"#cups_bool_t">cups_bool_t
</a> MirrorPrint;
<br>
1155     <a href=
"#cups_bool_t">cups_bool_t
</a> NegativePrint;
<br>
1156     unsigned NumCopies;
<br>
1157     <a href=
"#cups_orient_t">cups_orient_t
</a> Orientation;
<br>
1158     <a href=
"#cups_bool_t">cups_bool_t
</a> OutputFaceUp;
<br>
1159     char OutputType[
64];
<br>
1160     unsigned PageSize[
2];
<br>
1161     <a href=
"#cups_bool_t">cups_bool_t
</a> Separations;
<br>
1162     <a href=
"#cups_bool_t">cups_bool_t
</a> TraySwitch;
<br>
1163     <a href=
"#cups_bool_t">cups_bool_t
</a> Tumble;
<br>
1164     unsigned cupsBitsPerColor;
<br>
1165     unsigned cupsBitsPerPixel;
<br>
1166     unsigned cupsBytesPerLine;
<br>
1167     <a href=
"#cups_order_t">cups_order_t
</a> cupsColorOrder;
<br>
1168     <a href=
"#cups_cspace_t">cups_cspace_t
</a> cupsColorSpace;
<br>
1169     unsigned cupsCompression;
<br>
1170     unsigned cupsHeight;
<br>
1171     unsigned cupsMediaType;
<br>
1172     unsigned cupsRowCount;
<br>
1173     unsigned cupsRowFeed;
<br>
1174     unsigned cupsRowStep;
<br>
1175     unsigned cupsWidth;
<br>
1177 <h4 class=
"members">Members
</h4>
1179 <dt>AdvanceDistance
</dt>
1180 <dd class=
"description">AdvanceDistance value in points
</dd>
1181 <dt>AdvanceMedia
</dt>
1182 <dd class=
"description">AdvanceMedia value (
<a href=
"#cups_adv_t"><code>cups_adv_t
</code></a>)
</dd>
1184 <dd class=
"description">Collated copies value
</dd>
1186 <dd class=
"description">CutMedia value (
<a href=
"#cups_cut_t"><code>cups_cut_t
</code></a>)
</dd>
1188 <dd class=
"description">Duplexed (double-sided) value
</dd>
1189 <dt>HWResolution[
2]
</dt>
1190 <dd class=
"description">Resolution in dots-per-inch
</dd>
1191 <dt>ImagingBoundingBox[
4]
</dt>
1192 <dd class=
"description">Pixel region that is painted (points, left, bottom, right, top)
</dd>
1193 <dt>InsertSheet
</dt>
1194 <dd class=
"description">InsertSheet value
</dd>
1196 <dd class=
"description">Jog value (
<a href=
"#cups_jog_t"><code>cups_jog_t
</code></a>)
</dd>
1197 <dt>LeadingEdge
</dt>
1198 <dd class=
"description">LeadingEdge value (
<a href=
"#cups_edge_t"><code>cups_edge_t
</code></a>)
</dd>
1199 <dt>ManualFeed
</dt>
1200 <dd class=
"description">ManualFeed value
</dd>
1201 <dt>Margins[
2]
</dt>
1202 <dd class=
"description">Lower-lefthand margins in points
</dd>
1203 <dt>MediaClass[
64]
</dt>
1204 <dd class=
"description">MediaClass string
</dd>
1205 <dt>MediaColor[
64]
</dt>
1206 <dd class=
"description">MediaColor string
</dd>
1207 <dt>MediaPosition
</dt>
1208 <dd class=
"description">MediaPosition value
</dd>
1209 <dt>MediaType[
64]
</dt>
1210 <dd class=
"description">MediaType string
</dd>
1211 <dt>MediaWeight
</dt>
1212 <dd class=
"description">MediaWeight value in grams/m^
2</dd>
1213 <dt>MirrorPrint
</dt>
1214 <dd class=
"description">MirrorPrint value
</dd>
1215 <dt>NegativePrint
</dt>
1216 <dd class=
"description">NegativePrint value
</dd>
1218 <dd class=
"description">Number of copies to produce
</dd>
1219 <dt>Orientation
</dt>
1220 <dd class=
"description">Orientation value (
<a href=
"#cups_orient_t"><code>cups_orient_t
</code></a>)
</dd>
1221 <dt>OutputFaceUp
</dt>
1222 <dd class=
"description">OutputFaceUp value
</dd>
1223 <dt>OutputType[
64]
</dt>
1224 <dd class=
"description">OutputType string
</dd>
1225 <dt>PageSize[
2]
</dt>
1226 <dd class=
"description">Width and length of page in points
</dd>
1227 <dt>Separations
</dt>
1228 <dd class=
"description">Separations value
</dd>
1229 <dt>TraySwitch
</dt>
1230 <dd class=
"description">TraySwitch value
</dd>
1232 <dd class=
"description">Tumble value
</dd>
1233 <dt>cupsBitsPerColor
</dt>
1234 <dd class=
"description">Number of bits for each color
</dd>
1235 <dt>cupsBitsPerPixel
</dt>
1236 <dd class=
"description">Number of bits for each pixel
</dd>
1237 <dt>cupsBytesPerLine
</dt>
1238 <dd class=
"description">Number of bytes per line
</dd>
1239 <dt>cupsColorOrder
</dt>
1240 <dd class=
"description">Order of colors
</dd>
1241 <dt>cupsColorSpace
</dt>
1242 <dd class=
"description">True colorspace
</dd>
1243 <dt>cupsCompression
</dt>
1244 <dd class=
"description">Device compression to use
</dd>
1245 <dt>cupsHeight
</dt>
1246 <dd class=
"description">Height of page image in pixels
</dd>
1247 <dt>cupsMediaType
</dt>
1248 <dd class=
"description">Media type code
</dd>
1249 <dt>cupsRowCount
</dt>
1250 <dd class=
"description">Rows per band
</dd>
1251 <dt>cupsRowFeed
</dt>
1252 <dd class=
"description">Feed between bands
</dd>
1253 <dt>cupsRowStep
</dt>
1254 <dd class=
"description">Spacing between lines
</dd>
1256 <dd class=
"description">Width of page image in pixels
</dd>
1258 <h2 class=
"title"><a id=
"ENUMERATIONS">Constants
</a></h2>
1259 <h3 class=
"enumeration"><a id=
"cups_adv_e">cups_adv_e
</a></h3>
1260 <p class=
"description">AdvanceMedia attribute values
</p>
1261 <h4 class=
"constants">Constants
</h4>
1263 <dt>CUPS_ADVANCE_FILE
</dt>
1264 <dd class=
"description">Advance the roll after this file
</dd>
1265 <dt>CUPS_ADVANCE_JOB
</dt>
1266 <dd class=
"description">Advance the roll after this job
</dd>
1267 <dt>CUPS_ADVANCE_NONE
</dt>
1268 <dd class=
"description">Never advance the roll
</dd>
1269 <dt>CUPS_ADVANCE_PAGE
</dt>
1270 <dd class=
"description">Advance the roll after this page
</dd>
1271 <dt>CUPS_ADVANCE_SET
</dt>
1272 <dd class=
"description">Advance the roll after this set
</dd>
1274 <h3 class=
"enumeration"><a id=
"cups_bool_e">cups_bool_e
</a></h3>
1275 <p class=
"description">Boolean type
</p>
1276 <h4 class=
"constants">Constants
</h4>
1278 <dt>CUPS_FALSE
</dt>
1279 <dd class=
"description">Logical false
</dd>
1281 <dd class=
"description">Logical true
</dd>
1283 <h3 class=
"enumeration"><a id=
"cups_cspace_e">cups_cspace_e
</a></h3>
1284 <p class=
"description">cupsColorSpace attribute values
</p>
1285 <h4 class=
"constants">Constants
</h4>
1287 <dt>CUPS_CSPACE_ADOBERGB
<span class=
"info"> CUPS
1.4.5 </span></dt>
1288 <dd class=
"description">Red, green, blue (Adobe RGB)
</dd>
1289 <dt>CUPS_CSPACE_CIELab
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1290 <dd class=
"description">CIE Lab
</dd>
1291 <dt>CUPS_CSPACE_CIEXYZ
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1292 <dd class=
"description">CIE XYZ
</dd>
1293 <dt>CUPS_CSPACE_CMY
</dt>
1294 <dd class=
"description">Cyan, magenta, yellow (DeviceCMY)
</dd>
1295 <dt>CUPS_CSPACE_CMYK
</dt>
1296 <dd class=
"description">Cyan, magenta, yellow, black (DeviceCMYK)
</dd>
1297 <dt>CUPS_CSPACE_DEVICE1
<span class=
"info"> CUPS
1.4.5 </span></dt>
1298 <dd class=
"description">DeviceN,
1 color
</dd>
1299 <dt>CUPS_CSPACE_DEVICE2
<span class=
"info"> CUPS
1.4.5 </span></dt>
1300 <dd class=
"description">DeviceN,
2 colors
</dd>
1301 <dt>CUPS_CSPACE_DEVICE3
<span class=
"info"> CUPS
1.4.5 </span></dt>
1302 <dd class=
"description">DeviceN,
3 colors
</dd>
1303 <dt>CUPS_CSPACE_DEVICE4
<span class=
"info"> CUPS
1.4.5 </span></dt>
1304 <dd class=
"description">DeviceN,
4 colors
</dd>
1305 <dt>CUPS_CSPACE_DEVICE5
<span class=
"info"> CUPS
1.4.5 </span></dt>
1306 <dd class=
"description">DeviceN,
5 colors
</dd>
1307 <dt>CUPS_CSPACE_DEVICE6
<span class=
"info"> CUPS
1.4.5 </span></dt>
1308 <dd class=
"description">DeviceN,
6 colors
</dd>
1309 <dt>CUPS_CSPACE_DEVICE7
<span class=
"info"> CUPS
1.4.5 </span></dt>
1310 <dd class=
"description">DeviceN,
7 colors
</dd>
1311 <dt>CUPS_CSPACE_DEVICE8
<span class=
"info"> CUPS
1.4.5 </span></dt>
1312 <dd class=
"description">DeviceN,
8 colors
</dd>
1313 <dt>CUPS_CSPACE_DEVICE9
<span class=
"info"> CUPS
1.4.5 </span></dt>
1314 <dd class=
"description">DeviceN,
9 colors
</dd>
1315 <dt>CUPS_CSPACE_DEVICEA
<span class=
"info"> CUPS
1.4.5 </span></dt>
1316 <dd class=
"description">DeviceN,
10 colors
</dd>
1317 <dt>CUPS_CSPACE_DEVICEB
<span class=
"info"> CUPS
1.4.5 </span></dt>
1318 <dd class=
"description">DeviceN,
11 colors
</dd>
1319 <dt>CUPS_CSPACE_DEVICEC
<span class=
"info"> CUPS
1.4.5 </span></dt>
1320 <dd class=
"description">DeviceN,
12 colors
</dd>
1321 <dt>CUPS_CSPACE_DEVICED
<span class=
"info"> CUPS
1.4.5 </span></dt>
1322 <dd class=
"description">DeviceN,
13 colors
</dd>
1323 <dt>CUPS_CSPACE_DEVICEE
<span class=
"info"> CUPS
1.4.5 </span></dt>
1324 <dd class=
"description">DeviceN,
14 colors
</dd>
1325 <dt>CUPS_CSPACE_DEVICEF
<span class=
"info"> CUPS
1.4.5 </span></dt>
1326 <dd class=
"description">DeviceN,
15 colors
</dd>
1327 <dt>CUPS_CSPACE_GMCK
<span class=
"info"> DEPRECATED
 </span></dt>
1328 <dd class=
"description">Gold, magenta, yellow, black
</dd>
1329 <dt>CUPS_CSPACE_GMCS
<span class=
"info"> DEPRECATED
 </span></dt>
1330 <dd class=
"description">Gold, magenta, yellow, silver
</dd>
1331 <dt>CUPS_CSPACE_GOLD
<span class=
"info"> DEPRECATED
 </span></dt>
1332 <dd class=
"description">Gold foil
</dd>
1333 <dt>CUPS_CSPACE_ICC1
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1334 <dd class=
"description">ICC-based,
1 color
</dd>
1335 <dt>CUPS_CSPACE_ICC2
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1336 <dd class=
"description">ICC-based,
2 colors
</dd>
1337 <dt>CUPS_CSPACE_ICC3
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1338 <dd class=
"description">ICC-based,
3 colors
</dd>
1339 <dt>CUPS_CSPACE_ICC4
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1340 <dd class=
"description">ICC-based,
4 colors
</dd>
1341 <dt>CUPS_CSPACE_ICC5
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1342 <dd class=
"description">ICC-based,
5 colors
</dd>
1343 <dt>CUPS_CSPACE_ICC6
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1344 <dd class=
"description">ICC-based,
6 colors
</dd>
1345 <dt>CUPS_CSPACE_ICC7
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1346 <dd class=
"description">ICC-based,
7 colors
</dd>
1347 <dt>CUPS_CSPACE_ICC8
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1348 <dd class=
"description">ICC-based,
8 colors
</dd>
1349 <dt>CUPS_CSPACE_ICC9
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1350 <dd class=
"description">ICC-based,
9 colors
</dd>
1351 <dt>CUPS_CSPACE_ICCA
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1352 <dd class=
"description">ICC-based,
10 colors
</dd>
1353 <dt>CUPS_CSPACE_ICCB
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1354 <dd class=
"description">ICC-based,
11 colors
</dd>
1355 <dt>CUPS_CSPACE_ICCC
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1356 <dd class=
"description">ICC-based,
12 colors
</dd>
1357 <dt>CUPS_CSPACE_ICCD
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1358 <dd class=
"description">ICC-based,
13 colors
</dd>
1359 <dt>CUPS_CSPACE_ICCE
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1360 <dd class=
"description">ICC-based,
14 colors
</dd>
1361 <dt>CUPS_CSPACE_ICCF
<span class=
"info"> CUPS
1.1.19/macOS
10.3 </span></dt>
1362 <dd class=
"description">ICC-based,
15 colors
</dd>
1363 <dt>CUPS_CSPACE_K
</dt>
1364 <dd class=
"description">Black (DeviceK)
</dd>
1365 <dt>CUPS_CSPACE_KCMY
<span class=
"info"> DEPRECATED
 </span></dt>
1366 <dd class=
"description">Black, cyan, magenta, yellow
</dd>
1367 <dt>CUPS_CSPACE_KCMYcm
<span class=
"info"> DEPRECATED
 </span></dt>
1368 <dd class=
"description">Black, cyan, magenta, yellow, light-cyan, light-magenta
</dd>
1369 <dt>CUPS_CSPACE_RGB
</dt>
1370 <dd class=
"description">Red, green, blue (DeviceRGB, sRGB by default)
</dd>
1371 <dt>CUPS_CSPACE_RGBA
</dt>
1372 <dd class=
"description">Red, green, blue, alpha (DeviceRGB, sRGB by default)
</dd>
1373 <dt>CUPS_CSPACE_RGBW
<span class=
"info"> CUPS
1.2/macOS
10.5 </span></dt>
1374 <dd class=
"description">Red, green, blue, white (DeviceRGB, sRGB by default)
</dd>
1375 <dt>CUPS_CSPACE_SILVER
<span class=
"info"> DEPRECATED
 </span></dt>
1376 <dd class=
"description">Silver foil
</dd>
1377 <dt>CUPS_CSPACE_SRGB
<span class=
"info"> CUPS
1.4.5 </span></dt>
1378 <dd class=
"description">Red, green, blue (sRGB)
</dd>
1379 <dt>CUPS_CSPACE_SW
<span class=
"info"> CUPS
1.4.5 </span></dt>
1380 <dd class=
"description">Luminance (gamma
2.2)
</dd>
1381 <dt>CUPS_CSPACE_W
</dt>
1382 <dd class=
"description">Luminance (DeviceGray, gamma
2.2 by default)
</dd>
1383 <dt>CUPS_CSPACE_WHITE
<span class=
"info"> DEPRECATED
 </span></dt>
1384 <dd class=
"description">White ink (as black)
</dd>
1385 <dt>CUPS_CSPACE_YMC
<span class=
"info"> DEPRECATED
 </span></dt>
1386 <dd class=
"description">Yellow, magenta, cyan
</dd>
1387 <dt>CUPS_CSPACE_YMCK
<span class=
"info"> DEPRECATED
 </span></dt>
1388 <dd class=
"description">Yellow, magenta, cyan, black
</dd>
1390 <h3 class=
"enumeration"><a id=
"cups_cut_e">cups_cut_e
</a></h3>
1391 <p class=
"description">CutMedia attribute values
</p>
1392 <h4 class=
"constants">Constants
</h4>
1394 <dt>CUPS_CUT_FILE
</dt>
1395 <dd class=
"description">Cut the roll after this file
</dd>
1396 <dt>CUPS_CUT_JOB
</dt>
1397 <dd class=
"description">Cut the roll after this job
</dd>
1398 <dt>CUPS_CUT_NONE
</dt>
1399 <dd class=
"description">Never cut the roll
</dd>
1400 <dt>CUPS_CUT_PAGE
</dt>
1401 <dd class=
"description">Cut the roll after this page
</dd>
1402 <dt>CUPS_CUT_SET
</dt>
1403 <dd class=
"description">Cut the roll after this set
</dd>
1405 <h3 class=
"enumeration"><a id=
"cups_edge_e">cups_edge_e
</a></h3>
1406 <p class=
"description">LeadingEdge attribute values
</p>
1407 <h4 class=
"constants">Constants
</h4>
1409 <dt>CUPS_EDGE_BOTTOM
</dt>
1410 <dd class=
"description">Leading edge is the bottom of the page
</dd>
1411 <dt>CUPS_EDGE_LEFT
</dt>
1412 <dd class=
"description">Leading edge is the left of the page
</dd>
1413 <dt>CUPS_EDGE_RIGHT
</dt>
1414 <dd class=
"description">Leading edge is the right of the page
</dd>
1415 <dt>CUPS_EDGE_TOP
</dt>
1416 <dd class=
"description">Leading edge is the top of the page
</dd>
1418 <h3 class=
"enumeration"><a id=
"cups_jog_e">cups_jog_e
</a></h3>
1419 <p class=
"description">Jog attribute values
</p>
1420 <h4 class=
"constants">Constants
</h4>
1422 <dt>CUPS_JOG_FILE
</dt>
1423 <dd class=
"description">Move pages after this file
</dd>
1424 <dt>CUPS_JOG_JOB
</dt>
1425 <dd class=
"description">Move pages after this job
</dd>
1426 <dt>CUPS_JOG_NONE
</dt>
1427 <dd class=
"description">Never move pages
</dd>
1428 <dt>CUPS_JOG_SET
</dt>
1429 <dd class=
"description">Move pages after this set
</dd>
1431 <h3 class=
"enumeration"><a id=
"cups_mode_e">cups_mode_e
</a></h3>
1432 <p class=
"description">cupsRasterOpen modes
</p>
1433 <h4 class=
"constants">Constants
</h4>
1435 <dt>CUPS_RASTER_READ
</dt>
1436 <dd class=
"description">Open stream for reading
</dd>
1437 <dt>CUPS_RASTER_WRITE
</dt>
1438 <dd class=
"description">Open stream for writing
</dd>
1439 <dt>CUPS_RASTER_WRITE_COMPRESSED
<span class=
"info"> CUPS
1.3/macOS
10.5 </span></dt>
1440 <dd class=
"description">Open stream for compressed writing
</dd>
1441 <dt>CUPS_RASTER_WRITE_PWG
<span class=
"info"> CUPS
1.5/macOS
10.7 </span></dt>
1442 <dd class=
"description">Open stream for compressed writing in PWG Raster mode
</dd>
1444 <h3 class=
"enumeration"><a id=
"cups_order_e">cups_order_e
</a></h3>
1445 <p class=
"description">cupsColorOrder attribute values
</p>
1446 <h4 class=
"constants">Constants
</h4>
1448 <dt>CUPS_ORDER_BANDED
</dt>
1449 <dd class=
"description">CCC MMM YYY KKK ...
</dd>
1450 <dt>CUPS_ORDER_CHUNKED
</dt>
1451 <dd class=
"description">CMYK CMYK CMYK ...
</dd>
1452 <dt>CUPS_ORDER_PLANAR
</dt>
1453 <dd class=
"description">CCC ... MMM ... YYY ... KKK ...
</dd>
1455 <h3 class=
"enumeration"><a id=
"cups_orient_e">cups_orient_e
</a></h3>
1456 <p class=
"description">Orientation attribute values
</p>
1457 <h4 class=
"constants">Constants
</h4>
1459 <dt>CUPS_ORIENT_0
</dt>
1460 <dd class=
"description">Don't rotate the page
</dd>
1461 <dt>CUPS_ORIENT_180
</dt>
1462 <dd class=
"description">Turn the page upside down
</dd>
1463 <dt>CUPS_ORIENT_270
</dt>
1464 <dd class=
"description">Rotate the page clockwise
</dd>
1465 <dt>CUPS_ORIENT_90
</dt>
1466 <dd class=
"description">Rotate the page counter-clockwise
</dd>