]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
Documentation updates.
authorMichael R Sweet <michael.r.sweet@gmail.com>
Mon, 18 Feb 2019 15:33:49 +0000 (10:33 -0500)
committerMichael R Sweet <michael.r.sweet@gmail.com>
Mon, 18 Feb 2019 15:33:49 +0000 (10:33 -0500)
21 files changed:
cups/Makefile
cups/api-admin.shtml
cups/api-filter.shtml
cups/api-ppd.header
cups/api-ppd.shtml
cups/api-raster.header
cups/api-raster.shtml
cups/cupspm.md
doc/cups-printable.css
doc/help/api-admin.html
doc/help/api-filter.html
doc/help/api-ppd.html
doc/help/api-raster.html
doc/help/cupspm.epub
doc/help/cupspm.html
doc/help/postscript-driver.html
doc/help/ppd-compiler.html
doc/help/raster-driver.html
doc/help/spec-ppd.html
filter/Makefile
filter/spec-ppd.shtml

index 38080914d36925f231c86de5913210520dd99076..386a665982529f3e185594c13f1cb521ffb3d3bc 100644 (file)
@@ -752,21 +752,21 @@ apihelp:
        $(RM) cupspm.xml
        codedoc --section "Programming" --title "Administration APIs" \
                --css ../doc/cups-printable.css \
-               --header api-admin.header --intro api-admin.shtml \
+               --header api-admin.header --body api-admin.shtml \
                adminutil.c adminutil.h getdevices.c >../doc/help/api-admin.html
        codedoc --section "Programming" --title "PPD API (DEPRECATED)" \
                --css ../doc/cups-printable.css \
-               --header api-ppd.header --intro api-ppd.shtml \
-               ppd.h ppd-*.c >../doc/help/api-ppd.html
+               --header api-ppd.header --body api-ppd.shtml \
+               ppd.h ppd-*.c raster-interstub.c >../doc/help/api-ppd.html
        codedoc --section "Programming" --title "Raster API" \
                --css ../doc/cups-printable.css \
-               --header api-raster.header --intro api-raster.shtml \
-               ../cups/raster.h interpret.c raster.c \
+               --header api-raster.header --body api-raster.shtml \
+               ../cups/raster.h raster-stubs.c \
                >../doc/help/api-raster.html
        codedoc --section "Programming" \
                --title "Filter and Backend Programming" \
                --css ../doc/cups-printable.css \
-               --header api-filter.header --intro api-filter.shtml \
+               --header api-filter.header --body api-filter.shtml \
                backchannel.c backend.h backend.c sidechannel.c sidechannel.h \
                >../doc/help/api-filter.html
 
index 70d284695a4bff1e8c2df3602758d984b9a8980f..ab00c9be8aaf3fb7b36d2bba0f821ad2f12b7238 100644 (file)
@@ -11,7 +11,7 @@
 
 <p>The administrative APIs provide convenience functions to perform certain administrative functions with the CUPS scheduler.</p>
 
-<blockquote><b>Note:<b>
+<blockquote><b>Note:</b>
   <p>Administrative functions normally require administrative privileges to execute and must not be used in ordinary user applications!</p>
 </blockquote>
 
index 0a1e429849cd7e5b3facf8f6ef94629835ac4d4f..e7ab51014648f4a43d32bfdf9789d23540e2a131 100644 (file)
@@ -868,4 +868,7 @@ void *my_data;
 
 </ol>
 
-<blockquote><b>Note:</b> The sandbox profile used in CUPS 2.0 still allows some actions that are not listed above - these privileges will be removed over time until the profile matches the list above.</blockquote>
+<blockquote><b>Note:</b>
+
+<p>The sandbox profile used in CUPS still allows some actions that are not listed above - these privileges will be removed over time until the profile matches the list above.</p>
+</blockquote>
index cb24cd364406ad248b079c795b1d3c80f2bb1b3f..bc555e638fe21288703ea3ba1965ce6c28212b05 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   PPD API header for CUPS.
 
-  Copyright © 2008-2012 by Apple Inc.
+  Copyright © 2008-2019 by Apple Inc.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
   information.
@@ -9,7 +9,10 @@
 
 <h1 class='title'>PPD API (DEPRECATED)</h1>
 
-<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
+<blockquote><b>Note:</b>
+
+<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p>
+</blockquote>
 
 <div class='summary'><table summary='General Information'>
 <thead>
@@ -26,7 +29,7 @@
 <tr>
        <th>See Also</th>
        <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a><br>
-       Programming: <a href='api-cups.html' target='_top'>CUPS API</a><br>
+       Programming: <a href='cupspm.html' target='_top'>CUPS Programming Manual</a><br>
        Specifications: <a href='spec-ppd.html' target='_top'>CUPS PPD Extensions</a></td>
 </tr>
 </tbody>
index e9eb1cb67e7627f1733b2e1c0e5fdf6c6dd595b3..d7a43f48fa629bd381f81bb9e544b2674d18c8f2 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   PPD API introduction for CUPS.
 
-  Copyright © 2007-2018 by Apple Inc.
+  Copyright © 2007-2019 by Apple Inc.
   Copyright © 1997-2006 by Easy Software Products, all rights reserved.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
 
 <h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
 
-<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
+<blockquote><b>Note:</b>
+
+<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p>
+</blockquote>
 
 <p>The CUPS PPD API provides read-only access the data in PostScript Printer
 Description ("PPD") files which are used for all printers with a driver. With
@@ -28,6 +31,7 @@ values as case-insensitive strings, so option "InputSlot" and choice "Upper"
 are equivalent to "inputslot" and "upper", respectively.</p>
 </blockquote>
 
+
 <h3><a name="LOADING">Loading a PPD File</a></h3>
 
 <p>The <a href="#ppdOpenFile"><code>ppdOpenFile</code></a> function "opens" a
@@ -115,6 +119,7 @@ int num_options = cupsParseOptions(argv[5], 0, &amp;options);
 cupsFreeOptions(num_options, options);
 </pre>
 
+
 <h3><a name="CONSTRAINTS">Constraints</a></h3>
 
 <p>PPD files support specification of conflict conditions, called
@@ -125,6 +130,7 @@ the options and choices that conflict with each other. The
 how many of the selected options are incompatible. Since constraints are
 normally specified in pairs, the returned value is typically an even number.</p>
 
+
 <h3><a name="PAGE_SIZES">Page Sizes</a></h3>
 
 <p>Page sizes are special options which have physical dimensions and margins
@@ -179,6 +185,7 @@ in points. Custom page size names can also be specified in inches
 <a href="#ppdPageSize"><code>ppdPageSize</code></a> function will return
 <code>NULL</code>.</p>
 
+
 <h3><a name="ATTRIBUTES">Attributes</a></h3>
 
 <p>Every PPD file is composed of one or more attributes. Most of these
index 45fa720c986f2213e54e78e3bb98e2e584132b96..f5122d865fe6847dc18a28b81fb2480c74c3cc5c 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Raster API documentation for CUPS.
 
-  Copyright © 2008-2010 by Apple Inc.
+  Copyright © 2008-2019 by Apple Inc.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
   information.
 <tbody>
 <tr>
        <th>Library</th>
-       <td>-lcupsimage</td>
+       <td>-lcups</td>
 </tr>
 <tr>
        <th>See Also</th>
-       <td>Programming: <a href='api-overview.html'>Introduction to CUPS Programming</a><br>
-       Programming: <a href='api-cups.html'>CUPS API</a><br>
-       Programming: <a href='api-cups.html'>PPD API</a><br>
+       <td>Programming: <a href='cupspm.html'>CUPS Programming Manual</a><br>
+       Programming: <a href='api-ppd.html'>PPD API</a><br>
        References: <a href='spec-ppd.html'>CUPS PPD Specification</a></td>
 </tr>
 </tbody>
index d2b8a207ba198073c37f7d12b5020edb8d601b7f..44a60371142cbacab1a702e291952a91f5d6c4ac 100644 (file)
@@ -1,7 +1,7 @@
 <!--
   Raster API introduction for CUPS.
 
-  Copyright © 2007-2013 by Apple Inc.
+  Copyright © 2007-2019 by Apple Inc.
   Copyright © 1997-2006 by Easy Software Products, all rights reserved.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -147,7 +147,7 @@ the memory used to read the raster file:</p>
 
 <ul class="code">
 
-       <li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
+       <li><a href="#cupsRasterInitPWGHeader" title="Interpret IPP attributes to create a page header.">cupsRasterInitPWGHeader</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/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>
index 774f1b1b458f6b60ad78403b27318c590af70077..260b261f512033293c9f547703b75b9705ee8350 100644 (file)
@@ -1,7 +1,7 @@
 ---
 title: CUPS Programming Manual
 author: Michael R Sweet
-copyright: Copyright © 2007-2018 by Apple Inc. All Rights Reserved.
+copyright: Copyright © 2007-2019 by Apple Inc. All Rights Reserved.
 version: 2.3.0
 ...
 
@@ -25,7 +25,7 @@ the CUPS scheduler.
 
 ## Guidelines
 
-When writing software that uses the "cups" library:
+When writing software (other than printer drivers) that uses the "cups" library:
 
 - Do not use undocumented or deprecated APIs,
 - Do not rely on pre-configured printers,
@@ -42,16 +42,23 @@ Similarly, printer and job management applications can use standard query
 operations to obtain the status information in a common, generic form and use
 standard management operations to control the state of those printers and jobs.
 
