-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- SECTION: Programming -->
<head>
-<title>Raster API</title>
-<meta name="keywords" content="Programming">
-<meta name="creator" content="Mini-XML v2.5">
+ <title>Raster API </title>
+ <meta name="keywords" content="Programming">
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+ <meta name="creator" content="Mini-XML v2.7">
<style type="text/css"><!--
BODY {
font-family: lucida grande, geneva, helvetica, arial, sans-serif;
}
PRE.command {
+ border: dotted thin #7f7f7f;
margin-left: 36pt;
+ padding: 10px;
+}
+
+P.compact {
+ margin: 0;
}
P.example {
font-style: italic;
margin-left: 36pt;
}
-
+
+DL.man DD {
+ margin-left: 5em;
+}
+
+DL.man DT {
+ margin-left: 0;
+}
+
+PRE.man {
+ margin: 0;
+}
+
PRE.example {
background: #eeeeee;
border: dotted thin #999999;
margin-left: 36pt;
- padding: 10px;
+ padding: 10pt;
}
PRE.command EM, PRE.example EM {
}
BLOCKQUOTE {
- background: #cccccc;
+ background: #eeeeee;
border: solid thin #999999;
padding: 10pt;
}
}
A:link, A:visited {
- font-weight: normal;
+ font-weight: inherit;
text-decoration: none;
}
font-size: 100%;
}
+H1.title {
+}
+
H2.title, H3.title {
border-bottom: solid 2pt #000000;
}
<body>
<div class='body'>
<!--
- "$Id$"
-
- Raster API header for the Common UNIX Printing System (CUPS).
+ Raster API documentation for CUPS.
- Copyright 2008 by Apple Inc.
+ Copyright 2008-2010 by Apple Inc.
These coded instructions, statements, and computer programs are the
property of Apple Inc. and are protected by Federal copyright
file is missing or damaged, see the license at "http://www.cups.org/".
-->
+<h1 class='title'>Raster API</h1>
+
<div class='summary'><table summary='General Information'>
<thead>
<tr>
</table></div>
<h2 class="title">Contents</h2>
<ul class="contents">
-</li>
<li><a href="#OVERVIEW">Overview</a></li>
<li><a href="#TASKS">Functions by Task</a><ul class="subcontents">
-<li><a href="#OPENCLOSE">Opening and Closing Raster Streams</a></li>
-<li><a href="#READING">Reading Raster Streams</a></li>
-<li><a href="#WRITING">Writing Raster Streams</a></li>
+ <li><a href="#OPENCLOSE">Opening and Closing Raster Streams</a></li>
+ <li><a href="#READING">Reading Raster Streams</a></li>
+ <li><a href="#WRITING">Writing Raster Streams</a></li>
</ul></li>
<li><a href="#FUNCTIONS">Functions</a><ul class="code">
-<li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
-<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
-<li><a href="#cupsRasterOpen" title="Open a raster stream.">cupsRasterOpen</a></li>
-<li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a
+ <li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
+ <li><a href="#cupsRasterInitPWGHeader" title="Initialize a page header for PWG Raster output.">cupsRasterInitPWGHeader</a></li>
+ <li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
+ <li><a href="#cupsRasterOpen" title="Open a raster stream using a file descriptor.">cupsRasterOpen</a></li>
+ <li><a href="#cupsRasterOpenIO" title="Open a raster stream using a callback function.">cupsRasterOpenIO</a></li>
+ <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a
version 1 page header structure.">cupsRasterReadHeader</a></li>
-<li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a
+ <li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a
version 2 page header structure.">cupsRasterReadHeader2</a></li>
-<li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
-<li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page
+ <li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
+ <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page
header structure.">cupsRasterWriteHeader</a></li>
-<li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2
+ <li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2
page header structure.">cupsRasterWriteHeader2</a></li>
-<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
-</ul>
+ <li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
+</ul></li>
<li><a href="#TYPES">Data Types</a><ul class="code">
<li><a href="#cups_adv_t" title="AdvanceMedia attribute values">cups_adv_t</a></li>
- <li><a href="#cups_bool_t" title="Types...">cups_bool_t</a></li>
- <li><a href="#cups_cspace_t" title="CutMedia attribute values">cups_cspace_t</a></li>
- <li><a href="#cups_cut_t" title="LeadingEdge attribute values">cups_cut_t</a></li>
- <li><a href="#cups_edge_t" title="Jog attribute values">cups_edge_t</a></li>
+ <li><a href="#cups_bool_t" title="Boolean type">cups_bool_t</a></li>
+ <li><a href="#cups_cspace_t" title="cupsColorSpace attribute values">cups_cspace_t</a></li>
+ <li><a href="#cups_cut_t" title="CutMedia attribute values">cups_cut_t</a></li>
+ <li><a href="#cups_edge_t" title="LeadingEdge attribute values">cups_edge_t</a></li>
<li><a href="#cups_interpret_cb_t" title="cupsRasterInterpretPPD callback function">cups_interpret_cb_t</a></li>
- <li><a href="#cups_jog_t" title="cupsRasterOpen modes">cups_jog_t</a></li>
+ <li><a href="#cups_jog_t" title="Jog attribute values">cups_jog_t</a></li>
<li><a href="#cups_mode_t" title="cupsRasterOpen modes">cups_mode_t</a></li>
<li><a href="#cups_order_t" title="cupsColorOrder attribute values">cups_order_t</a></li>
- <li><a href="#cups_orient_t" title="The page header structure contains the standard PostScript page device
-dictionary, along with some CUPS-specific parameters that are provided
-by the RIPs...">cups_orient_t</a></li>
+ <li><a href="#cups_orient_t" title="Orientation attribute values">cups_orient_t</a></li>
<li><a href="#cups_page_header2_t" title="Version 2 page header ">cups_page_header2_t</a></li>
<li><a href="#cups_page_header_t" title="Version 1 page header ">cups_page_header_t</a></li>
+ <li><a href="#cups_raster_iocb_t" title="cupsRasterOpenIO callback function">cups_raster_iocb_t</a></li>
<li><a href="#cups_raster_t" title="Raster stream data">cups_raster_t</a></li>
</ul></li>
<li><a href="#STRUCTURES">Structures</a><ul class="code">
</ul></li>
<li><a href="#ENUMERATIONS">Constants</a><ul class="code">
<li><a href="#cups_adv_e" title="AdvanceMedia attribute values">cups_adv_e</a></li>
- <li><a href="#cups_bool_e" title="Types...">cups_bool_e</a></li>
- <li><a href="#cups_cspace_e" title="">cups_cspace_e</a></li>
- <li><a href="#cups_cut_e" title="">cups_cut_e</a></li>
- <li><a href="#cups_edge_e" title="">cups_edge_e</a></li>
- <li><a href="#cups_jog_e" title="">cups_jog_e</a></li>
- <li><a href="#cups_mode_e" title="">cups_mode_e</a></li>
+ <li><a href="#cups_bool_e" title="Boolean type">cups_bool_e</a></li>
+ <li><a href="#cups_cspace_e" title="cupsColorSpace attribute values">cups_cspace_e</a></li>
+ <li><a href="#cups_cut_e" title="CutMedia attribute values">cups_cut_e</a></li>
+ <li><a href="#cups_edge_e" title="LeadingEdge attribute values">cups_edge_e</a></li>
+ <li><a href="#cups_jog_e" title="Jog attribute values">cups_jog_e</a></li>
+ <li><a href="#cups_mode_e" title="cupsRasterOpen modes">cups_mode_e</a></li>
<li><a href="#cups_order_e" title="cupsColorOrder attribute values">cups_order_e</a></li>
- <li><a href="#cups_orient_e" title="">cups_orient_e</a></li>
+ <li><a href="#cups_orient_e" title="Orientation attribute values">cups_orient_e</a></li>
</ul></li>
</ul>
<!--
- "$Id$"
-
- Raster API introduction for the Common UNIX Printing System (CUPS).
+ Raster API introduction for CUPS.
- Copyright 2007-2008 by Apple Inc.
+ Copyright 2007-2013 by Apple Inc.
Copyright 1997-2006 by Easy Software Products, all rights reserved.
These coded instructions, statements, and computer programs are the
<p>Two kinds of CUPS filters use the CUPS raster API - raster image processor
(RIP) filters such as <code>pstoraster</code> and <code>cgpdftoraster</code>
-(Mac OS X) that produce CUPS raster files and printer driver filters that
+(macOS) that produce CUPS raster files and printer driver filters that
convert CUPS raster files into a format usable by the printer. Printer
driver filters are by far the most common.</p>
<ul class="code">
- <li><a href="#cupsRasterReadHeader" title="Read a raster page header and store it in a version 1 page header structure.">cupsRasterReadHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <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>
<li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a version 2 page header structure.">cupsRasterReadHeader2</a></li>
<li><a href="#cupsRasterReadPixels" title="Read raster pixels.">cupsRasterReadPixels</a></li>
<ul class="code">
<li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
- <li><a href="#cupsRasterWriteHeader" title="Write a raster page header from a version 1 page header structure.">cupsRasterWriteHeader</a> <span class="info">Deprecated in CUPS 1.2/Mac OS X 10.5</span></li>
+ <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>
<li><a href="#cupsRasterWriteHeader2" title="Write a raster page header from a version 2 page header structure.">cupsRasterWriteHeader2</a></li>
<li><a href="#cupsRasterWritePixels" title="Write raster pixels.">cupsRasterWritePixels</a></li>
-
+
</ul>
<h2 class="title"><a name="FUNCTIONS">Functions</a></h2>
<h3 class="function"><a name="cupsRasterClose">cupsRasterClose</a></h3>
<h4 class="discussion">Discussion</h4>
<p class="discussion">The file descriptor associated with the raster stream must be closed
separately as needed.</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
+<h3 class="function"><span class="info"> CUPS 2.2 </span><a name="cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></h3>
+<p class="description">Initialize a page header for PWG Raster output.</p>
+<p class="code">
+int cupsRasterInitPWGHeader (<br>
+ <a href="#cups_page_header2_t">cups_page_header2_t</a> *h,<br>
+ pwg_media_t *media,<br>
+ const char *type,<br>
+ int xdpi,<br>
+ int ydpi,<br>
+ const char *sides,<br>
+ const char *sheet_back<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>h</dt>
+<dd class="description">Page header</dd>
+<dt>media</dt>
+<dd class="description">PWG media information</dd>
+<dt>type</dt>
+<dd class="description">PWG raster type string</dd>
+<dt>xdpi</dt>
+<dd class="description">Cross-feed direction (horizontal) resolution</dd>
+<dt>ydpi</dt>
+<dd class="description">Feed direction (vertical) resolution</dd>
+<dt>sides</dt>
+<dd class="description">IPP "sides" option value</dd>
+<dt>sheet_back</dt>
+<dd class="description">Transform for back side or <code>NULL</code> for none</dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">1 on success, 0 on failure</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">The "media" argument specifies the media to use.<br>
+<br>
+The "type" argument specifies a "pwg-raster-document-type-supported" value
+that controls the color space and bit depth of the raster data.<br>
+<br>
+The "xres" and "yres" arguments specify the raster resolution in dots per
+inch.<br>
+<br>
+The "sheet_back" argument specifies a "pwg-raster-document-sheet-back" value
+to apply for the back side of a page. Pass <code>NULL</code> for the front side.
+
+</p>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
<p class="description">Interpret PPD commands to create a page header.</p>
<p class="code">
int cupsRasterInterpretPPD (<br>
<br>
<code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language.
-Currently only the <code>[</code>, <code>]</code>, <code><<</code>, <code>>></code>, <code>{</code>,
+Currently only the <code>[</code>, <code>]</code>, <code><<</code>, <code>>></code>, <code>{</code>,
<code>}</code>, <code>cleartomark</code>, <code>copy</code>, <code>dup</code>, <code>index</code>,
<code>pop</code>, <code>roll</code>, <code>setpagedevice</code>, and <code>stopped</code> operators
are supported.
</p>
<h3 class="function"><a name="cupsRasterOpen">cupsRasterOpen</a></h3>
-<p class="description">Open a raster stream.</p>
+<p class="description">Open a raster stream using a file descriptor.</p>
<p class="code">
<a href="#cups_raster_t">cups_raster_t</a> *cupsRasterOpen (<br>
int fd,<br>
<dt>fd</dt>
<dd class="description">File descriptor</dd>
<dt>mode</dt>
-<dd class="description">Mode - <code>CUPS_RASTER_READ</code>, <code>CUPS_RASTER_WRITE</code>, or <code>CUPS_RASTER_WRITE_COMPRESSED</code></dd>
+<dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
+<code>CUPS_RASTER_WRITE</code>,
+<code>CUPS_RASTER_WRITE_COMPRESSED</code>,
+or <code>CUPS_RASTER_WRITE_PWG</code></dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New stream</p>
image processor (RIP) filters that generate raster data, "fd" will be 1
(stdout).<br>
<br>
-When writing raster data, the <code>CUPS_RASTER_WRITE</code> or
-<code>CUPS_RASTER_WRITE_COMPRESS</code> mode can be used - compressed output
-is generally 25-50% smaller but adds a 100-300% execution time overhead.</p>
+When writing raster data, the <code>CUPS_RASTER_WRITE</code>,
+<code>CUPS_RASTER_WRITE_COMPRESS</code>, or <code>CUPS_RASTER_WRITE_PWG</code> mode can
+be used - compressed and PWG output is generally 25-50% smaller but adds a
+100-300% execution time overhead.</p>
+<h3 class="function"><a name="cupsRasterOpenIO">cupsRasterOpenIO</a></h3>
+<p class="description">Open a raster stream using a callback function.</p>
+<p class="code">
+<a href="#cups_raster_t">cups_raster_t</a> *cupsRasterOpenIO (<br>
+ <a href="#cups_raster_iocb_t">cups_raster_iocb_t</a> iocb,<br>
+ void *ctx,<br>
+ <a href="#cups_mode_t">cups_mode_t</a> mode<br>
+);</p>
+<h4 class="parameters">Parameters</h4>
+<dl>
+<dt>iocb</dt>
+<dd class="description">Read/write callback</dd>
+<dt>ctx</dt>
+<dd class="description">Context pointer for callback</dd>
+<dt>mode</dt>
+<dd class="description">Mode - <code>CUPS_RASTER_READ</code>,
+<code>CUPS_RASTER_WRITE</code>,
+<code>CUPS_RASTER_WRITE_COMPRESSED</code>,
+or <code>CUPS_RASTER_WRITE_PWG</code></dd>
+</dl>
+<h4 class="returnvalue">Return Value</h4>
+<p class="description">New stream</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function associates a raster stream with the given callback function and
+context pointer.<br>
+<br>
+When writing raster data, the <code>CUPS_RASTER_WRITE</code>,
+<code>CUPS_RASTER_WRITE_COMPRESS</code>, or <code>CUPS_RASTER_WRITE_PWG</code> mode can
+be used - compressed and PWG output is generally 25-50% smaller but adds a
+100-300% execution time overhead.</p>
<h3 class="function"><span class="info"> DEPRECATED </span><a name="cupsRasterReadHeader">cupsRasterReadHeader</a></h3>
<p class="description">Read a raster page header and store it in a
version 1 page header structure.</p>
page headers and copying only the version 1 data into the provided buffer.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
<p class="description">Read a raster page header and store it in a
version 2 page header structure.</p>
<p class="code">
<p class="discussion">This function is deprecated. Use <a href="#cupsRasterWriteHeader2"><code>cupsRasterWriteHeader2</code></a> instead.
</p>
-<h3 class="function"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
<p class="description">Write a raster page header from a version 2
page header structure.</p>
<p class="code">
typedef enum <a href="#cups_adv_e">cups_adv_e</a> cups_adv_t;
</p>
<h3 class="typedef"><a name="cups_bool_t">cups_bool_t</a></h3>
-<p class="description">Types...</p>
+<p class="description">Boolean type</p>
<p class="code">
typedef enum <a href="#cups_bool_e">cups_bool_e</a> cups_bool_t;
</p>
<h3 class="typedef"><a name="cups_cspace_t">cups_cspace_t</a></h3>
-<p class="description">CutMedia attribute values</p>
+<p class="description">cupsColorSpace attribute values</p>
<p class="code">
typedef enum <a href="#cups_cspace_e">cups_cspace_e</a> cups_cspace_t;
</p>
<h3 class="typedef"><a name="cups_cut_t">cups_cut_t</a></h3>
-<p class="description">LeadingEdge attribute values</p>
+<p class="description">CutMedia attribute values</p>
<p class="code">
typedef enum <a href="#cups_cut_e">cups_cut_e</a> cups_cut_t;
</p>
<h3 class="typedef"><a name="cups_edge_t">cups_edge_t</a></h3>
-<p class="description">Jog attribute values</p>
+<p class="description">LeadingEdge attribute values</p>
<p class="code">
typedef enum <a href="#cups_edge_e">cups_edge_e</a> cups_edge_t;
</p>
typedef int (*cups_interpret_cb_t)(<a href="#cups_page_header2_t">cups_page_header2_t</a> *header, int preferred_bits);
</p>
<h3 class="typedef"><a name="cups_jog_t">cups_jog_t</a></h3>
-<p class="description">cupsRasterOpen modes</p>
+<p class="description">Jog attribute values</p>
<p class="code">
typedef enum <a href="#cups_jog_e">cups_jog_e</a> cups_jog_t;
</p>
typedef enum <a href="#cups_order_e">cups_order_e</a> cups_order_t;
</p>
<h3 class="typedef"><a name="cups_orient_t">cups_orient_t</a></h3>
-<p class="description">The page header structure contains the standard PostScript page device
-dictionary, along with some CUPS-specific parameters that are provided
-by the RIPs...</p>
+<p class="description">Orientation attribute values</p>
<p class="code">
typedef enum <a href="#cups_orient_e">cups_orient_e</a> cups_orient_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cups_page_header2_t">cups_page_header2_t</a></h3>
+<h3 class="typedef"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cups_page_header2_t">cups_page_header2_t</a></h3>
<p class="description">Version 2 page header </p>
<p class="code">
typedef struct <a href="#cups_page_header2_s">cups_page_header2_s</a> cups_page_header2_t;
<p class="code">
typedef struct <a href="#cups_page_header_s">cups_page_header_s</a> cups_page_header_t;
</p>
+<h3 class="typedef"><a name="cups_raster_iocb_t">cups_raster_iocb_t</a></h3>
+<p class="description">cupsRasterOpenIO callback function</p>
+<p class="code">
+typedef ssize_t (*cups_raster_iocb_t)(void *ctx, unsigned char *buffer, size_t length);
+</p>
<h3 class="typedef"><a name="cups_raster_t">cups_raster_t</a></h3>
<p class="description">Raster stream data</p>
<p class="code">
typedef struct _cups_raster_s cups_raster_t;
</p>
<h2 class="title"><a name="STRUCTURES">Structures</a></h2>
-<h3 class="struct"><span class="info"> CUPS 1.2/Mac OS X 10.5 </span><a name="cups_page_header2_s">cups_page_header2_s</a></h3>
+<h3 class="struct"><span class="info"> CUPS 1.2/macOS 10.5 </span><a name="cups_page_header2_s">cups_page_header2_s</a></h3>
<p class="description">Version 2 page header </p>
<p class="code">struct cups_page_header2_s {<br>
unsigned AdvanceDistance;<br>
<dd class="description">Number of bits for each color</dd>
<dt>cupsBitsPerPixel </dt>
<dd class="description">Number of bits for each pixel</dd>
-<dt>cupsBorderlessScalingFactor <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsBorderlessScalingFactor <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Scaling that was applied to page data </dd>
<dt>cupsBytesPerLine </dt>
<dd class="description">Number of bytes per line</dd>
<dd class="description">Device compression to use</dd>
<dt>cupsHeight </dt>
<dd class="description">Height of page image in pixels</dd>
-<dt>cupsImagingBBox[4] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsImagingBBox[4] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Floating point ImagingBoundingBox
(scaling factor not applied, left,
bottom, right, top) </dd>
-<dt>cupsInteger[16] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsInteger[16] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">User-defined integer values </dd>
-<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Ink/toner type </dd>
<dt>cupsMediaType </dt>
<dd class="description">Media type code</dd>
-<dt>cupsNumColors <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsNumColors <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Number of color compoents </dd>
-<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">PageSize name </dd>
-<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Floating point PageSize (scaling *
factor not applied) </dd>
-<dt>cupsReal[16] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsReal[16] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">User-defined floating-point values </dd>
-<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">Color rendering intent </dd>
<dt>cupsRowCount </dt>
<dd class="description">Rows per band</dd>
<dd class="description">Feed between bands</dd>
<dt>cupsRowStep </dt>
<dd class="description">Spacing between lines</dd>
-<dt>cupsString[16][64] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
+<dt>cupsString[16][64] <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
<dd class="description">User-defined string values </dd>
<dt>cupsWidth </dt>
<dd class="description">Width of page image in pixels</dd>
<dd class="description">Advance the roll after this set</dd>
</dl>
<h3 class="enumeration"><a name="cups_bool_e">cups_bool_e</a></h3>
-<p class="description">Types...</p>
+<p class="description">Boolean type</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>CUPS_FALSE </dt>
<dd class="description">Logical true</dd>
</dl>
<h3 class="enumeration"><a name="cups_cspace_e">cups_cspace_e</a></h3>
-<p class="description"></p>
+<p class="description">cupsColorSpace attribute values</p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ADOBERGB <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">Red, green, blue (Adobe RGB) </dd>
+<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">CIE Lab </dd>
-<dt>CUPS_CSPACE_CIEXYZ <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_CIEXYZ <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">CIE XYZ </dd>
<dt>CUPS_CSPACE_CMY </dt>
-<dd class="description">Cyan, magenta, yellow</dd>
+<dd class="description">Cyan, magenta, yellow (DeviceCMY)</dd>
<dt>CUPS_CSPACE_CMYK </dt>
-<dd class="description">Cyan, magenta, yellow, black</dd>
-<dt>CUPS_CSPACE_GMCK </dt>
-<dd class="description">Gold, magenta, yellow, black</dd>
-<dt>CUPS_CSPACE_GMCS </dt>
-<dd class="description">Gold, magenta, yellow, silver</dd>
-<dt>CUPS_CSPACE_GOLD </dt>
-<dd class="description">Gold foil</dd>
-<dt>CUPS_CSPACE_ICC1 <span class="info"> CUPS 1.1.19 </span></dt>
+<dd class="description">Cyan, magenta, yellow, black (DeviceCMYK)</dd>
+<dt>CUPS_CSPACE_DEVICE1 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 1 color </dd>
+<dt>CUPS_CSPACE_DEVICE2 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 2 colors </dd>
+<dt>CUPS_CSPACE_DEVICE3 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 3 colors </dd>
+<dt>CUPS_CSPACE_DEVICE4 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 4 colors </dd>
+<dt>CUPS_CSPACE_DEVICE5 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 5 colors </dd>
+<dt>CUPS_CSPACE_DEVICE6 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 6 colors </dd>
+<dt>CUPS_CSPACE_DEVICE7 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 7 colors </dd>
+<dt>CUPS_CSPACE_DEVICE8 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 8 colors </dd>
+<dt>CUPS_CSPACE_DEVICE9 <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 9 colors </dd>
+<dt>CUPS_CSPACE_DEVICEA <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 10 colors </dd>
+<dt>CUPS_CSPACE_DEVICEB <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 11 colors </dd>
+<dt>CUPS_CSPACE_DEVICEC <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 12 colors </dd>
+<dt>CUPS_CSPACE_DEVICED <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 13 colors </dd>
+<dt>CUPS_CSPACE_DEVICEE <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 14 colors </dd>
+<dt>CUPS_CSPACE_DEVICEF <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">DeviceN, 15 colors </dd>
+<dt>CUPS_CSPACE_GMCK <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Gold, magenta, yellow, black </dd>
+<dt>CUPS_CSPACE_GMCS <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Gold, magenta, yellow, silver </dd>
+<dt>CUPS_CSPACE_GOLD <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Gold foil </dd>
+<dt>CUPS_CSPACE_ICC1 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 1 color </dd>
-<dt>CUPS_CSPACE_ICC2 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC2 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 2 colors </dd>
-<dt>CUPS_CSPACE_ICC3 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC3 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 3 colors </dd>
-<dt>CUPS_CSPACE_ICC4 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC4 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 4 colors </dd>
-<dt>CUPS_CSPACE_ICC5 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC5 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 5 colors </dd>
-<dt>CUPS_CSPACE_ICC6 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC6 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 6 colors </dd>
-<dt>CUPS_CSPACE_ICC7 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC7 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 7 colors </dd>
-<dt>CUPS_CSPACE_ICC8 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC8 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 8 colors </dd>
-<dt>CUPS_CSPACE_ICC9 <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICC9 <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 9 colors </dd>
-<dt>CUPS_CSPACE_ICCA <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICCA <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 10 colors </dd>
-<dt>CUPS_CSPACE_ICCB <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICCB <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 11 colors </dd>
-<dt>CUPS_CSPACE_ICCC <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICCC <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 12 colors </dd>
-<dt>CUPS_CSPACE_ICCD <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICCD <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 13 colors </dd>
-<dt>CUPS_CSPACE_ICCE <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICCE <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 14 colors </dd>
-<dt>CUPS_CSPACE_ICCF <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_ICCF <span class="info"> CUPS 1.1.19/macOS 10.3 </span></dt>
<dd class="description">ICC-based, 15 colors </dd>
<dt>CUPS_CSPACE_K </dt>
-<dd class="description">Black</dd>
-<dt>CUPS_CSPACE_KCMY </dt>
-<dd class="description">Black, cyan, magenta, yellow</dd>
-<dt>CUPS_CSPACE_KCMYcm </dt>
-<dd class="description">Black, cyan, magenta, yellow, *
-light-cyan, light-magenta</dd>
+<dd class="description">Black (DeviceK)</dd>
+<dt>CUPS_CSPACE_KCMY <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Black, cyan, magenta, yellow </dd>
+<dt>CUPS_CSPACE_KCMYcm <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Black, cyan, magenta, yellow, light-cyan, light-magenta </dd>
<dt>CUPS_CSPACE_RGB </dt>
-<dd class="description">Red, green, blue</dd>
+<dd class="description">Red, green, blue (DeviceRGB, sRGB by default)</dd>
<dt>CUPS_CSPACE_RGBA </dt>
-<dd class="description">Red, green, blue, alpha</dd>
-<dt>CUPS_CSPACE_RGBW <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
-<dd class="description">Red, green, blue, white </dd>
-<dt>CUPS_CSPACE_SILVER </dt>
-<dd class="description">Silver foil</dd>
+<dd class="description">Red, green, blue, alpha (DeviceRGB, sRGB by default)</dd>
+<dt>CUPS_CSPACE_RGBW <span class="info"> CUPS 1.2/macOS 10.5 </span></dt>
+<dd class="description">Red, green, blue, white (DeviceRGB, sRGB by default) </dd>
+<dt>CUPS_CSPACE_SILVER <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Silver foil </dd>
+<dt>CUPS_CSPACE_SRGB <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">Red, green, blue (sRGB) </dd>
+<dt>CUPS_CSPACE_SW <span class="info"> CUPS 1.4.5 </span></dt>
+<dd class="description">Luminance (gamma 2.2) </dd>
<dt>CUPS_CSPACE_W </dt>
-<dd class="description">Luminance</dd>
-<dt>CUPS_CSPACE_WHITE </dt>
-<dd class="description">White ink (as black)</dd>
-<dt>CUPS_CSPACE_YMC </dt>
-<dd class="description">Yellow, magenta, cyan</dd>
-<dt>CUPS_CSPACE_YMCK </dt>
-<dd class="description">Yellow, magenta, cyan, black</dd>
+<dd class="description">Luminance (DeviceGray, gamma 2.2 by default)</dd>
+<dt>CUPS_CSPACE_WHITE <span class="info"> DEPRECATED </span></dt>
+<dd class="description">White ink (as black) </dd>
+<dt>CUPS_CSPACE_YMC <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Yellow, magenta, cyan </dd>
+<dt>CUPS_CSPACE_YMCK <span class="info"> DEPRECATED </span></dt>
+<dd class="description">Yellow, magenta, cyan, black </dd>
</dl>
<h3 class="enumeration"><a name="cups_cut_e">cups_cut_e</a></h3>
-<p class="description"></p>
+<p class="description">CutMedia attribute values</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>CUPS_CUT_FILE </dt>
<dd class="description">Cut the roll after this set</dd>
</dl>
<h3 class="enumeration"><a name="cups_edge_e">cups_edge_e</a></h3>
-<p class="description"></p>
+<p class="description">LeadingEdge attribute values</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>CUPS_EDGE_BOTTOM </dt>
<dd class="description">Leading edge is the top of the page</dd>
</dl>
<h3 class="enumeration"><a name="cups_jog_e">cups_jog_e</a></h3>
-<p class="description"></p>
+<p class="description">Jog attribute values</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>CUPS_JOG_FILE </dt>
<dd class="description">Move pages after this set</dd>
</dl>
<h3 class="enumeration"><a name="cups_mode_e">cups_mode_e</a></h3>
-<p class="description"></p>
+<p class="description">cupsRasterOpen modes</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>CUPS_RASTER_READ </dt>
<dd class="description">Open stream for reading</dd>
<dt>CUPS_RASTER_WRITE </dt>
<dd class="description">Open stream for writing</dd>
-<dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info"> CUPS 1.3 </span></dt>
+<dt>CUPS_RASTER_WRITE_COMPRESSED <span class="info"> CUPS 1.3/macOS 10.5 </span></dt>
<dd class="description">Open stream for compressed writing </dd>
+<dt>CUPS_RASTER_WRITE_PWG <span class="info"> CUPS 1.5/macOS 10.7 </span></dt>
+<dd class="description">Open stream for compressed writing in PWG mode </dd>
</dl>
<h3 class="enumeration"><a name="cups_order_e">cups_order_e</a></h3>
<p class="description">cupsColorOrder attribute values</p>
<dd class="description">CCC ... MMM ... YYY ... KKK ...</dd>
</dl>
<h3 class="enumeration"><a name="cups_orient_e">cups_orient_e</a></h3>
-<p class="description"></p>
+<p class="description">Orientation attribute values</p>
<h4 class="constants">Constants</h4>
<dl>
<dt>CUPS_ORIENT_0 </dt>