]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
More doco updates for new codedoc.
authorMichael R Sweet <msweet@msweet.org>
Mon, 1 Mar 2021 02:37:17 +0000 (21:37 -0500)
committerMichael R Sweet <msweet@msweet.org>
Mon, 1 Mar 2021 02:37:17 +0000 (21:37 -0500)
cups/Makefile
doc/help/api-admin.html
doc/help/api-filter.html
doc/help/api-ppd.html
doc/help/cupspm.epub
doc/help/postscript-driver.html
doc/help/ppd-compiler.html
doc/help/raster-driver.html
doc/help/spec-ppd.html
filter/Makefile

index 868fce018c9fb6f9f15fa44a74cd630772c00d78..2ef0368f9179ad5d1db5a0c0a0e1bdc75d703330 100644 (file)
@@ -727,7 +727,7 @@ tlscheck:   tlscheck.o $(LIBCUPSSTATIC)
 #
 
 apihelp:
-       echo Generating CUPS API help files...
+       echo "Generating CUPS Programming Manual..."
        $(RM) cupspm.xml
        codedoc --section "Programming" --body cupspm.md \
                cupspm.xml \
@@ -739,17 +739,17 @@ apihelp:
        codedoc --section "Programming" --body cupspm.md \
                cupspm.xml > ../doc/help/cupspm.html
        $(RM) cupspm.xml
+       echo "Generating Administration APIs help..."
        codedoc --section "Programming" --title "Administration APIs" \
-               --css ../doc/cups-printable.css \
                --header api-admin.header --body api-admin.shtml \
                adminutil.c adminutil.h getdevices.c >../doc/help/api-admin.html
+       echo "Generating PPD API (deprecated) help..."
        codedoc --section "Programming" --title "PPD API (DEPRECATED)" \
-               --css ../doc/cups-printable.css \
                --header api-ppd.header --body api-ppd.shtml \
                ppd.h ppd-*.c raster-interstub.c >../doc/help/api-ppd.html
+       echo "Generating Filter and Backend Programming help..."
        codedoc --section "Programming" \
                --title "Filter and Backend Programming" \
-               --css ../doc/cups-printable.css \
                --header api-filter.header --body api-filter.shtml \
                backchannel.c backend.h backend.c sidechannel.c sidechannel.h \
                >../doc/help/api-filter.html