+> **Note:**
+>
+> CUPS printer drivers necessarily depend on specific file formats and certain
+> implementation details of the CUPS software.  Please consult the Postscript
+> and raster printer driver developer documentation on
+> [CUPS.org](https://www.cups.org/documentation.html) for more information.
+
 
 ## Terms Used in This Document
 
 A *Destination* is a printer or print queue that accepts print jobs.  A
-*Print Job* is one or more documents that are processed by a destination
-using options supplied when creating the job.  A *Document* is a file (JPEG
-image, PDF file, etc.) suitable for printing.  An *Option* controls some aspect
-of printing, such as the media used. *Media* is the sheets or roll that is
-printed on.  An *Attribute* is an option encoded for an Internet Printing
-Protocol (IPP) request.
+*Print Job* is a collection of one or more documents that are processed by a
+destination using options supplied when creating the job.  A *Document* is a
+file (JPEG image, PDF file, etc.) suitable for printing.  An *Option* controls
+some aspect of printing, such as the media used. *Media* is the sheets or roll
+that is printed on.  An *Attribute* is an option encoded for an Internet
+Printing Protocol (IPP) request.
 
 
 ## Compiling Programs That Use the CUPS API
@@ -195,7 +202,9 @@ can have any of the following constant (bit) values set:
 
 The callback function returns 0 to stop enumeration or 1 to continue.
 
-> Note that the callback function will likely be called multiple times for the
+> **Note:**
+>
+> The callback function will likely be called multiple times for the
 > same destination, so it is up to the caller to suppress any duplicate
 > destinations.
 
@@ -817,7 +826,9 @@ which printer is being queried:
     ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
                  "printer-uri", NULL, printer_uri);
 
-> Note: If we wanted to query the scheduler instead of the device, we would look
+> **Note:**
+>
+> If we wanted to query the scheduler instead of the device, we would look
 > up the "printer-uri-supported" option instead of the "device-uri" value.
 
 The `ippAddString` function adds the "printer-uri" attribute the the IPP
