-<!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">
+<meta name="creator" content="Mini-XML v2.6">
<style type="text/css"><!--
BODY {
font-family: lucida grande, geneva, helvetica, arial, sans-serif;
margin-left: 36pt;
}
+P.example {
+ font-style: italic;
+ margin-left: 36pt;
+}
+
PRE.example {
background: #eeeeee;
border: dotted thin #999999;
padding: 10pt;
}
+A IMG {
+ border: none;
+}
+
+A:link:hover IMG {
+ background: #f0f0f0;
+ border-radius: 10px;
+ -moz-border-radius: 10px;
+}
+
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
font-size: 50%;
}
+TR.data, TD.data, TR.data TD {
+ margin-top: 10pt;
+ padding: 5pt;
+ border-bottom: solid 1pt #999999;
+}
+
+TR.data TH {
+ border-bottom: solid 1pt #999999;
+ padding-top: 10pt;
+ padding-left: 5pt;
+ text-align: left;
+}
+
DIV.table TABLE {
border: solid thin #999999;
border-collapse: collapse;
}
TH.label {
- padding-top: 5pt;
text-align: right;
vertical-align: top;
}
+TH.sublabel {
+ text-align: right;
+ font-weight: normal;
+}
+
HR {
border: solid thin;
}
SPAN.info {
- background: #000000;
- border: thin solid #000000;
- color: #ffffff;
+ background: black;
+ border: thin solid black;
+ color: white;
font-size: 80%;
font-style: italic;
font-weight: bold;
border-bottom: solid 2pt #000000;
}
+DIV.indent, TABLE.indent {
+ margin-top: 2em;
+ margin-left: auto;
+ margin-right: auto;
+ width: 90%;
+}
+
+TABLE.indent {
+ border-collapse: collapse;
+}
+
+TABLE.indent TD, TABLE.indent TH {
+ padding: 0;
+}
+
+TABLE.list {
+ border-collapse: collapse;
+ margin-left: auto;
+ margin-right: auto;
+ width: 90%;
+}
+
+TABLE.list TH {
+ background: white;
+ border-bottom: solid thin #cccccc;
+ color: #444444;
+ padding-top: 10pt;
+ padding-left: 5pt;
+ text-align: left;
+ vertical-align: bottom;
+ white-space: nowrap;
+}
+
+TABLE.list TH A {
+ color: #4444cc;
+}
+
+TABLE.list TD {
+ border-bottom: solid thin #eeeeee;
+ padding-top: 5pt;
+ padding-left: 5pt;
+}
+
+TABLE.list TR:nth-child(even) {
+ background: #f8f8f8;
+}
+
+TABLE.list TR:nth-child(odd) {
+ background: #f4f4f4;
+}
+
DT {
margin-left: 36pt;
margin-top: 12pt;
font-family: monaco, courier, monospace;
}
-SPAN.message {
- font-style: italic;
- font-size: smaller;
-}
-
DIV.summary TABLE {
border: solid thin #999999;
border-collapse: collapse;
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>
+<ul class="subcontents">
<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>
+</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
-V1 page header structure.">cupsRasterReadHeader</a></li>
+version 1 page header structure.">cupsRasterReadHeader</a></li>
<li><a href="#cupsRasterReadHeader2" title="Read a raster page header and store it in a
-V2 page header structure.">cupsRasterReadHeader2</a></li>
+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 V1 page
+<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 V2 page
-header structure.">cupsRasterWriteHeader2</a></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>
+</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_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_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_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_page_header_t" title="Version 1 page header ">cups_page_header_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">
<li><a href="#cups_page_header2_s" title="Version 2 page header ">cups_page_header2_s</a></li>
- <li><a href="#cups_page_header_s" title="Version 1 page header">cups_page_header_s</a></li>
+ <li><a href="#cups_page_header_s" title="Version 1 page header ">cups_page_header_s</a></li>
</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_order_e" title="cupsColorOrder attribute values">cups_order_e</a></li>
<li><a href="#cups_orient_e" title="">cups_orient_e</a></li>
</ul></li>
-</ul>
<!--
"$Id$"
raster format is updated from time to time, it is important to use this API to
avoid incompatibilities with newer versions of CUPS.</p>
+<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
+convert CUPS raster files into a format usable by the printer. Printer
+driver filters are by far the most common.</p>
+
<p>CUPS raster files (<code>application/vnd.cups-raster</code>) consists of
a stream of raster page descriptions produced by one of the RIP filters such as
<var>pstoraster</var>, <var>imagetoraster</var>, or
<p>Each page of data begins with a page dictionary structure called
<a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a>. This
structure contains the colorspace, bits per color, media size, media type,
-hardware resolution, and so forth used for the page. You read the page header
-using the
+hardware resolution, and so forth used for the page.</p>
+
+<blockquote><b>Note:</b>
+
+ <p>Do not confuse the colorspace in the page header with the PPD
+ <tt>ColorModel</tt> keyword. <tt>ColorModel</tt> refers to the general type of
+ color used for a device (Gray, RGB, CMYK, DeviceN) and is often used to
+ select a particular colorspace for the page header along with the associate
+ color profile. The page header colorspace (<tt>cupsColorSpace</tt>) describes
+ both the type and organization of the color data, for example KCMY (black
+ first) instead of CMYK and RGBA (RGB + alpha) instead of RGB.</p>
+
+</blockquote>
+
+<p>You read the page header using the
<a href="#cupsRasterReadHeader2"><code>cupsRasterReadHeader2</code></a>
function:</p>
if (<a href="#cupsRasterReadPixels">cupsRasterReadPixels</a>(ras, buffer, header.cupsBytesPerLine) == 0)
break;
- /* write raster data to printer */
+ /* write raster data to printer on stdout */
}
/* finish this page */
<a href="#cupsRasterClose">cupsRasterClose</a>(ras);
</pre>
+
+
+<h2 class='title'><a name="TASKS">Functions by Task</a></h2>
+
+<h3><a name="OPENCLOSE">Opening and Closing Raster Streams</a></h3>
+
+<ul class="code">
+
+ <li><a href="#cupsRasterClose" title="Close a raster stream.">cupsRasterClose</a></li>
+ <li><a href="#cupsRasterOpen" title="Open a raster stream.">cupsRasterOpen</a></li>
+
+</ul>
+
+<h3><a name="READING">Reading Raster Streams</a></h3>
+
+<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="#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>
+
+<h3><a name="WRITING">Writing Raster Streams</a></h3>
+
+<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="#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>
<p class="description">Close a raster stream.</p>
<dt>r</dt>
<dd class="description">Stream to close</dd>
</dl>
-<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="cupsRasterInterpretPPD">cupsRasterInterpretPPD</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>
<p class="description">Interpret PPD commands to create a page header.</p>
<p class="code">
int cupsRasterInterpretPPD (<br>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>h</dt>
-<dd class="description">Page header</dd>
+<dd class="description">Page header to create</dd>
<dt>ppd</dt>
<dd class="description">PPD file</dd>
<dt>num_options</dt>
<dt>options</dt>
<dd class="description">Options</dd>
<dt>func</dt>
-<dd class="description">Optional page header callback</dd>
+<dd class="description">Optional page header callback (<code>NULL</code> for none)</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, -1 on failure</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">This function does not mark the options in the PPD using the "num_options"
-and "options" arguments. Instead, mark the options with
-<code>cupsMarkOptions</code> and <code>ppdMarkOption</code> prior to calling
-<code>cupsRasterInterpretPPD</code> - this allows you to do per-page options
-without manipulating the options array.<br>
+<p class="discussion">This function is used by raster image processing (RIP) filters like
+cgpdftoraster and imagetoraster when writing CUPS raster data for a page.
+It is not used by raster printer driver filters which only read CUPS
+raster data.<br>
+<br>
+
+<code>cupsRasterInterpretPPD</code> does not mark the options in the PPD using
+the "num_options" and "options" arguments. Instead, mark the options with
+<code>cupsMarkOptions</code> and <code>ppdMarkOption</code> prior to calling it -
+this allows for per-page options without manipulating the options array.<br>
<br>
The "func" argument specifies an optional callback function that is
called prior to the computation of the final raster data. The function
can make changes to the <a href="#cups_page_header2_t"><code>cups_page_header2_t</code></a> data as needed to use a
supported raster format and then returns 0 on success and -1 if the
-requested attributes cannot be supported.
+requested attributes cannot be supported.<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>,
<dt>fd</dt>
<dd class="description">File descriptor</dd>
<dt>mode</dt>
-<dd class="description">Mode</dd>
+<dd class="description">Mode - <code>CUPS_RASTER_READ</code>, <code>CUPS_RASTER_WRITE</code>, or <code>CUPS_RASTER_WRITE_COMPRESSED</code></dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">New stream</p>
-<h3 class="function"><a name="cupsRasterReadHeader">cupsRasterReadHeader</a></h3>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function associates a raster stream with the given file descriptor.
+For most printer driver filters, "fd" will be 0 (stdin). For most raster
+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>
+<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
-V1 page header structure.</p>
+version 1 page header structure.</p>
<p class="code">
unsigned cupsRasterReadHeader (<br>
<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
<dd class="description">Pointer to header data</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">1 on success, 0 on fail</p>
-<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="cupsRasterReadHeader2">cupsRasterReadHeader2</a></h3>
+<p class="description">1 on success, 0 on failure/end-of-file</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">This function is deprecated. Use <a href="#cupsRasterReadHeader2"><code>cupsRasterReadHeader2</code></a> instead.<br>
+<br>
+Version 1 page headers were used in CUPS 1.0 and 1.1 and contain a subset
+of the version 2 page header data. This function handles reading version 2
+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>
<p class="description">Read a raster page header and store it in a
-V2 page header structure.</p>
+version 2 page header structure.</p>
<p class="code">
unsigned cupsRasterReadHeader2 (<br>
<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
<dd class="description">Pointer to header data</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">1 on success, 0 on fail</p>
+<p class="description">1 on success, 0 on failure/end-of-file</p>
<h3 class="function"><a name="cupsRasterReadPixels">cupsRasterReadPixels</a></h3>
<p class="description">Read raster pixels.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes read</p>
-<h3 class="function"><a name="cupsRasterWriteHeader">cupsRasterWriteHeader</a></h3>
-<p class="description">Write a raster page header from a V1 page
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">For best performance, filters should read one or more whole lines.
+The "cupsBytesPerLine" value from the page header can be used to allocate
+the line buffer and as the number of bytes to read.</p>
+<h3 class="function"><span class="info"> DEPRECATED </span><a name="cupsRasterWriteHeader">cupsRasterWriteHeader</a></h3>
+<p class="description">Write a raster page header from a version 1 page
header structure.</p>
<p class="code">
unsigned cupsRasterWriteHeader (<br>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
-<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="cupsRasterWriteHeader2">cupsRasterWriteHeader2</a></h3>
-<p class="description">Write a raster page header from a V2 page
-header structure.</p>
+<h4 class="discussion">Discussion</h4>
+<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>
+<p class="description">Write a raster page header from a version 2
+page header structure.</p>
<p class="code">
unsigned cupsRasterWriteHeader2 (<br>
<a href="#cups_raster_t">cups_raster_t</a> *r,<br>
</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 page header can be initialized using <a href="#cupsRasterInterpretPPD"><code>cupsRasterInterpretPPD</code></a>.
+
+</p>
<h3 class="function"><a name="cupsRasterWritePixels">cupsRasterWritePixels</a></h3>
<p class="description">Write raster pixels.</p>
<p class="code">
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Number of bytes written</p>
+<h4 class="discussion">Discussion</h4>
+<p class="discussion">For best performance, filters should write one or more whole lines.
+The "cupsBytesPerLine" value from the page header can be used to allocate
+the line buffer and as the number of bytes to write.</p>
<h2 class="title"><a name="TYPES">Data Types</a></h2>
+<h3 class="typedef"><a name="cups_adv_t">cups_adv_t</a></h3>
+<p class="description">AdvanceMedia attribute values</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="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="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="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="code">
+typedef enum <a href="#cups_edge_e">cups_edge_e</a> cups_edge_t;
+</p>
<h3 class="typedef"><a name="cups_interpret_cb_t">cups_interpret_cb_t</a></h3>
<p class="description">cupsRasterInterpretPPD callback function</p>
<p class="code">
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="code">
+typedef enum <a href="#cups_jog_e">cups_jog_e</a> cups_jog_t;
+</p>
<h3 class="typedef"><a name="cups_mode_t">cups_mode_t</a></h3>
<p class="description">cupsRasterOpen modes</p>
<p class="code">
typedef enum <a href="#cups_mode_e">cups_mode_e</a> cups_mode_t;
</p>
-<h3 class="typedef"><span class="info"> CUPS 1.2 </span><a name="cups_page_header2_t">cups_page_header2_t</a></h3>
+<h3 class="typedef"><a name="cups_order_t">cups_order_t</a></h3>
+<p class="description">cupsColorOrder attribute values</p>
+<p class="code">
+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="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>
<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>
-<h3 class="typedef"><a name="cups_page_header_t">cups_page_header_t</a></h3>
-<p class="description">Version 1 page header</p>
+<h3 class="typedef"><span class="info"> DEPRECATED </span><a name="cups_page_header_t">cups_page_header_t</a></h3>
+<p class="description">Version 1 page header </p>
<p class="code">
typedef struct <a href="#cups_page_header_s">cups_page_header_s</a> cups_page_header_t;
</p>
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 </span><a name="cups_page_header2_s">cups_page_header2_s</a></h3>
+<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>
<p class="description">Version 2 page header </p>
<p class="code">struct cups_page_header2_s {<br>
unsigned AdvanceDistance;<br>
- cups_adv_t AdvanceMedia;<br>
- cups_bool_t Collate;<br>
- cups_cut_t CutMedia;<br>
- cups_bool_t Duplex;<br>
+ <a href="#cups_adv_t">cups_adv_t</a> AdvanceMedia;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Collate;<br>
+ <a href="#cups_cut_t">cups_cut_t</a> CutMedia;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Duplex;<br>
unsigned HWResolution[2];<br>
unsigned ImagingBoundingBox[4];<br>
- cups_bool_t InsertSheet;<br>
- cups_jog_t Jog;<br>
- cups_edge_t LeadingEdge;<br>
- cups_bool_t ManualFeed;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> InsertSheet;<br>
+ <a href="#cups_jog_t">cups_jog_t</a> Jog;<br>
+ <a href="#cups_edge_t">cups_edge_t</a> LeadingEdge;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> ManualFeed;<br>
unsigned Margins[2];<br>
char MediaClass[64];<br>
char MediaColor[64];<br>
unsigned MediaPosition;<br>
char MediaType[64];<br>
unsigned MediaWeight;<br>
- cups_bool_t MirrorPrint;<br>
- cups_bool_t NegativePrint;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> MirrorPrint;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> NegativePrint;<br>
unsigned NumCopies;<br>
- cups_orient_t Orientation;<br>
- cups_bool_t OutputFaceUp;<br>
+ <a href="#cups_orient_t">cups_orient_t</a> Orientation;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> OutputFaceUp;<br>
char OutputType[64];<br>
unsigned PageSize[2];<br>
- cups_bool_t Separations;<br>
- cups_bool_t TraySwitch;<br>
- cups_bool_t Tumble;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Separations;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> TraySwitch;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Tumble;<br>
unsigned cupsBitsPerColor;<br>
unsigned cupsBitsPerPixel;<br>
float cupsBorderlessScalingFactor;<br>
unsigned cupsBytesPerLine;<br>
- cups_order_t cupsColorOrder;<br>
- cups_cspace_t cupsColorSpace;<br>
+ <a href="#cups_order_t">cups_order_t</a> cupsColorOrder;<br>
+ <a href="#cups_cspace_t">cups_cspace_t</a> cupsColorSpace;<br>
unsigned cupsCompression;<br>
unsigned cupsHeight;<br>
float cupsImagingBBox[4];<br>
<dt>AdvanceDistance </dt>
<dd class="description">AdvanceDistance value in points</dd>
<dt>AdvanceMedia </dt>
-<dd class="description">AdvanceMedia value (see above)</dd>
+<dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
<dt>Collate </dt>
<dd class="description">Collated copies value</dd>
<dt>CutMedia </dt>
-<dd class="description">CutMedia value (see above)</dd>
+<dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
<dt>Duplex </dt>
<dd class="description">Duplexed (double-sided) value</dd>
<dt>HWResolution[2] </dt>
<dd class="description">Resolution in dots-per-inch</dd>
<dt>ImagingBoundingBox[4] </dt>
-<dd class="description">Pixel region that is painted (points)</dd>
+<dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
<dt>InsertSheet </dt>
<dd class="description">InsertSheet value</dd>
<dt>Jog </dt>
-<dd class="description">Jog value (see above)</dd>
+<dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
<dt>LeadingEdge </dt>
-<dd class="description">LeadingEdge value (see above)</dd>
+<dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
<dt>ManualFeed </dt>
<dd class="description">ManualFeed value</dd>
<dt>Margins[2] </dt>
<dt>NumCopies </dt>
<dd class="description">Number of copies to produce</dd>
<dt>Orientation </dt>
-<dd class="description">Orientation value (see above)</dd>
+<dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
<dt>OutputFaceUp </dt>
<dd class="description">OutputFaceUp value</dd>
<dt>OutputType[64] </dt>
<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 </span></dt>
+<dt>cupsBorderlessScalingFactor <span class="info"> CUPS 1.2/Mac OS X 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 </span></dt>
-<dd class="description">Floating point ImagingBoundingBox *
-(scaling factor not applied) </dd>
-<dt>cupsInteger[16] <span class="info"> CUPS 1.2 </span></dt>
+<dt>cupsImagingBBox[4] <span class="info"> CUPS 1.2/Mac OS X 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>
<dd class="description">User-defined integer values </dd>
-<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2 </span></dt>
+<dt>cupsMarkerType[64] <span class="info"> CUPS 1.2/Mac OS X 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 </span></dt>
-<dd class="description">Number of colors </dd>
-<dt>cupsPageSizeName[64] <span class="info"> CUPS 1.2 </span></dt>
+<dt>cupsNumColors <span class="info"> CUPS 1.2/Mac OS X 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>
<dd class="description">PageSize name </dd>
-<dt>cupsPageSize[2] <span class="info"> CUPS 1.2 </span></dt>
+<dt>cupsPageSize[2] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
<dd class="description">Floating point PageSize (scaling *
factor not applied) </dd>
-<dt>cupsReal[16] <span class="info"> CUPS 1.2 </span></dt>
+<dt>cupsReal[16] <span class="info"> CUPS 1.2/Mac OS X 10.5 </span></dt>
<dd class="description">User-defined floating-point values </dd>
-<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2 </span></dt>
+<dt>cupsRenderingIntent[64] <span class="info"> CUPS 1.2/Mac OS X 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 </span></dt>
+<dt>cupsString[16][64] <span class="info"> CUPS 1.2/Mac OS X 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>
</dl>
-<h3 class="struct"><a name="cups_page_header_s">cups_page_header_s</a></h3>
-<p class="description">Version 1 page header</p>
+<h3 class="struct"><span class="info"> DEPRECATED </span><a name="cups_page_header_s">cups_page_header_s</a></h3>
+<p class="description">Version 1 page header </p>
<p class="code">struct cups_page_header_s {<br>
unsigned AdvanceDistance;<br>
- cups_adv_t AdvanceMedia;<br>
- cups_bool_t Collate;<br>
- cups_cut_t CutMedia;<br>
- cups_bool_t Duplex;<br>
+ <a href="#cups_adv_t">cups_adv_t</a> AdvanceMedia;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Collate;<br>
+ <a href="#cups_cut_t">cups_cut_t</a> CutMedia;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Duplex;<br>
unsigned HWResolution[2];<br>
unsigned ImagingBoundingBox[4];<br>
- cups_bool_t InsertSheet;<br>
- cups_jog_t Jog;<br>
- cups_edge_t LeadingEdge;<br>
- cups_bool_t ManualFeed;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> InsertSheet;<br>
+ <a href="#cups_jog_t">cups_jog_t</a> Jog;<br>
+ <a href="#cups_edge_t">cups_edge_t</a> LeadingEdge;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> ManualFeed;<br>
unsigned Margins[2];<br>
char MediaClass[64];<br>
char MediaColor[64];<br>
unsigned MediaPosition;<br>
char MediaType[64];<br>
unsigned MediaWeight;<br>
- cups_bool_t MirrorPrint;<br>
- cups_bool_t NegativePrint;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> MirrorPrint;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> NegativePrint;<br>
unsigned NumCopies;<br>
- cups_orient_t Orientation;<br>
- cups_bool_t OutputFaceUp;<br>
+ <a href="#cups_orient_t">cups_orient_t</a> Orientation;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> OutputFaceUp;<br>
char OutputType[64];<br>
unsigned PageSize[2];<br>
- cups_bool_t Separations;<br>
- cups_bool_t TraySwitch;<br>
- cups_bool_t Tumble;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Separations;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> TraySwitch;<br>
+ <a href="#cups_bool_t">cups_bool_t</a> Tumble;<br>
unsigned cupsBitsPerColor;<br>
unsigned cupsBitsPerPixel;<br>
unsigned cupsBytesPerLine;<br>
- cups_order_t cupsColorOrder;<br>
- cups_cspace_t cupsColorSpace;<br>
+ <a href="#cups_order_t">cups_order_t</a> cupsColorOrder;<br>
+ <a href="#cups_cspace_t">cups_cspace_t</a> cupsColorSpace;<br>
unsigned cupsCompression;<br>
unsigned cupsHeight;<br>
unsigned cupsMediaType;<br>
<dt>AdvanceDistance </dt>
<dd class="description">AdvanceDistance value in points</dd>
<dt>AdvanceMedia </dt>
-<dd class="description">AdvanceMedia value (see above)</dd>
+<dd class="description">AdvanceMedia value (<a href="#cups_adv_t"><code>cups_adv_t</code></a>)</dd>
<dt>Collate </dt>
<dd class="description">Collated copies value</dd>
<dt>CutMedia </dt>
-<dd class="description">CutMedia value (see above)</dd>
+<dd class="description">CutMedia value (<a href="#cups_cut_t"><code>cups_cut_t</code></a>)</dd>
<dt>Duplex </dt>
<dd class="description">Duplexed (double-sided) value</dd>
<dt>HWResolution[2] </dt>
<dd class="description">Resolution in dots-per-inch</dd>
<dt>ImagingBoundingBox[4] </dt>
-<dd class="description">Pixel region that is painted (points)</dd>
+<dd class="description">Pixel region that is painted (points, left, bottom, right, top)</dd>
<dt>InsertSheet </dt>
<dd class="description">InsertSheet value</dd>
<dt>Jog </dt>
-<dd class="description">Jog value (see above)</dd>
+<dd class="description">Jog value (<a href="#cups_jog_t"><code>cups_jog_t</code></a>)</dd>
<dt>LeadingEdge </dt>
-<dd class="description">LeadingEdge value (see above)</dd>
+<dd class="description">LeadingEdge value (<a href="#cups_edge_t"><code>cups_edge_t</code></a>)</dd>
<dt>ManualFeed </dt>
<dd class="description">ManualFeed value</dd>
<dt>Margins[2] </dt>
<dt>NumCopies </dt>
<dd class="description">Number of copies to produce</dd>
<dt>Orientation </dt>
-<dd class="description">Orientation value (see above)</dd>
+<dd class="description">Orientation value (<a href="#cups_orient_t"><code>cups_orient_t</code></a>)</dd>
<dt>OutputFaceUp </dt>
<dd class="description">OutputFaceUp value</dd>
<dt>OutputType[64] </dt>
<p class="description"></p>
<h4 class="constants">Constants</h4>
<dl>
-<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19 </span></dt>
+<dt>CUPS_CSPACE_CIELab <span class="info"> CUPS 1.1.19/Mac OS X 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/Mac OS X 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">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>
+<dt>CUPS_CSPACE_ICC1 <span class="info"> CUPS 1.1.19/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 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/Mac OS X 10.3 </span></dt>
<dd class="description">ICC-based, 15 colors </dd>
<dt>CUPS_CSPACE_K </dt>
<dd class="description">Black</dd>
<dd class="description">Red, green, blue</dd>
<dt>CUPS_CSPACE_RGBA </dt>
<dd class="description">Red, green, blue, alpha</dd>
-<dt>CUPS_CSPACE_RGBW <span class="info"> CUPS 1.2 </span></dt>
+<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">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/Mac OS X 10.5 </span></dt>
<dd class="description">Open stream for compressed writing </dd>
</dl>
<h3 class="enumeration"><a name="cups_order_e">cups_order_e</a></h3>