index 644d494f80eb0e64532ff7c649060a106f4385d2..0309a11d0d8b290d1def0d71268753a60c33ccb1 100644 (file)
 <meta name="version" content="0.0">
 <style type="text/css"><!--
 body {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-pre {
-  font-family: monaco, courier, monospace;
-}
-
-blockquote {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-blockquote ol li {
-  margin-left: -1em;
-}
-
-pre.command, pre.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-p.compact {
-  margin: 0;
-}
-
-p.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-dl.man dd {
-  margin-left: 5em;
-}
-
-dl.man dt {
-  margin-left: 0;
-}
-
-pre.man {
-  margin: 0;
-}
-
-pre.command em, pre.example em {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-p.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-p.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-a img {
-  border: none;
+  background: white;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-a:link:hover img {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
+a {
+  color: black;
 }
-
 a:link, a:visited {
-  font-weight: inherit;
-  text-decoration: none;
+  color: #00f;
 }
-
 a:link:hover, a:visited:hover, a:active {
-  text-decoration: underline;
-}
-
-sub, sup {
-  font-size: 50%;
-}
-
-tr.data, td.data, tr.data td {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-tr.data th {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-div.table table {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.table caption {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.table table td {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-div.table table th {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-div.figure table {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.figure caption {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-th.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-th.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-hr {
-  border: solid thin;
+  color: #c0c;
 }
-
-span.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-h2 span.info, h3 span.info, h4 span.info {
-  float: right;
-  font-size: 100%;
-}
-
-h1.title {
-}
-
-h2.title, h3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-div.indent, table.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-table.indent {
-  border-collapse: collapse;
-}
-
-table.indent td, table.indent th {
-  padding: 0;
-}
-
-table.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-table.list th {
-  background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-table.list th a {
-  color: #4444cc;
-}
-
-table.list td {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-table.list tr:nth-child(even) {
-  background: #f8f8f8;
-}
-
-table.list tr:nth-child(odd) {
-  background: #f4f4f4;
-}
-
-dt {
-  margin-left: 36pt;
-  margin-top: 12pt;
-}
-
-dd {
-  margin-left: 54pt;
-}
-
-dl.category dt {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-p.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-div.summary table {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-div.summary table td, div.summary table th {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-div.summary table thead th {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -395,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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: 0;
-  border-bottom-right-radius: 0;
-}
-h2.title span.info {
-  padding: 4px 6px;
-}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -422,32 +133,114 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);
-}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
+}
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
 }
-h2.title {
-  border-bottom: solid 2px black;
+span.directive {
+  color: purple;
 }
-h3.title {
-  border-bottom: solid 2px black;
+span.number {
+  color: brown;
+}
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
 </head>
index 8039a94d6644b1f80603da1589a3e4540c402284..c56d63185e13f8e0c07df3e5b989b4b22849955e 100644 (file)
 <meta name="version" content="0.0">
 <style type="text/css"><!--
 body {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-pre {
-  font-family: monaco, courier, monospace;
-}
-
-blockquote {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-blockquote ol li {
-  margin-left: -1em;
-}
-
-pre.command, pre.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-p.compact {
-  margin: 0;
-}
-
-p.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-dl.man dd {
-  margin-left: 5em;
-}
-
-dl.man dt {
-  margin-left: 0;
-}
-
-pre.man {
-  margin: 0;
-}
-
-pre.command em, pre.example em {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-p.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-p.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-a img {
-  border: none;
+  background: white;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-a:link:hover img {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
+a {
+  color: black;
 }
-
 a:link, a:visited {
-  font-weight: inherit;
-  text-decoration: none;
+  color: #00f;
 }
-
 a:link:hover, a:visited:hover, a:active {
-  text-decoration: underline;
-}
-
-sub, sup {
-  font-size: 50%;
-}
-
-tr.data, td.data, tr.data td {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-tr.data th {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-div.table table {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.table caption {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.table table td {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-div.table table th {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-div.figure table {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.figure caption {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-th.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-th.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-hr {
-  border: solid thin;
+  color: #c0c;
 }
-
-span.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-h2 span.info, h3 span.info, h4 span.info {
-  float: right;
-  font-size: 100%;
-}
-
-h1.title {
-}
-
-h2.title, h3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-div.indent, table.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-table.indent {
-  border-collapse: collapse;
-}
-
-table.indent td, table.indent th {
-  padding: 0;
-}
-
-table.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-table.list th {
-  background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-table.list th a {
-  color: #4444cc;
-}
-
-table.list td {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-table.list tr:nth-child(even) {
-  background: #f8f8f8;
-}
-
-table.list tr:nth-child(odd) {
-  background: #f4f4f4;
-}
-
-dt {
-  margin-left: 36pt;
-  margin-top: 12pt;
-}
-
-dd {
-  margin-left: 54pt;
-}
-
-dl.category dt {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-p.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-div.summary table {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-div.summary table td, div.summary table th {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-div.summary table thead th {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -395,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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: 0;
-  border-bottom-right-radius: 0;
-}
-h2.title span.info {
-  padding: 4px 6px;
-}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -422,32 +133,114 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);
-}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
+}
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
 }
-h2.title {
-  border-bottom: solid 2px black;
+span.directive {
+  color: purple;
 }
-h3.title {
-  border-bottom: solid 2px black;
+span.number {
+  color: brown;
+}
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
 </head>
index 8f6d5553e772ff3a39ea7e6e938d71306b29b0e6..8873a6cd55bd7f3b2d22b1a3fd45352e3dd770f2 100644 (file)
 <meta name="version" content="0.0">
 <style type="text/css"><!--
 body {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-pre {
-  font-family: monaco, courier, monospace;
-}
-
-blockquote {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-blockquote ol li {
-  margin-left: -1em;
-}
-
-pre.command, pre.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-p.compact {
-  margin: 0;
-}
-
-p.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-dl.man dd {
-  margin-left: 5em;
-}
-
-dl.man dt {
-  margin-left: 0;
-}
-
-pre.man {
-  margin: 0;
-}
-
-pre.command em, pre.example em {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-p.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-p.formula {
-  font-style: italic;
-  margin-left: 36pt;
+  background: white;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-a img {
-  border: none;
+a {
+  color: black;
 }
-
-a:link:hover img {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
 a:link, a:visited {
-  font-weight: inherit;
-  text-decoration: none;
+  color: #00f;
 }
-
 a:link:hover, a:visited:hover, a:active {
-  text-decoration: underline;
-}
-
-sub, sup {
-  font-size: 50%;
-}
-
-tr.data, td.data, tr.data td {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-tr.data th {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-div.table table {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.table caption {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.table table td {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-div.table table th {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-div.figure table {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-div.figure caption {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-th.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-th.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-hr {
-  border: solid thin;
-}
-
-span.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-h2 span.info, h3 span.info, h4 span.info {
-  float: right;
-  font-size: 100%;
-}
-
-h1.title {
-}
-
-h2.title, h3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-div.indent, table.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-table.indent {
-  border-collapse: collapse;
-}
-
-table.indent td, table.indent th {
-  padding: 0;
-}
-
-table.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-table.list th {
-  background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-table.list th a {
-  color: #4444cc;
-}
-
-table.list td {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-table.list tr:nth-child(even) {
-  background: #f8f8f8;
-}
-
-table.list tr:nth-child(odd) {
-  background: #f4f4f4;
-}
-
-dt {
-  margin-left: 36pt;
-  margin-top: 12pt;
+  color: #c0c;
 }
-
-dd {
-  margin-left: 54pt;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-dl.category dt {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-p.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-div.summary table {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-div.summary table td, div.summary table th {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-div.summary table thead th {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -395,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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: 0;
-  border-bottom-right-radius: 0;
-}
-h2.title span.info {
-  padding: 4px 6px;
-}
 ul.code, ul.contents, ul.subcontents {
   list-style-type: none;
   margin: 0;
@@ -422,32 +133,114 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);
-}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
-}
-h2.title {
-  border-bottom: solid 2px black;
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
 }
-h3.title {
-  border-bottom: solid 2px black;
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
+}
+span.directive {
+  color: purple;
+}
+span.number {
+  color: brown;
+}
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
 </head>
index 56d5e0543a5caf9ed530c42e15d6551a5c37e498..e43ba8f0dd0598f271c710660aeff3d97d024c74 100644 (file)
Binary files a/doc/help/cupspm.epub and b/doc/help/cupspm.epub differ
index f94fa72fd79ed7d9fc2722d216cfe5bafd52258e..2275ea6b3a830534909655057d5b652bb1b0e563 100644 (file)
 <!DOCTYPE html>
-<html>
+<html lang="en-US">
 <!-- 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="codedoc v3.1">
-    <meta name="author" content="Unknown">
-    <meta name="copyright" content="Unknown">
-    <meta name="version" content="0.0">
-    <style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-BLOCKQUOTE {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-BLOCKQUOTE OL LI {
-  margin-left: -1em;
-}
-
-PRE.command, PRE.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
+<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="generator" content="codedoc v3.7">
+<meta name="author" content="Unknown">
+<meta name="language" content="en-US">
+<meta name="copyright" content="Unknown">
+<meta name="version" content="0.0">
+<style type="text/css"><!--
+body {
   background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-TABLE.list TH A {
-  color: #4444cc;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
+a {
+  color: black;
 }
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
+a:link, a:visited {
+  color: #00f;
 }
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
+a:link:hover, a:visited:hover, a:active {
+  color: #c0c;
 }
-
-DD {
-  margin-left: 54pt;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-DL.category DT {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0px;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -394,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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;
@@ -421,35 +133,119 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);]n}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
-}
-h2.title {
-  border-bottom: solid 2px black;
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
 }
-h3.title {
-  border-bottom: solid 2px black;
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
+}
+span.directive {
+  color: purple;
+}
+span.number {
+  color: brown;
+}
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
-  </head>
-  <body>
+</head>
+<body>
+<div class="header">
 <!--
   PostScript printer driver documentation for CUPS.
 
@@ -477,19 +273,20 @@ h3.title {
 </tr>
 </tbody>
 </table></div>
-    <div class="contents">
-      <h2 class="title">Contents</h2>
-      <ul class="contents">
-        <li><a href="#BASICS">Printer Driver Basics</a></li>
-        <li><a href="#CREATING">Creating New PPD Files</a><ul class="subcontents">
-          <li><a href="#IMPORT">Importing Existing PPD Files</a></li>
-        </ul></li>
-        <li><a href="#FILTERS">Using Custom Filters</a></li>
-        <li><a href="#COLOR">Implementing Color Management</a></li>
-        <li><a href="#MACOSX">Adding macOS Features</a></li>
-      </ul>
-    </div>
-    <div class="body">
+</div>
+<div class="contents">
+<h2 class="title">Contents</h2>
+<ul class="contents">
+<li><a href="#BASICS">Printer Driver Basics</a></li>
+<li><a href="#CREATING">Creating New PPD Files</a><ul class="subcontents">
+<li><a href="#IMPORT">Importing Existing PPD Files</a></li>
+</ul></li>
+<li><a href="#FILTERS">Using Custom Filters</a></li>
+<li><a href="#COLOR">Implementing Color Management</a></li>
+<li><a href="#MACOSX">Adding macOS Features</a></li>
+</ul>
+</div>
+<div class="body">
 <h2 class='title'><a name='BASICS'>Printer Driver Basics</a></h2>
 
 <p>A CUPS PostScript printer driver consists of a PostScript Printer Description (PPD) file that describes the features and capabilities of the device, zero or more <em>filter</em> programs that prepare print data for the device, and zero or more support files for color management, online help, and so forth. The PPD file includes references to all of the filters and support files used by the driver.</p>
@@ -766,6 +563,6 @@ information file.</P>
 <a href='ref-ppdcfile.html#Attribute'>Attribute</a> APPrinterIconPath "" /Library/Printers/Vendor/filename.icns
 <a href='ref-ppdcfile.html#Attribute'>Attribute</a> APPrinterPreset "name/text" "*option choice ..."
 </pre>
-    </div>
-  </body>
+</div>
+</body>
 </html>
index b33ca2d273220b060df0ab6a9a136c15d1f3eb5b..9f917622f0c4db7dd9d5056c844dd3cf2d845ce4 100644 (file)
 <!DOCTYPE html>
-<html>
+<html lang="en-US">
 <!-- 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="codedoc v3.1">
-    <meta name="author" content="Unknown">
-    <meta name="copyright" content="Unknown">
-    <meta name="version" content="0.0">
-    <style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-BLOCKQUOTE {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-BLOCKQUOTE OL LI {
-  margin-left: -1em;
-}
-
-PRE.command, PRE.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
+<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="generator" content="codedoc v3.7">
+<meta name="author" content="Unknown">
+<meta name="language" content="en-US">
+<meta name="copyright" content="Unknown">
+<meta name="version" content="0.0">
+<style type="text/css"><!--
+body {
   background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
-}
-
-TABLE.list TH A {
-  color: #4444cc;
-}
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
+a {
+  color: black;
 }
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
+a:link, a:visited {
+  color: #00f;
 }
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
+a:link:hover, a:visited:hover, a:active {
+  color: #c0c;
 }
-
-DD {
-  margin-left: 54pt;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-DL.category DT {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0px;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -394,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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;
@@ -421,35 +133,119 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);]n}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
-}
-h2.title {
-  border-bottom: solid 2px black;
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
 }
-h3.title {
-  border-bottom: solid 2px black;
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
+}
+span.directive {
+  color: purple;
+}
+span.number {
+  color: brown;
+}
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
-  </head>
-  <body>
+</head>
+<body>
+<div class="header">
 <!--
   PPD compiler documentation for CUPS.
 
@@ -485,26 +281,27 @@ that describe the features and capabilities of one or more printers.</P>
 </tr>
 </tbody>
 </table></div>
-    <div class="contents">
-      <h2 class="title">Contents</h2>
-      <ul class="contents">
-        <li><a href="#BASICS">The Basics</a></li>
-        <li><a href="#DRV">Driver Information Files</a><ul class="subcontents">
-          <li><a href="#SIMPLE">A Simple Example</a></li>
-          <li><a href="#GROUPING">Grouping and Inheritance</a></li>
-          <li><a href="#COLOR">Color Support</a></li>
-          <li><a href="#OPTIONS">Defining Custom Options and Option Groups</a></li>
-          <li><a href="#DEFINE">Defining Constants</a></li>
-          <li><a href="#CONDITIONAL">Conditional Statements</a></li>
-          <li><a href="#CONSTRAINTS">Defining Constraints</a></li>
-        </ul></li>
-        <li><a href="#LOCALIZATION">Localization</a><ul class="subcontents">
-          <li><a href="#PPDPO">The ppdpo Utility</a></li>
-          <li><a href="#PPDC_CATALOG">Using Message Catalogs with the PPD Compiler</a></li>
-        </ul></li>
-      </ul>
-    </div>
-    <div class="body">
+</div>
+<div class="contents">
+<h2 class="title">Contents</h2>
+<ul class="contents">
+<li><a href="#BASICS">The Basics</a></li>
+<li><a href="#DRV">Driver Information Files</a><ul class="subcontents">
+<li><a href="#SIMPLE">A Simple Example</a></li>
+<li><a href="#GROUPING">Grouping and Inheritance</a></li>
+<li><a href="#COLOR">Color Support</a></li>
+<li><a href="#OPTIONS">Defining Custom Options and Option Groups</a></li>
+<li><a href="#DEFINE">Defining Constants</a></li>
+<li><a href="#CONDITIONAL">Conditional Statements</a></li>
+<li><a href="#CONSTRAINTS">Defining Constraints</a></li>
+</ul></li>
+<li><a href="#LOCALIZATION">Localization</a><ul class="subcontents">
+<li><a href="#PPDPO">The ppdpo Utility</a></li>
+<li><a href="#PPDC_CATALOG">Using Message Catalogs with the PPD Compiler</a></li>
+</ul></li>
+</ul>
+</div>
+<div class="body">
 <h2 class='title'><a name='BASICS'>The Basics</a></h2>
 
 <P>The PPD compiler, <a href='man-ppdc.html'><code>ppdc(1)</code></a>, is a
@@ -1388,6 +1185,6 @@ ppdc -l de -d ppd/de mydrivers.drv
 </pre>
 
 <p>to generate German PPD files.</p>
-    </div>
-  </body>
+</div>
+</body>
 </html>
index de573c6169411884ab4690f4e5c8f39b24b7e53d..b9f40254cd5ba663b8e58043c5caee22c8b4f284 100644 (file)
 <!DOCTYPE html>
-<html>
+<html lang="en-US">
 <!-- 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="codedoc v3.1">
-    <meta name="author" content="Unknown">
-    <meta name="copyright" content="Unknown">
-    <meta name="version" content="0.0">
-    <style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-BLOCKQUOTE {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-BLOCKQUOTE OL LI {
-  margin-left: -1em;
-}
-
-PRE.command, PRE.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
+<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="generator" content="codedoc v3.7">
+<meta name="author" content="Unknown">
+<meta name="language" content="en-US">
+<meta name="copyright" content="Unknown">
+<meta name="version" content="0.0">
+<style type="text/css"><!--
+body {
   background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-TABLE.list TH A {
-  color: #4444cc;
+a {
+  color: black;
 }
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
-}
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
-}
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
+a:link, a:visited {
+  color: #00f;
 }
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
+a:link:hover, a:visited:hover, a:active {
+  color: #c0c;
 }
-
-DD {
-  margin-left: 54pt;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-DL.category DT {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0px;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -394,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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;
@@ -421,35 +133,119 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);]n}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
+}
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
+}
+span.directive {
+  color: purple;
 }
-h2.title {
-  border-bottom: solid 2px black;
+span.number {
+  color: brown;
 }
-h3.title {
-  border-bottom: solid 2px black;
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
-  </head>
-  <body>
+</head>
+<body>
+<div class="header">
 <!--
   Raster printer driver documentation for CUPS.
 
@@ -477,17 +273,18 @@ h3.title {
 </tr>
 </tbody>
 </table></div>
-    <div class="contents">
-      <h2 class="title">Contents</h2>
-      <ul class="contents">
-        <li><a href="#BASICS">Printer Driver Basics</a></li>
-        <li><a href="#CREATING">Creating New PPD Files</a></li>
-        <li><a href="#FILTERS">Using Filters</a></li>
-        <li><a href="#COLOR">Implementing Color Management</a></li>
-        <li><a href="#MACOSX">Adding macOS Features</a></li>
-      </ul>
-    </div>
-    <div class="body">
+</div>
+<div class="contents">
+<h2 class="title">Contents</h2>
+<ul class="contents">
+<li><a href="#BASICS">Printer Driver Basics</a></li>
+<li><a href="#CREATING">Creating New PPD Files</a></li>
+<li><a href="#FILTERS">Using Filters</a></li>
+<li><a href="#COLOR">Implementing Color Management</a></li>
+<li><a href="#MACOSX">Adding macOS Features</a></li>
+</ul>
+</div>
+<div class="body">
 <h2 class='title'><a name='BASICS'>Printer Driver Basics</a></h2>
 
 <p>A CUPS raster printer driver consists of a PostScript Printer Description (PPD) file that describes the features and capabilities of the device, one or more <em>filter</em> programs that prepare print data for the device, and zero or more support files for color management, online help, and so forth. The PPD file includes references to all of the filters and support files used by the driver.</p>
@@ -682,6 +479,6 @@ h3.title {
 <a href='ref-ppdcfile.html#Attribute'>Attribute</a> APPrinterIconPath "" /Library/Printers/Vendor/filename.icns
 <a href='ref-ppdcfile.html#Attribute'>Attribute</a> APPrinterPreset "name/text" "*option choice ..."
 </pre>
-    </div>
-  </body>
+</div>
+</body>
 </html>
index ee383fbe03911ebe661a078f3d10e0ed7092ad2e..cde6298c3c3cc01ad27dc8cfc1cc8ceeb0bc1a78 100644 (file)
 <!DOCTYPE html>
-<html>
+<html lang="en-US">
 <!-- 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="codedoc v3.1">
-    <meta name="author" content="Unknown">
-    <meta name="copyright" content="Unknown">
-    <meta name="version" content="0.0">
-    <style type="text/css"><!--
-BODY {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-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;
-}
-
-PRE {
-  font-family: monaco, courier, monospace;
-}
-
-BLOCKQUOTE {
-  border-left: solid 2px #777;
-  margin: 1em 0;
-  padding: 10px;
-}
-
-BLOCKQUOTE OL LI {
-  margin-left: -1em;
-}
-
-PRE.command, PRE.example {
-  background: #eee;
-  margin: 0 36pt;
-  padding: 10px;
-}
-
-P.compact {
-  margin: 0;
-}
-
-P.example {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-DL.man DD {
-  margin-left: 5em;
-}
-
-DL.man DT {
-  margin-left: 0;
-}
-
-PRE.man {
-  margin: 0;
-}
-
-PRE.command EM, PRE.example EM {
-  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
-}
-
-P.command {
-  font-family: monaco, courier, monospace;
-  margin-left: 36pt;
-}
-
-P.formula {
-  font-style: italic;
-  margin-left: 36pt;
-}
-
-A IMG {
-  border: none;
-}
-
-A:link:hover IMG {
-  background: #f0f0f0;
-  border-radius: 10px;
-  -moz-border-radius: 10px;
-}
-
-A:link, A:visited {
-  font-weight: inherit;
-  text-decoration: none;
-}
-
-A:link:hover, A:visited:hover, A:active {
-  text-decoration: underline;
-}
-
-SUB, SUP {
-  font-size: 50%;
-}
-
-TR.data, TD.data, TR.data TD {
-  margin-top: 10pt;
-  padding: 5pt;
-  border-bottom: solid 1pt #999999;
-}
-
-TR.data TH {
-  border-bottom: solid 1pt #999999;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-}
-
-DIV.table TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table CAPTION {
-  caption-side: top;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.table TABLE TD {
-  border: solid thin #cccccc;
-  padding: 5pt 10pt 0;
-}
-
-DIV.table TABLE TH {
-  background: #cccccc;
-  border: none;
-  border-bottom: solid thin #999999;
-}
-
-DIV.figure TABLE {
-  margin-left: auto;
-  margin-right: auto;
-}
-
-DIV.figure CAPTION {
-  caption-side: bottom;
-  font-size: 120%;
-  font-style: italic;
-  font-weight: bold;
-  margin-left: auto;
-  margin-right: auto;
-}
-
-TH.label {
-  text-align: right;
-  vertical-align: top;
-}
-
-TH.sublabel {
-  text-align: right;
-  font-weight: normal;
-}
-
-HR {
-  border: solid thin;
-}
-
-SPAN.info {
-  background: black;
-  border: thin solid black;
-  color: white;
-  font-size: 80%;
-  font-style: italic;
-  font-weight: bold;
-  white-space: nowrap;
-}
-
-H2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
-  float: right;
-  font-size: 100%;
-}
-
-H1.title {
-}
-
-H2.title, H3.title {
-  border-bottom: solid 2pt #000000;
-}
-
-DIV.indent, TABLE.indent {
-  margin-top: 2em;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.indent {
-  border-collapse: collapse;
-}
-
-TABLE.indent TD, TABLE.indent TH {
-  padding: 0;
-}
-
-TABLE.list {
-  border-collapse: collapse;
-  margin-left: auto;
-  margin-right: auto;
-  width: 90%;
-}
-
-TABLE.list TH {
+<head>
+<title>CUPS PPD Extensions</title>
+<meta name="keywords" content="Specifications">
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
+<meta name="generator" content="codedoc v3.7">
+<meta name="author" content="Unknown">
+<meta name="language" content="en-US">
+<meta name="copyright" content="Unknown">
+<meta name="version" content="0.0">
+<style type="text/css"><!--
+body {
   background: white;
-  border-bottom: solid thin #cccccc;
-  color: #444444;
-  padding-top: 10pt;
-  padding-left: 5pt;
-  text-align: left;
-  vertical-align: bottom;
-  white-space: nowrap;
+  color: black;
+  font-family: sans-serif;
+  font-size: 12pt;
 }
-
-TABLE.list TH A {
-  color: #4444cc;
-}
-
-TABLE.list TD {
-  border-bottom: solid thin #eeeeee;
-  padding-top: 5pt;
-  padding-left: 5pt;
+a {
+  color: black;
 }
-
-TABLE.list TR:nth-child(even) {
-  background: #f8f8f8;
-}
-
-TABLE.list TR:nth-child(odd) {
-  background: #f4f4f4;
+a:link, a:visited {
+  color: #00f;
 }
-
-DT {
-  margin-left: 36pt;
-  margin-top: 12pt;
+a:link:hover, a:visited:hover, a:active {
+  color: #c0c;
 }
-
-DD {
-  margin-left: 54pt;
+body, p, h1, h2, h3, h4, h5, h6 {
+  font-family: sans-serif;
+  line-height: 1.4;
 }
-
-DL.category DT {
+h1, h2, h3, h4, h5, h6 {
   font-weight: bold;
+  page-break-inside: avoid;
 }
-
-P.summary {
-  margin-left: 36pt;
-  font-family: monaco, courier, monospace;
-}
-
-DIV.summary TABLE {
-  border: solid thin #999999;
-  border-collapse: collapse;
-  border-spacing: 0;
-  margin: 10px;
-}
-
-DIV.summary TABLE TD, DIV.summary TABLE TH {
-  border: solid thin #999999;
-  padding: 5px;
-  text-align: left;
-  vertical-align: top;
-}
-
-DIV.summary TABLE THEAD TH {
-  background: #eeeeee;
-}
-
-/* API documentation styles... */
-div.body h1 {
+h1 {
   font-size: 250%;
-  font-weight: bold;
   margin: 0;
 }
-div.body h2 {
+h2 {
   font-size: 250%;
   margin-top: 1.5em;
 }
-div.body h3 {
-  font-size: 150%;
+h3 {
+  font-size: 200%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h4 {
-  font-size: 110%;
+h4 {
+  font-size: 150%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.body h5 {
-  font-size: 100%;
+h5 {
+  font-size: 125%;
   margin-bottom: 0.5em;
   margin-top: 1.5em;
 }
-div.contents {
-  background: #e8e8e8;
-  border: solid thin black;
-  padding: 10px;
-}
-div.contents h1 {
+h6 {
   font-size: 110%;
+  margin-bottom: 0.5em;
+  margin-top: 1.5em;
 }
-div.contents h2 {
-  font-size: 100%;
+img.title {
+  width: 256px;
 }
-div.contents ul.contents {
-  font-size: 80%;
+div.header h1, div.header p {
+  text-align: center;
 }
-.class {
-  border-bottom: solid 2px gray;
+div.contents, div.body, div.footer {
+  page-break-before: always;
 }
-.constants {
+.class, .enumeration, .function, .struct, .typedef, .union {
+  border-bottom: solid 2px gray;
 }
 .description {
   margin-top: 0.5em;
 }
-.discussion {
-}
-.enumeration {
-  border-bottom: solid 2px gray;
-}
 .function {
-  border-bottom: solid 2px gray;
   margin-bottom: 0;
 }
-.members {
-}
-.method {
-}
-.parameters {
-}
-.returnvalue {
-}
-.struct {
-  border-bottom: solid 2px gray;
-}
-.typedef {
-  border-bottom: solid 2px gray;
-}
-.union {
-  border-bottom: solid 2px gray;
-}
-.variable {
-}
-h1, h2, h3, h4, h5, h6 {
-  page-break-inside: avoid;
-}
 blockquote {
   border: solid thin gray;
-  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
-  padding: 10px 10px 0px;
+  box-shadow: 3px 3px 5px rgba(127,127,127,0.25);
+  margin: 1em 0;
+  padding: 10px;
   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;
   hyphens: manual;
   -webkit-hyphens: manual;
-  page-break-inside: avoid;
 }
 p.code, pre, ul.code li {
+  background: rgba(127,127,127,0.25);
+  border: thin dotted gray;
   padding: 10px;
+  page-break-inside: avoid;
 }
-p code, li code {
-  padding: 2px 5px;
+pre {
+  white-space: pre-wrap;
 }
 a:link, a:visited {
   text-decoration: none;
@@ -394,19 +113,12 @@ span.info {
   font-weight: bold;
   white-space: nowrap;
 }
-h2 span.info, h3 span.info, h4 span.info {
-  border-radius: 10px;
+h1 span.info, h2 span.info, h3 span.info, h4 span.info {
+  border-top-left-radius: 10px;
+  border-top-right-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;
@@ -421,35 +133,119 @@ ul.contents > li {
 ul.contents li ul.code, ul.contents li ul.subcontents {
   padding-left: 2em;
 }
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td {
+  border: solid 1px gray;
+  padding: 5px 10px;
+  vertical-align: top;
+}
+td.left {
+  text-align: left;
+}
+td.center {
+  text-align: center;
+}
+td.right {
+  text-align: right;
+}
+th {
+  border-bottom: solid 2px gray;
+  padding: 1px 5px;
+  text-align: center;
+  vertical-align: bottom;
+}
+tr:nth-child(even) {
+  background: rgba(127,127,127,0.25);
+}
 table.list {
   border-collapse: collapse;
   width: 100%;
 }
-table.list tr:nth-child(even) {
-  background: rgba(127,127,127,0.1);]n}
 table.list th {
+  border-bottom: none;
   border-right: 2px solid gray;
   font-family: monospace;
+  font-weight: normal;
   padding: 5px 10px 5px 2px;
   text-align: right;
   vertical-align: top;
 }
 table.list td {
+  border: none;
   padding: 5px 2px 5px 10px;
   text-align: left;
   vertical-align: top;
 }
-h1.title {
-}
-h2.title {
-  border-bottom: solid 2px black;
+h2.title, h3.title {
+  border-bottom: solid 2px gray;
 }
-h3.title {
-  border-bottom: solid 2px black;
+/* Syntax highlighting */
+span.comment {
+  color: darkgreen;
+}
+span.directive {
+  color: purple;
+}
+span.number {
+  color: brown;
+}
+span.reserved {
+  color: darkcyan;
+}
+span.string {
+  color: magenta;
+}
+/* Dark mode overrides */
+@media (prefers-color-scheme: dark) {
+  body {
+    background: black;
+    color: #ccc;
+  }
+  a {
+    color: #ccc;
+  }
+  a:link, a:visited {
+    color: #66f;
+  }
+  a:link:hover, a:visited:hover, a:active {
+    color: #f06;
+  }
+}
+/* Show contents on left side in web browser */
+@media screen and (min-width: 800px) {
+  div.contents {
+    border-right: solid thin gray;
+    bottom: 0px;
+    box-shadow: 3px 3px 5px rgba(127,127,127,0.5);
+    font-size: 10pt;
+    left: 0px;
+    overflow: scroll;
+    padding: 1%;
+    position: fixed;
+    top: 0px;
+    width: 18%;
+  }
+  div.contents h2.title {
+    margin-top: 0px;
+  }
+  div.header, div.body, div.footer {
+    margin-left: 20%;
+    padding: 1% 2%;
+  }
+}
+/* Center title page content vertically */
+@media print {
+  div.header {
+    padding-top: 33%;
+  }
 }
 --></style>
-  </head>
-  <body>
+</head>
+<body>
+<div class="header">
 <!--
   PPD extension documentation for CUPS.
 
@@ -477,82 +273,83 @@ h3.title {
 </tr>
 </tbody>
 </table></div>
-    <div class="contents">
-      <h2 class="title">Contents</h2>
-      <ul class="contents">
-        <li><a href="#SYNTAX">PPD File Syntax</a></li>
-        <li><a href="#AUTOCONFIG">Auto-Configuration</a><ul class="subcontents">
-          <li><a href="#APAutoSetupTool">APAutoSetupTool</a></li>
-          <li><a href="#QUERYKEYWORD">?MainKeyword</a></li>
-          <li><a href="#OID">OIDMainKeyword</a></li>
-        </ul></li>
-        <li><a href="#PROFILES">Color Profiles</a><ul class="subcontents">
-          <li><a href="#cupsColorProfile">cupsColorProfile</a></li>
-          <li><a href="#cupsICCProfile">cupsICCProfile</a></li>
-          <li><a href="#APCustom">Custom Color Matching Support</a></li>
-        </ul></li>
-        <li><a href="#CONSTRAINTS">Constraints</a><ul class="subcontents">
-          <li><a href="#cupsUIConstraints">cupsUIConstraints</a></li>
-          <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="#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>
-          <li><a href="#cupsMediaQualifier3">cupsMediaQualifier3</a></li>
-          <li><a href="#cupsMinSize">cupsMinSize</a></li>
-          <li><a href="#cupsMaxSize">cupsMaxSize</a></li>
-          <li><a href="#cupsPageSizeCategory">cupsPageSizeCategory</a></li>
-        </ul></li>
-        <li><a href="#ATTRIBUTES">General Attributes</a><ul class="subcontents">
-          <li><a href="#cupsBackSide">cupsBackSide</a></li>
-          <li><a href="#cupsCommands">cupsCommands</a></li>
-          <li><a href="#cupsEvenDuplex">cupsEvenDuplex</a></li>
-          <li><a href="#cupsFax">cupsFax</a></li>
-          <li><a href="#cupsFilter">cupsFilter</a></li>
-          <li><a href="#cupsFilter2">cupsFilter2</a></li>
-          <li><a href="#cupsFinishingTemplate">cupsFinishingTemplate</a></li>
-          <li><a href="#cupsFlipDuplex">cupsFlipDuplex</a></li>
-          <li><a href="#cupsIPPFinishings">cupsIPPFinishings</a></li>
-          <li><a href="#cupsIPPReason">cupsIPPReason</a></li>
-          <li><a href="#cupsIPPSupplies">cupsIPPSupplies</a></li>
-          <li><a href="#cupsJobAccountId">cupsJobAccountId</a></li>
-          <li><a href="#cupsJobAccountingUserId">cupsJobAccountingUserId</a></li>
-          <li><a href="#cupsJobPassword">cupsJobPassword</a></li>
-          <li><a href="#cupsLanguages">cupsLanguages</a></li>
-          <li><a href="#cupsMandatory">cupsMandatory</a></li>
-          <li><a href="#cupsManualCopies">cupsManualCopies</a></li>
-          <li><a href="#cupsMarkerName">cupsMarkerName</a></li>
-          <li><a href="#cupsMarkerNotice">cupsMarkerNotice</a></li>
-          <li><a href="#cupsMaxCopies">cupsMaxCopies</a></li>
-          <li><a href="#cupsModelNumber">cupsModelNumber</a></li>
-          <li><a href="#cupsPJLCharset">cupsPJLCharset</a></li>
-          <li><a href="#cupsPJLDisplay">cupsPJLDisplay</a></li>
-          <li><a href="#cupsPortMonitor">cupsPortMonitor</a></li>
-          <li><a href="#cupsPreFilter">cupsPreFilter</a></li>
-          <li><a href="#cupsPrintQuality">cupsPrintQuality</a></li>
-          <li><a href="#cupsSingleFile">cupsSingleFile</a></li>
-          <li><a href="#cupsSNMPSupplies">cupsSNMPSupplies</a></li>
-          <li><a href="#cupsVersion">cupsVersion</a></li>
-          <li><a href="#JCLToPDFInterpreter">JCLToPDFInterpreter</a></li>
-        </ul></li>
-        <li><a href="#MACOSX">macOS Attributes</a><ul class="subcontents">
-          <li><a href="#APDialogExtension">APDialogExtension</a></li>
-          <li><a href="#APDuplexRequiresFlippedMargin">APDuplexRequiresFlippedMargin</a></li>
-          <li><a href="#APHelpBook">APHelpBook</a></li>
-          <li><a href="#APICADriver">APICADriver</a></li>
-          <li><a href="#APPrinterIconPath">APPrinterIconPath</a></li>
-          <li><a href="#APPrinterLowInkTool">APPrinterLowInkTool</a></li>
-          <li><a href="#APPrinterPreset">APPrinterPreset</a></li>
-          <li><a href="#APPrinterUtilityPath">APPrinterUtilityPath</a></li>
-          <li><a href="#APScannerOnly">APScannerOnly</a></li>
-          <li><a href="#APScanAppBundleID">APScanAppBundleID</a></li>
-        </ul></li>
-        <li><a href="#HISTORY">Change History</a></li>
-      </ul>
-    </div>
-    <div class="body">
+</div>
+<div class="contents">
+<h2 class="title">Contents</h2>
+<ul class="contents">
+<li><a href="#SYNTAX">PPD File Syntax</a></li>
+<li><a href="#AUTOCONFIG">Auto-Configuration</a><ul class="subcontents">
+<li><a href="#APAutoSetupTool">APAutoSetupTool</a></li>
+<li><a href="#QUERYKEYWORD">?MainKeyword</a></li>
+<li><a href="#OID">OIDMainKeyword</a></li>
+</ul></li>
+<li><a href="#PROFILES">Color Profiles</a><ul class="subcontents">
+<li><a href="#cupsColorProfile">cupsColorProfile</a></li>
+<li><a href="#cupsICCProfile">cupsICCProfile</a></li>
+<li><a href="#APCustom">Custom Color Matching Support</a></li>
+</ul></li>
+<li><a href="#CONSTRAINTS">Constraints</a><ul class="subcontents">
+<li><a href="#cupsUIConstraints">cupsUIConstraints</a></li>
+<li><a href="#cupsUIResolver">cupsUIResolver</a></li>
+</ul></li>
+<li><a href="#I18N">Globalized PPD Support</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>
+<li><a href="#cupsMediaQualifier3">cupsMediaQualifier3</a></li>
+<li><a href="#cupsMinSize">cupsMinSize</a></li>
+<li><a href="#cupsMaxSize">cupsMaxSize</a></li>
+<li><a href="#cupsPageSizeCategory">cupsPageSizeCategory</a></li>
+</ul></li>
+<li><a href="#ATTRIBUTES">General Attributes</a><ul class="subcontents">
+<li><a href="#cupsBackSide">cupsBackSide</a></li>
+<li><a href="#cupsCommands">cupsCommands</a></li>
+<li><a href="#cupsEvenDuplex">cupsEvenDuplex</a></li>
+<li><a href="#cupsFax">cupsFax</a></li>
+<li><a href="#cupsFilter">cupsFilter</a></li>
+<li><a href="#cupsFilter2">cupsFilter2</a></li>
+<li><a href="#cupsFinishingTemplate">cupsFinishingTemplate</a></li>
+<li><a href="#cupsFlipDuplex">cupsFlipDuplex</a></li>
+<li><a href="#cupsIPPFinishings">cupsIPPFinishings</a></li>
+<li><a href="#cupsIPPReason">cupsIPPReason</a></li>
+<li><a href="#cupsIPPSupplies">cupsIPPSupplies</a></li>
+<li><a href="#cupsJobAccountId">cupsJobAccountId</a></li>
+<li><a href="#cupsJobAccountingUserId">cupsJobAccountingUserId</a></li>
+<li><a href="#cupsJobPassword">cupsJobPassword</a></li>
+<li><a href="#cupsLanguages">cupsLanguages</a></li>
+<li><a href="#cupsMandatory">cupsMandatory</a></li>
+<li><a href="#cupsManualCopies">cupsManualCopies</a></li>
+<li><a href="#cupsMarkerName">cupsMarkerName</a></li>
+<li><a href="#cupsMarkerNotice">cupsMarkerNotice</a></li>
+<li><a href="#cupsMaxCopies">cupsMaxCopies</a></li>
+<li><a href="#cupsModelNumber">cupsModelNumber</a></li>
+<li><a href="#cupsPJLCharset">cupsPJLCharset</a></li>
+<li><a href="#cupsPJLDisplay">cupsPJLDisplay</a></li>
+<li><a href="#cupsPortMonitor">cupsPortMonitor</a></li>
+<li><a href="#cupsPreFilter">cupsPreFilter</a></li>
+<li><a href="#cupsPrintQuality">cupsPrintQuality</a></li>
+<li><a href="#cupsSingleFile">cupsSingleFile</a></li>
+<li><a href="#cupsSNMPSupplies">cupsSNMPSupplies</a></li>
+<li><a href="#cupsVersion">cupsVersion</a></li>
+<li><a href="#JCLToPDFInterpreter">JCLToPDFInterpreter</a></li>
+</ul></li>
+<li><a href="#MACOSX">macOS Attributes</a><ul class="subcontents">
+<li><a href="#APDialogExtension">APDialogExtension</a></li>
+<li><a href="#APDuplexRequiresFlippedMargin">APDuplexRequiresFlippedMargin</a></li>
+<li><a href="#APHelpBook">APHelpBook</a></li>
+<li><a href="#APICADriver">APICADriver</a></li>
+<li><a href="#APPrinterIconPath">APPrinterIconPath</a></li>
+<li><a href="#APPrinterLowInkTool">APPrinterLowInkTool</a></li>
+<li><a href="#APPrinterPreset">APPrinterPreset</a></li>
+<li><a href="#APPrinterUtilityPath">APPrinterUtilityPath</a></li>
+<li><a href="#APScannerOnly">APScannerOnly</a></li>
+<li><a href="#APScanAppBundleID">APScanAppBundleID</a></li>
+</ul></li>
+<li><a href="#HISTORY">Change History</a></li>
+</ul>
+</div>
+<div class="body">
 <h2 class='title'><a name='SYNTAX'>PPD File Syntax</a></h2>
 
 <p>The PPD format is text-based and uses lines of up to 255 characters terminated by a carriage return, linefeed, or combination of carriage return and line feed. The following ABNF definition [<a href="http://tools.ietf.org/html/rfc5234" target="_blank">RFC5234</a>] defines the general format of lines in a PPD file:</p>
@@ -2668,6 +2465,6 @@ the device.</p>
        <li>Added <tt>cupsProtocol</tt> keyword</li>
 
 </ul>
-    </div>
-  </body>
+</div>
+</body>
 </html>
index 4109ff29c27a93c027dc782ac3a202e4941cff0a..359db0daa257c7a248abe0165ec5582f519de919 100644 (file)
@@ -128,25 +128,21 @@ apihelp:
        echo Generating CUPS API help files...
        codedoc --section "Programming" \
                --title "Developing PostScript Printer Drivers" \
-               --css ../doc/cups-printable.css \
                --header postscript-driver.header \
                --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 \
                --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 \
                --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 \
                --body spec-ppd.shtml \
                >../doc/help/spec-ppd.html