index a382306a4c12cdef4d808e80491f0a84506df419..058718be074dac27037fd1b3fd2aee37f02383d5 100644 (file)
@@ -353,14 +353,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -383,12 +382,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
index e5ae8181942b40b94b5d60291176cc4eae20f185..f9969d4a9a8b9793347de6172aaa8d3338fcf373 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>Administration APIs</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -503,7 +514,7 @@ h3.title {
 
 <p>The administrative APIs provide convenience functions to perform certain administrative functions with the CUPS scheduler.</p>
 
-<blockquote><b>Note:<b>
+<blockquote><b>Note:</b>
   <p>Administrative functions normally require administrative privileges to execute and must not be used in ordinary user applications!</p>
 </blockquote>
 
index 299e5e1d2a79e4f42cb13674adf2dde9e4a3676f..eddd06389b42092e49639973acea0f26ab366dfc 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>Filter and Backend Programming</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -1394,7 +1405,10 @@ void *my_data;
 
 </ol>
 
-<blockquote><b>Note:</b> The sandbox profile used in CUPS 2.0 still allows some actions that are not listed above - these privileges will be removed over time until the profile matches the list above.</blockquote>
+<blockquote><b>Note:</b>
+
+<p>The sandbox profile used in CUPS still allows some actions that are not listed above - these privileges will be removed over time until the profile matches the list above.</p>
+</blockquote>
       <h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
 <h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsBackChannelRead">cupsBackChannelRead</a></h3>
         <p class="description">Read data from the backchannel.</p>
index f90465553f621a7c68f75f1f9e995970414fc7d7..4ddb11ae72f652feee8c18832a6e61cb7164cfb4 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>PPD API (DEPRECATED)</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -442,7 +453,7 @@ h3.title {
 <!--
   PPD API header for CUPS.
 
-  Copyright © 2008-2012 by Apple Inc.
+  Copyright © 2008-2019 by Apple Inc.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
   information.
@@ -450,7 +461,10 @@ h3.title {
 
 <h1 class='title'>PPD API (DEPRECATED)</h1>
 
-<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="api-cups.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
+<blockquote><b>Note:</b>
+
+<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p>
+</blockquote>
 
 <div class='summary'><table summary='General Information'>
 <thead>
@@ -467,7 +481,7 @@ h3.title {
 <tr>
        <th>See Also</th>
        <td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a><br>
-       Programming: <a href='api-cups.html' target='_top'>CUPS API</a><br>
+       Programming: <a href='cupspm.html' target='_top'>CUPS Programming Manual</a><br>
        Specifications: <a href='spec-ppd.html' target='_top'>CUPS PPD Extensions</a></td>
 </tr>
 </tbody>
@@ -489,6 +503,7 @@ h3.title {
           <li><a href="#cupsGetPPD3">cupsGetPPD3</a></li>
           <li><a href="#cupsGetServerPPD">cupsGetServerPPD</a></li>
           <li><a href="#cupsMarkOptions">cupsMarkOptions</a></li>
+          <li><a href="#cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></li>
           <li><a href="#cupsResolveConflicts">cupsResolveConflicts</a></li>
           <li><a href="#ppdCollect">ppdCollect</a></li>
           <li><a href="#ppdCollect2">ppdCollect2</a></li>
@@ -524,6 +539,7 @@ h3.title {
           <li><a href="#ppdPageWidth">ppdPageWidth</a></li>
         </ul></li>
         <li><a href="#TYPES">Data Types</a><ul class="subcontents">
+          <li><a href="#cups_interpret_cb_t">cups_interpret_cb_t</a></li>
           <li><a href="#ppd_attr_t">ppd_attr_t</a></li>
           <li><a href="#ppd_choice_t">ppd_choice_t</a></li>
           <li><a href="#ppd_conform_t">ppd_conform_t</a></li>
@@ -575,7 +591,7 @@ h3.title {
 <!--
   PPD API introduction for CUPS.
 
-  Copyright © 2007-2018 by Apple Inc.
+  Copyright © 2007-2019 by Apple Inc.
   Copyright © 1997-2006 by Easy Software Products, all rights reserved.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -584,7 +600,10 @@ h3.title {
 
 <h2 class='title'><a name='OVERVIEW'>Overview</a></h2>
 
-<blockquote>The PPD API is deprecated starting in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS API</a> documentation. These functions will be removed in a future release of CUPS.</blockquote>
+<blockquote><b>Note:</b>
+
+<p>The PPD API was deprecated in CUPS 1.6/macOS 10.8. Please use the new Job Ticket APIs in the <a href="cupspm.html">CUPS Programming Manual</a> documentation. These functions will be removed in a future release of CUPS.</p>
+</blockquote>
 
 <p>The CUPS PPD API provides read-only access the data in PostScript Printer
 Description ("PPD") files which are used for all printers with a driver. With
@@ -602,6 +621,7 @@ values as case-insensitive strings, so option "InputSlot" and choice "Upper"
 are equivalent to "inputslot" and "upper", respectively.</p>
 </blockquote>
 
+
 <h3><a name="LOADING">Loading a PPD File</a></h3>
 
 <p>The <a href="#ppdOpenFile"><code>ppdOpenFile</code></a> function "opens" a
@@ -689,6 +709,7 @@ int num_options = cupsParseOptions(argv[5], 0, &amp;options);
 cupsFreeOptions(num_options, options);
 </pre>
 
+
 <h3><a name="CONSTRAINTS">Constraints</a></h3>
 
 <p>PPD files support specification of conflict conditions, called
@@ -699,6 +720,7 @@ the options and choices that conflict with each other. The
 how many of the selected options are incompatible. Since constraints are
 normally specified in pairs, the returned value is typically an even number.</p>
 
+
 <h3><a name="PAGE_SIZES">Page Sizes</a></h3>
 
 <p>Page sizes are special options which have physical dimensions and margins
@@ -753,6 +775,7 @@ in points. Custom page size names can also be specified in inches
 <a href="#ppdPageSize"><code>ppdPageSize</code></a> function will return
 <code>NULL</code>.</p>
 
+
 <h3><a name="ATTRIBUTES">Attributes</a></h3>
 
 <p>Every PPD file is composed of one or more attributes. Most of these
@@ -937,6 +960,51 @@ int cupsMarkOptions(<a href="#ppd_file_t">ppd_file_t</a> *ppd, int num_options,
 &quot;multiple-document-handling&quot;, &quot;output-bin&quot;, &quot;print-color-mode&quot;,
 &quot;print-quality&quot;, &quot;printer-resolution&quot;, and &quot;sides&quot; attributes to their
 corresponding PPD options and choices.</p>
+<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
+        <p class="description">Interpret PPD commands to create a page header.</p>
+<p class="code">
+int cupsRasterInterpretPPD(cups_page_header2_t *h, <a href="#ppd_file_t">ppd_file_t</a> *ppd, int num_options, cups_option_t *options, <a href="#cups_interpret_cb_t">cups_interpret_cb_t</a> func);</p>
+<h4 class="parameters">Parameters</h4>
+<table class="list"><tbody>
+<tr><th>h</th>
+        <td class="description">Page header to create</td></tr>
+<tr><th>ppd</th>
+        <td class="description">PPD file</td></tr>
+<tr><th>num_options</th>
+        <td class="description">Number of options</td></tr>
+<tr><th>options</th>
+        <td class="description">Options</td></tr>
+<tr><th>func</th>
+        <td class="description">Optional page header callback (<code>NULL</code> for none)</td></tr>
+</tbody></table>
+<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 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 &quot;num_options&quot; and &quot;options&quot; 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 &quot;func&quot; 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.<br>
+<br>
+
+<code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language.
+Currently only the <code>[</code>, <code>]</code>, <code>&lt;&lt;</code>, <code>&gt;&gt;</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"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsResolveConflicts">cupsResolveConflicts</a></h3>
         <p class="description">Resolve conflicts in a marked PPD.</p>
 <p class="code">
@@ -1514,6 +1582,11 @@ float ppdPageWidth(<a href="#ppd_file_t">ppd_file_t</a> *ppd, const char *name);
 <h4 class="returnvalue">Return Value</h4>
         <p class="description">Width of page in points or 0.0</p>
       <h2 class="title"><a id="TYPES">Data Types</a></h2>
+      <h3 class="typedef"><a id="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)(cups_page_header2_t *header, int preferred_bits);
+</p>
       <h3 class="typedef"><a id="ppd_attr_t"><span class="info">&#160;DEPRECATED&#160;</span>ppd_attr_t</a></h3>
         <p class="description">PPD Attribute Structure </p>
       <p class="code">
@@ -1741,7 +1814,6 @@ typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
 &#160;&#160;&#160;&#160;float custom_margins[4];<br>
 &#160;&#160;&#160;&#160;float custom_max[2];<br>
 &#160;&#160;&#160;&#160;float custom_min[2];<br>
-&#160;&#160;&#160;&#160;<a href="#ppd_emul_t">ppd_emul_t</a> *emulations;<br>
 &#160;&#160;&#160;&#160;char **filters;<br>
 &#160;&#160;&#160;&#160;int flip_duplex;<br>
 &#160;&#160;&#160;&#160;char **fonts;<br>
@@ -1759,7 +1831,6 @@ typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
 &#160;&#160;&#160;&#160;char *modelname;<br>
 &#160;&#160;&#160;&#160;char *nickname;<br>
 &#160;&#160;&#160;&#160;int num_consts;<br>
-&#160;&#160;&#160;&#160;int num_emulations;<br>
 &#160;&#160;&#160;&#160;int num_filters;<br>
 &#160;&#160;&#160;&#160;int num_fonts;<br>
 &#160;&#160;&#160;&#160;int num_groups;<br>
@@ -1794,8 +1865,6 @@ typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
         <td class="description">Maximum variable page size</td></tr>
 <tr><th>custom_min[2] </th>
         <td class="description">Minimum variable page size</td></tr>
-<tr><th>emulations </th>
-        <td class="description">Emulations and the code to invoke them</td></tr>
 <tr><th>filters </th>
         <td class="description">Filter strings...</td></tr>
 <tr><th>flip_duplex <span class="info">&#160;DEPRECATED&#160;</span></th>
@@ -1830,8 +1899,6 @@ typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
         <td class="description">Nickname (specific)</td></tr>
 <tr><th>num_consts </th>
         <td class="description">Number of UI/Non-UI constraints</td></tr>
-<tr><th>num_emulations </th>
-        <td class="description">Number of emulations supported</td></tr>
 <tr><th>num_filters </th>
         <td class="description">Number of filters</td></tr>
 <tr><th>num_fonts </th>
@@ -2086,6 +2153,7 @@ typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
       <h4 class="constants">Constants</h4>
       <table class="list"><tbody>
         <tr><th>PPD_ALLOC_ERROR </th>        <td class="description">Memory allocation error</td></tr>
+        <tr><th>PPD_BAD_CLOSE_UI </th>        <td class="description">Bad CloseUI/JCLCloseUI</td></tr>
         <tr><th>PPD_BAD_CUSTOM_PARAM </th>        <td class="description">Bad custom parameter</td></tr>
         <tr><th>PPD_BAD_OPEN_GROUP </th>        <td class="description">Bad OpenGroup</td></tr>
         <tr><th>PPD_BAD_OPEN_UI </th>        <td class="description">Bad OpenUI/JCLOpenUI</td></tr>
@@ -2102,6 +2170,7 @@ typedef enum <a href="#ppd_ui_e">ppd_ui_e</a> ppd_ui_t;
         <tr><th>PPD_LINE_TOO_LONG </th>        <td class="description">Line longer than 255 chars</td></tr>
         <tr><th>PPD_MISSING_ASTERISK </th>        <td class="description">Missing asterisk in column 0</td></tr>
         <tr><th>PPD_MISSING_CLOSE_GROUP </th>        <td class="description">Missing CloseGroup</td></tr>
+        <tr><th>PPD_MISSING_CLOSE_UI </th>        <td class="description">Missing CloseUI/JCLCloseUI</td></tr>
         <tr><th>PPD_MISSING_OPTION_KEYWORD </th>        <td class="description">Missing option keyword</td></tr>
         <tr><th>PPD_MISSING_PPDADOBE4 </th>        <td class="description">Missing PPD-Adobe-4.x header</td></tr>
         <tr><th>PPD_MISSING_VALUE </th>        <td class="description">Missing value string</td></tr>
index 706cbd56cac38ddf0734d1e6219907b893e607a9..6eccab791d123831922e15a929ae45f3ccc07373 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <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.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -442,7 +453,7 @@ h3.title {
 <!--
   Raster API documentation for CUPS.
 
-  Copyright © 2008-2010 by Apple Inc.
+  Copyright © 2008-2019 by Apple Inc.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
   information.
@@ -460,13 +471,12 @@ h3.title {
 <tbody>
 <tr>
        <th>Library</th>
-       <td>-lcupsimage</td>
+       <td>-lcups</td>
 </tr>
 <tr>
        <th>See Also</th>
-       <td>Programming: <a href='api-overview.html'>Introduction to CUPS Programming</a><br>
-       Programming: <a href='api-cups.html'>CUPS API</a><br>
-       Programming: <a href='api-cups.html'>PPD API</a><br>
+       <td>Programming: <a href='cupspm.html'>CUPS Programming Manual</a><br>
+       Programming: <a href='api-ppd.html'>PPD API</a><br>
        References: <a href='spec-ppd.html'>CUPS PPD Specification</a></td>
 </tr>
 </tbody>
@@ -482,8 +492,8 @@ h3.title {
         </ul></li>
         <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
           <li><a href="#cupsRasterClose">cupsRasterClose</a></li>
+          <li><a href="#cupsRasterErrorString">cupsRasterErrorString</a></li>
           <li><a href="#cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></li>
-          <li><a href="#cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></li>
           <li><a href="#cupsRasterOpen">cupsRasterOpen</a></li>
           <li><a href="#cupsRasterOpenIO">cupsRasterOpenIO</a></li>
           <li><a href="#cupsRasterReadHeader">cupsRasterReadHeader</a></li>
@@ -499,7 +509,6 @@ h3.title {
           <li><a href="#cups_cspace_t">cups_cspace_t</a></li>
           <li><a href="#cups_cut_t">cups_cut_t</a></li>
           <li><a href="#cups_edge_t">cups_edge_t</a></li>
-          <li><a href="#cups_interpret_cb_t">cups_interpret_cb_t</a></li>
           <li><a href="#cups_jog_t">cups_jog_t</a></li>
           <li><a href="#cups_mode_t">cups_mode_t</a></li>
           <li><a href="#cups_order_t">cups_order_t</a></li>
@@ -530,7 +539,7 @@ h3.title {
 <!--
   Raster API introduction for CUPS.
 
-  Copyright © 2007-2013 by Apple Inc.
+  Copyright © 2007-2019 by Apple Inc.
   Copyright © 1997-2006 by Easy Software Products, all rights reserved.
 
   Licensed under Apache License v2.0.  See the file "LICENSE" for more
@@ -676,7 +685,7 @@ the memory used to read the raster file:</p>
 
 <ul class="code">
 
-       <li><a href="#cupsRasterInterpretPPD" title="Interpret PPD commands to create a page header.">cupsRasterInterpretPPD</a></li>
+       <li><a href="#cupsRasterInitPWGHeader" title="Interpret IPP attributes to create a page header.">cupsRasterInitPWGHeader</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/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>
@@ -695,6 +704,16 @@ void cupsRasterClose(<a href="#cups_raster_t">cups_raster_t</a> *r);</p>
 <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">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="cupsRasterErrorString">cupsRasterErrorString</a></h3>
+        <p class="description">Return the last error from a raster function.</p>
+<p class="code">
+const char *cupsRasterErrorString(void);</p>
+<h4 class="returnvalue">Return Value</h4>
+        <p class="description">Last error or <code>NULL</code></p>
+<h4 class="discussion">Discussion</h4>
+        <p class="discussion">If there are no recent errors, <code>NULL</code> is returned.
+
+</p>
 <h3 class="function"><span class="info">&#160;CUPS 2.2/macOS 10.12&#160;</span><a id="cupsRasterInitPWGHeader">cupsRasterInitPWGHeader</a></h3>
         <p class="description">Initialize a page header for PWG Raster output.</p>
 <p class="code">
@@ -730,51 +749,6 @@ inch.<br>
 The &quot;sheet_back&quot; argument specifies a &quot;pwg-raster-document-sheet-back&quot; 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">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRasterInterpretPPD">cupsRasterInterpretPPD</a></h3>
-        <p class="description">Interpret PPD commands to create a page header.</p>
-<p class="code">
-int cupsRasterInterpretPPD(<a href="#cups_page_header2_t">cups_page_header2_t</a> *h, ppd_file_t *ppd, int num_options, cups_option_t *options, <a href="#cups_interpret_cb_t">cups_interpret_cb_t</a> func);</p>
-<h4 class="parameters">Parameters</h4>
-<table class="list"><tbody>
-<tr><th>h</th>
-        <td class="description">Page header to create</td></tr>
-<tr><th>ppd</th>
-        <td class="description">PPD file</td></tr>
-<tr><th>num_options</th>
-        <td class="description">Number of options</td></tr>
-<tr><th>options</th>
-        <td class="description">Options</td></tr>
-<tr><th>func</th>
-        <td class="description">Optional page header callback (<code>NULL</code> for none)</td></tr>
-</tbody></table>
-<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 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 &quot;num_options&quot; and &quot;options&quot; 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 &quot;func&quot; 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.<br>
-<br>
-
-<code>cupsRasterInterpretPPD</code> supports a subset of the PostScript language.
-Currently only the <code>[</code>, <code>]</code>, <code>&lt;&lt;</code>, <code>&gt;&gt;</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 id="cupsRasterOpen">cupsRasterOpen</a></h3>
         <p class="description">Open a raster stream using a file descriptor.</p>
@@ -963,11 +937,6 @@ typedef enum <a href="#cups_cut_e">cups_cut_e</a> cups_cut_t;
         <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>
-      <h3 class="typedef"><a id="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 id="cups_jog_t">cups_jog_t</a></h3>
         <p class="description">Jog attribute values</p>
index be1a768833fe2850d869f273b71f3809db5bfa12..5cd742cd109165ac0b163c5a235f376658998c99 100644 (file)
Binary files a/doc/help/cupspm.epub and b/doc/help/cupspm.epub differ
index 982643b20a54fe17001e601e2e3747bf11cebf19..4c68087f543baca340ca9063ed86bf4838a62464 100644 (file)
@@ -1,13 +1,13 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>CUPS Programming Manual</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Michael R Sweet">
-    <meta name="copyright" content="Copyright &#xa9; 2007-2018 by Apple Inc. All Rights Reserved.">
+    <meta name="copyright" content="Copyright &#xa9; 2007-2019 by Apple Inc. All Rights Reserved.">
     <meta name="version" content="2.3.0">
     <style type="text/css"><!--
 body, p, h1, h2, h3, h4 {
@@ -174,7 +174,7 @@ h3.title {
   <body>
     <h1 class="title">CUPS Programming Manual</h1>
     <p>Michael R Sweet</p>
-    <p>Copyright &#xa9; 2007-2018 by Apple Inc. All Rights Reserved.</p>
+    <p>Copyright &#xa9; 2007-2019 by Apple Inc. All Rights Reserved.</p>
     <div class="contents">
       <h2 class="title">Contents</h2>
       <ul class="contents">
@@ -197,6 +197,7 @@ h3.title {
           <li><a href="#authentication">Authentication</a></li>
         </ul></li>
         <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
+          <li><a href="#CF_OPTIONS">CF_OPTIONS</a></li>
           <li><a href="#cupsAddDest">cupsAddDest</a></li>
           <li><a href="#cupsAddDestMediaOptions">cupsAddDestMediaOptions</a></li>
           <li><a href="#cupsAddIntegerOption">cupsAddIntegerOption</a></li>
@@ -486,6 +487,9 @@ h3.title {
           <li><a href="#cups_option_s">cups_option_s</a></li>
           <li><a href="#cups_size_s">cups_size_s</a></li>
         </ul></li>
+        <li><a href="#VARIABLES">Variables</a><ul class="subcontents">
+          <li><a href="#kSecOidOrganizationalUnit">kSecOidOrganizationalUnit</a></li>
+        </ul></li>
         <li><a href="#ENUMERATIONS">Enumerations</a><ul class="subcontents">
           <li><a href="#cups_ptype_e">cups_ptype_e</a></li>
           <li><a href="#http_encoding_e">http_encoding_e</a></li>
@@ -520,7 +524,7 @@ h3.title {
     <p>CUPS provides the &quot;cups&quot; library to talk to the different parts of CUPS and with Internet Printing Protocol (IPP) printers. The &quot;cups&quot; library functions are accessed by including the <code>&lt;cups/cups.h&gt;</code> header.</p>
     <p>CUPS is based on the Internet Printing Protocol (&quot;IPP&quot;), which allows clients (applications) to communicate with a server (the scheduler, printers, etc.) to get a list of destinations, send print jobs, and so forth. You identify which server you want to communicate with using a pointer to the opaque structure <code>http_t</code>. The <code>CUPS_HTTP_DEFAULT</code> constant can be used when you want to talk to the CUPS scheduler.</p>
     <h3><a id="guidelines">Guidelines</a></h3>
-    <p>When writing software that uses the &quot;cups&quot; library:</p>
+    <p>When writing software (other than printer drivers) that uses the &quot;cups&quot; library:</p>
     <ul>
     <li>Do not use undocumented or deprecated APIs,</li>
     <li>Do not rely on pre-configured printers,</li>
@@ -529,8 +533,12 @@ h3.title {
 </ul>
     <p>CUPS is designed to insulate users and developers from the implementation details of printers and file formats. The goal is to allow an application to supply a print file in a standard format with the user intent (&quot;print four copies, two-sided on A4 media, and staple each copy&quot;) and have the printing system manage the printer communication and format conversion needed.</p>
     <p>Similarly, printer and job management applications can use standard query operations to obtain the status information in a common, generic form and use standard management operations to control the state of those printers and jobs.</p>
+    <blockquote>
+    <p><strong>Note:</strong></p>
+    <p>CUPS printer drivers necessarily depend on specific file formats and certain implementation details of the CUPS software. Please consult the Postscript and raster printer driver developer documentation on <a href="https://www.cups.org/documentation.html">CUPS.org</a> for more information.</p>
+</blockquote>
     <h3><a id="terms-used-in-this-document">Terms Used in This Document</a></h3>
-    <p>A <em>Destination</em> is a printer or print queue that accepts print jobs. A <em>Print</em> <em>Job</em> is one or more documents that are processed by a destination using options supplied when creating the job. A <em>Document</em> is a file (JPEG image, PDF file, etc.) suitable for printing. An <em>Option</em> controls some aspect of printing, such as the media used. <em>Media</em> is the sheets or roll that is printed on. An <em>Attribute</em> is an option encoded for an Internet Printing Protocol (IPP) request.</p>
+    <p>A <em>Destination</em> is a printer or print queue that accepts print jobs. A <em>Print</em> <em>Job</em> is a collection of one or more documents that are processed by a destination using options supplied when creating the job. A <em>Document</em> is a file (JPEG image, PDF file, etc.) suitable for printing. An <em>Option</em> controls some aspect of printing, such as the media used. <em>Media</em> is the sheets or roll that is printed on. An <em>Attribute</em> is an option encoded for an Internet Printing Protocol (IPP) request.</p>
     <h3><a id="compiling-programs-that-use-the-cups-api">Compiling Programs That Use the CUPS API</a></h3>
     <p>The CUPS libraries can be used from any C, C++, or Objective C program. The method of compiling against the libraries varies depending on the operating system and installation of CUPS. The following sections show how to compile a simple program (shown below) in two common environments.</p>
     <p>The following simple program lists the available destinations:</p>
@@ -611,7 +619,8 @@ int main(void)
 </ul>
     <p>The callback function returns 0 to stop enumeration or 1 to continue.</p>
     <blockquote>
-    <p>Note that the callback function will likely be called multiple times for the same destination, so it is up to the caller to suppress any duplicate destinations.</p>
+    <p><strong>Note:</strong></p>
+    <p>The callback function will likely be called multiple times for the same destination, so it is up to the caller to suppress any duplicate destinations.</p>
 </blockquote>
     <p>The following example shows how to use <code>cupsEnumDests</code> to get a filtered array of destinations:</p>
     <pre><code>typedef struct
@@ -1043,7 +1052,8 @@ ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
              &quot;printer-uri&quot;, NULL, printer_uri);
 </code></pre>
     <blockquote>
-    <p>Note: If we wanted to query the scheduler instead of the device, we would look up the &quot;printer-uri-supported&quot; option instead of the &quot;device-uri&quot; value.</p>
+    <p><strong>Note:</strong></p>
+    <p>If we wanted to query the scheduler instead of the device, we would look up the &quot;printer-uri-supported&quot; option instead of the &quot;device-uri&quot; value.</p>
 </blockquote>
     <p>The <code>ippAddString</code> function adds the &quot;printer-uri&quot; attribute the the IPP request. The <code>IPP_TAG_OPERATION</code> argument specifies that the attribute is part of the operation. The <code>IPP_TAG_URI</code> argument specifies that the value is a Universal Resource Identifier (URI) string. The <code>NULL</code> argument specifies there is no language (English, French, Japanese, etc.) associated with the string, and the <code>printer_uri</code> argument specifies the string value.</p>
     <p>The IPP Get-Printer-Attributes request also supports an IPP attribute called &quot;requested-attributes&quot; that lists the attributes and values you are interested in. For example, the following code requests the printer state attributes:</p>
@@ -1149,6 +1159,19 @@ cups_password_cb2(const char *prompt, http_t *http,
     <p>The <code>resource</code> argument specifies the path used for the request.</p>
     <p>The <code>user_data</code> argument provides the user data pointer from the <code>cupsSetPasswordCB2</code> call.</p>
       <h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
+<h3 class="function"><a id="CF_OPTIONS">CF_OPTIONS</a></h3>
+        <p class="description"></p>
+<p class="code">
+typedef CF_OPTIONS(uint32_t, SecKeyUsage);</p>
+<h4 class="parameters">Parameters</h4>
+<table class="list"><tbody>
+<tr><th>uint32_t</th>
+</tr>
+<tr><th>SecKeyUsage</th>
+</tr>
+</tbody></table>
+<h4 class="returnvalue">Return Value</h4>
+        <p class="description"></p>
 <h3 class="function"><a id="cupsAddDest">cupsAddDest</a></h3>
         <p class="description">Add a destination to the list of destinations.</p>
 <p class="code">
@@ -6048,6 +6071,10 @@ typedef struct _ipp_s ipp_t;
         <td class="description">Top margin in hundredths of
 millimeters</td></tr>
 </tbody></table>
+      <h2 class="title"><a id="VARIABLES">Variables</a></h2>
+      <h3 class="variable"><a id="kSecOidOrganizationalUnit">kSecOidOrganizationalUnit</a></h3>
+        <p class="description">Constants, very secure stuff...</p>
+      <p class="code">extern const void *kSecOidOrganizationalUnit;</p>
       <h2 class="title"><a id="ENUMERATIONS">Constants</a></h2>
       <h3 class="enumeration"><a id="cups_ptype_e">cups_ptype_e</a></h3>
         <p class="description">Printer type/capability bit
@@ -6107,6 +6134,7 @@ constants</p>
         <tr><th>HTTP_FIELD_ACCEPT_LANGUAGE </th>        <td class="description">Accept-Language field</td></tr>
         <tr><th>HTTP_FIELD_ACCEPT_RANGES </th>        <td class="description">Accept-Ranges field</td></tr>
         <tr><th>HTTP_FIELD_ALLOW <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">Allow field </td></tr>
+        <tr><th>HTTP_FIELD_AUTHENTICATION_INFO <span class="info">&#160;CUPS 2.2.9)&#160;</span></th>        <td class="description">Authentication-Info field (</td></tr>
         <tr><th>HTTP_FIELD_AUTHORIZATION </th>        <td class="description">Authorization field</td></tr>
         <tr><th>HTTP_FIELD_CONNECTION </th>        <td class="description">Connection field</td></tr>
         <tr><th>HTTP_FIELD_CONTENT_ENCODING </th>        <td class="description">Content-Encoding field</td></tr>
index 9abddf61cc7c2202f7fdadf53c750f2a56b8129a..f94fa72fd79ed7d9fc2722d216cfe5bafd52258e 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>Developing PostScript Printer Drivers</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
index 5943fd22feb6302125159e35d19b434b4f615aca..b33ca2d273220b060df0ab6a9a136c15d1f3eb5b 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>Introduction to the PPD Compiler</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
index 03f6f3da947e384ece67bcdbc2f9734690afb2e3..de573c6169411884ab4690f4e5c8f39b24b7e53d 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Programming -->
   <head>
     <title>Developing Raster Printer Drivers</title>
     <meta name="keywords" content="Programming">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
index 40e56ee2dcc4cc442ec8437da4201b5fd246b6a4..3782eb7cab083b922a5c9ac887b4b776287c21bd 100644 (file)
@@ -1,11 +1,11 @@
-<!doctype html>
+<!DOCTYPE html>
 <html>
 <!-- SECTION: Specifications -->
   <head>
     <title>CUPS PPD Extensions</title>
     <meta name="keywords" content="Specifications">
     <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
-    <meta name="creator" content="Mini-XML v2.11">
+    <meta name="creator" content="codedoc v3.1">
     <meta name="author" content="Unknown">
     <meta name="copyright" content="Unknown">
     <meta name="version" content="0.0">
@@ -18,6 +18,11 @@ H1, H2, H3, H4, H5, H6, P, TD, TH {
   font-family: lucida grande, geneva, helvetica, arial, sans-serif;
 }
 
+H1 { font-size: 2em; }
+H2 { font-size: 1.75em; }
+H3 { font-size: 1.5em; }
+H4 { font-size: 1.25em; }
+
 KBD {
   font-family: monaco, courier, monospace;
   font-weight: bold;
@@ -360,14 +365,13 @@ h1, h2, h3, h4, h5, h6 {
 blockquote {
   border: solid thin gray;
   box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 0px 10px;
+  padding: 10px 10px 0px;
   page-break-inside: avoid;
 }
 p code, li code, p.code, pre, ul.code li {
   background: rgba(127,127,127,0.1);
   border: thin dotted gray;
   font-family: monospace;
-  font-size: 90%;
   hyphens: manual;
   -webkit-hyphens: manual;
   page-break-inside: avoid;
@@ -390,12 +394,19 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h3 span.info, h4 span.info {
-  border-top-left-radius: 10px;
-  border-top-right-radius: 10px;
+h2 span.info, h3 span.info, h4 span.info {
+  border-radius: 10px;
   float: right;
+  font-size: 80%;
   padding: 3px 6px;
 }
+h2.title span.info, h3.title span.info, h4.title span.info {
+  border-bottom-left-radius: 0px;
+  border-bottom-right-radius: 0px;
+}
+h2.title span.info {
+  padding: 4px 6px;
+}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -485,7 +496,7 @@ h3.title {
           <li><a href="#cupsUIResolver">cupsUIResolver</a></li>
         </ul></li>
         <li><a href="#I18N">Globalized PPD Support</a></li>
-        <li><a href="#OPTIONS">&lt;span class=&quot;info&quot;&gt;CUPS 1.3/macOS 10.6&lt;/span&gt;Custom Options</a></li>
+        <li><a href="#OPTIONS">Custom Options</a></li>
         <li><a href="#RASTERPS">Writing PostScript Option Commands for Raster Drivers</a></li>
         <li><a href="#MEDIA">Media Keywords</a><ul class="subcontents">
           <li><a href="#cupsMediaQualifier2">cupsMediaQualifier2</a></li>
@@ -575,7 +586,7 @@ LINE-END = CR / LF / CR LF
 <p>CUPS supports several methods of auto-configuration via PPD keywords.</p>
 
 
-<h3><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3 class="title"><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
 
 <p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
 
@@ -591,7 +602,7 @@ LINE-END = CR / LF / CR LF
 </pre>
 
 
-<h3><span class='info'>macOS 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
+<h3 class="title"><span class='info'>macOS 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
 
 <p class='summary'>*?<i>MainKeyword</i>: "<br>
   PostScript query code that writes a message using the = operator...<br>
@@ -621,7 +632,7 @@ LINE-END = CR / LF / CR LF
 </pre>
 
 
-<h3><span class='info'>macOS 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
 
 <p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br>
 *OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br>
@@ -653,7 +664,7 @@ LINE-END = CR / LF / CR LF
 </blockquote>
 
 
-<h3><span class='info'>Deprecated</span><a name='cupsColorProfile'>cupsColorProfile</a></h3>
+<h3 class="title"><span class='info'>Deprecated</span><a name='cupsColorProfile'>cupsColorProfile</a></h3>
 
 <p class='summary'>*cupsColorProfile Resolution/MediaType: "density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
 
@@ -690,7 +701,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 
-<h3><span class='info'>macOS 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
 
 <p class='summary'>*cupsICCProfile ColorModel.MediaType.Resolution/Description: "filename"</p>
 
@@ -711,7 +722,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *cupsICCProfile ../Default: "/Library/Printers/vendor/Profiles/foo-default.icc"
 </pre>
 
-<h4>Customizing the Profile Selection Keywords</h4>
+<h4 class="title">Customizing the Profile Selection Keywords</h4>
 
 <p>The <tt>ColorModel</tt>, <tt>MediaType</tt>, and <tt>Resolution</tt> main keywords can be reassigned to different main keywords, allowing drivers to do color profile selection based on different parameters. The <tt>cupsICCQualifier1</tt>, <tt>cupsICCQualifier2</tt>, and <tt>cupsICCQualifier3</tt> keywords define the mapping from selector to main keyword:</p>
 
@@ -730,7 +741,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 
-<h3><span class='info'>macOS 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
 
 <p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br>
 *<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br>
@@ -745,7 +756,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 
 </blockquote>
 
-<h4><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+<h4 class="title"><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
 
 <p class='summary'>*APCustomColorMatchingName name/text: ""</p>
 
@@ -759,7 +770,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
 </pre>
 
-<h4><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
+<h4 class="title"><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
 
 <p class='summary'>*APCustomColorMatchingProfile: name</p>
 
@@ -781,7 +792,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *APCustomColorMatchingProfile: AdobeRGB
 </pre>
 
-<h4><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
+<h4 class="title"><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
 
 <p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
 
@@ -795,7 +806,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *APDefaultCustomColorMatchingProfile: sRGB
 </pre>
 
-<h4><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
+<h4 class="title"><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
 
 <p class='summary'>*APSupportsCustomColorMatching: boolean</p>
 
@@ -832,7 +843,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </blockquote>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
 
 <p class='summary'>*cupsUIConstraints resolver: "*Keyword1 *Keyword2 ..."<br>
 *cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 ..."<br>
@@ -863,7 +874,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
 
 <p class='summary'>*cupsUIResolver resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p>
 
@@ -1081,7 +1092,7 @@ option value is "1234" then CUPS will output the string "@PJL SET PASSCODE=1234"
 <p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p>
 
 
-<h3>Custom Page Size Code</h3>
+<h3 class="title">Custom Page Size Code</h3>
 
 <p>There are many possible implementations of the <tt>CustomPageSize</tt> code. For CUPS raster drivers, the following code is recommended:</p>
 
@@ -1095,7 +1106,7 @@ option value is "1234" then CUPS will output the string "@PJL SET PASSCODE=1234"
 </pre>
 
 
-<h3>Supported PostScript Operators</h3>
+<h3 class="title">Supported PostScript Operators</h3>
 
 <p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p>
 
@@ -1155,7 +1166,7 @@ PRE B {
 </blockquote>
 
 
-<h3>Supported Page Device Attributes</h3>
+<h3 class="title">Supported Page Device Attributes</h3>
 
 <p>Table 2 shows the supported page device attributes along with PostScript code examples.</p>
 
@@ -1427,7 +1438,7 @@ PRE B {
 size limits based on up to two options.</p>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
 
 <p class='summary'>*cupsMediaQualifier2: MainKeyword</p>
 
@@ -1447,7 +1458,7 @@ custom page size limits.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
 
 <p class='summary'>*cupsMediaQualifier3: MainKeyword</p>
 
@@ -1467,7 +1478,7 @@ custom page size limits.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
 
 <p class='summary'>*cupsMinSize .Qualifier2.Qualifier3: "width length"<br>
 *cupsMinSize .Qualifier2.: "width length"<br>
@@ -1491,7 +1502,7 @@ are used to identify options to use for matching.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
 
 <p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
 *cupsMaxSize .Qualifier2.: "width length"<br>
@@ -1515,7 +1526,7 @@ are used to identify options to use for matching.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
 
 <p class="summary">*cupsPageSizeCategory name/text: "name name2 ... nameN"</p>
 
@@ -1532,7 +1543,7 @@ are used to identify options to use for matching.</p>
 
 <h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
 
 <p class='summary'>*cupsBackSide: keyword</p>
 
@@ -1629,7 +1640,7 @@ will be ignored.</p>
 keyword.</p>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
 
 <p class='summary'>*cupsCommands: "name name2 ... nameN"</p>
 
@@ -1645,7 +1656,7 @@ by whitespace.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
 
 <p class='summary'>*cupsEvenDuplex: boolean</p>
 
@@ -1661,7 +1672,7 @@ printing is selected. The default value is <code>false</code>.</p>
 </pre>
 
 
-<h3><a name='cupsFax'>cupsFax</a></h3>
+<h3 class="title"><a name='cupsFax'>cupsFax</a></h3>
 
 <p class='summary'>*cupsFax: boolean</p>
 
@@ -1674,7 +1685,7 @@ printing is selected. The default value is <code>false</code>.</p>
 </pre>
 
 
-<h3><a name='cupsFilter'>cupsFilter</a></h3>
+<h3 class="title"><a name='cupsFilter'>cupsFilter</a></h3>
 
 <p class='summary'>*cupsFilter: "source/type cost program"</p>
 
@@ -1697,7 +1708,7 @@ the special filter program "-" may be specified.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsFilter2'>cupsFilter2</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsFilter2'>cupsFilter2</a></h3>
 
 <p class='summary'>*cupsFilter2: "source/type destination/type cost program"</p>
 
@@ -1723,7 +1734,7 @@ the special filter program "-" may be specified.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 2.3</span><a name='cupsFinishingTemplate'>cupsFinishingTemplate</a></h3>
+<h3 class="title"><span class='info'>CUPS 2.3</span><a name='cupsFinishingTemplate'>cupsFinishingTemplate</a></h3>
 
 <p class='summary'>*cupsFinishingTemplate name/text: ""</p>
 
@@ -1742,7 +1753,7 @@ the special filter program "-" may be specified.</p>
 </pre>
 
 
-<h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
+<h3 class="title"><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
 
 <p class='summary'>*cupsFlipDuplex: boolean</p>
 
@@ -1778,7 +1789,7 @@ Ghostscript can use:</p>
 </pre></blockquote>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
 
 <p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
 
@@ -1795,7 +1806,7 @@ values to PPD options and choices.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
 
 <p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
 
@@ -1836,7 +1847,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsIPPSupplies'>cupsIPPSupplies</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsIPPSupplies'>cupsIPPSupplies</a></h3>
 
 <p class='summary'>*cupsIPPSupplies: boolean</p>
 
@@ -1850,7 +1861,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
 
 <p class='summary'>*cupsJobAccountId: boolean</p>
 
@@ -1864,7 +1875,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
 
 <p class='summary'>*cupsJobAccountingUserId: boolean</p>
 
@@ -1878,7 +1889,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
 
 <p class='summary'>*cupsJobPassword: "format"</p>
 
@@ -1905,7 +1916,7 @@ password string.  For example, "1111" indicated a 4-digit US ASCII PIN code.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
 
 <p class='summary'>*cupsLanguages: "locale list"</p>
 
@@ -1921,7 +1932,7 @@ list of locale names ("en", "en_US", "fr_CA", etc.)</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
 
 <p class='summary'>*cupsMandatory: "attribute1 attribute2 ... attributeN"</p>
 
@@ -1935,7 +1946,7 @@ list of locale names ("en", "en_US", "fr_CA", etc.)</p>
 </pre>
 
 
-<h3><a name='cupsManualCopies'>cupsManualCopies</a></h3>
+<h3 class="title"><a name='cupsManualCopies'>cupsManualCopies</a></h3>
 
 <p class='summary'>*cupsManualCopies: boolean</p>
 
@@ -1951,7 +1962,7 @@ hardware. The default value is <code>false</code>.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
 
 <p class='summary'>*cupsMarkerName/Name Text: ""</p>
 
@@ -1966,7 +1977,7 @@ generated by the driver to human readable text.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
 
 <p class='summary'>*cupsMarkerNotice: "disclaimer text"</p>
 
@@ -1981,7 +1992,7 @@ are approximate".</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
 
 <p class='summary'>*cupsMaxCopies: integer</p>
 
@@ -1995,7 +2006,7 @@ are approximate".</p>
 </pre>
 
 
-<h3><a name='cupsModelNumber'>cupsModelNumber</a></h3>
+<h3 class="title"><a name='cupsModelNumber'>cupsModelNumber</a></h3>
 
 <p class='summary'>*cupsModelNumber: number</p>
 
@@ -2011,7 +2022,7 @@ the output for a specific model of printer.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
 
 <p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
 
@@ -2027,7 +2038,7 @@ assumed.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
 
 <p class='summary'>*cupsPJLDisplay: "what"</p>
 
@@ -2047,7 +2058,7 @@ to use "@PJL RDYMSG DISPLAY". The default is "job".</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
 
 <p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
 
@@ -2080,7 +2091,7 @@ to disable the port monitor for the given URI scheme.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
 
 <p class='summary'>*cupsPreFilter: "source/type cost program"</p>
 
@@ -2099,7 +2110,7 @@ before the filter that accepts the given MIME type.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsPrintQuality'>cupsPrintQuality</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsPrintQuality'>cupsPrintQuality</a></h3>
 
 <p class='summary'>*cupsPrintQuality keyword/text: "code"</p>
 
@@ -2124,7 +2135,7 @@ before the filter that accepts the given MIME type.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsSingleFile'>cupsSingleFile</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsSingleFile'>cupsSingleFile</a></h3>
 
 <p class='summary'>*cupsSingleFile: Boolean</p>
 
@@ -2141,7 +2152,7 @@ before the filter that accepts the given MIME type.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
 
 <p class='summary'>*cupsSNMPSupplies: boolean</p>
 
@@ -2157,7 +2168,7 @@ the standard SNMP Printer MIB OIDs for supply levels. The default value is
 </pre>
 
 
-<h3><a name='cupsVersion'>cupsVersion</a></h3>
+<h3 class="title"><a name='cupsVersion'>cupsVersion</a></h3>
 
 <p class='summary'>*cupsVersion: major.minor</p>
 
@@ -2173,7 +2184,7 @@ PPD file extensions was used. Currently it must be the string
 </pre>
 
 
-<h3><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
+<h3 class="title"><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
 
 <p class="summary">*JCLToPDFInterpreter: "JCL"</p>
 
@@ -2189,7 +2200,7 @@ PPD file extensions was used. Currently it must be the string
 
 <h2 class='title'><a name='MACOSX'>macOS Attributes</a></h2>
 
-<h3><span class='info'>Deprecated</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+<h3 class="title"><span class='info'>Deprecated</span><a name='APDialogExtension'>APDialogExtension</a></h3>
 
 <p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p>
 
@@ -2220,7 +2231,7 @@ AirPrint moving forward.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
 
 <p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
 
@@ -2303,7 +2314,7 @@ and the <tt>Tumble</tt> page attribute.</p>
 keyword.</p>
 
 
-<h3><a name='APHelpBook'>APHelpBook</a></h3>
+<h3 class="title"><a name='APHelpBook'>APHelpBook</a></h3>
 
 <p class='summary'>*APHelpBook: "bundle URL"</p>
 
@@ -2319,7 +2330,7 @@ looking up IPP reason codes for this printer driver. The
 </pre>
 
 
-<h3><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3>
+<h3 class="title"><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3>
 
 <p class='summary'>*APICADriver: boolean</p>
 
@@ -2334,7 +2345,7 @@ Architecture (ICA) driver for scanning. The default is <tt>False</tt>.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
 
 <p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename.icns"</p>
 
@@ -2349,7 +2360,7 @@ displaying the printer. The file must be in the Apple icon format.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
 
 <p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p>
 
@@ -2367,7 +2378,7 @@ Technical Note TN2144</a> for more information.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+<h3 class="title"><span class='info'>macOS 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
 
 <p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
 
@@ -2438,7 +2449,7 @@ choice (*MainKeyword OptionKeyword) or a preset identifier and value
 </pre>
 
 
-<h3><span class='info'>macOS 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
 
 <p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p>
 
@@ -2454,7 +2465,7 @@ information.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
+<h3 class="title"><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
 
 <p class='summary'>*APScannerOnly: boolean</p>
 
@@ -2469,7 +2480,7 @@ capabilities. The default is <tt>False</tt>.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
 
 <p class='summary'>*APScanAppBundleID: "bundle ID"</p>
 
@@ -2486,7 +2497,7 @@ the device.</p>
 
 <h2 class='title'><a name='HISTORY'>Change History</a></h2>
 
-<h3>Changes in CUPS 2.3</h3>
+<h3 class="title">Changes in CUPS 2.3</h3>
 
 <ul>
 
@@ -2495,7 +2506,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.7</h3>
+<h3 class="title">Changes in CUPS 1.7</h3>
 
 <ul>
 
@@ -2507,7 +2518,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.6</h3>
+<h3 class="title">Changes in CUPS 1.6</h3>
 
 <ul>
 
@@ -2522,7 +2533,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.5</h3>
+<h3 class="title">Changes in CUPS 1.5</h3>
 
 <ul>
 
@@ -2531,7 +2542,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.4.5</h3>
+<h3 class="title">Changes in CUPS 1.4.5</h3>
 
 <ul>
 
@@ -2542,7 +2553,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.4</h3>
+<h3 class="title">Changes in CUPS 1.4</h3>
 
 <ul>
 
@@ -2577,7 +2588,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.3.1</h3>
+<h3 class="title">Changes in CUPS 1.3.1</h3>
 
 <ul>
 
@@ -2592,7 +2603,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.3</h3>
+<h3 class="title">Changes in CUPS 1.3</h3>
 
 <ul>
 
@@ -2612,7 +2623,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.2.8</h3>
+<h3 class="title">Changes in CUPS 1.2.8</h3>
 
 <ul>
 
@@ -2622,7 +2633,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.2</h3>
+<h3 class="title">Changes in CUPS 1.2</h3>
 
 <ul>
 
@@ -2648,7 +2659,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.1</h3>
+<h3 class="title">Changes in CUPS 1.1</h3>
 
 <ul>
 
index 84dd68f1bf95c3dde66832452ada50f7f25589a8..ddaaa302d505807ca2a8e1b19638dd4de10ba434 100644 (file)
@@ -130,25 +130,25 @@ apihelp:
                --title "Developing PostScript Printer Drivers" \
                --css ../doc/cups-printable.css \
                --header postscript-driver.header \
-               --intro postscript-driver.shtml \
+               --body postscript-driver.shtml \
                >../doc/help/postscript-driver.html
        codedoc --section "Programming" \
                --title "Introduction to the PPD Compiler" \
                --css ../doc/cups-printable.css \
                --header ppd-compiler.header \
-               --intro ppd-compiler.shtml \
+               --body ppd-compiler.shtml \
                >../doc/help/ppd-compiler.html
        codedoc --section "Programming" \
                --title "Developing Raster Printer Drivers" \
                --css ../doc/cups-printable.css \
                --header raster-driver.header \
-               --intro raster-driver.shtml \
+               --body raster-driver.shtml \
                >../doc/help/raster-driver.html
        codedoc --section "Specifications" \
                --title "CUPS PPD Extensions" \
                --css ../doc/cups-printable.css \
                --header spec-ppd.header \
-               --intro spec-ppd.shtml \
+               --body spec-ppd.shtml \
                >../doc/help/spec-ppd.html
 
 
index f3a80ceed1699dff31f2703ab44ca0e9e5e21e93..938bb87867271fa600be245316a7a823c08a2adf 100644 (file)
@@ -31,7 +31,7 @@ LINE-END = CR / LF / CR LF
 <p>CUPS supports several methods of auto-configuration via PPD keywords.</p>
 
 
-<h3><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
+<h3 class="title"><span class='info'>macOS 10.5</span><a name='APAutoSetupTool'>APAutoSetupTool</a></h3>
 
 <p class='summary'>*APAutoSetupTool: "/LibraryPrinters/vendor/filename"</p>
 
@@ -47,7 +47,7 @@ LINE-END = CR / LF / CR LF
 </pre>
 
 
-<h3><span class='info'>macOS 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
+<h3 class="title"><span class='info'>macOS 10.2/CUPS 1.4</span><a name='QUERYKEYWORD'>?MainKeyword</a></h3>
 
 <p class='summary'>*?<i>MainKeyword</i>: "<br>
   PostScript query code that writes a message using the = operator...<br>
@@ -77,7 +77,7 @@ LINE-END = CR / LF / CR LF
 </pre>
 
 
-<h3><span class='info'>macOS 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4/CUPS 1.5</span><a name='OID'>OIDMainKeyword</a></h3>
 
 <p class='summary'>*?OID<i>MainKeyword</i>: ".n.n.n..."<br>
 *OID<i>MainKeyword</i> <i>OptionKeyword1</i>: "value"<br>
@@ -109,7 +109,7 @@ LINE-END = CR / LF / CR LF
 </blockquote>
 
 
-<h3><span class='info'>Deprecated</span><a name='cupsColorProfile'>cupsColorProfile</a></h3>
+<h3 class="title"><span class='info'>Deprecated</span><a name='cupsColorProfile'>cupsColorProfile</a></h3>
 
 <p class='summary'>*cupsColorProfile Resolution/MediaType: "density gamma m00 m01 m02 m10 m11 m12 m20 m21 m22"</p>
 
@@ -146,7 +146,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 
-<h3><span class='info'>macOS 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3/CUPS 1.2</span><a name='cupsICCProfile'>cupsICCProfile</a></h3>
 
 <p class='summary'>*cupsICCProfile ColorModel.MediaType.Resolution/Description: "filename"</p>
 
@@ -167,7 +167,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *cupsICCProfile ../Default: "/Library/Printers/vendor/Profiles/foo-default.icc"
 </pre>
 
-<h4>Customizing the Profile Selection Keywords</h4>
+<h4 class="title">Customizing the Profile Selection Keywords</h4>
 
 <p>The <tt>ColorModel</tt>, <tt>MediaType</tt>, and <tt>Resolution</tt> main keywords can be reassigned to different main keywords, allowing drivers to do color profile selection based on different parameters. The <tt>cupsICCQualifier1</tt>, <tt>cupsICCQualifier2</tt>, and <tt>cupsICCQualifier3</tt> keywords define the mapping from selector to main keyword:</p>
 
@@ -186,7 +186,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 
-<h3><span class='info'>macOS 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4</span><a name='APCustom'>Custom Color Matching Support</a></h3>
 
 <p class='summary'>*<a href='#APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a>: true<br>
 *<a href='#APCustomColorMatchingName'>APCustomColorMatchingName</a> name/text: ""<br>
@@ -201,7 +201,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 
 </blockquote>
 
-<h4><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
+<h4 class="title"><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingName'>APCustomColorMatchingName</a></h4>
 
 <p class='summary'>*APCustomColorMatchingName name/text: ""</p>
 
@@ -215,7 +215,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *fr.APCustomColorMatchingName name/La AcmeColor(tm): ""
 </pre>
 
-<h4><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
+<h4 class="title"><span class='info'>macOS 10.5</span><a name='APCustomColorMatchingProfile'>APCustomColorMatchingProfile</a></h4>
 
 <p class='summary'>*APCustomColorMatchingProfile: name</p>
 
@@ -237,7 +237,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *APCustomColorMatchingProfile: AdobeRGB
 </pre>
 
-<h4><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
+<h4 class="title"><span class='info'>macOS 10.5</span><a name='APDefaultCustomColorMatchingProfile'>APDefaultCustomColorMatchingProfile</a></h4>
 
 <p class='summary'>*APDefaultCustomColorMatchingProfile: name</p>
 
@@ -251,7 +251,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 *APDefaultCustomColorMatchingProfile: sRGB
 </pre>
 
-<h4><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
+<h4 class="title"><span class='info'>macOS 10.4</span><a name='APSupportsCustomColorMatching'>APSupportsCustomColorMatching</a></h4>
 
 <p class='summary'>*APSupportsCustomColorMatching: boolean</p>
 
@@ -288,7 +288,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </blockquote>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIConstraints'>cupsUIConstraints</a></h3>
 
 <p class='summary'>*cupsUIConstraints resolver: "*Keyword1 *Keyword2 ..."<br>
 *cupsUIConstraints resolver: "*Keyword1 OptionKeyword1 *Keyword2 ..."<br>
@@ -319,7 +319,7 @@ f(x) = density * x <sup style='font-size: 100%'>gamma</sup>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsUIResolver'>cupsUIResolver</a></h3>
 
 <p class='summary'>*cupsUIResolver resolver: "*Keyword1 OptionKeyword1 *Keyword2 OptionKeyword2 ..."</p>
 
@@ -537,7 +537,7 @@ option value is "1234" then CUPS will output the string "@PJL SET PASSCODE=1234"
 <p>The resulting dictionary sets the page device attributes that are sent to your raster driver in the page header.</p>
 
 
-<h3>Custom Page Size Code</h3>
+<h3 class="title">Custom Page Size Code</h3>
 
 <p>There are many possible implementations of the <tt>CustomPageSize</tt> code. For CUPS raster drivers, the following code is recommended:</p>
 
@@ -551,7 +551,7 @@ option value is "1234" then CUPS will output the string "@PJL SET PASSCODE=1234"
 </pre>
 
 
-<h3>Supported PostScript Operators</h3>
+<h3 class="title">Supported PostScript Operators</h3>
 
 <p>CUPS supports the following PostScript operators in addition to the usual PostScript number, string (literal and hex-encoded), boolean, null, and name values:</p>
 
@@ -611,7 +611,7 @@ PRE B {
 </blockquote>
 
 
-<h3>Supported Page Device Attributes</h3>
+<h3 class="title">Supported Page Device Attributes</h3>
 
 <p>Table 2 shows the supported page device attributes along with PostScript code examples.</p>
 
@@ -883,7 +883,7 @@ PRE B {
 size limits based on up to two options.</p>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier2'>cupsMediaQualifier2</a></h3>
 
 <p class='summary'>*cupsMediaQualifier2: MainKeyword</p>
 
@@ -903,7 +903,7 @@ custom page size limits.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMediaQualifier3'>cupsMediaQualifier3</a></h3>
 
 <p class='summary'>*cupsMediaQualifier3: MainKeyword</p>
 
@@ -923,7 +923,7 @@ custom page size limits.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMinSize'>cupsMinSize</a></h3>
 
 <p class='summary'>*cupsMinSize .Qualifier2.Qualifier3: "width length"<br>
 *cupsMinSize .Qualifier2.: "width length"<br>
@@ -947,7 +947,7 @@ are used to identify options to use for matching.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMaxSize'>cupsMaxSize</a></h3>
 
 <p class='summary'>*cupsMaxSize .Qualifier2.Qualifier3: "width length"<br>
 *cupsMaxSize .Qualifier2.: "width length"<br>
@@ -971,7 +971,7 @@ are used to identify options to use for matching.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPageSizeCategory'>cupsPageSizeCategory</a></h3>
 
 <p class="summary">*cupsPageSizeCategory name/text: "name name2 ... nameN"</p>
 
@@ -988,7 +988,7 @@ are used to identify options to use for matching.</p>
 
 <h2 class='title'><a name='ATTRIBUTES'>General Attributes</a></h2>
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsBackSide'>cupsBackSide</a></h3>
 
 <p class='summary'>*cupsBackSide: keyword</p>
 
@@ -1085,7 +1085,7 @@ will be ignored.</p>
 keyword.</p>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsCommands'>cupsCommands</a></h3>
 
 <p class='summary'>*cupsCommands: "name name2 ... nameN"</p>
 
@@ -1101,7 +1101,7 @@ by whitespace.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsEvenDuplex'>cupsEvenDuplex</a></h3>
 
 <p class='summary'>*cupsEvenDuplex: boolean</p>
 
@@ -1117,7 +1117,7 @@ printing is selected. The default value is <code>false</code>.</p>
 </pre>
 
 
-<h3><a name='cupsFax'>cupsFax</a></h3>
+<h3 class="title"><a name='cupsFax'>cupsFax</a></h3>
 
 <p class='summary'>*cupsFax: boolean</p>
 
@@ -1130,7 +1130,7 @@ printing is selected. The default value is <code>false</code>.</p>
 </pre>
 
 
-<h3><a name='cupsFilter'>cupsFilter</a></h3>
+<h3 class="title"><a name='cupsFilter'>cupsFilter</a></h3>
 
 <p class='summary'>*cupsFilter: "source/type cost program"</p>
 
@@ -1153,7 +1153,7 @@ the special filter program "-" may be specified.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsFilter2'>cupsFilter2</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsFilter2'>cupsFilter2</a></h3>
 
 <p class='summary'>*cupsFilter2: "source/type destination/type cost program"</p>
 
@@ -1179,7 +1179,7 @@ the special filter program "-" may be specified.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 2.3</span><a name='cupsFinishingTemplate'>cupsFinishingTemplate</a></h3>
+<h3 class="title"><span class='info'>CUPS 2.3</span><a name='cupsFinishingTemplate'>cupsFinishingTemplate</a></h3>
 
 <p class='summary'>*cupsFinishingTemplate name/text: ""</p>
 
@@ -1198,7 +1198,7 @@ the special filter program "-" may be specified.</p>
 </pre>
 
 
-<h3><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
+<h3 class="title"><span class='info'>Deprecated</span><a name='cupsFlipDuplex'>cupsFlipDuplex</a></h3>
 
 <p class='summary'>*cupsFlipDuplex: boolean</p>
 
@@ -1234,7 +1234,7 @@ Ghostscript can use:</p>
 </pre></blockquote>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPFinishings'>cupsIPPFinishings</a></h3>
 
 <p class='summary'>*cupsIPPFinishings number/text: "*Option Choice ..."</p>
 
@@ -1251,7 +1251,7 @@ values to PPD options and choices.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsIPPReason'>cupsIPPReason</a></h3>
 
 <p class='summary'>*cupsIPPReason reason/Reason Text: "optional URIs"</p>
 
@@ -1292,7 +1292,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsIPPSupplies'>cupsIPPSupplies</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsIPPSupplies'>cupsIPPSupplies</a></h3>
 
 <p class='summary'>*cupsIPPSupplies: boolean</p>
 
@@ -1306,7 +1306,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountId'>cupsJobAccountId</a></h3>
 
 <p class='summary'>*cupsJobAccountId: boolean</p>
 
@@ -1320,7 +1320,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobAccountingUserId'>cupsJobAccountingUserId</a></h3>
 
 <p class='summary'>*cupsJobAccountingUserId: boolean</p>
 
@@ -1334,7 +1334,7 @@ http://www.vendor.com/help"
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsJobPassword'>cupsJobPassword</a></h3>
 
 <p class='summary'>*cupsJobPassword: "format"</p>
 
@@ -1361,7 +1361,7 @@ password string.  For example, "1111" indicated a 4-digit US ASCII PIN code.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsLanguages'>cupsLanguages</a></h3>
 
 <p class='summary'>*cupsLanguages: "locale list"</p>
 
@@ -1377,7 +1377,7 @@ list of locale names ("en", "en_US", "fr_CA", etc.)</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.7/macOS 10.9</span><a name='cupsMandatory'>cupsMandatory</a></h3>
 
 <p class='summary'>*cupsMandatory: "attribute1 attribute2 ... attributeN"</p>
 
@@ -1391,7 +1391,7 @@ list of locale names ("en", "en_US", "fr_CA", etc.)</p>
 </pre>
 
 
-<h3><a name='cupsManualCopies'>cupsManualCopies</a></h3>
+<h3 class="title"><a name='cupsManualCopies'>cupsManualCopies</a></h3>
 
 <p class='summary'>*cupsManualCopies: boolean</p>
 
@@ -1407,7 +1407,7 @@ hardware. The default value is <code>false</code>.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerName'>cupsMarkerName</a></h3>
 
 <p class='summary'>*cupsMarkerName/Name Text: ""</p>
 
@@ -1422,7 +1422,7 @@ generated by the driver to human readable text.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsMarkerNotice'>cupsMarkerNotice</a></h3>
 
 <p class='summary'>*cupsMarkerNotice: "disclaimer text"</p>
 
@@ -1437,7 +1437,7 @@ are approximate".</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.6/macOS 10.8</span><a name='cupsMaxCopies'>cupsMaxCopies</a></h3>
 
 <p class='summary'>*cupsMaxCopies: integer</p>
 
@@ -1451,7 +1451,7 @@ are approximate".</p>
 </pre>
 
 
-<h3><a name='cupsModelNumber'>cupsModelNumber</a></h3>
+<h3 class="title"><a name='cupsModelNumber'>cupsModelNumber</a></h3>
 
 <p class='summary'>*cupsModelNumber: number</p>
 
@@ -1467,7 +1467,7 @@ the output for a specific model of printer.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPJLCharset'>cupsPJLCharset</a></h3>
 
 <p class='summary'>*cupsPJLCharset: "ISO character set name"</p>
 
@@ -1483,7 +1483,7 @@ assumed.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsPJLDisplay'>cupsPJLDisplay</a></h3>
 
 <p class='summary'>*cupsPJLDisplay: "what"</p>
 
@@ -1503,7 +1503,7 @@ to use "@PJL RDYMSG DISPLAY". The default is "job".</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.2/macOS 10.5</span><a name='cupsPortMonitor'>cupsPortMonitor</a></h3>
 
 <p class='summary'>*cupsPortMonitor urischeme/Descriptive Text: "port monitor"</p>
 
@@ -1536,7 +1536,7 @@ to disable the port monitor for the given URI scheme.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.3/macOS 10.5</span><a name='cupsPreFilter'>cupsPreFilter</a></h3>
 
 <p class='summary'>*cupsPreFilter: "source/type cost program"</p>
 
@@ -1555,7 +1555,7 @@ before the filter that accepts the given MIME type.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsPrintQuality'>cupsPrintQuality</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsPrintQuality'>cupsPrintQuality</a></h3>
 
 <p class='summary'>*cupsPrintQuality keyword/text: "code"</p>
 
@@ -1580,7 +1580,7 @@ before the filter that accepts the given MIME type.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.5</span><a name='cupsSingleFile'>cupsSingleFile</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.5</span><a name='cupsSingleFile'>cupsSingleFile</a></h3>
 
 <p class='summary'>*cupsSingleFile: Boolean</p>
 
@@ -1597,7 +1597,7 @@ before the filter that accepts the given MIME type.</p>
 </pre>
 
 
-<h3><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
+<h3 class="title"><span class='info'>CUPS 1.4/macOS 10.6</span><a name='cupsSNMPSupplies'>cupsSNMPSupplies</a></h3>
 
 <p class='summary'>*cupsSNMPSupplies: boolean</p>
 
@@ -1613,7 +1613,7 @@ the standard SNMP Printer MIB OIDs for supply levels. The default value is
 </pre>
 
 
-<h3><a name='cupsVersion'>cupsVersion</a></h3>
+<h3 class="title"><a name='cupsVersion'>cupsVersion</a></h3>
 
 <p class='summary'>*cupsVersion: major.minor</p>
 
@@ -1629,7 +1629,7 @@ PPD file extensions was used. Currently it must be the string
 </pre>
 
 
-<h3><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
+<h3 class="title"><span class="info">CUPS 1.6/macOS 10.8</span><a name="JCLToPDFInterpreter">JCLToPDFInterpreter</a></h3>
 
 <p class="summary">*JCLToPDFInterpreter: "JCL"</p>
 
@@ -1645,7 +1645,7 @@ PPD file extensions was used. Currently it must be the string
 
 <h2 class='title'><a name='MACOSX'>macOS Attributes</a></h2>
 
-<h3><span class='info'>Deprecated</span><a name='APDialogExtension'>APDialogExtension</a></h3>
+<h3 class="title"><span class='info'>Deprecated</span><a name='APDialogExtension'>APDialogExtension</a></h3>
 
 <p class='summary'>*APDialogExtension: "/Library/Printers/vendor/filename.plugin"</p>
 
@@ -1676,7 +1676,7 @@ AirPrint moving forward.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4</span><a name='APDuplexRequiresFlippedMargin'>APDuplexRequiresFlippedMargin</a></h3>
 
 <p class='summary'>*APDuplexRequiresFlippedMargin: boolean</p>
 
@@ -1759,7 +1759,7 @@ and the <tt>Tumble</tt> page attribute.</p>
 keyword.</p>
 
 
-<h3><a name='APHelpBook'>APHelpBook</a></h3>
+<h3 class="title"><a name='APHelpBook'>APHelpBook</a></h3>
 
 <p class='summary'>*APHelpBook: "bundle URL"</p>
 
@@ -1775,7 +1775,7 @@ looking up IPP reason codes for this printer driver. The
 </pre>
 
 
-<h3><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3>
+<h3 class="title"><span class='info'>macOS 10.6</span><a name='APICADriver'>APICADriver</a></h3>
 
 <p class='summary'>*APICADriver: boolean</p>
 
@@ -1790,7 +1790,7 @@ Architecture (ICA) driver for scanning. The default is <tt>False</tt>.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3</span><a name='APPrinterIconPath'>APPrinterIconPath</a></h3>
 
 <p class='summary'>*APPrinterIconPath: "/Library/Printers/vendor/filename.icns"</p>
 
@@ -1805,7 +1805,7 @@ displaying the printer. The file must be in the Apple icon format.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
+<h3 class="title"><span class='info'>macOS 10.4</span><a name='APPrinterLowInkTool'>APPrinterLowInkTool</a></h3>
 
 <p class='summary'>*APPrinterLowInkTool: "/Library/Printers/vendor/program"</p>
 
@@ -1823,7 +1823,7 @@ Technical Note TN2144</a> for more information.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
+<h3 class="title"><span class='info'>macOS 10.5</span><a name='APPrinterPreset'>APPrinterPreset</a></h3>
 
 <p class='summary'>*APPrinterPreset name/text: "*Option Choice ..."</p>
 
@@ -1894,7 +1894,7 @@ choice (*MainKeyword OptionKeyword) or a preset identifier and value
 </pre>
 
 
-<h3><span class='info'>macOS 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3</span><a name='APPrinterUtilityPath'>APPrinterUtilityPath</a></h3>
 
 <p class='summary'>*APPrinterPrinterUtilityPath: "/Library/Printers/vendor/filename.app"</p>
 
@@ -1910,7 +1910,7 @@ information.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
+<h3 class="title"><span class='info'>macOS 10.6</span><a name='APScannerOnly'>APScannerOnly</a></h3>
 
 <p class='summary'>*APScannerOnly: boolean</p>
 
@@ -1925,7 +1925,7 @@ capabilities. The default is <tt>False</tt>.</p>
 </pre>
 
 
-<h3><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
+<h3 class="title"><span class='info'>macOS 10.3</span><a name='APScanAppBundleID'>APScanAppBundleID</a></h3>
 
 <p class='summary'>*APScanAppBundleID: "bundle ID"</p>
 
@@ -1942,7 +1942,7 @@ the device.</p>
 
 <h2 class='title'><a name='HISTORY'>Change History</a></h2>
 
-<h3>Changes in CUPS 2.3</h3>
+<h3 class="title">Changes in CUPS 2.3</h3>
 
 <ul>
 
@@ -1951,7 +1951,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.7</h3>
+<h3 class="title">Changes in CUPS 1.7</h3>
 
 <ul>
 
@@ -1963,7 +1963,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.6</h3>
+<h3 class="title">Changes in CUPS 1.6</h3>
 
 <ul>
 
@@ -1978,7 +1978,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.5</h3>
+<h3 class="title">Changes in CUPS 1.5</h3>
 
 <ul>
 
@@ -1987,7 +1987,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.4.5</h3>
+<h3 class="title">Changes in CUPS 1.4.5</h3>
 
 <ul>
 
@@ -1998,7 +1998,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.4</h3>
+<h3 class="title">Changes in CUPS 1.4</h3>
 
 <ul>
 
@@ -2033,7 +2033,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.3.1</h3>
+<h3 class="title">Changes in CUPS 1.3.1</h3>
 
 <ul>
 
@@ -2048,7 +2048,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.3</h3>
+<h3 class="title">Changes in CUPS 1.3</h3>
 
 <ul>
 
@@ -2068,7 +2068,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.2.8</h3>
+<h3 class="title">Changes in CUPS 1.2.8</h3>
 
 <ul>
 
@@ -2078,7 +2078,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.2</h3>
+<h3 class="title">Changes in CUPS 1.2</h3>
 
 <ul>
 
@@ -2104,7 +2104,7 @@ the device.</p>
 </ul>
 
 
-<h3>Changes in CUPS 1.1</h3>
+<h3 class="title">Changes in CUPS 1.1</h3>
 
 <ul>