summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorJamie Lemon <jamie.lemon@artifex.com>2021-11-30 21:45:26 +0000
committerJamie Lemon <jamie.lemon@artifex.com>2021-12-02 14:15:14 +0000
commitbd2e1cd68a340adbd2db71cbe278447afcfb117a (patch)
treed57999bbc8af6a356217414ce85e932aa33d833d /doc
parenta9e0b6839b44822f2b511d4595535869096a2ff1 (diff)
downloadghostpdl-bd2e1cd68a340adbd2db71cbe278447afcfb117a.tar.gz
Documentation updates: includes SVG favicon, header prints version number, fixes HTML markup on some pages to address accessibility issues.
Diffstat (limited to 'doc')
-rw-r--r--doc/API.htm5
-rw-r--r--doc/C-style.htm53
-rw-r--r--doc/DLL.htm9
-rw-r--r--doc/Deprecated.htm65
-rw-r--r--doc/Develop.htm153
-rw-r--r--doc/Devices.htm75
-rw-r--r--doc/Drivers.htm122
-rw-r--r--doc/Fonts.htm4
-rw-r--r--doc/GPDL.htm4
-rw-r--r--doc/History9.htm6
-rw-r--r--doc/Install.htm25
-rw-r--r--doc/Internal.htm9
-rw-r--r--doc/Language.htm207
-rw-r--r--doc/Lib.htm4
-rw-r--r--doc/Make.htm70
-rw-r--r--doc/News.htm6
-rw-r--r--doc/Ps-style.htm4
-rw-r--r--doc/Ps2epsi.htm4
-rw-r--r--doc/Psfiles.htm9
-rw-r--r--doc/Readme.htm4
-rw-r--r--doc/Release.htm12
-rw-r--r--doc/SavedPages.htm4
-rw-r--r--doc/Search.htm4
-rw-r--r--doc/Source.htm10
-rw-r--r--doc/Unix-lpr.htm4
-rw-r--r--doc/Use.htm140
-rw-r--r--doc/VectorDevices.htm320
-rw-r--r--doc/WhatIsGS.htm4
-rw-r--r--doc/default.css22
-rw-r--r--doc/images/favicon.svg39
-rw-r--r--doc/language-bindings/c-sharp-ghost-api.html2
-rw-r--r--doc/language-bindings/c-sharp-ghost-mono.html2
-rw-r--r--doc/language-bindings/c-sharp-ghost-net.html2
-rw-r--r--doc/language-bindings/c-sharp-intro.html2
-rw-r--r--doc/language-bindings/demo-code.html2
-rw-r--r--doc/language-bindings/index.html2
-rw-r--r--doc/language-bindings/java-gsjavajar.html2
-rw-r--r--doc/language-bindings/java-intro.html2
-rw-r--r--doc/language-bindings/python-gsapi.html2
-rw-r--r--doc/language-bindings/python-intro.html2
-rw-r--r--doc/sample_downscale_device.htm4
-rw-r--r--doc/site.js2
-rw-r--r--doc/subclass.htm4
-rw-r--r--doc/thirdparty.htm4
44 files changed, 823 insertions, 608 deletions
diff --git a/doc/API.htm b/doc/API.htm
index 34ab2d651..3e4c9e087 100644
--- a/doc/API.htm
+++ b/doc/API.htm
@@ -4,13 +4,14 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>The Ghostscript Interpreter Application Programming Interface (API)</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1>Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a>
+ </header>
<main>
<article>
diff --git a/doc/C-style.htm b/doc/C-style.htm
index c79ccac9b..929dd9c61 100644
--- a/doc/C-style.htm
+++ b/doc/C-style.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript C Coding Guidelines</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
@@ -32,10 +32,10 @@
<li>Preprocessor:
<a href="#Conditionals">Conditionals</a>,
<a href="#Macros">Macros</a>,
- <a href="#Preprocessor_other">Other</a>
+ <a href="#Preprocessor_other">Other</a></li>
<li><a href="#Lexical_elements">Lexical elements</a></li>
<li><a href="#Scoping">Scoping</a></li>
- <li>Data types:</li>
+ <li>Data types:
<a href="#Scalars">Scalars</a>,
<a href="#Arrays">Arrays</a>,
<a href="#Typedefs">Typedefs</a>,
@@ -184,7 +184,7 @@ some compilers do it the other way.)</li>
compilers erroneously try to expand them.</li>
<li>Don't use macros to define shorthands for casted pointers. For
-instance, avoid</li>
+instance, avoid
<blockquote><code>
#define fdev ((gx_device_fubar *)dev)
@@ -200,6 +200,7 @@ gx_device_fubar * const fdev = (gx_device_fubar *)dev;
<p>
The use of <code>const</code> alerts the reader that this is effectively
a synonym.</p>
+</li>
<li>If a macro generates anything larger than a single expression (that is,
one or more statements), surround it with <code>BEGIN</code> and
@@ -348,7 +349,7 @@ Restrictions:</p>
<ul>
-<li>Don't use <code>typedef</code> for function types, such as</li>
+<li>Don't use <code>typedef</code> for function types, such as:
<blockquote>
<code>typedef int proc_xyz_t(double, int *);</code>
@@ -366,7 +367,7 @@ typedef PROC_XYZ((*proc_xyz_ptr_t)); /* define a type for procedure ptrs */<br>
<br>
proc_xyz_ptr_t pp; /* pointer to procedure */</code>
</blockquote>
-
+</li>
<li>Don't redefine <code>typedef</code>'ed names, even with the same
definition. Some compilers complain about this, and the standard doesn't
allow it.</li>
@@ -383,14 +384,14 @@ Restrictions:</p>
<li>Don't use anonymous structures if you can possibly avoid it, except
occasionally as components of other structures. Ideally, use the
<code>struct</code> keyword only for declaring named structure types,
-like this:</li>
+like this:
<blockquote>
<code>typedef struct xxx_s {</code><br>
&nbsp;&nbsp;&nbsp;... members ...<br>
<code>} xxx_t;</code>
</blockquote>
-
+</li>
<li>Use <code>struct</code> only when declaring structure types, never
for referring to them (e.g., never declare a variable as type
<code>struct&nbsp;xxx_s&nbsp;*</code>).</li>
@@ -500,7 +501,7 @@ the same file; if the procedure is global, the prototype should be in a
header file.</li>
<li>If a procedure parameter is itself a procedure, do list its parameter
-types rather than just using <code>()</code>. For example,</li>
+types rather than just using <code>()</code>. For example:
<blockquote><code>
int foo(int (*callback)(int, int));
@@ -512,7 +513,7 @@ rather than just</p>
<blockquote><code>
int foo(int (*callback)());
</code></blockquote>
-
+</li>
<li>Don't use the <code>P</code>* macros in new code. (See the
Procedures section of <a href="#Language_extensions">Language extensions</a>
below for more information.)</li>
@@ -602,12 +603,12 @@ language, such as Java, <code>bool</code> is an enumerated type requiring
an explicit cast to or from <code>int</code>; however, because C's
conditionals are defined as producing <code>int</code> values, we can't
even define <code>bool</code> as a C <code>enum</code> without
-provoking compiler warnings.</dd>
-
+provoking compiler warnings.
<p>
Even though <code>bool</code> is a synonym for <code>int</code>, treat
them as conceptually different types:</p>
+
<ul>
<li>Initialize or set <code>bool</code> variables to <code>true</code>
or <code>false</code>, not 0 or 1.</li>
@@ -618,18 +619,18 @@ and <code>||</code> only with Booleans. Don't use the idiom
<li>Use an explicit <code>(int)</code> cast to convert a Boolean to an
integer.</li>
</ul>
-
+</dd>
<dt><code>byte, ushort, uint, ulong</code></dt>
<dd>These types are simply shorthands for <code>unsigned char, short, int,
-long</code>.</dd>
+long</code>.
<p>
In addition, the use of <code>byte *</code> indicates a
Ghostscript-style string, with explicit length given separately, as
opposed to a null terminated C-style string, which is <code>char
*</code>.</p>
-
+</dd>
<dt><code>bits8, bits16, bits32</code></dt>
<dd>These are unsigned integer types of the given width. Use them wherever
@@ -823,27 +824,27 @@ Parentheses are important in only a few places:</p>
<ul>
<li>Around the inner subexpressions in expressions that mix
<code>&amp;&amp;</code> and <code>||</code>, even if they are not
-required by precedence, for example</li>
+required by precedence, for example:
<blockquote><code>
(xx &amp;&amp; yy) || zz
</code></blockquote>
-
+</li>
<li>Similarly around inner subexpressions in expressions that mix
<code>&amp;</code>, <code>|</code>, or shifts, especially if mixing
-these with other operators, for instance</li>
+these with other operators, for instance:
<blockquote><code>
(x &lt;&lt; 3) | (y &gt;&gt; 5)
</code></blockquote>
-
+</li>
<li>In macro definitions around every use of an argument that logically
-could be an expression, for example</li>
+could be an expression, for example:
<blockquote><code>
((x) * (x) + (y) * (y))
</code></blockquote>
-
+</li>
</ul>
<p>
@@ -854,7 +855,7 @@ For stylistic consistency with the existing Ghostscript code, put
parentheses around conditional expressions even if they aren't
syntactically required, unless you really dislike doing this. Note that
the parentheses should go around the entire expression, not the condition.
-For instance, instead of</p>
+For instance, instead of:</p>
<blockquote><code>
hpgl_add_point_to_path(pgls, arccoord_x, arccoord_y,<br>
@@ -862,7 +863,7 @@ hpgl_add_point_to_path(pgls, arccoord_x, arccoord_y,<br>
</code></blockquote>
<p>
-use</p>
+use:</p>
<blockquote><code>
hpgl_add_point_to_path(pgls, arccoord_x, arccoord_y,<br>
@@ -1133,7 +1134,7 @@ Every code file should start with comments containing</p>
<ol>
<li>a copyright notice,</li>
-<li>the name of the file in the form of an RCS Id:</li>
+<li>the name of the file in the form of an RCS Id:
<blockquote><code>
/* &#36;Id: filename.ext &#36;*/
@@ -1141,7 +1142,7 @@ Every code file should start with comments containing</p>
<p>
(using the comment convention appropriate to the language of the file), and</p>
-
+</li>
<li>a summary, no more than one line, of what the file contains.</li>
</ol>
diff --git a/doc/DLL.htm b/doc/DLL.htm
index d9c34d369..e1d588e6e 100644
--- a/doc/DLL.htm
+++ b/doc/DLL.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>How to Use the Ghostscript Dynamic Link Library (DLL)</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -127,7 +127,7 @@ The seven functions provided by the DLL are
<li><code>int GSDLLAPI <a href="#execute_cont">gsdll_execute_cont</a>(const char *str, int len);</code></li>
<li><code>int GSDLLAPI <a href="#execute_end">gsdll_execute_end</a>(void);</code></li>
<li><code>int GSDLLAPI <a href="#exit">gsdll_exit</a>(void);</code></li>
-<li><code>int GSDLLAPI <a href="#lock_device">gsdll_lock_device</a>(unsigned char *device, int flag);</code></li>
+<li><code>int GSDLLAPI <a href="#lock_device">gsdll_lock_device</a>(unsigned char *device, int flag);</code>
<p>
where <code>GSDLLAPI</code> is defined under OS/2 as
@@ -142,6 +142,7 @@ and under MS Windows as
<blockquote><code>
#define GSDLLAPI CALLBACK _export
</code></blockquote>
+</li>
</ul>
<h3><a name="revision"></a><code>gsdll_revision()</code></h3>
@@ -425,7 +426,7 @@ char *p;
<tr>
<th align="left">Symbol</th>
- <th align="left"></th>
+ <th align="left">Value</th>
<th align="left">Use</th>
</tr>
diff --git a/doc/Deprecated.htm b/doc/Deprecated.htm
index de60944a1..4b66b1239 100644
--- a/doc/Deprecated.htm
+++ b/doc/Deprecated.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Deprecated Ghostscript Features</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -1595,54 +1595,53 @@ valid <code>BitsPerPixel</code> values don't include the actual
</dl>
<dl>
-<dt><code>ProcessColorModel</code> (symbol)
+<dt><code>ProcessColorModel</code> (symbol)</dt>
<dd>A symbol taken from <code>/DeviceGray</code>,
<code>/DeviceRGB</code> or <code>/DeviceCMYK</code> which can be used
to select 1, 3 or 4 colors respectively. Note that this parameter takes
precedence over <code>Colors</code>, and that both affect the same
variable of the driver. (See <code>Colors</code> above for values
-combined with <code>BitsPerPixel</code>.)
+combined with <code>BitsPerPixel</code>.)</dd>
</dl>
<dl>
-<dt><code>HWResolution</code> (floats array)
+<dt><code>HWResolution</code> (floats array)</dt>
<dd>An array of two floats giving the horizontal and vertical resolution in
dots per inch from among 90, 180 and 360 (the default). Both values must
be the same. On the Ghostscript command line, the resolution may be
changed with the <a href="Use.htm#Resolution_switch"><code>-r</code>
-switch</a>.
+switch</a>.</dd>
</dl>
<dl>
-<dt><code>ManualFeed</code> (bool)
+<dt><code>ManualFeed</code> (bool)</dt>
<dd>Indicate that the sheets won't be fed automatically by the printer,
-<code>false</code> by default. (Not meaningful on the BJC-600, I fear.)
+<code>false</code> by default. (Not meaningful on the BJC-600, I fear.)</dd>
</dl>
<dl>
-<dt><code>MediaType</code> (string)
+<dt><code>MediaType</code> (string)</dt>
<dd>The media to print on, chosen from among "<code>PlainPaper</code>",
"<code>CoatedPaper</code>", "<code>TransparencyFilm</code>",
"<code>Envelope</code>", "<code>Card</code>" and
"<code>Other</code>". Default is "<code>PlainPaper</code>". For
"<code>Envelope</code>", "<code>Card</code>" or
"<code>Other</code>" the driver puts the printer into thick mode
-automatically regardless of the actual media weight.
+automatically regardless of the actual media weight.</dd>
</dl>
<dl>
-<dt><code>MediaWeight</code> (int or null)
+<dt><code>MediaWeight</code> (int or null)</dt>
<dd>The weight of the media in grams per square meter. Null (the default)
indicates that the weight is of no importance. If the specified media
weight is greater than 105 (that is, the value of the compilation default
<code>BJC</code>???<code>_MEDIAWEIGHT_THICKLIMIT</code>) then the
-printer will be set to use thick paper.
+printer will be set to use thick paper.</dd>
</dl>
<dl>
-<p>dt><code>PrintQuality</code> (string)
+<dt><code>PrintQuality</code> (string)</dt>
<dd>The quality of printing.</p>
-
<table>
<tr colspan="4">
<th>Value</th>
@@ -1675,6 +1674,8 @@ printer will be set to use thick paper.
<td>Means 200% black and 100% CMY; lights the "Bk+" light on a BJC-600</td>
</tr>
</table>
+</dd>
+
</dl>
<dl>
@@ -4314,7 +4315,7 @@ while <code>/FSCMYK32</code> is (almost) identical to
<code>/DeviceCMYKgenerate</code>.</li>
<li><code>upOutputFormat</code> selects the output method, supporting the values
-<code>/SunRaster</code>, <code>/Epson</code>, <code>/EscP2</code>, <code>/EscP2XY</code>, and<code>/Pcl</code>.</li>
+<code>/SunRaster</code>, <code>/Epson</code>, <code>/EscP2</code>, <code>/EscP2XY</code>, and<code>/Pcl</code>.
<blockquote>
<table>
@@ -4345,7 +4346,7 @@ while <code>/FSCMYK32</code> is (almost) identical to
</tr>
</table>
</blockquote>
-
+</li>
<li><code>-r360x360</code> is Ghostscript's standard
<a href="Use.htm#Resolution_switch">resolution switch</a>.</li>
@@ -4362,8 +4363,7 @@ Floyd-Steinberg algorithm (but still carrying out the time-consuming
computation). The related parameter "<code>upComponentShift</code>"
controls positioning the components within raster memory. Each of the
numbers given corresponds to a component which depends on the selected
-"<code>upColorModel</code>":</li>
-
+"<code>upColorModel</code>":
<blockquote>
<table>
<tr>
@@ -4464,6 +4464,7 @@ the stored component is <code>White</code>, which is the way PostScript
defines these devices, but most printers require <code>Black</code>.
Thus one has to provide a falling "<code>upWhiteTransfer</code>" for
such printers.</p>
+</li>
<li><code>upWeaveYPasses</code> is an integer that gives the number of
print head passes required to achieve the requested Ydpi. This makes sense
@@ -4493,7 +4494,7 @@ output file. (Intended for the HP PJL sequences).</li>
<code>upAdjustPageLengthCommand</code>,
<code>upAdjustPageWidthCommand</code>,
<code>upAdjustResolutionCommand</code>, and
-<code>upAdjustTopMarginCommand</code></li>
+<code>upAdjustTopMarginCommand</code>
<p>
Normally <code>uniprint</code> does not change the
@@ -4501,6 +4502,7 @@ Normally <code>uniprint</code> does not change the
However, if the above boolean values are set, the corresponding values are
changed (provided that the code of the formatters supports this change and
the commands to be adjusted are included in the BOP string).</p>
+</li>
<li><code>upEndPageCommand</code> is the fixed termination sequence for
each page, and of course there is an "<code>upEndJobCommand</code>" too.</li>
@@ -5112,7 +5114,7 @@ Germany<br>
+49 203 376273 telephone (MET evening hours)<br>
&lt;<a href="mailto:ghess@elmos.de">ghess@elmos.de</a>&gt;
</address>
-<p/>
+
<h3><a name="Uni_weaving_howto"></a><tt>Uniprint</tt> weaving parameters howto</h3>
<p>This section was contributed by Glenn Ramsey.</p>
<p>I wrote this because the documentation was very brief and I really struggled
@@ -5122,7 +5124,7 @@ on.</p>
at the X parameters yet.</p>
<ol>
<li>
-<b>Determine the nozzle geometry (upOutputPins)</b></li>
+<b>Determine the nozzle geometry (upOutputPins)</b>
<p>
You need to know how many nozzles the printer has and the spacing between
them. Usually you can find this out from the printer manual, or the printer
@@ -5136,10 +5138,10 @@ parameter.</p>
the purpose of demonstration I'll assume that we are using them all.</p>
<p>
<a name="escp2ras"></a>* escp2ras is available from Gunther Hess' page at <a href="http://www-md.e-technik.uni-rostock.de/ma/gunther/gs/index.html">http://www-md.e-technik.uni-rostock.de/ma/gunther/gs/index.html</a></p>
-
+</li>
<li><b>Determine how many passes are required (upWeaveYPasses)</b></li>
<li>The number of passes required is going to depend on the required resolution
-and the nozzle spacing.</li>
+and the nozzle spacing.
<blockquote>
<tt>passes = resolution * nozzle spacing
</tt>
@@ -5149,9 +5151,10 @@ This will be the value assigned to the upWeaveYPasses parameter.
spaced at 1/90in then 360 * 1/90 = 4 passes are required. For 720 dpi 8
passes would be required. The printer would, of course, have to be capable
of moving the paper in increments of either 360 or 720 dpi too.</p>
-<p>
+
+ </li>
<li>
-<b>Determine the normal Y feed increment (upWeaveYFeeds)</b></li></p>
+<b>Determine the normal Y feed increment (upWeaveYFeeds)</b></p>
<p>
You need to work out how much to feed the paper so that when the paper
has moved by one head length in however many passes you have then each
@@ -5180,7 +5183,7 @@ must equal the physical distance between each nozzle.</p>
<p>
</li>
<li>
-<b>Determine the beginning of page pins (upWeaveInitialPins)</b></li></p>
+<b>Determine the beginning of page pins (upWeaveInitialPins)</b></p>
<p>
These values will be assigned to the upWeaveInitialPins parameter and are
the numbers of nozzles to operate in each of the initial passes at the top
@@ -5399,7 +5402,7 @@ The extension adds a format that I have called EscNozzleMap and adds some
additional parameters to uniprint.</p><br>
<ul>
<li><code>upOutputFormat</code>selects the output method, and should be set to the value
-<code>/EscNozzleMap</code> to select this format.</li>
+<code>/EscNozzleMap</code> to select this format.
<blockquote>
<table cellpadding="0" cellspacing="0">
<tbody>
@@ -5412,6 +5415,7 @@ The extension adds a format that I have called EscNozzleMap and adds some
</tbody>
</table>
</blockquote>
+ </li>
</ul>
<blockquote>
@@ -5486,7 +5490,7 @@ The extension adds a format that I have called EscNozzleMap and adds some
head and whether the nozzles will be used to print. The array index
defines the row index for the nozzle in the output data
and the value defines the colour of the nozzle. The mapping
- of colours to values is defined in the table below.</li>
+ of colours to values is defined in the table below.
<blockquote>
<table>
<tr>
@@ -5531,13 +5535,14 @@ The extension adds a format that I have called EscNozzleMap and adds some
A value of 0 means that the nozzle is not used and the row in the output data will be
padded with zeros.<br>
</li>
+
<li><code>upNozzleMapMaskScanOffset</code><br>
An array of integers that defines the physical position of the nozzles relative
to the first nozzle in the repeated group. The relative distance is measured in
printed line widths and will be different for different printing resolutions.
This parameter is used because the physical spacing of the nozzles may not
correspond to their mapping in the output data. For example the ESC300 has nozzles
- physically arranged something like this:</li>
+ physically arranged something like this:
<p></p>
<table>
<tr>
@@ -5632,6 +5637,8 @@ The extension adds a format that I have called EscNozzleMap and adds some
In the output data the data for the last nozzle in the group would be in row 5
(numbering starts at 0) but the nozzle is physically positioned at 6 spaces from
the first nozzle. </p>
+
+ </li>
</ul>
<h4>Example 1 - Epson Stylus Color 300 - 360 dpi colour</h4>
<blockquote><pre>
diff --git a/doc/Develop.htm b/doc/Develop.htm
index ca0c5db37..f6bbf8cd5 100644
--- a/doc/Develop.htm
+++ b/doc/Develop.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Information for Ghostscript Developers</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -1673,60 +1673,73 @@ Shared support:
<dd>
<dl>
-<dt>
-Writing fonts:
-<dd>
-<a href="../devices/vector/gdevpsf.h">devices/vector/gdevpsf.h</a>,
-<a href="../devices/vector/gdevpsf1.c">devices/vector/gdevpsf1.c</a>,
-<a href="../devices/vector/gdevpsf2.c">devices/vector/gdevpsf2.c</a>,
-<a href="../devices/vector/gdevpsfm.c">devices/vector/gdevpsfm.c</a>,
-<a href="../devices/vector/gdevpsft.c">devices/vector/gdevpsft.c</a>,
-<a href="../devices/vector/gdevpsfu.c">devices/vector/gdevpsfu.c</a>,
-<a href="../devices/vector/gdevpsfx.c">devices/vector/gdevpsfx.c</a>,
-<a href="../base/gscedata.c">base/gscedata.c</a>,
-<a href="../base/gscedata.h">base/gscedata.h</a>,
-<a href="../base/gscencs.c">base/gscencs.c</a>,
-<a href="../base/gscencs.h">base/gscencs.h</a>.
-
-<dt>
-Other:
-<dd>
-<a href="../devices/vector/gdevpsdf.h">devices/vector/gdevpsdf.h</a>,
-<a href="../devices/vector/gdevpsdi.c">devices/vector/gdevpsdi.c</a>,
-<a href="../devices/vector/gdevpsdp.c">devices/vector/gdevpsdp.c</a>,
-<a href="../devices/vector/gdevpsds.c">devices/vector/gdevpsds.c</a>,
-<a href="../devices/vector/gdevpsds.h">devices/vector/gdevpsds.h</a>,
-<a href="../devices/vector/gdevpsdu.c">devices/vector/gdevpsdu.c</a>.
+ <dt>
+ Writing fonts:</dt>
+ <dd>
+ <a href="../devices/vector/gdevpsf.h">devices/vector/gdevpsf.h</a>,
+ <a href="../devices/vector/gdevpsf1.c">devices/vector/gdevpsf1.c</a>,
+ <a href="../devices/vector/gdevpsf2.c">devices/vector/gdevpsf2.c</a>,
+ <a href="../devices/vector/gdevpsfm.c">devices/vector/gdevpsfm.c</a>,
+ <a href="../devices/vector/gdevpsft.c">devices/vector/gdevpsft.c</a>,
+ <a href="../devices/vector/gdevpsfu.c">devices/vector/gdevpsfu.c</a>,
+ <a href="../devices/vector/gdevpsfx.c">devices/vector/gdevpsfx.c</a>,
+ <a href="../base/gscedata.c">base/gscedata.c</a>,
+ <a href="../base/gscedata.h">base/gscedata.h</a>,
+ <a href="../base/gscencs.c">base/gscencs.c</a>,
+ <a href="../base/gscencs.h">base/gscencs.h</a>.
+
+ <dt>
+ Other:</dt>
+ <dd>
+ <a href="../devices/vector/gdevpsdf.h">devices/vector/gdevpsdf.h</a>,
+ <a href="../devices/vector/gdevpsdi.c">devices/vector/gdevpsdi.c</a>,
+ <a href="../devices/vector/gdevpsdp.c">devices/vector/gdevpsdp.c</a>,
+ <a href="../devices/vector/gdevpsds.c">devices/vector/gdevpsds.c</a>,
+ <a href="../devices/vector/gdevpsds.h">devices/vector/gdevpsds.h</a>,
+ <a href="../devices/vector/gdevpsdu.c">devices/vector/gdevpsdu.c</a>.
</dl>
+<dl>
<dt>
-Encapsulated PostScript output driver (epswrite):
+Encapsulated PostScript output driver (epswrite):</dt>
<dd>
<a href="../devices/vector/gdevpsu.c">devices/vector/gdevpsu.c</a>,
<a href="../devices/vector/gdevpsu.h">devices/vector/gdevpsu.h</a>.
+</dd>
+</dl>
+<dl>
<dt>
-PDF output driver (pdfwrite):
-<dd>
+PDF output driver (pdfwrite):</dt>
+<dd></dd>
+</dl>
+
<dl>
<dt>
-Substrate:
+Substrate:</dt>
<dd>
<a href="../devices/vector/gdevpdfo.c">devices/vector/gdevpdfo.c</a>,
<a href="../devices/vector/gdevpdfo.h">devices/vector/gdevpdfo.h</a>,
<a href="../devices/vector/gdevpdfr.c">devices/vector/gdevpdfr.c</a>,
<a href="../devices/vector/gdevpdfu.c">devices/vector/gdevpdfu.c</a>.
+</dd>
+</dl>
+<dl>
<dt>
-Old text and fonts:
+Old text and fonts:</dt>
<dd>
<a href="../devices/vector/gdevpdfe.c">devices/vector/gdevpdfe.c</a>,
<a href="../devices/vector/gdevpdft.c">devices/vector/gdevpdft.c</a>.
+</dd>
+</dl>
+
+<dl>
<dt>
-New text and fonts:
+New text and fonts:</dt>
<dd>
<a href="../devices/vector/gdevpdt.c">devices/vector/gdevpdt.c</a>,
<a href="../devices/vector/gdevpdt.h">devices/vector/gdevpdt.h</a>,
@@ -1751,9 +1764,12 @@ New text and fonts:
<a href="../devices/vector/gdevpdtx.h">devices/vector/gdevpdtx.h</a>.
<a href="../base/ConvertUTF.h">base/ConvertUTF.h</a>,
<a href="../base/ConvertUTF.c">base/ConvertUTF.c</a>,
+</dd>
+</dl>
+<dl>
<dt>
-Graphics:
+Graphics:</dt>
<dd>
<a href="../devices/vector/gdevpdfc.c">devices/vector/gdevpdfc.c</a>,
<a href="../devices/vector/gdevpdfc.h">devices/vector/gdevpdfc.h</a>,
@@ -1763,31 +1779,39 @@ Graphics:
<a href="../devices/vector/gdevpdfk.c">devices/vector/gdevpdfk.c</a>,
<a href="../devices/vector/gdevpdft.c">devices/vector/gdevpdft.c</a>.
<a href="../devices/vector/gdevpdfv.c">devices/vector/gdevpdfv.c</a>.
+</dd>
+</dl>
+<dl>
<dt>
-Images:
+Images:</dt>
<dd>
<a href="../devices/vector/gdevpdfb.c">devices/vector/gdevpdfb.c</a>,
<a href="../devices/vector/gdevpdfi.c">devices/vector/gdevpdfi.c</a>,
<a href="../devices/vector/gdevpdfj.c">devices/vector/gdevpdfj.c</a>.
+</dd>
+</dl>
+<dl>
<dt>
-Other:
+Other:</dt>
<dd>
<a href="../devices/vector/gdevpdf.c">devices/vector/gdevpdf.c</a>,
<a href="../devices/vector/gdevpdfm.c">devices/vector/gdevpdfm.c</a>,
<a href="../devices/vector/gdevpdfp.c">devices/vector/gdevpdfp.c</a>,
<a href="../devices/vector/gdevpdfx.h">devices/vector/gdevpdfx.h</a>.
<a href="../devices/vector/gdevpdfb.h">devices/vector/gdevpdfb.h</a>.
+</dd>
</dl>
-</dl>
+
<h4><a name="High_level_devices"></a>Other high-level devices</h4>
-<p>
-PCL XL output device (pxlmono, pxlcolor):
+<dl>
+ <dt>
+PCL XL output device (pxlmono, pxlcolor):</dt>
<dd>
<a href="../devices/vector/gdevpx.c">devices/vector/gdevpx.c</a>,
<a href="../base/gdevpxat.h">base/gdevpxat.h</a>,
@@ -1795,19 +1819,26 @@ PCL XL output device (pxlmono, pxlcolor):
<a href="../base/gdevpxop.h">base/gdevpxop.h</a>,
<a href="../devices/gdevpxut.c">devices/gdevpxut.c</a>,
<a href="../devices/gdevpxut.h">devices/gdevpxut.h</a>.
+</dd>
+</dl>
+
+<dl>
<dt>
-Text extraction:
+Text extraction:</dt>
<dd>
<a href="../devices/vector/gdevtxtw.c">devices/vector/gdevtxtw.c</a>.
-
+</dd>
+</dl>
+<dl>
<dt>
-Other high-level devices:
+Other high-level devices:</dt>
<dd>
<a href="../devices/gdevtrac.c">devices/gdevtrac.c</a>.
-
+</dd>
</dl>
+
<h4><a name="Other_maintained_drivers"></a>Other maintained drivers</h4>
<p>
@@ -1818,7 +1849,7 @@ sense as the Ghostscript core code.
<dl>
<dt>
-Display drivers:
+Display drivers:</dt>
<dd>
<a href="../devices/gdev8bcm.c">devices/gdev8bcm.c</a>,
<a href="../devices/gdev8bcm.h">devices/gdev8bcm.h</a>,
@@ -1833,15 +1864,19 @@ Display drivers:
<a href="../devices/gdevsvga.c">devices/gdevsvga.c</a>,
<a href="../devices/gdevsvga.h">devices/gdevsvga.h</a>,
<a href="../devices/gdevvglb.c">devices/gdevvglb.c</a>.
+</dd>
+</dl>
+<dl>
<dt>
-Window system drivers:
-<dd>
+Window system drivers:</dt>
+<dd></dd>
+</dl>
<dl>
<dt>
-X Windows:
+X Windows:</dt>
<dd>
<a href="../devices/gdevx.c">devices/gdevx.c</a>,
<a href="../devices/gdevx.h">devices/gdevx.h</a>,
@@ -1850,33 +1885,38 @@ X Windows:
<a href="../devices/gdevxcmp.h">devices/gdevxcmp.h</a>,
<a href="../devices/gdevxini.c">devices/gdevxini.c</a>,
<a href="../devices/gdevxres.c">devices/gdevxres.c</a>.
+</dd>
+</dl>
+<dl>
<dt>
-Microsoft Windows:
+Microsoft Windows:</dt>
<dd>
<a href="../devices/gdevmswn.c">devices/gdevmswn.c</a>,
<a href="../devices/gdevmswn.h">devices/gdevmswn.h</a>,
<a href="../devices/gdevmsxf.c">devices/gdevmsxf.c</a>,
<a href="../devices/gdevwddb.c">devices/gdevwddb.c</a>,
-<a href="../devices/gdevwdib.c">devices/gdevwdib.c</a>.
+<a href="../devices/gdevwdib.c">devices/gdevwdib.c</a>.</dd>
<dt>
-OS/2 Presentation Manager:
+OS/2 Presentation Manager:</dt>
<dd>
<a href="../devices/gdevpm.h">devices/gdevpm.h</a>,
<a href="../base/gspmdrv.c">base/gspmdrv.c</a>,
-<a href="../base/gspmdrv.h">base/gspmdrv.h</a>.
+<a href="../base/gspmdrv.h">base/gspmdrv.h</a>.</dd>
</dl>
+<dl>
<dt>
-Raster file output drivers:
-<dd>
+Raster file output drivers:</dt>
+<dd></dd>
+</dl>
<dl>
<dt>
-Fax and TIFF:
+Fax and TIFF:</dt>
<dd>
<a href="../devices/gdevfax.c">devices/gdevfax.c</a>,
<a href="../devices/gdevfax.h">devices/gdevfax.h</a>,
@@ -1887,6 +1927,8 @@ Fax and TIFF:
<a href="../devices/gdevtfnx.c">devices/gdevtfnx.c</a>.
<a href="../devices/gdevtsep.c">devices/gdevtsep.c</a>.
+</dd>
+
<dt>
Example DeviceN devices:
<dd>
@@ -1896,6 +1938,8 @@ Example DeviceN devices:
<a href="../devices/gdevpsd.c">devices/gdevpsd.c</a>,
<a href="../devices/gdevperm.c">devices/gdevperm.c</a>.
+</dd>
+
<dt>
Other raster file formats:
<dd>
@@ -1912,8 +1956,11 @@ Other raster file formats:
<a href="../devices/gdevpng.c">devices/gdevpng.c</a>,
<a href="../devices/gdevpsim.c">devices/gdevpsim.c</a>.
+</dd>
+
</dl>
+<dl>
<dt>
Printer drivers:
<dd>
diff --git a/doc/Devices.htm b/doc/Devices.htm
index 0c78a8658..2bc6cedab 100644
--- a/doc/Devices.htm
+++ b/doc/Devices.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Details of Ghostscript Output Devices</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -192,11 +192,12 @@ The default value if you don't specify this options is usually 72 <abbr>dpi</abb
<dd><p>These options control the use of subsample antialiasing. Their use is highly recommended
for producing high quality rasterizations of the input files. The size of the subsampling
box <em>n</em> should be 4 for optimum output, but smaller values can be used for faster
-rendering. Antialiasing is enabled separately for text and graphics content.</p></dd>
+rendering. Antialiasing is enabled separately for text and graphics content.</p>
<p>Because this feature relies upon rendering the input it is incompatible, and will generate
an error on attempted use, with any of the vector output devices.</p>
-
-</dl></blockquote>
+</dd>
+</dl>
+</blockquote>
<p>
It is also conventional to call Ghostscript with the '<code>-dSAFER -dBATCH -dNOPAUSE</code>' trio
@@ -237,14 +238,14 @@ anti-aliasing are enabled by default.</p>
<dl>
<dt><code>-dDownScaleFactor=</code><b><em>integer</em></b></dt>
<dd>This causes the internal rendering to be scaled down by the given (integer <= 8) factor before being output. For example, the following will produce
-a 200dpi output png from a 600dpi internal rendering:</dd>
+a 200dpi output png from a 600dpi internal rendering:
<blockquote>
<pre>
<kbd>gs -sDEVICE=png16m -r600 -dDownScaleFactor=3 -o tiger.png\
examples/tiger.eps</kbd>
</pre>
</blockquote>
-
+</dd>
</dl>
</blockquote>
@@ -409,14 +410,14 @@ drivers that produce uncompressed output:</p>
<dd>Produces 32-bit CMYK output (8 bits per component).</dd>
<dt><code>tiff64nc</code></dt>
<dd>Produces 64-bit CMYK output (16 bits per component).</dd>
-<a name="tiffsep"></a><dt><code>tiffsep</code></dt>
+<dt><a name="tiffsep"></a><code>tiffsep</code></dt>
<dd>
The <code>tiffsep</code> device creates multiple output files: a single 32 bit
composite CMYK file and multiple tiffgray files, one for each
separation (unless <code>-dNoSeparationFiles</code> is specified). If separation
files are being produced and more than one page is being generated, the output file
specification <b>must</b> include a format specifier (e.g <code>-o outfile-%d.tif</code>)
-so that each page can have a uniquely named set of separation files.</dd>
+so that each page can have a uniquely named set of separation files.
<p>The default compression is <code>lzw</code> but this may be overridden by
the <code>-sCompression=</code> option.</p>
@@ -537,14 +538,15 @@ options, none of these are currently exposed. Any device author
interested in trying these options should contact Artifex for more
information. Currently ETS can be enabled using -dDownScaleETS=1.</p>
-<a name="tiffsep1"></a><dt><code>tiffsep1</code></dt>
+</dd>
+<dt><a name="tiffsep1"></a><code>tiffsep1</code></dt>
<dd>
The <code>tiffsep1</code> device creates multiple output files, one for each component
or separation color. The device creates multiple tiffg4 files (the compression
can be set using -sCompression= described below). The 1 bit per component
output is halftoned using the current screening set by 'setcolorscreen'
or 'sethalftone' which allows for ordered dither or stochastic threshold
- array dither to be used. This is faster than error diffusion.</dd>
+ array dither to be used. This is faster than error diffusion.
<p>
The file specified via the OutputFile command line parameter will not be
@@ -559,8 +561,9 @@ name in '(' and ').tif' to the filename.
If the file name specified via the OutputFile parameter ends with the suffix
'.tif', then the suffix is removed prior to adding the component name in
'(' and ').tif'.</p>
+</dd>
-<a name="tiffscaled"></a><dt><code>tiffscaled</code></dt>
+<dt><a name="tiffscaled"></a><code>tiffscaled</code></dt>
<dd>
The <code>tiffscaled</code> device renders internally at the specified resolution to an
8 bit greyscale image. This is then scaled down by an integer scale factor
@@ -569,7 +572,7 @@ The <code>tiffscaled</code> device renders internally at the specified resolutio
below.</dd>
-<a name="tiffscaled4"></a><dt><code>tiffscaled4</code></dt>
+<dt><a name="tiffscaled4"></a><code>tiffscaled4</code></dt>
<dd>
The <code>tiffscaled4</code> device renders internally at the specified resolution to an
8 bit cmyk image. This is then scaled down by an integer scale factor
@@ -577,31 +580,31 @@ The <code>tiffscaled4</code> device renders internally at the specified resoluti
4bpp cmyk output. The compression can be set using -sCompression= as described
below.</dd>
-<a name="tiffscaled8"></a><dt><code>tiffscaled8</code></dt>
+<dt><a name="tiffscaled8"></a><code>tiffscaled8</code></dt>
<dd>
The <code>tiffscaled8</code> device renders internally at the specified resolution to an
8 bit greyscale image. This is then scaled down by an integer scale factor
(set by <code>-dDownScaleFactor</code>= described below). The compression can be set using
-sCompression= as described below.</dd>
-<a name="tiffscaled24"></a><dt><code>tiffscaled24</code></dt>
+<dt><a name="tiffscaled24"></a><code>tiffscaled24</code></dt>
<dd>
The <code>tiffscaled24</code> device renders internally at the specified resolution to a
24 bit rgb image. This is then scaled down by an integer scale factor
(set by <code>-dDownScaleFactor</code>= described below). The compression can be set using
--sCompression= as described below.</dd>
+-sCompression= as described below.
<p>In commercial builds, the <code>-dDeskew</code> option can be used to automatically detect/correct skew when generating output bitmaps.</p>
-
-<a name="tiffscaled32"></a><dt><code>tiffscaled32</code></dt>
+</dd>
+<dt><a name="tiffscaled32"></a><code>tiffscaled32</code></dt>
<dd>
The <code>tiffscaled32</code> device renders internally at the specified resolution to a
32 bit cmyk image. This is then scaled down by an integer scale factor
(set by <code>-dDownScaleFactor</code>= described below). The compression can be set using
--sCompression= as described below.</dd>
+-sCompression= as described below.
<p>In commercial builds, the <code>-dDeskew</code> option can be used to automatically detect/correct skew when generating output bitmaps.</p>
-
+</dd>
</dl>
</blockquote>
@@ -775,11 +778,12 @@ a 200dpi image.</dd>
<blockquote><dl>
<dt><code>-sPostRenderProfile=<em>path</em></code> (path to an ICC profile)</dt>
<dd>If this option set then the page will be color transformed using that
-profile <b>after</b> downscaling.</dd>
+profile <b>after</b> downscaling.
<p>
This is useful when the file uses overprint to separately paint to some
subset of the C, M, Y, and K colorants, but the final CMYK is to be color
corrected for printing or display.</p>
+</dd>
</dl></blockquote>
<p>
@@ -789,7 +793,7 @@ The <code>tiffsep</code> TIFF device also provide this parameter:</p>
<dt><code>-dPrintSpotCMYK=<em>boolean</em></code> defaults to false. When set to true
the device will print (to stdout) the name of each ink used on the page, and the CMYK
values which are equivalent to 100% of that ink. The values are 16-bits ranging from 0
-to 32760.</dt>
+to 32760.</dt><dd></dd>
</dl></blockquote>
<a name="TIFF_trapping"></a>
@@ -1086,14 +1090,14 @@ to use the existing font Encoding. For English text this may give better results
<p>For these reasons the OCR functionality of pdfwrite can be controlled by using a new
parameter <code>-sUseOCR</code>. This has three possible values;
</p>
+<dl>
<dt><code>-sUseOCR=</code><b><em>string</em></b></dt>
-<dd>
- <dl>
- <dt>Never<dd>Default - don't use OCR at all even if support is built-in.
- <dt>AsNeeded<dd>If there is no existing ToUnicode information, use OCR.
- <dt>Always<dd>Ignore any existing information and always use OCR.
- </dl>
-</dd>
+
+ <dt>Never</dt><dd>Default - don't use OCR at all even if support is built-in.</dd>
+ <dt>AsNeeded</dt><dd>If there is no existing ToUnicode information, use OCR.</dd>
+ <dt>Always</dt><dd>Ignore any existing information and always use OCR.</dd>
+
+</dl>
</p>
<hr>
@@ -1200,8 +1204,10 @@ OS/2 and the gtk+ versions of ghostscript.
<dt><code>-dDisplayFormat=</code><b><em>N</em></b> (integer bit-field)</dt>
<dd>Some common values are 16#30804 for Windows RGB, 16#804 for gtk+ RGB,
16#20101 for Windows monochrome, 16#102 for gtk+ monochrome,
-16#20802 grayscale, 16#20808 for CMYK, 16#a0800 for separations.</dd>
-The bit fields are
+16#20802 grayscale, 16#20808 for CMYK, 16#a0800 for separations.
+<p>
+The bit fields are:
+</p>
<ul>
<li> native (1), gray (2), RGB (4), CMYK (8), or separation (80000)
color spaces.</li>
@@ -1213,6 +1219,7 @@ color spaces.</li>
</ul>
<p>For more details, see the <a href="API.htm#display">Ghostscript
Interpreter API.</a></p>
+</dd>
<dt><code>-dDisplayResolution=</code><b><em>DPI</em></b></dt>
<dd>Set the initial resolution resolution for the display device.
This is used by the Windows clients to set the display device
@@ -1329,7 +1336,7 @@ are summarized below:
<dl>
<dt><code>-r</code><em>number</em></dt>
-<br><code>-r</code><em>number1</em><code>x</code><em>number2</em>
+<dt><code>-r</code><em>number1</em><code>x</code><em>number2</em></dt>
<dd>Sets the resolution, in dpi. If the resolution is not specified,
Ghostscript queries the IJS server to determine the preferred resolution.
When the resolution is specified, it overrides the value (if any)
@@ -1713,7 +1720,7 @@ the Windows printer driver; this option can produce huge print jobs).</dd>
<dd>Sets additional options, defined in a dictionary. The following properties can
be set:</dd>
-<dl>
+
<dt><code>/DocumentName <em>string</em></code></dt>
<dd>Defines the user friendly document name which will be displayed by the
Windows spooler.</dd>
@@ -1737,7 +1744,7 @@ resolution of 1200/4=300 dpi. This can be very useful to reduce the memory
requirements when printing in True Color on some high resolution ink-jet color
printers.</dd>
-</dl>
+
</dl>
</blockquote>
diff --git a/doc/Drivers.htm b/doc/Drivers.htm
index 8c10ee12e..217d80c46 100644
--- a/doc/Drivers.htm
+++ b/doc/Drivers.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>The Interface between Ghostscript and Device Drivers</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -37,10 +37,12 @@
<ul>
<li><a href="#Coordinate_system">Coordinate system</a></li>
<li><a href="#Color_definition">Color definition</a></li>
- <ul>
- <li><a href="#sep_and_linear_fields">Separable and linear fields</a></li>
- <li><a href="#Changing_color_info_data">Changing color_info data</a></li>
- </ul>
+ <li>
+ <ul>
+ <li><a href="#sep_and_linear_fields">Separable and linear fields</a></li>
+ <li><a href="#Changing_color_info_data">Changing color_info data</a></li>
+ </ul>
+ </li>
<li><a href="#Types">Types</a></li>
</ul>
</li>
@@ -134,7 +136,7 @@ need do is edit <code>contrib.mak</code> in two places.</p>
<li>The list of devices, in the section headed "Catalog". Add
<code>smurf</code> to the list.</li>
-<li>The section headed "Device drivers".</li>
+<li>The section headed "Device drivers".
<p>
Suppose the files containing the smurf driver are called
@@ -188,6 +190,7 @@ or</p>
<p>
Note that the space before the :, and the explicit compilation rules for the
.c files, are required for portability,</p>
+</li>
</ol>
<hr>
@@ -387,6 +390,7 @@ structure, or to add procedures, you must change the following places:</p>
(probably just adding <code>NULL</code> procedure entries if the
new procedures don't produce output).</li>
<li>These devices that must have complete (non-defaulted) procedure vectors:</li>
+<li>
<ul>
<li>The null device in <a href="../base/gdevnfwd.c">gdevnfwd.c</a>.</li>
<li>The command list "device" in <a href="../base/gxclist.c">gxclist.c</a>.
@@ -394,6 +398,7 @@ structure, or to add procedures, you must change the following places:</p>
<li>The "memory" devices in <a href="../base/gdevmem.h">gdevmem.h</a> and
<code>gdevm*.c</code>.</li>
</ul>
+</li>
<li>The clip list accumulation "device" in
<a href="../base/gxacpath.c">gxacpath.c</a>.</li>
<li>The clipping "devices" <a href="../base/gxclip.c">gxclip.c</a>,
@@ -779,7 +784,7 @@ gets <code>gx_color_index</code> values from the device's
procedures. If the <code>separable_and_linear</code> field in the device's
<code>color_info</code> structure is not set to
<code>GX_CINFO_SEP_LIN</code> then Ghostscript does not do
-any computations with <code>gx_color_index</code> values.</dd>
+any computations with <code>gx_color_index</code> values.
<p>
The special
@@ -820,6 +825,9 @@ For Microsoft and the MSVC compiler, <code>GX_COLOR_INDEX_TYPE</code> will
be set to <code>unsigned _int64</code> if <code>USE_LARGE_COLOR_INDEX</code>
is set to 1 either on the make command line or by editing the definition
in <a href="../psi/msvc32.mak">msvc32.mak</a> </p>
+
+ </dd>
+
</dl>
<dl>
@@ -841,7 +849,7 @@ filling a region (rectangle). <code>gx_tile_bitmap</code> is an
older, deprecated type lacking <code>shift</code> and
<code>rep_shift</code>;
<code>gx_strip_bitmap</code> has superseded it, and should be
-used in new code. Here is a copy of the relevant part of the file:</dd>
+used in new code. Here is a copy of the relevant part of the file:
<blockquote>
<pre>
@@ -914,6 +922,9 @@ typedef struct gx_strip_bitmap_s {
int num_planes;
} gx_strip_bitmap;</pre>
</blockquote>
+
+</dd>
+
</dl>
<hr>
@@ -1356,12 +1367,13 @@ always call <code>gs_opendevice</code> instead.</dd>
(nominally 1/72 inch per unit) to device coordinates. The default
procedure computes this from width, height, and
[<code>xy</code>]<code>_pixels_per_inch</code> on the assumption that
-the origin is in the upper left corner, that is</dd>
+the origin is in the upper left corner, that is
<blockquote>
<code>xx</code> = <code>x_pixels_per_inch</code>/72, <code>xy</code> = 0,<br>
<code>yx = 0, yy = -y_pixels_per_inch</code>/72,<br>
<code>tx = 0, ty = height</code>.
</blockquote>
+</dd>
</dl>
<dl>
@@ -1471,7 +1483,7 @@ the specified name is not a colorant for the device. A value of 0 to
of the given name. A value of <code>GX_DEVICE_COLOR_MAX_COMPONENTS</code>
indicates that the given name is a valid colorant name for the device but the
colorant is not currently being used. This is used for implementing names
-which are in SeparationColorNames but not in SeparationOrder.</dd>
+which are in SeparationColorNames but not in SeparationOrder.
<p>
The default procedure returns results based upon process color model
@@ -1479,6 +1491,7 @@ of DeviceGray, DeviceRGB, or DeviceCMYK selected by
<code>color_info.num_components</code>. This procedure must be
defined if another process color model is used by the device or spot colors are
supported by the device.</p>
+</dd>
</dl>
<dl>
@@ -1488,7 +1501,7 @@ gx_device&nbsp;* dev, const gx_device&nbsp;** tdev)</code> <b><em>[OPTIONAL]</em
device to pass to them. These procedures are used to translate values in
either Gray, RGB, or CMYK color spaces into device colorant values. A
separate procedure is not required for the DeviceN and Separation color
-spaces since these already represent device colorants.</dd>
+spaces since these already represent device colorants.
<p>In many cases, the device returned in <code>tdev</code> will be the
same as <code>dev</code>, but the caller should not rely on this. For
@@ -1507,6 +1520,7 @@ procedure must be defined if another process color model is used by the
device or spot colors are to be supported. All these procedures take a
<code>gx_device</code> pointer; these should be called with the value
returned in <code>tdev</code> NOT the initial value of <code>dev</code>.</p>
+</dd>
</dl>
<dl>
@@ -1517,11 +1531,12 @@ value. The range of legal values of the
arguments is 0 to <code>gx_max_color_value</code>. The default procedure
packs bits into a <code>gx_color_index</code> value based upon the
values in <code>color_info.depth</code> and
-<code>color_info.num_components</code>.</dd>
+<code>color_info.num_components</code>.
<p>
Note that the <code>encode_color</code> procedure
must not return <code>gx_no_color_index</code> (all 1s).</p>
+</dd>
</dl>
<dl>
@@ -1573,11 +1588,12 @@ the point <em>(x,y)</em> is included in the rectangle, as are
<b><em>not</em></b> <em>(x+w,y)</em>, <em>(x,y+h)</em>, or
<em>(x+w,y+h)</em>. If <code>width</code>&nbsp;&lt;=&nbsp;0 or
height&nbsp;&lt;=&nbsp;0, <code>fill_rectangle</code> should return 0
-without drawing anything.</dd>
+without drawing anything.
<p>
Note that <code>fill_rectangle</code> is the only non-optional procedure
in the driver interface.</p>
+</dd>
</dl>
<h4><a name="Bitmap_imaging"></a>Bitmap imaging</h4>
@@ -1608,13 +1624,14 @@ pixel is unaffected if the image bit is 0 or 1 respectively. If
<code>id</code> is different from <code>gx_no_bitmap_id</code>, it
identifies the bitmap contents unambiguously; a call with the same
<code>id</code> will always have the same <code>data</code>,
-<code>raster</code>, and data contents.</dd>
+<code>raster</code>, and data contents.
<p>
This operation, with
<code>color0</code>&nbsp;=&nbsp;<code>gx_no_color_index</code>, is
the workhorse for text display in Ghostscript, so implementing it
efficiently is very important.</p>
+</dd>
</dl>
<dl>
@@ -1632,7 +1649,7 @@ the device coordinate system. (Note that this is backwards from the
PostScript definition of halftone phase.) <code>phase_x</code> and
<code>phase_y</code> are guaranteed to be in the range
<em>[0..</em><code>tile-&gt;width</code><em>)</em> and
-<em>[0..</em><code>tile-&gt;height</code><em>)</em> respectively.</dd>
+<em>[0..</em><code>tile-&gt;height</code><em>)</em> respectively.
<p>
If <code>color0</code> and <code>color1</code> are both
@@ -1646,6 +1663,7 @@ implementing it efficiently for solid tiles (that is, where either
<code>gx_no_color_index</code>, for colored halftones, or neither one is
<code>gx_no_color_index</code>, for monochrome halftones) is very
important.</p>
+</dd>
</dl>
<h4><a name="Pixmap_imaging"></a>Pixmap imaging</h4>
@@ -1739,41 +1757,44 @@ Given a 2d source block of pixels (supplied as scanline data), this
function transforms that data, maps it through the supplied colour
lookup function, clips it, and plots it into the device.
-<p>In all calls to this function a negative return value indicates an error.
+<p>In all calls to this function a negative return value indicates an error.</p>
<p>Called first with the <code>transform_pixel_region_init</code> reason code,
this prepares for subsequent calls to scale a region as described in the
<code>data.u.init</code> structure. A pointer to any state required for
this should be written into <code>data.state</code>, and the caller must
-pass that in to subsequent calls.
+pass that in to subsequent calls.</p>
<p>Subsequently this will be called with <code>transform_pixel_region_data_needed</code>.
The function will then check to see if the next scanline of data will be trivially
clipped away. If so, then it will return zero to indicate that it is not needed.
This can help the caller to avoid unnecessary processing. A positive return value
-indicates that the line is required.
+indicates that the line is required.</p>
<p>For every line where the data is required, the function will be called with
<code>transform_pixel_region_process_data</code>. The function will then read
and process the line from <code>data.u.process_data</code>.
The data in the buffer is packed 8 bit values, which will be fed into the supplied
<code>cmapper</code> to set the device color as required. This is then written
-into the device.
+into the device.</p>
<p>Once all the scanlines have been fed through calls to <code>transform_pixel_region_data_needed</code>
and <code>transform_pixel_region_process_data</code>, a final call with <code>transform_pixel_region_end</code>
-is made that frees the state.
+is made that frees the state.</p>
<p>The default implementation of this device function will generally break the pixel
data down into calls to <code>fill_rectangle</code>, though in some cases (notably
the portrait 8 bit per component output case), a faster route through <code>copy_color</code>
-can be used.
+can be used.</p>
<p>Memory devices offer a version of this device function that can accelerate direct
-plotting to the memory array.
+plotting to the memory array.</p>
<p>NOTE: Currently the clipping rectangle is not honoured for skewed (not portrait or landscape)
transformations. This is allowed for in the callers.
+</p>
+</dd>
+
</dl>
<h4><a name="Compositing"></a>Compositing</h4>
@@ -1791,7 +1812,7 @@ gx_bitmap_id&nbsp;id, int&nbsp;x, int&nbsp;y, int&nbsp;width,
int&nbsp;height, gx_color_index&nbsp;color, int&nbsp;depth)</code>
<b><em>[OPTIONAL]</em></b></dt>
<dd>This procedure is somewhat misnamed: it was added to the interface
-before we really understood alpha channel and compositing.</dd>
+before we really understood alpha channel and compositing.
<p>
Fill a given region with a given color modified by an individual alpha
@@ -1807,6 +1828,7 @@ rule.</p>
with an 8 bit depth. In addition they should accept either 2 or 4 if
the corresponding <code>get_alpha_bits</code> procedure returns either
of those values.</p>
+</dd>
</dl>
<dl>
@@ -1833,7 +1855,7 @@ it. Accordingly, the caller must watch the return values from this
function to understand if a new device has been created to which future
calls should be made.
<p>
-Devices will normally implement this in one of the following standard ways:</dd>
+Devices will normally implement this in one of the following standard ways:
<ul>
<li>Devices that don't do any imaging and don't forward any imaging
@@ -1894,6 +1916,7 @@ Closing a compositor frees all of its storage, including the compositor
itself. However, since the <code>composite</code> call may
return the same device, clients must check for this case, and only call the
close procedure if a separate device was created.</p>
+</dd>
</dl>
<h3><a name="Polygon_level_drawing"></a>Polygon-level drawing</h3>
@@ -1954,7 +1977,9 @@ fixed&nbsp;fx0, fixed&nbsp;fy0, fixed&nbsp;fx1, fixed&nbsp;fy1,
const&nbsp;gx_drawing_color&nbsp;*pdcolor,
gs_logical_operation_t&nbsp;lop)</code> <b><em>[OPTIONAL]</em></b></dt>
<dd>Draw a one-pixel-wide line from <em>(fx0,fy0)</em> to
-<em>(fx1,fy1)</em>.</dd>
+<em>(fx1,fy1)</em>.</dd></dl>
+
+<dl><dt></dt><dd>
<h3><a name="Linear_color_drawing"></a>Linear color drawing</h3>
@@ -1970,8 +1995,9 @@ or uses a non-separable or a non-linear color model.</p>
const gs_fixed_point *p0, const gs_fixed_point *p1,
const gs_fixed_point *p2,
const frac31 *c0, const frac31 *c1, const frac31 *c2)
-</code></dt>
-<b><em>[OPTIONAL]</em></b>
+</code>
+<b><em>[OPTIONAL]</em></b></dt>
+
<dd>This function is the highest level one within the linear color function group.
It fills a triangle with a linearly varying color.
Arguments specify 3 points in the device space - vertices of a triangle, and their colors.
@@ -2031,8 +2057,8 @@ in <code>gdevddrw.c</code> for sample code.</dd>
const gs_fixed_point *p2, const gs_fixed_point *p3,
const frac31 *c0, const frac31 *c1,
const frac31 *c2, const frac31 *c2)
-</code></dt>
-<b><em>[OPTIONAL]</em></b>
+</code><b><em>[OPTIONAL]</em></b></dt>
+
<dd>This function is a lower level one within the linear color function group.
The default implementation of <code> fill_linear_color_triangle </code>
calls this function 1-2 times per triangle. Besides that,
@@ -2052,7 +2078,7 @@ All those important notes are applicable here.</dd>
<dd>
Sample code may be found in in <code>gxdtfill.h</code>; be aware it's rather complicated.
A linear color function is generated from it as <code> gx_fill_trapezoid_ns_lc </code>
-with the following template parameters :</dd>
+with the following template parameters :
<pre>
#define LINEAR_COLOR 1
@@ -2067,7 +2093,7 @@ with the following template parameters :</dd>
<p>See <code>check_gradient_overflow</code>
(defined in in <code>gdevddrw.c</code>), as an example of an area
that can't be painted in a single action due to 64-bits fixed overflows.</p>
-
+</dd>
</dl>
<dl>
@@ -2519,7 +2545,7 @@ gx_image_enum_common_t&nbsp;**pinfo)</code> <b><em>[OPTIONAL]</em></b></dt>
<code>image_plane_data</code> function supplied in the returned image
enumerator will follow, and then a call of
<code>end_image</code>. The parameters of <code>begin_typed_image</code>
-are as follows:</dd>
+are as follows:
<blockquote><table>
<tr valign="top"><td><code>pis</code></td>
@@ -2580,6 +2606,7 @@ is called.</p>
<code>begin_typed_image</code> returns 0 normally, or 1 if the image does not
need any data. In the latter case, <code>begin_typed_image</code> does not
allocate an enumeration structure.</p>
+</dd>
</dl>
<p>
@@ -2598,7 +2625,7 @@ gx_image_enum_common_t&nbsp;*info,
const&nbsp;gx_image_plane_t&nbsp;*planes, int&nbsp;height)</code></dt>
<dd>This call provides more of the image source data: specifically,
<code>height</code> rows, with <code>Width</code> pixels supplied for
-each row.</dd>
+each row.
<p>
The data for each row are packed big-endian within each byte, as for
@@ -2652,7 +2679,7 @@ arguments, does not require the data to be aligned in any way.</p>
<p>
Note that for some image types, different planes may have different
numbers of bits per pixel, as defined in the <code>plane_depths</code> array.</p>
-
+</dd>
</dl>
<dl>
@@ -2698,7 +2725,7 @@ gs_font&nbsp;*font,
const&nbsp;gx_clip_path&nbsp;*pcpath,
gs_text_enum_t&nbsp;**ppte)</code> <b><em>[OPTIONAL]</em></b></dt>
-<p></p><dd>
+<dd><p></p>
Begin processing text, by creating a state structure and storing it in
<code>*ppte</code>. The parameters of <code>text_begin</code> are as
follows:</dd>
@@ -2774,9 +2801,9 @@ procedures, which in turn call the procedures in the text enumerator.</p>
<dl>
<dt><code>int gs_text_process(gs_text_enum_t&nbsp;*pte)</code></dt>
-<p><dd>Continue processing text. This procedure may return 0 or a negative
+<dd><p></p>Continue processing text. This procedure may return 0 or a negative
error code as usual, or one of the following values (see
-<a href="../base/gstext.h">gstext.h</a> for details).</dd></p>
+<a href="../base/gstext.h">gstext.h</a> for details).
<blockquote><table>
<tr valign="top"> <td><code>TEXT_PROCESS_RENDER</code></td>
@@ -2787,14 +2814,15 @@ error code as usual, or one of the following values (see
<td>The client has asked to intervene between characters.
This is used for <code>cshow</code> and <code>kshow</code>.</td></tr>
</table></blockquote>
+</dd>
</dl>
<dl>
<dt><code>int gs_text_release(gs_gstate * pgs, gs_text_enum_t&nbsp;*pte,
-client_name_t&nbsp;cname)</code></dt><p> <dd>Finish processing text and release
+client_name_t&nbsp;cname)</code></dt><dd><p></p>Finish processing text and release
all associated structures. Clients must call this procedure after
<code>gs_text_process</code> returns 0 or an error, and may call it at
-any time.</dd></p>
+any time.</dd>
</dl>
<p>
@@ -2840,9 +2868,9 @@ if the glyph can't be translated to Unicode.</p>
<dt><code>int (*get_bits_rectangle)(gx_device&nbsp;*dev,
const&nbsp;gs_int_rect&nbsp;*prect, gs_get_bits_params_t&nbsp;*params)</code> <b><em>[OPTIONAL]</em></b></dt>
-<p><dd>
+<dd>
Read a rectangle of bits back from the device. The <code>params</code>
-structure consists of:</dd></p>
+structure consists of:<p></p>
<table>
<tr valign="top"> <td><code>options</code></td>
@@ -2865,7 +2893,11 @@ willing to accept. (If the client has more flexibility, the implementation
may be able to return the data more efficiently, by avoiding representation
conversions.) The options are divided into groups.</p>
-<blockquote><dl>
+</dd>
+</dl>
+
+<blockquote>
+<dl>
<dt><b><em>alignment</em></b></dt>
<dd>Specifies whether the returned data must be aligned in the normal
manner for bitmaps, or whether unaligned data are acceptable.</dd>
@@ -2910,7 +2942,9 @@ the standard color space. (Native device pixels use
<dd>Specifies whether alpha channel information should be returned as the
first component, the last component, or not at all. Note that for devices
that have no alpha capability, the returned alpha values will be all 1s.
-</dd></dl></blockquote>
+</dd></dl>
+
+</blockquote>
<p>
The client may set more than one option in each of the above groups; the
diff --git a/doc/Fonts.htm b/doc/Fonts.htm
index cca8bc990..5e0680855 100644
--- a/doc/Fonts.htm
+++ b/doc/Fonts.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Fonts and Font Facilities Supplied with Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/GPDL.htm b/doc/GPDL.htm
index 78af95e93..3b127150e 100644
--- a/doc/GPDL.htm
+++ b/doc/GPDL.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>The GhostPDL Interpreter Framework</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/History9.htm b/doc/History9.htm
index 6cbab63d8..a3887c07d 100644
--- a/doc/History9.htm
+++ b/doc/History9.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>History of Ghostscript versions 9.n</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -85,7 +85,7 @@ This document is a record of changes in Ghostscript releases numbered 9.xx.
<h2><a name="Version9.55.0"></a>Version 9.55.0 (2021-09-27)</h2>
<p> Highlights in this release include:
<ul>
-<p>This release includes the fix for the <code>%pipe%</code> security issue (CVE-2021-3781).
+<li>This release includes the fix for the <code>%pipe%</code> security issue (CVE-2021-3781).
</li>
<li>
<p><b>New PDF Interpreter:</b> This is an entirely new implementation written in C (rather than
diff --git a/doc/Install.htm b/doc/Install.htm
index 6e2f88c1c..685dec030 100644
--- a/doc/Install.htm
+++ b/doc/Install.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>How to Install Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -62,6 +62,8 @@ platform-specific. See below for details.</li>
<li>Initialization files that Ghostscript reads in when it
starts up; these are the same on all platforms.</li>
+
+<li>
<ul>
<li><code>gs_</code>*<code>.ps</code> unless Ghostscript was compiled
using the "compiled initialization files" option. See the documentation of
@@ -77,6 +79,7 @@ appropriate <code>Fontmap.</code><em>xxx</em> for your platform), unless
you plan always to invoke Ghostscript with the <a
href="Use.htm#FONTMAP_switch"><code>-dNOFONTMAP</code> switch</a>.</li>
</ul>
+</li>
<li>Fonts, for rendering text. These are platform-independent,
but if you already have fonts of the right kind on your platform,
@@ -183,24 +186,24 @@ no responsibility for RPMs created by others.</p>
We usually distribute Ghostscript releases for Windows as a binary installer,
for the convenience of most users.</p>
-<h4><a name="Windows16"></a>Windows 3.1 (16-bit)</h4>
+<h3><a name="Windows16"></a>Windows 3.1 (16-bit)</h3>
<p>
The last version to run on 16-bit Windows 3.1 was Ghostscript 4.03.</p>
-<h4><a name="Windows32"></a>Windows 95, 98, Me</h4>
+<h3><a name="Windows32"></a>Windows 95, 98, Me</h3>
<p>
The last version to be available as a binary for Windows 95/98/Me was 8.60. Although
building from source with Visual Studio 2003 should produce a working binary for those
versions.</p>
-<h4><a name="Windows32"></a>Windows NT4, 2000, XP, 2003 or Vista (32-bit)</h4>
+<h3><a name="Windows32"></a>Windows NT4, 2000, XP, 2003 or Vista (32-bit)</h3>
<p>
The installer is normally named
<code>gs###w32.exe</code>,
where ### is the release number (e.g., 871 for Ghostscript 8.71,
910 for Ghostscript 9.10).</p>
-<h4><a name="Windows64"></a>Windows XP x64 edition, 2003 or Vista (64-bit)</h4>
+<h3><a name="Windows64"></a>Windows XP x64 edition, 2003 or Vista (64-bit)</h3>
<p>
The x64 installer is normally named
<code>gs###w64.exe</code>
@@ -351,28 +354,30 @@ a different location so adjust the following commands accordingly.</p>
<li>Download the fonts and unpack them into
<code>DISK1:[DIR.GHOSTSCRIPT.LIB]</code>.</li>
-<li>Enable access to the program and support files for all users with:</li>
+<li>Enable access to the program and support files for all users with:
<blockquote><pre>
&#36; set file/prot=w:re DISK1:[DIR]GHOSTSCRIPT.dir
&#36; set file/prot=w:re DISK1:[DIR.GHOSTSCRIPT...]*.*
</pre></blockquote>
-
+</li>
<li>Optionally, add the Ghostscript help instructions to your system wide
-help file:</li>
+help file:
<blockquote><pre>
&#36; lib/help sys&#36;help:HELPLIB.HLB DISK1:[DIR.GHOSTSCRIPT.DOC]GS-VMS.HLP
</pre></blockquote>
+</li>
<li>Lastly, add the following lines to the appropriate system wide or user
-specific login script.</li>
+specific login script.
<blockquote><pre>
&#36; define gs_exe DISK1:[DIR.GHOSTSCRIPT.BIN]
&#36; define gs_lib DISK1:[DIR.GHOSTSCRIPT.EXE]
&#36; gs :== &#36;gs_exe:gs.exe
</pre></blockquote>
+</li>
</ul>
diff --git a/doc/Internal.htm b/doc/Internal.htm
index d40b454e7..3b26fe289 100644
--- a/doc/Internal.htm
+++ b/doc/Internal.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript Internal Operators</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -49,7 +49,7 @@
<dt><code>&lt;name&gt; &lt;array&gt; .makeoperator &lt;operator&gt;</code></dt>
<dd>Constructs and returns a new operator that is actually the given
procedure in disguise. The name is only used for printing. The operator
-has the executable attribute.</dd>
+has the executable attribute.
<p>
Operators defined in this way do one other thing besides running the
@@ -57,6 +57,9 @@ procedure: if an error occurs during the execution of the procedure, and
there has been no net reduction in operand or dictionary stack depth, the
operand or dictionary stack pointer respectively is reset to its position
at the beginning of the procedure.</p>
+
+</dd>
+
</dl>
diff --git a/doc/Language.htm b/doc/Language.htm
index df8984a5e..7691101df 100644
--- a/doc/Language.htm
+++ b/doc/Language.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript and the PostScript Language</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -588,12 +588,12 @@ current when beginning the layer. THIS AREA IS SUBJECT TO CHANGE.</p>
<dd>Begins a new transparency group. The <code>ll/ur</code> coordinates
are the bounding box of the group in the current user coordinate system.
<code>paramdict</code> has the following keys:</dd>
-<dl>
+
<dt><code>/Isolated</code></dt>
<dd>(optional) Boolean; default value = <code>false</code>.</dd>
<dt><code>/Knockout</code></dt>
<dd>(optional) Boolean; default value = <code>false</code>.</dd>
-</dl>
+
</dl>
<dl>
@@ -609,7 +609,7 @@ onto the group that now becomes current.</dd>
The <code>ll/ur</code> coordinates
are the bounding box of the mask in the current user coordinate system.
<code>paramdict</code> has the following keys:</dd>
-<dl>
+
<dt><code>/Subtype</code></dt>
<dd>(required) Name, either <code>/Alpha</code> or
<code>/Luminosity</code>.</dd>
@@ -617,16 +617,18 @@ are the bounding box of the mask in the current user coordinate system.
<dd>(optional) Array of number.</dd>
<dt><code>/TransferFunction</code></dt>
<dd>(optional) Function object (produced by applying
-<code>.buildfunction</code> to a Function dictionary).</dd>
-</dl>
+<code>.buildfunction</code> to a Function dictionary).
+<p>
The <code>cs_set</code> parameter is a boolean indicating whether the color
space for the mask group is the current color space in the graphics state, or
whether mask group color space should be inherited from the previous group
in the transparency group stack. In general, for the most consistent results,
it is recommended that this be set to <code>true</code>, and the intended
color space set in the graphics state prior to the <code>.begintransparencymaskgroup</code>
-call.
+call.</p>
+</dd>
</dl>
+
<dl>
<dt><code>&lt;mask#&gt; .endtransparencymask -</code></dt>
<dd>Ends the current transparency mask group, compositing the mask group being ended
@@ -778,7 +780,7 @@ pushes false on the stack and returns, rather than causing an error.</dd>
&lt;string&gt; &lt;file&gt;</code></dt>
<dd>Creates and opens a temporary file
like the <code>file</code> operator, also returning the file name. There
-are three cases for the <code>&lt;prefix_string|null&gt;</code> operand:</dd>
+are three cases for the <code>&lt;prefix_string|null&gt;</code> operand:
<ul>
<li><code>null</code>: create the file in the same directory and with the
@@ -795,46 +797,48 @@ temporary file might be named <code>/tmp/xxa1234</code>.</li>
<code>&lt;prefix_string&gt;</code> as the first part of the file name.
E.g., if <code>&lt;prefix_string&gt;</code> is
<code>/my/tmpdir/zz</code>, the temporary file might be named
-<code>/my/tmpdir/zza1234</code>.</li>
+<code>/my/tmpdir/zza1234</code>.
<p>
+
When running in <code>SAFER</code> mode, the absolute path must
be one of the strings on the permit file writing list
-(see <a href="Use.htm#Safer"><b>-dSAFER</b></a>) .</p>
+(see <a href="Use.htm#Safer"><b>-dSAFER</b></a>) .</p></li>
</ul>
-
+</dd>
</dl>
<p>
Ghostscript also supports the following <code>IODevice</code> in
addition to a subset of those defined in the Adobe documentation:</p>
<ul>
-<li>
-<code>%pipe%command</code>, which opens a pipe on the given command.
-This is supported only on operating systems that provide
-<code>popen</code> (primarily Unix systems, and not all of those).</li>
-<li>
-<code>%disk#%</code>, which emulates the %disk0
-through %disk9 devices on some Adobe PostScript printers. This pseudo
-device provides a flat filenaming system with a user definable location
-for the files (/Root). These devices will only be present if the
-diskn.dev feature is specified during the build.</li>
-
-<p>This feature is intended to allow compatibility with font downloaders
-that expect to store fonts on the %disk device of the printer.</p>
-<p>
-Use of the %disk#% devices requires that the location of files be given
-by the user setting the /Root device parameter. The syntax for setting
-the /Root parameter is:<pre>
- mark /Root (directory_specification) (%disk#) .putdevparams
-</pre>
-For example, to store the files of the %disk0 device on the directory
-/tmp/disk0, use:<pre>
- mark /Root (/tmp/disk0/) (%disk0) .putdevparams
-</pre></p>
-<p>The files will be stored in the specified directory with arbitrary names.
-A mapping file is used to store the association between the file
-names given for the file operations on the %diskn# device and the file
-that resides in the /Root directory.</p>
+ <li>
+ <code>%pipe%command</code>, which opens a pipe on the given command.
+ This is supported only on operating systems that provide
+ <code>popen</code> (primarily Unix systems, and not all of those).</li>
+ <li>
+ <code>%disk#%</code>, which emulates the %disk0
+ through %disk9 devices on some Adobe PostScript printers. This pseudo
+ device provides a flat filenaming system with a user definable location
+ for the files (/Root). These devices will only be present if the
+ diskn.dev feature is specified during the build.
+
+ <p>This feature is intended to allow compatibility with font downloaders
+ that expect to store fonts on the %disk device of the printer.</p>
+ <p>
+ Use of the %disk#% devices requires that the location of files be given
+ by the user setting the /Root device parameter. The syntax for setting
+ the /Root parameter is:<pre>
+ mark /Root (directory_specification) (%disk#) .putdevparams
+ </pre>
+ For example, to store the files of the %disk0 device on the directory
+ /tmp/disk0, use:<pre>
+ mark /Root (/tmp/disk0/) (%disk0) .putdevparams
+ </pre></p>
+ <p>The files will be stored in the specified directory with arbitrary names.
+ A mapping file is used to store the association between the file
+ names given for the file operations on the %diskn# device and the file
+ that resides in the /Root directory.</p>
+ </li>
</ul>
<h4><a name="Miscellaneous"></a>Miscellaneous operators</h4>
@@ -917,7 +921,7 @@ is useful even with release builds.</p>
<dt><code>- .setsafe -</code></dt>
<dd>If Ghostscript is started with <code>-dNOSAFER</code> or
<code>-dDELAYSAFER</code>, this operator can be used to enter <b>SAFER</b>
-mode (see <a href="Use.htm#Safer"><b>-dSAFER</b></a>)</dd>
+mode (see <a href="Use.htm#Safer"><b>-dSAFER</b></a>)
<p>
<strong>The following is deprecated, see <a href="Use.htm#Safer"><b>-dSAFER</b></a></strong>
<p>
@@ -930,6 +934,7 @@ SAFER was not in operation.</p>
<p>
<b>Note: This uses setpagedevice to change .LockSafetyParams, so the page
will be erased as a side effect of this operator</b></p>
+</dd>
</dl>
<dl>
@@ -1021,8 +1026,7 @@ activated, <code>false</code> if not.
<dt><code>&lt;dict&gt; .genordered &lt;string&gt;</code> (/OutputType /ThreshString).</dt>
<dt><code>&lt;dict&gt; .genordered &lt;array&gt;</code> (/OutputType /TOSArray).</dt>
<dd>This operator creates an ordered dither screening pattern with the parameters from the dictionary, returning (by default) a PostScript HalftoneType 3 (threshold array based) dictionary suitable for use with <code>sethalftone</code> or as a component Halftone of a <code>HalftoneType 5</code> Halftone dictionary. The /OutputType parameter can also select other than Halftone Type 3 as the return paramter,
-<code>&lt;dict&gt;</code> has the following keys (all are optional):
-<dl>
+<code>&lt;dict&gt;</code> has the following keys (all are optional):</dd>
<dt><code>/Frequency</code></dt>
<dd>Integer; default value = 75</dd>
<dt><code>/Angle</code></dt>
@@ -1051,10 +1055,6 @@ threshold array bytes (same as /Thresholds of the Type3 dictionary).
<dd>
First element is the width, next is the height, followed by pairs X, then Y, of the turn-on-sequence of the threshold array. This information can be used to construct a threshold array with a transfer function "pickled into" the threshold array, which is useful if the turn-on-sequence has more than 256 pairs. Refer to toolbin/halftone/thresh_remap for more information.</dt>
</dd>
-<dl>
-</dl>
-</dl>
-</dd>
</dl>
<dl>
@@ -1278,7 +1278,7 @@ bytes.</dd>
Type 1 Font Format documentation. The <code>seed_integer</code> must be
55665 or 4330 as described just above. PDF interpreters don't skip space characters
after operator <code>eexec</code>. Use <code>keep_spaces = true</code> for
-decoding embedded PDF fonts. Recognized dictionary keys are:</dd>
+decoding embedded PDF fonts. Recognized dictionary keys are:
<blockquote>
<code>seed &lt;16-bit integer&gt;</code> (required)<br>
@@ -1286,6 +1286,7 @@ decoding embedded PDF fonts. Recognized dictionary keys are:</dd>
<code>eexec &lt;bool&gt;</code> (default=<code>false</code>)<br>
<code>keep_spaces &lt;bool&gt;</code> (default=<code>false</code>)
</blockquote>
+</dd>
</dl>
<dl>
@@ -1306,7 +1307,7 @@ are converted to hex; if false, binary packets are not converted.</dd>
<dt><code>&lt;target&gt; &lt;dict&gt; /PixelDifferenceEncode filter &lt;file&gt;</code></dt>
<dt><code>&lt;source&gt; &lt;dict&gt; /PixelDifferenceDecode filter &lt;file&gt;</code></dt>
<dd>Implements the Predictor=2 pixel-differencing option of the LZW
-filters. Recognized keys are:</dd>
+filters. Recognized keys are:
<blockquote>
<code>Colors &lt;integer&gt;</code> (1 to 4, default=1)<br>
@@ -1316,12 +1317,13 @@ filters. Recognized keys are:</dd>
<p>
See the Adobe <a href="http://partners.adobe.com/public/developer/pdf/index_reference.html"><em>PDF Reference Manual</em></a> for details.</p>
+</dd>
</dl>
<dl>
<dt><code>&lt;target&gt; &lt;dict&gt; /PNGPredictorEncode filter &lt;file&gt;</code></dt>
<dt><code>&lt;source&gt; &lt;dict&gt; /PNGPredictorDecode filter &lt;file&gt;</code></dt>
-<p><dd>Implements the "filter" algorithms of the
+<dd><p>Implements the "filter" algorithms of the
<a href="http://www.libpng.org/pub/png/">Portable Network Graphics (PNG)
graphics format</a>. Recognized keys are:</p>
@@ -1373,7 +1375,7 @@ specification</p>
<dt><code>&lt;source&gt; /TBCPDecode filter &lt;file&gt;</code></dt>
<dd>Create filters that implement the Adobe Tagged Binary Communications
Protocol. See Adobe documentation for details.</dd>
- </dl>
+</dl>
<dl>
<dt><code>&lt;target&gt; /zlibEncode filter &lt;file&gt;</code></dt>
@@ -1411,7 +1413,7 @@ is the inverse mapping of the <code>string</code> for the
<dd>These filters encode and decode data using Huffman codes. Since these
filters aren't used anywhere, we don't document them further, except to note
the recognized dictionary keys, which must be set identically for encoding
-and decoding:</dd>
+and decoding:
<blockquote>
<code>FirstBitLowOrder &lt;bool&gt;</code> (default=false)<br>
@@ -1420,6 +1422,7 @@ and decoding:</dd>
<code>EncodeZeroRuns &lt;int&gt;</code> (default=256)<br>
<code>Tables &lt;int_array&gt;</code>
</blockquote>
+</dd>
</dl>
<dl>
@@ -1428,11 +1431,12 @@ and decoding:</dd>
method, which we've heard is also used in the popular <code>bzip2</code>
compression application. See <a
href="http://sources.redhat.com/bzip2/">http://sources.redhat.com/bzip2/</a>
-for more information. The only recognized dictionary key is:</dd>
+for more information. The only recognized dictionary key is:
<blockquote>
<code>BlockSize &lt;integer&gt;</code> (default=16384)
</blockquote>
+</dd>
</dl>
<hr>
@@ -1451,11 +1455,12 @@ devices:
<dd>This parameter allows for improved system security by preventing
PostScript programs from being able to change potentially dangerous
device paramters such as OutputFile. This parameter cannot be set false
-if it is already true.</dd>
+if it is already true.
<p>
If this parameter is true for the current device, attempt to set a new
device that has <code>.LockSafetyParams</code> false will signal an
<code> invalidaccess</code> error.</p>
+</dd>
</dl>
<dl>
@@ -2054,60 +2059,51 @@ document these officially, so that in future the functionality would be availabl
<p>The following functions existed in the original PDF interpreter and have been replicated for the new
interpreter. It should be possible to use these for the forseeable future.</p>
-
+<dl>
<dt><code>&ltfile&gt runpdf - </code></dt>
<dd> Called from the modified PostScript run operator (which copies stdin to a temp
file if required). Checks for PDF collections, processes all requested pages.</dd>
-<p><dt><code>&ltfile&gt runpdfbegin -</code></dt>
+<dt><code>&ltfile&gt runpdfbegin -</code></dt>
<dd> This must be called before performing any further operations. Its exact action depends on which
-interpreter is being used, but it essentially sets up the environment to process the file as a PDF</dd></p>
-
-<p><dt><code>&ltint&gt pdfgetpage &ltpagedict&gt | &ltnull&gt</code></dt>
+interpreter is being used, but it essentially sets up the environment to process the file as a PDF</dd>
+<dt><code>&ltint&gt pdfgetpage &ltpagedict&gt | &ltnull&gt</code></dt>
<dd> int is a number from 1 to N indicating the desired page number from
the PDF file. Returns the a dictionary containing various informational key/value pairs.
- If this fails, returns a null object.</dd></p>
-
-<p><dt><code> - pdfshowpage_init -</code></dt>
+ If this fails, returns a null object.</dd>
+ <dt><code> - pdfshowpage_init -</code></dt>
<dd> In the PostScript PDF interpreter this simply adds 1 to the /DSCPageCount value in a dictionary.
-It has no effect in the new PDF interpreter but is maintained for backwards compatibility.</dd></p>
+It has no effect in the new PDF interpreter but is maintained for backwards compatibility.</dd>
-<p><dt><code>&ltpagedict&gt pdfshowpage_setpage &ltpagedict&gt</code></dt>
+<dt><code>&ltpagedict&gt pdfshowpage_setpage &ltpagedict&gt</code></dt>
<dd> Takes a dictionary as returned from pdfgetpage, extracts various
parameters from it, and sets the media size for the page, taking into
- account the boxes, and requested Box, Rotate value and PDFFitPage.</dd></p>
-
-<p><dt><code>&ltpagedict&gt pdfshowpage_finish -</code></dt>
+ account the boxes, and requested Box, Rotate value and PDFFitPage.</dd>
+ <dt><code>&ltpagedict&gt pdfshowpage_finish -</code></dt>
<dd> Takes a dictionary as returned from pdfgetpage, renders the page content
- executes showpage to transfer the rendered content to the device.</dd></p>
-
-<p><dt><code>- runpdfend -</code></dt>
-<dd> Terminates the PDF processing, executes restore and various cleanup activities.</dd></p>
-
-<p><dt><code>&ltfile&gt pdfopen &ltdict&gt</code></dt>
+ executes showpage to transfer the rendered content to the device.</dd>
+ <dt><code>- runpdfend -</code></dt>
+<dd> Terminates the PDF processing, executes restore and various cleanup activities.</dd>
+<dt><code>&ltfile&gt pdfopen &ltdict&gt</code></dt>
<dd> Open a PDF file and read the header, trailer
- and cross-reference.</dd></p>
-
-<p><dt><code>&ltdict&gt pdfclose -</code></dt>
+ and cross-reference.</dd>
+ <dt><code>&ltdict&gt pdfclose -</code></dt>
<dd> Terminates processing the original PDF file object. The dictionary parameter
- should be the one returned from pdfopen</dd></p>
-
-<p><dt><code>&ltpagedict&gt pdfshowpage -</code></dt>
+ should be the one returned from pdfopen</dd>
+ <dt><code>&ltpagedict&gt pdfshowpage -</code></dt>
<dd> Takes a dictionary returned from pdfgetpage and calls the pdfshowpage_init
pdfshowpage_setpage, pdfshowpage_finish trio to start the page, set up the
- media and render the page.</dd></p>
-
-<p><dt><code>&ltint&gt &ltint&gt dopdfpages -</code></dt>
+ media and render the page.</dd>
+ <dt><code>&ltint&gt &ltint&gt dopdfpages -</code></dt>
<dd> The integers are the first and last pages to be run from the file. Runs a loop from
the fist integer to the last. NOTE! If the current dictionary contains a PDFPageList
array then we 'get' the entry from the array corresponding to the current loop
index, and use that to determine whether we should draw the page. Otherwise we
- simply draw the page. Uses pdfshowpage to actually render the page.</dd></p>
-
-<p><dt><code>- runpdfpagerange &ltint&gt &ltint&gt</code></dt>
+ simply draw the page. Uses pdfshowpage to actually render the page.</dd>
+ <dt><code>- runpdfpagerange &ltint&gt &ltint&gt</code></dt>
<dd> Processes the PostScript /FirstPage, /LastPage and /PageList parameters. These are used together to build an internal array
of page numbers to run, which is used by dopdfpages to actually process the pages if PageList is present,
- and a FirstPage and LastPage value. Despite the name this function does not actually 'run' any pages at all.</dd></p>
+ and a FirstPage and LastPage value. Despite the name this function does not actually 'run' any pages at all.
<p>Normal operation simply calls runpdf with an opened-for-read PostScript file object. The table below shows the normal
calling sequence</p>
@@ -2192,28 +2188,22 @@ would be necessary to set /PageHasTransparency before drawing the first PDF page
using a small number of custom PostScript operators. These operators do not exist in standard PostScript; they
are specific to the Ghostscript implementation. These operators are documented here for the benefit of any
developers wishing to use them directly.</p>
+</dd>
-<p><dt><code>dict .PDFInit &ltPDFContext&gt</code></dt>
+<dt><code>dict .PDFInit &ltPDFContext&gt</code></dt>
<dd> Initialises an instance of the PDF interpreter. dict is an optional dictionary that contains any interpreter-level
switches, such as PDFDEBUG, this is used to set the initial state of the PDF interpreter.
-The return value is a PDFcontext object which is an opaque object to be used with the other PDF operators.</dd></p>
-
-<p><dt><code>filename PDFcontext .PDFFile -</code></dt>
+The return value is a PDFcontext object which is an opaque object to be used with the other PDF operators.</dd>
+<dt><code>filename PDFcontext .PDFFile -</code></dt>
<dd> Opens a named file and associates it with the instance of the PDF interpreter.
Filename is a string containing a fully qualified path to the PDF file to open, this file must have been made accesible
by setting --permit-file-read.
-</dd></p>
-
-<p><dt><code>file PDFcontext .PDFStream -</code></dt>
+</dd><dt><code>file PDFcontext .PDFStream -</code></dt>
<dd> Takes an already open (disk-based) file and associates it with the instance of the PDF interpreter.
-</dd></p>
-
-<p><dt><code>PDFcontext .PDFClose -</code></dt>
+</dd><dt><code>PDFcontext .PDFClose -</code></dt>
<dd> If the context contains an open PDF file which was opened via the .PDFfile operator, this closes the file.
Files associated with the context by the .PDFStream operator are unaffected. Regardless of the source it then shuts down the PDF interpreter and frees the associated memory.
-</dd></p>
-
-<p><dt><code>PDFcontext .PDFInfo dict</code></dt>
+</dd><dt><code>PDFcontext .PDFInfo dict</code></dt>
<dd> PDFcontext is a PDFcontext object returned from a previous call to .PDFInit.
The returned dictionary contains various key/value pairs with useful file level information:
<blockquote>
@@ -2222,17 +2212,13 @@ The returned dictionary contains various key/value pairs with useful file level
<code>/Producer</code> string<br>
<code>/IsEncrypted</code> boolean<br>
</blockquote>
-</dd></p>
-
-<p><dt><code>PDFcontext .PDFMetadata -</code></dt>
+</dd><dt><code>PDFcontext .PDFMetadata -</code></dt>
<dd> PDFcontext is a PDFcontext object returned from a previous call to .PDFInit.
For the benefit of high level devices, this is a replacement for 'process_trailer_attrs' which is a seriously misnamed function now.
This function needs to write any required output intents, load and send Outlines to the device, copy the Author, Creator, Title, Subject
and Keywords from the Info dict to the output device, copy Optional Content Properties (OCProperties) to the output device.
If an AcroForm is present send all its fields and link widget annotations to fields, and finally copy the PageLabels. If we add support for anything else, it will be here too..
-</dd></p>
-
-<p><dt><code>PDFcontext int .PDFPageInfo -</code></dt>
+</dd><dt><code>PDFcontext int .PDFPageInfo -</code></dt>
<dd> The integer argument is the page number to retrieve information for.
Returns a dictionary with the following key/value pairs:
<blockquote>
@@ -2250,27 +2236,28 @@ May also contain (if they are present in the Page dictionary)
<code>/TrimBox</code> [llx lly urx ury]<br>
<code>/UserUnit</code> int<br>
</blockquote>
-</dd></p>
-
-<p><dt><code>PDFcontext int .PDFDrawPage -</code></dt>
+</dd>
+<dt><code>PDFcontext int .PDFDrawPage -</code></dt>
<dd> PDFcontext is a PDFcontext object returned from a previous call to .PDFInit.
The integer argument is the page number to be processed.
Interprets the page content stream(s) of the specified page using the current graphics state.
-</dd></p>
+</dd>
-<p><dt><code>PDFcontext int .PDFDrawAnnots -</code></dt>
+<dt><code>PDFcontext int .PDFDrawAnnots -</code></dt>
<dd> PDFcontext is a PDFcontext object returned from a previous call to .PDFInit.
The integer argument is the page number to be processed.
Renders the Annotations (if any) of the specified page using the current graphics state
For correct results, the graphics state when this operator is run should be the same as when
PDFDrawPage is executed.
-</dd></p>
+
<p>Note: The PDFcontext object created by PDFInit must (clearly) have a PDF file associated
with it before you can usefully use it. Attempting to use a PDFcontext with
any of the processing operators (eg .PDFDrawPage) before using either .PDFStream of .PDFFile
to associate a file with the context will result in an error.
</p>
+</dd>
+</dl>
<!-- [2.0 end contents] ==================================================== -->
<!-- [3.0 begin visible trailer] =========================================== -->
diff --git a/doc/Lib.htm b/doc/Lib.htm
index 4f787cbc7..0424837ad 100644
--- a/doc/Lib.htm
+++ b/doc/Lib.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>The Ghostscript Library</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Make.htm b/doc/Make.htm
index 6548eee60..62dac5080 100644
--- a/doc/Make.htm
+++ b/doc/Make.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>How to Build Ghostscript from Source Code</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -713,7 +713,7 @@ time with the <code>-DDEBUG</code> or
<dd>Deletes all the files created by the build process (relocatables,
executables, and miscellaneous temporary files). If you've built an
executable and want to save it, move it first to another place, because
- "<code>make clean</code>" deletes it.</dd>?
+ "<code>make clean</code>" deletes it.</dd>
</dl>
<dl>
@@ -1118,7 +1118,7 @@ on your particular platform and compiler. In fact, that is the
<b><em>first</em></b> place to check if you build Ghostscript and it crashes
or produces obviously incorrect results.</p>
-<h4><a name="GNU_make"></a>make tools</h4>
+<h3><a name="GNU_make"></a>make tools</h3>
<p>
You require a make tool which supports separate directories for
@@ -1142,11 +1142,11 @@ Ghostscript.</p>
<h4><a name="HP_RISC"></a>H-P RISC workstations</h4>
-<ul>
+
<p>
(see Autoconf-based method above)</p>
-
+<ul>
<li>HP-UX versions before 11.0 do not support POSIX threads. Set
<code>SYNC=nosync</code> in the makefile before building.</li>
@@ -1160,6 +1160,8 @@ work. If <code>cc</code> on your system doesn't accept the
<li>If you use H-P's compiler, be sure you have upgraded to a recent
release. Many bizarre symptoms have been reported trying to build
Ghostscript with older, buggier compilers, for example:</li>
+
+<li>
<ul>
<li>The link step fails with a message about "<code>max</code>" not being defined.</li>
<li>The build succeeds, but the resulting executable fails to start up,
@@ -1168,6 +1170,7 @@ in .registerencoding".</li>
<li>The build succeeds, but the resulting executable produces a black
background on the first page of output.</li>
</ul>
+</li>
<li>It is reported that On HPUX 9.* you need at least compiler patch
PHSS_5723 and dld.sl patch PHSS_5734 to build Ghostscript. (As of late
@@ -1223,7 +1226,7 @@ please read the following carefully.</p>
<ul>
<li>
- To make the optimizer allocate enough table space, set</li>
+ To make the optimizer allocate enough table space, set
<p><code>CFLAGS="-Olimit 2500"</code> (for older compilers)
<br><code>CFLAGS="-OPT:Olimit=2500"</code> (for newer compilers)</p>
@@ -1231,7 +1234,7 @@ please read the following carefully.</p>
<p>
MIPSpro compiler version 3.19 is "older", and 7.1 is "newer"; we aren't
sure at what point in between the latter syntax was introduced.</p>
-
+</li>
<li>
With the compiler shipped with Irix 5.2, use the <code>-ansi</code>
option.</li>
@@ -1252,30 +1255,32 @@ incorrect output and binaries that cause segmentation faults.&nbsp; Various
solutions have been suggested and you may want to try them in this order,
until you get a working binary:</li>
-<ul>
<li>
-Compile <code>idict.c</code> and <code>isave.c</code> separately
-without optimization after doing a normal compile; then relink.e.g.:</li>
-
-<p>
-<code>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/idict.o -c ./idict.c</code><br>
- <code>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/isave.o -c ./isave.c</code></p>
-
-<li>
-Set <code>CFLAGS=</code> (no optimization).</li>
-
-<li>
-Use only <code>-O2</code>.&nbsp;&nbsp; Compiler produces incorrect output
-with <code>-O3</code> or "<code>-Ofast=ip32 -show</code>".</li>
-
-<li>
-Irix 6.5.1m with MIPSpro compiler 7.2.1.1m, Irix 6.5.3m with MIPSpro
-compiler 7.2.1, and probably other 6.5x / 7.2x combinations require
-compiling with the <code>-o32</code> option. Compiling with the (default)
-<code>-n32</code> option produces non-working executables.
-<code>-O2</code> is OK (possibly except for <code>idict.c</code>), but
-not <code>-O3</code>.</li>
-</ul>
+ <ul>
+ <li>
+ Compile <code>idict.c</code> and <code>isave.c</code> separately
+ without optimization after doing a normal compile; then relink.e.g.:
+
+ <p>
+ <code>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/idict.o -c ./idict.c</code><br>
+ <code>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/isave.o -c ./isave.c</code></p>
+ </li>
+ <li>
+ Set <code>CFLAGS=</code> (no optimization).</li>
+
+ <li>
+ Use only <code>-O2</code>.&nbsp;&nbsp; Compiler produces incorrect output
+ with <code>-O3</code> or "<code>-Ofast=ip32 -show</code>".</li>
+
+ <li>
+ Irix 6.5.1m with MIPSpro compiler 7.2.1.1m, Irix 6.5.3m with MIPSpro
+ compiler 7.2.1, and probably other 6.5x / 7.2x combinations require
+ compiling with the <code>-o32</code> option. Compiling with the (default)
+ <code>-n32</code> option produces non-working executables.
+ <code>-O2</code> is OK (possibly except for <code>idict.c</code>), but
+ not <code>-O3</code>.</li>
+ </ul>
+</li>
</ul>
<h4><a name="Sun"></a>Oracle/Sun</h4>
@@ -1307,13 +1312,14 @@ Solaris 2.3 and later seem to require "<code>EXTRALIBS=-lnsl&nbsp;-lsocket&nbsp;
<li>For Solaris 2.6 (and possibly some other versions), if you set
<code>SHARE_LIBPNG=1</code>, <code>SHARE_ZLIB=1</code>, or
-<code>SHARE_JPEG=1</code>, you may need to set</li>
+<code>SHARE_JPEG=1</code>, you may need to set
<p>
<code>XLDFLAGS=-R /usr/local/</code>xxx<code>/lib:/usr/local/lib</code></p>
<p>
using the full path names of the relevant directories.</p>
+</li>
<li>Solaris 2.<em>n</em> uses <code>/usr/openwin/share/include</code>
for the X11 libraries rather than <code>/usr/local/X/include</code>.</li>
diff --git a/doc/News.htm b/doc/News.htm
index 40820804f..2753150d5 100644
--- a/doc/News.htm
+++ b/doc/News.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Recent Changes in Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -40,7 +40,7 @@ overview</a>.
<h2><a name="Version9.55.0"></a>Version 9.55.0 (2021-09-27)</h2>
<p> Highlights in this release include:
<ul>
-<p>This release includes the fix for the <code>%pipe%</code> security issue (CVE-2021-3781).
+<li>This release includes the fix for the <code>%pipe%</code> security issue (CVE-2021-3781).
</li>
<li>
<p><b>New PDF Interpreter:</b> This is an entirely new implementation written in C (rather than
diff --git a/doc/Ps-style.htm b/doc/Ps-style.htm
index 4820f6cc8..206effe1d 100644
--- a/doc/Ps-style.htm
+++ b/doc/Ps-style.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript PostScript Coding Guidelines</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Ps2epsi.htm b/doc/Ps2epsi.htm
index 2c449a704..dbdfe7578 100644
--- a/doc/Ps2epsi.htm
+++ b/doc/Ps2epsi.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Convert PostScript to Encapsulated PostScript Interchange Format</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Psfiles.htm b/doc/Psfiles.htm
index 95c72eb7c..a916bb1cb 100644
--- a/doc/Psfiles.htm
+++ b/doc/Psfiles.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>PostScript Files Distributed with Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -56,7 +56,6 @@ These files define the Encodings known to Ghostscript. All of
them except <code>gs_std_e.ps</code> and <code>gs_il1_e.ps</code>
are loaded only if referred to. However some are additionally built into gscencs.c.</dd>
-<dl>
<dt>
PostScript Encodings:</dt>
@@ -78,7 +77,7 @@ the Ghostscript source distribution.</dd>
</dd>
<dt>
-<dd></dd>PDF Encodings:</dt>
+PDF Encodings:</dt>
<dd>
These files are found in the <code>Resource/Init</code> subdirectory of
the Ghostscript source distribution.</dd>
@@ -132,7 +131,7 @@ the Ghostscript source distribution.</dd>
</dd>
</dl>
-</dl>
+
<p>These files are found in the <code>Resource/Init</code> subdirectory of
the Ghostscript source distribution.</p>
diff --git a/doc/Readme.htm b/doc/Readme.htm
index fdff86899..718220485 100644
--- a/doc/Readme.htm
+++ b/doc/Readme.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Overview of Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Release.htm b/doc/Release.htm
index c857ce950..135bef9d4 100644
--- a/doc/Release.htm
+++ b/doc/Release.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>How to Prepare a Ghostscript Release</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -716,13 +716,13 @@ class="offsite">http://ghostscript.com/download/</a>
Do the steps for distributions in general.
<ul>
- <li>MS Windows source and executables:</li>
+ <li>MS Windows source and executables:
<blockquote><pre>
<code>gs###w32.exe</code>
<code>gs###w64.exe</code>
</pre></blockquote>
-
+</li>
<li>Third-party libraries, as links (upload these if not installed), where
<code>&#36;&#36;&#36;</code> et al. refer to the version number of the library, which
should be the latest compatible release of the library and should be
@@ -743,13 +743,13 @@ the original name of the upstream file.</p>
<ul>
<li>Fonts, where <code>&#36;.&#36;&#36;</code> refers to the most recent version
-number of the fonts:</li>
+number of the fonts:
<blockquote><pre>
<code>ghostscript-fonts-other-&#36;.&#36;.tar.gz</code> -&gt; <code>../fonts/ghostscript-fonts-other-&#36;.&#36;.tar.gz</code>
<code>ghostscript-fonts-std-&#36;.&#36;.tar.gz</code> -&gt; <code>../fonts/ghostscript-fonts-std-&#36;.&#36;.tar.gz</code>
</pre></blockquote>
-
+</li>
</ul>
<p>
diff --git a/doc/SavedPages.htm b/doc/SavedPages.htm
index 11c277aa8..5ba4e2d4f 100644
--- a/doc/SavedPages.htm
+++ b/doc/SavedPages.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Using Saved Pages ( --saved-pages=... )</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Search.htm b/doc/Search.htm
index 1fef94948..e84925303 100644
--- a/doc/Search.htm
+++ b/doc/Search.htm
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Search Ghostscript.com</title>
<!-- note: we can't use default.css as some of the CSS there conflicts with Google's injected CSS -->
<style>
@@ -147,7 +147,7 @@
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Source.htm b/doc/Source.htm
index 6d5e03152..ae2fdc2de 100644
--- a/doc/Source.htm
+++ b/doc/Source.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Guide to Ghostscript Source Code</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -60,7 +60,7 @@ install Ghostscript</a>.
The Ghostscript source code is divided conceptually as follows:
<blockquote><table>
-<tr> <a href="#PostScript_interpreter"></a>
+<tr>
<th align="left" colspan="2">PostScript interpreter:</th>
</tr>
<tr>
@@ -81,7 +81,7 @@ The Ghostscript source code is divided conceptually as follows:
<td><code>gs_</code>*<code>.ps</code></td>
</tr>
-<tr> <a href="#PDF_interpreter"></a>
+<tr>
<th align="left" colspan="2">PDF interpreter:</th>
</tr>
<tr>
@@ -90,7 +90,7 @@ The Ghostscript source code is divided conceptually as follows:
<td><code>pdf_</code>*<code>.ps</code></td>
</tr>
-<tr> <a href="#Graphics_library"></a>
+<tr>
<th align="left" colspan="2">Graphics library:</th>
</tr>
<tr>
diff --git a/doc/Unix-lpr.htm b/doc/Unix-lpr.htm
index eb8633385..8d475e0f9 100644
--- a/doc/Unix-lpr.htm
+++ b/doc/Unix-lpr.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Setting Up a Unix 1pr Filter for Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/Use.htm b/doc/Use.htm
index 1fde48721..ac07f33c6 100644
--- a/doc/Use.htm
+++ b/doc/Use.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>How to Use Ghostscript</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -70,9 +70,11 @@
<li><a href="#Word size">Word size (32 or 64 bits)</a></li>
<li><a href="#Unix">Unix</a></li>
<li><a href="#VMS">VMS</a></li>
- <ul>
- <li><a href="#VMS_X_Windows">Using X Windows on VMS</a></li>
- </ul>
+ <li>
+ <ul>
+ <li><a href="#VMS_X_Windows">Using X Windows on VMS</a></li>
+ </ul>
+ </li>
<li><a href="#MS_Windows">MS Windows</a></li>
<li><a href="#X_Windows">X Windows</a></li>
<li>
@@ -460,16 +462,19 @@ command line:</p>
If the desired paper size is listed in the section on <a
href="#Known_paper_sizes">paper sizes known to Ghostscript</a> below, you
can select it as the default paper size for a single invocation of
-Ghostscript by using the <code>-sPAPERSIZE=</code> switch, for instance</li>
+Ghostscript by using the <code>-sPAPERSIZE=</code> switch, for instance:<p>
+
<blockquote><code>
-sPAPERSIZE=a4<br>
-sPAPERSIZE=legal
</code></blockquote>
+</li>
<li>
Otherwise you can set the page size using the
-pair of switches</li>
+pair of switches:<p>
+
<blockquote>
<code>-dDEVICEWIDTHPOINTS=</code><em>w</em>
@@ -478,6 +483,7 @@ pair of switches</li>
<p>Where <em>w</em> be the desired paper width and <em>h</em> be the
desired paper height in <em>points</em> (units of 1/72 of an inch).</p>
+</li>
</ul>
<p>
@@ -704,7 +710,7 @@ This option is also set by the <code>-dFitPage</code> option.</p>
<dt><code>-dShowAnnots=false</code></dt>
<dd>
Don't enumerate annotations associated with the page
- <code>Annots</code> key. Annotations are shown by default.</dd>
+ <code>Annots</code> key. Annotations are shown by default.
<p> In addition, finer control is available by defining an array
<code>/ShowAnnotTypes</code>. Annotation types listed in this array will
be drawn, whilst those not listed will not be drawn.</p>
@@ -715,6 +721,7 @@ be drawn, whilst those not listed will not be drawn.</p>
<p> For example, adding the follow to the command line:
<code>-c "/ShowAnnotTypes [/Text /UnderLine] def" -f &ltinput file&gt</code>
<br> would draw only annotations with the subtypes &quotText&quot and &quotUnderLine&quot</p>
+ </dd>
</dl>
<dl>
@@ -1748,63 +1755,80 @@ file, not Artifex Software.</p>
<li>To be able to specify switches and file names when invoking the
interpreter, define <code>gs</code> as a foreign command:</li>
+<li>
<blockquote>
<code>&#36; gs == "&#36;</code><em>disk</em><code>:[</code><em>directory</em><code>]gs.exe</code>"
</blockquote>
+</li>
+<li>
<p>
where the "<em>disk</em>" and "<em>directory</em>" specify where
the Ghostscript executable is located. For instance,</p>
-
+</li>
+<li>
<blockquote><code>
&#36; gs == "&#36;dua1:[ghostscript]gs.exe"
</code></blockquote>
+</li>
<li>On VMS systems, the last character of each "directory" name indicates
what sort of entity the "directory" refers to. If the "directory" name
ends with a colon "<code>:</code>", it is taken to refer to a logical
device, for instance</li>
+<li>
<blockquote><code>
&#36; define ghostscript_device dua1:[ghostscript_510]<br>
&#36; define gs_lib ghostscript_device:
</code></blockquote>
+</li>
+<li>
<p>
If the "directory" name ends with a closing square bracket
"<code>]</code>", it is taken to refer to a real directory, for instance</p>
-
+</li>
+<li>
<blockquote><code>
&#36; define gs_lib dua1:[ghostscript]
</code></blockquote>
-
+</li>
<li>Defining the logical <code>GS_LIB</code></li>
-
+<li>
<blockquote>
<code>&#36; define gs_lib</code> <em>disk</em><code>:[</code><em>directory</em><code>]</code>
</blockquote>
-
+</li>
+<li>
<p>
allows Ghostscript to find its initialization files in the Ghostscript
directory even if that's not where the executable resides.</p>
+</li>
<li>Although VMS DCL itself converts unquoted parameters to upper case, C
programs such as Ghostscript receive their parameters through the C runtime
library, which forces all unquoted command-line parameters to lower case.
That is, with the command</li>
+<li>
<blockquote><code>
&#36; gs -Isys&#36;login:
</code></blockquote>
+</li>
+<li>
<p>
Ghostscript sees the switch as <code>-isys&#36;login</code>,
which doesn't work. To preserve the case of switches, quote them like
this:</p>
+</li>
+<li>
<blockquote><code>
&#36; gs "-Isys&#36;login:"
</code></blockquote>
+</li>
<li>If you write printer output to a file with
<code>-sOutputFile=</code> and then want to print the file later, use
@@ -1819,32 +1843,39 @@ if Ghostscript was compiled with DEC C; we are not sure of the situation if
you use <code>gcc</code>.) Because of this, if you transfer files by
FTP, you probably need to do one of these two things after the transfer:</li>
-<ol>
-<li>If the FTP transfer was in text (ASCII) mode:</li>
+<li>
+ <ol>
+ <li>If the FTP transfer was in text (ASCII) mode:</li>
-<blockquote>
-<code>&#36; convert/fdl=streamlf.fdl</code> input-file output-file
-</blockquote>
+ <li>
+ <blockquote>
+ <code>&#36; convert/fdl=streamlf.fdl</code> input-file output-file
+ </blockquote>
-<p>
-where the contents of the file <code>STREAMLF.FDL</code> are</p>
-<blockquote>
-<pre>FILE
- ORGANIZATION sequential
+ <p>
+ where the contents of the file <code>STREAMLF.FDL</code> are</p>
-RECORD
- BLOCK_SPAN yes
- CARRIAGE_CONTROL carriage_return
- FORMAT stream_lf
-</pre></blockquote>
+ <blockquote>
+ <pre>FILE
+ ORGANIZATION sequential
-<li>If the FTP transfer was in binary mode:</li>
+ RECORD
+ BLOCK_SPAN yes
+ CARRIAGE_CONTROL carriage_return
+ FORMAT stream_lf
+ </pre></blockquote>
+ </li>
-<blockquote><code>
- &#36; set file/attribute=(rfm:stmlf)
-</code></blockquote>
-</ol>
+ <li>If the FTP transfer was in binary mode:</li>
+
+ <li>
+ <blockquote><code>
+ &#36; set file/attribute=(rfm:stmlf)
+ </code></blockquote>
+ </li>
+ </ol>
+</li>
</ul>
<h4><a name="VMS_X_Windows"></a>Using X Windows on VMS</h4>
@@ -2026,6 +2057,7 @@ calculated from display metrics:</p>
To set X resources, put them in a file (such as
<code>~/.Xdefaults</code> on Unix) in a form like this:</li>
+<li>
<blockquote><table>
<tr><td><code>Ghostscript*geometry:</code></td><td><code>595x842-0+0</code></td></tr>
<tr><td><code>Ghostscript*xResolution:</code></td><td><code>72</code></td></tr>
@@ -2039,6 +2071,8 @@ To set X resources, put them in a file (such as
xrdb -merge ~/.Xdefaults
</code></blockquote>
+</li>
+
<li>
Ghostscript doesn't look at the default system background and foreground
colors; if you want to change the background or foreground color, you must
@@ -2288,7 +2322,7 @@ systemdict will be replaced by the normal definition during the
<br><code>-s</code><em>name</em><code>=</code><em>string</em></dt>
<dd>Define a name in systemdict with a given string as value. This is
different from <code>-d</code>. For example, <code>-dXYZ=35</code>
- on the command line is equivalent to the program fragment</dd>
+ on the command line is equivalent to the program fragment
<blockquote><code>
/XYZ 35 def
@@ -2300,6 +2334,7 @@ whereas <code>-sXYZ=35</code> is equivalent to</p>
<blockquote><code>
/XYZ (35) def
</code></blockquote>
+</dd>
</dl>
<dl>
@@ -2759,7 +2794,7 @@ the <code>-dFitPage</code> options.</p>
</dl>
<dl>
-<a name="NupControl"></a>
+<dt><a name="NupControl"></a></dt>
<dt><code>-sNupControl=</code><em>Nup_option_string</em></dt>
<dd>This option specifies the N-up nesting to be performed. The pages are scaled
and arranged on the current PageSize "master" page according the the option.
@@ -2767,7 +2802,7 @@ and arranged on the current PageSize "master" page according the the option.
The only option strings are as follows:
<ul>
<li>
- <dt><code>-sNupControl=</code><em>number1</em><code>x</code><em>number2</em></dt>
+ <dl><dt></dt><dd><code>-sNupControl=</code><em>number1</em><code>x</code><em>number2</em></dd></dl>
will fit <em>number1</em> nested pages across the master page, and <em>number2</em>
down the master page, from the upper left, then to the right to fill the row, moving down
to the leftmost place on the next row until the nest is complete.
@@ -2782,7 +2817,7 @@ The only option strings are as follows:
above and below <b>all</b> of the rows.
</li>
<li>
- <dt><code>-sNupControl=</code></dt>
+ <dl><dt></dt><dd><code>-sNupControl=</code></dd></dl>
An empty string will turn off nesting. If there are any nested pages on the master page,
the partially filled master page will be output.
</li>
@@ -3015,6 +3050,7 @@ ignore a request to print multiple copies, giving more consistent
<h4><a name="Deferred_Page_Rendering"></a>Deferred Page Rendering</h4>
<dl>
+ <dt></dt>
<dd>Raster printers and image formats that can use the "command list" (clist)
to store a representation of the page prior to rendering can use the
<code>--saved-pages=</code><em>string</em> on the command line for
@@ -3061,10 +3097,13 @@ This is useful when EPS files have incorrect Document
<h4><a name="ICC_color_parameters"></a>ICC color parameters</h4>
+<dl>
+<dt></dt>
<dd>
For details about the ICC controls see the document
<a href="GS9_Color_Management.pdf">GS9 Color Management</a>.
</dd>
+</dl>
<dl>
<dt><code>-sDefaultGrayProfile=</code><em>filename</em></dt>
@@ -3385,8 +3424,8 @@ This option has been replaced by <code><b>-dOverprint=</b></code>
<dl>
-<a name="Overprint"></a>
- <dt><code>-dOverprint=</code><em>/enable | /disable | /simulate</em></dt>
+
+ <dt><a name="Overprint"></a><code>-dOverprint=</code><em>/enable | /disable | /simulate</em></dt>
<dd>
This option provides control of overprinting. The default setting is <em><b>/enable</b></em>
which allows devices such as CMYK that can support overprint to leave planes unchanged
@@ -3581,9 +3620,11 @@ procedure is run. This is intended for clients or scripts that cannot
operate in SAFER mode. If Ghostscript is started with <code>-dNOSAFER</code>
or <code>-dDELAYSAFER</code>, PostScript programs are allowed to read, write,
rename or delete any files in the system that are not protected by operating
-system permissions.</dd>
+system permissions.
<p><b>This mode should be used with caution, and <code>.setsafe</code> should be
run prior to running any PostScript file with unknown contents.</b></p>
+
+ </dd>
</dl>
<a name="Safer"></a>
<dl>
@@ -3651,15 +3692,15 @@ directly, or through an alternative symlink - again, the matching will fail.
The following cases are handled:
<ul>
<li>
-<dt><code>&quot;&sol;path&sol;to&sol;file&quot;</code></dt>
+<dl><dt></dt><dd><code>&quot;&sol;path&sol;to&sol;file&quot;</code></dd></dl>
<p>Permits access only to the file: &quot;&sol;path&sol;to&sol;file&quot;
</li>
<li>
-<dt><code>&quot;&sol;path&sol;to&sol;directory&sol;&quot;</code></dt>
+<dl><dt></dt><dd><code>&quot;&sol;path&sol;to&sol;directory&sol;&quot;</code></dd></dl>
<p>Permits access to any file in, and only in, the directory: &quot;&sol;path&sol;to&sol;directory&quot;
</li>
<li>
-<dt><code>&quot;&sol;path&sol;to&sol;directory&sol;*&quot;</code></dt>
+<dl><dt></dt><dd><code>&quot;&sol;path&sol;to&sol;directory&sol;*&quot;</code></dd></dl>
<p>Permits access to any file in the directory: &quot;&sol;path&sol;to&sol;directory&quot; and
any child of that directory.
</li>
@@ -3674,25 +3715,25 @@ in that it now supports (although does not enforce) case sensitivity.
Four command line parameters permit explicit control of the paths included in
the access control lists:
<ul>
-<li><dt><code>--permit-file-read=</code><em>pathlist</em></dt>
+<li><dl><dt></dt><dd><code>--permit-file-read=<em>pathlist</em></code></dd></dl>
<p> Adds a path, or list of paths, to the "permit read" list. A list
of paths is a series of paths separated by the appropriate path list separator
for your platform (for example, on Unix-like systems it is &quot;&colon;&quot;
and on MS Windows it is &quot;;&quot;).
</li>
-<li><dt><code>--permit-file-write=</code><em>pathlist</em></dt>
+<li><dl><dt></dt><dd><code>--permit-file-write=<em>pathlist</em></code></dd></dl>
<p> Adds a path, or list of paths, to the "permit write" list. A list
of paths is a series of paths separated by the appropriate path list separator
for your platform (for example, on Unix-like systems it is &quot;&colon;&quot;
and on MS Windows it is &quot;;&quot;).
</li>
-<li><dt><code>--permit-file-control=</code><em>pathlist</em></dt>
+<li><dl><dt></dt><dd><code>--permit-file-control=<em>pathlist</em></code></dd></dl>
<p> Adds a path, or list of paths, to the "permit control" list. A list
of paths is a series of paths separated by the appropriate path list separator
for your platform (for example, on Unix-like systems it is &quot;&colon;&quot;
and on MS Windows it is &quot;;&quot;).
</li>
-<li><dt><code>--permit-file-all=</code><em>pathlist</em></dt>
+<li><dl><dt></dt><dd><code>--permit-file-all=<em>pathlist</em></code></dd></dl>
<p> Adds a path, or list of paths, to the all the above lists. A list
of paths is a series of paths separated by the appropriate path list separator
for your platform (for example, on Unix-like systems it is &quot;&colon;&quot;
@@ -3782,6 +3823,7 @@ For raster printers and image format (jpeg*, tiff*, png* ...) devices,
performance can be 'tuned' by adjusting some of the parameters related
to banding (clist) options (refer to: <a href="Language.htm#Banding_parameters">
Banding Parameters</a>).</li>
+<li>
<p>
All devices may use a display list ("clist") and use banding when rendering
PDF 1.4 transparency. This prevents allocation of excessively large amounts of
@@ -3801,7 +3843,7 @@ generally be set to the number of available processor cores for best throughput.
<p>In general, larger <code>-dBufferSpace=#</code> values provide
slightly higher performance since the per-band overhead is reduced.</p>
-
+</li>
<li>
If you are using X Windows, setting the <code>-dMaxBitmap=</code>
parameter described <a href="#X_device_parameters">above</a> may
@@ -3883,7 +3925,7 @@ of <code>GS_OPTIONS</code> are not limited to switches; they may include
<p>
The information here describing is probably interesting only to developers.</p>
-<h4><a name="Debug_switches"></a>Debug switches</h4>
+<h3><a name="Debug_switches"></a>Debug switches</h3>
<p>There are several debugging switches that are detected by the interpreter.
These switches are available whether or not Ghostscript was built with the
diff --git a/doc/VectorDevices.htm b/doc/VectorDevices.htm
index 0aa67c042..e4de807fe 100644
--- a/doc/VectorDevices.htm
+++ b/doc/VectorDevices.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>High Level Output Devices</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
@@ -133,7 +133,7 @@ contents unchanged, and pdfwrite performs these tasks well.
<p>The <tt>pxlmono</tt> and <tt>pxlcolor</tt> devices output HP PCL-XL,
a graphic language understood by many recent laser printers.
-<h4>Options</h4>
+<h3>Options</h3>
<blockquote>
<dl>
<dt><code>-dCompressMode=<em>1 | 2 | 3</em></code> (default is 1)
@@ -148,21 +148,21 @@ and masks continues to be compressed with RLE.
<p> The txtwrite device will output the text contained in the original
document as Unicode.
-<h4>Options</h4>
+<h3>Options</h3>
<blockquote>
<dl>
-<dt><code>-dTextFormat=<em>0 | 1 | 2 | 3 | 4 </em></code> (default is 3)
-<p><dd>Format 0 is intended for use by developers and outputs XML-escaped Unicode
+<dt><code>-dTextFormat=<em>0 | 1 | 2 | 3 | 4 </em></code> (default is 3)</dt>
+ <dd>Format 0 is intended for use by developers and outputs XML-escaped Unicode
along with information regarding the format of the text (position, font name,
point size, etc). The XML output is the same format as the MuPDF output, but
-no additional processing is performed on the content, so no block detection.</dd></p>
-<p><dd>Format 1 uses the same XML output format, but attempts similar processing to
+no additional processing is performed on the content, so no block detection.<p></dd>
+<dd>Format 1 uses the same XML output format, but attempts similar processing to
MuPDF, and will output blocks of text. Note the algorithm used is not the same
-as the MuPDF code, and so the results will not be identical.</dd></p>
-<p><dd>Format 2 outputs Unicode (UCS2) text (with a Byte Order Mark) which
-approximates the layout of the text in the original document.</dd></p>
-<p><dd>Format 3 is the same as format 2, but the text is encoded in UTF-8.</dd></p>
-<p><dd>Format 4 is internal format similar to Format 0 but with extra information.</dd></p>
+as the MuPDF code, and so the results will not be identical.<p></dd>
+<dd>Format 2 outputs Unicode (UCS2) text (with a Byte Order Mark) which
+approximates the layout of the text in the original document.<p></dd>
+<dd>Format 3 is the same as format 2, but the text is encoded in UTF-8.<p></dd>
+<dd>Format 4 is internal format similar to Format 0 but with extra information.<p></dd>
</dl></blockquote>
<p>
@@ -615,25 +615,25 @@ can be disabled by setting <code>-dParseDSCComments=false</code>.
<p>
<h3><a name="PSPDF_IN"></a>Controls and features specific to PostScript and PDF input</h3>
-<dt><code>-dPDFSETTINGS=</code><em>configuration</em>
-<dd>Presets the "distiller parameters" to one of four predefined settings:
-
+<dl><dt><code>-dPDFSETTINGS=</code><em>configuration</em></dt>
+<dd>Presets the "distiller parameters" to one of four predefined settings:</dd>
+</dl>
<ul>
<li><code>/screen</code> selects low-resolution output similar to the
-Acrobat Distiller (up to version X) "Screen Optimized" setting.
+Acrobat Distiller (up to version X) "Screen Optimized" setting.</li>
<li><code>/ebook</code> selects medium-resolution output similar to the
-Acrobat Distiller (up to version X) "eBook" setting.
+Acrobat Distiller (up to version X) "eBook" setting.</li>
<li><code>/printer</code> selects output similar to the Acrobat Distiller
-"Print Optimized" (up to version X) setting.
+"Print Optimized" (up to version X) setting.</li>
<li><code>/prepress</code> selects output similar to Acrobat Distiller
-"Prepress Optimized" (up to version X) setting.
+"Prepress Optimized" (up to version X) setting.</li>
<li><code>/default</code> selects output intended to be useful across a
-wide variety of uses, possibly at the expense of a larger output file.
+wide variety of uses, possibly at the expense of a larger output file.</li>
</ul>
<p>
@@ -643,6 +643,7 @@ names of the PDFSETTINGS parameters. The precise value for each control is liste
in the table <a href="#distillerparams">above</a>.
</p>
+<dl><dt></dt>
<dd>Please be aware that the <code>/prepress</code> setting does <b>not</b> indicate
the highest quality conversion. Using any of these presets will involve altering the
input, and as such may result in a PDF of poorer quality (compared to the input) than
@@ -655,6 +656,7 @@ output will be altered in a variety of ways from the input. It is usually better
adjust the controls individually (see the table below) if you have a genuine requirement to produce,
for example, a PDF file where the images are reduced in resolution.
</dd>
+</dl>
<h3><a name="PXL_IN"></a>Controls and features specific to PCL and PXL input</h3>
<p>
@@ -727,6 +729,7 @@ ESC%-12345X
</p>
<h3><a name="PDF"></a>PDF file output</h3>
+<dl>
<dt><code>-dMaxInlineImageSize=</code><em>integer</em>
<dd>Specifies the maximum size of an inline image, in bytes. For images larger
than this size, <code>pdfwrite</code> will create an XObject instead of embedding
@@ -735,7 +738,7 @@ The default value is <code>4000</code>.
Note that redundant inline images must be embedded each time they occur in the
document, while multiple references can be made to a single XObject image. Therefore
it may be advantageous to set a small or zero value if the source document is expected
-to contain multiple identical images, reducing the size of the generated PDF.
+to contain multiple identical images, reducing the size of the generated PDF.<p></dd>
<dt><code>-dDoNumCopies</code>
<dd>When present, causes pdfwrite to use the #copies or /NumCopies entry in the page
@@ -743,10 +746,17 @@ device dictionary to duplicate each page in the output PDF file as many times as
the 'copies' value. This is intended for use by workflow applications like CUPS
and should not be used for generating general purpose PDF files. In particular any
pdfmark operations which rely on page numbers, such as Link or Outline annotations
-will not work correctly with this flag.
+will not work correctly with this flag.<p></dd>
<dt><code>-dDetectDuplicateImages</code>
-<dd> Takes a Boolean argument, when set to true (the default) pdfwrite will compare all new images with all the images encountered to date (NOT small images which are stored in-line) to see if the new image is a duplicate of an earlier one. If it is a duplicate then instead of writing a new image into the PDF file, the PDF will reuse the reference to the earlier image. This can considerably reduce the size of the output PDF file, but increases the time taken to process the file. This time grows exponentially as more images are added, and on large input files with numerous images can be prohibitively slow. Setting this to false will improve performance at the cost of final file size.
+<dd> Takes a Boolean argument, when set to true (the default) pdfwrite will compare all new
+ images with all the images encountered to date (NOT small images which are stored in-line) to see if the new image
+ is a duplicate of an earlier one. If it is a duplicate then instead of writing a new image into the PDF file,
+ the PDF will reuse the reference to the earlier image.
+ This can considerably reduce the size of the output PDF file, but increases the
+ time taken to process the file.
+ This time grows exponentially as more images are added, and on large input files with
+ numerous images can be prohibitively slow. Setting this to false will improve performance at the cost of final file size.<p></dd>
<dt><code>-dFastWebView</code>
<dd> Takes a Boolean argument, default is false. When set to true pdfwrite will
@@ -754,45 +764,44 @@ reorder the output PDF file to conform to the Adobe 'linearised' PDF specificati
The Acrobat user interface refers to this as 'Optimised for Fast Web Viewing'.
Note that this will cause the conversion to PDF to be slightly slower and will
usually result in a slightly larger PDF file.</dd>
-<dd>This option is incompatible with producing an encrypted (password protected) PDF file.</dd>
+<dd>This option is incompatible with producing an encrypted (password protected) PDF file.<p></dd>
</dt>
+</dl>
<dl>
-<dt><code>-dPreserveAnnots=</code><em>boolean</em>
-<dd>We now attempt to preserve most annotations from input PDF files as annotations in the output PDF file (note, not in output PostScript!)
-There are a few annotation types which are not preserved, most notably Link and Widget annotations. However, should you wish to revert
-to the old behaviour, or find that the new behaviour leads to problems, you can set this switch to false which will cause all annotations to be
-inserted into the page content stream, instead of preserved as annotations.
-<p> In addition, finer control is available by defining an array
-<code>/PreserveAnnotTypes</code>. Annotation types listed in this array will
-be preserved, whilst those not listed will be drawn according to the setting os ShowAnnots and ShowAnnotTypes.
-By using the controls PreserveAnnots, PreserveAnnotTypes, ShowAnnots and ShowAnnotTypes it is possible to select
-by annotation type whether annotations are preserved as annotations, drawn into the page, or simply dropped.
-</p>
-<p> To use this feature:
-<code>-c "/PreserveAnnotTypes [....] def" -f &ltinput file&gt</code>
-<br> Where the array can contain one or more of the following names:
-<code>/Stamp</code>, <code>/Squiggly</code>, <code>/Underline</code>, <code>/Link</code>, <code>/Text</code>, <code>/Highlight</code>, <code>/Ink</code>, <code>/FreeText</code>, <code>/StrikeOut</code> and <code>/stamp_dict</code>.</p>
-<p> For example, adding the follow to the command line:
-<code>-c "/PreserveAnnotTypes [/Text /UnderLine] def" -f &ltinput file&gt</code>
- <br> would preserve only annotations with the subtypes &quotText&quot and &quotUnderLine&quot</p>
-</dd>
-</dt>
-</d1>
+ <dt><code>-dPreserveAnnots=</code><em>boolean</em>
+ <dd>We now attempt to preserve most annotations from input PDF files as annotations in the output PDF file (note, not in output PostScript!)
+ There are a few annotation types which are not preserved, most notably Link and Widget annotations. However, should you wish to revert
+ to the old behaviour, or find that the new behaviour leads to problems, you can set this switch to false which will cause all annotations to be
+ inserted into the page content stream, instead of preserved as annotations.
+ <p> In addition, finer control is available by defining an array
+ <code>/PreserveAnnotTypes</code>. Annotation types listed in this array will
+ be preserved, whilst those not listed will be drawn according to the setting os ShowAnnots and ShowAnnotTypes.
+ By using the controls PreserveAnnots, PreserveAnnotTypes, ShowAnnots and ShowAnnotTypes it is possible to select
+ by annotation type whether annotations are preserved as annotations, drawn into the page, or simply dropped.
+ </p>
+ <p> To use this feature:
+ <code>-c "/PreserveAnnotTypes [....] def" -f &ltinput file&gt</code>
+ <br> Where the array can contain one or more of the following names:
+ <code>/Stamp</code>, <code>/Squiggly</code>, <code>/Underline</code>, <code>/Link</code>, <code>/Text</code>, <code>/Highlight</code>, <code>/Ink</code>, <code>/FreeText</code>, <code>/StrikeOut</code> and <code>/stamp_dict</code>.</p>
+ <p> For example, adding the follow to the command line:
+ <code>-c "/PreserveAnnotTypes [/Text /UnderLine] def" -f &ltinput file&gt</code>
+ <br> would preserve only annotations with the subtypes &quotText&quot and &quotUnderLine&quot</p>
+ </dd>
+ </dt>
+</dl>
<dl>
-<dt><code>-dPreserveMarkedContent=</code><em>boolean</em>
-<dd>We now attempt to preserve marked content from input PDF files through to the output PDF file (note, not in output PostScript!)
-This does not include marked content relating to optional content, because currently we do not preserve optional content, it is
-instead applied by the interpreter.
-<p>
-This control also requires the PDF interpreter to pass the marked content to the pdfwrite device, this is only done with the
-new (C-based) PDF interpreter. THe old (PostScript-based) interpreter does not support this feature and will not pass marked
-content to the pdfwrite device.
-</p>
-</dd>
-</dt>
-<p>
+ <dt><code>-dPreserveMarkedContent=</code><em>boolean</em></dt>
+ <dd>We now attempt to preserve marked content from input PDF files through to the output PDF file (note, not in output PostScript!)
+ This does not include marked content relating to optional content, because currently we do not preserve optional content, it is
+ instead applied by the interpreter.
+ <p>
+ This control also requires the PDF interpreter to pass the marked content to the pdfwrite device, this is only done with the
+ new (C-based) PDF interpreter. THe old (PostScript-based) interpreter does not support this feature and will not pass marked
+ content to the pdfwrite device.
+ </p>
+ </dd>
</dl>
The following options are useful for creating PDF 1.2 files:
@@ -800,54 +809,54 @@ The following options are useful for creating PDF 1.2 files:
<dl>
-<dt><code>-dPatternImagemask=<em>boolean</em></code>
-<dd>With <code>CompatibilityLevel &lt; 1.3 </code> it specifies whether
-the target viewer handles <code>ImageMask</code> with a pattern color.
-Some old viewers, such as Ghostscript 3.30 fail with such constructs.
-Setting this option to false, one can get more compatibility,
-but the mask interpolation is lost.
-With <code>CompatibilityLevel &ge; 1.3 </code> this option is ignored.
-Default value is <code>false</code>.
-
-<dt><code>-dMaxClipPathSize=<em>integer</em></code>
-<dd>Specifies the maximum number of elements in the clipping path
-that the target viewer can handle. This option is used only with
-<code>CompatibilityLevel &lt; 1.3</code> and
-<code>PatternImagemask=false</code>,
-and only when converting a mask into a clipping path.
-If the clipping path exceeds the specified size,
-the masked image and the clipping path is decomposed into smaller images.
-The value of the option counts straight path segments
-(curved segments are not used for representing a mask).
-Default value is <code>12000</code>.
-
-<dt><code>-dMaxShadingBitmapSize=<em>integer</em></code>
-<dd>Specifies the maximum number of bytes allowed for representing a shading as a bitmap.
-If a shading exceeds this value, the resolution of the output bitmap
-is reduced to fit into the specified number of bytes.
-Note that the number of bytes depends on the number of color components
-in <code>ProcessColorModel</code> or <code>ColorConversionStrategy</code>, assumes 8 bits per sample,
-and doesn't consider image compression or downsampling. The image is rendered at the current resolution
-as specified by <code>-r</code> or the default of 720 dpi.
-
-Default value is <code>256000</code>.
-In general larger values will result in higher quality,
-but the output file size may increase dramatically, particularly with shadings which cover large areas.
-
-Shadings should generally only be rendered to images if <code>CompatibilityLevel</code> is 1.2 or less
-or if <code>ColorCoversionStrategy</code> specifies a color space different to that of the shading.
-
-<dt><code>-dHaveTrueTypes=<em>boolean</em></code>
-<dd>With <code>CompatibilityLevel &lt; 1.3</code> it specifies
-whether the target viewer can handle TrueType fonts.
-If not, TrueType fonts are converted into raster fonts
-with resolution specified in <code>HWResolution</code>. Note that large text at higher resolutions
-results in very large bitmaps which are likely to defeat caching in many printers. As a result the
-text is emitted as simple images rather than as a (type 3) bitmap font. The PostScript user parameter
-MaxFontItem can be used to increase the maximum size of a cache entry which will increase the size/resolution
-of the text which can be stored in a font.
-With <code>CompatibilityLevel &ge; 1.3</code> this option is ignored. Default value is <code>true</code>.
-
+ <dt><code>-dPatternImagemask=<em>boolean</em></code></dt>
+ <dd>With <code>CompatibilityLevel &lt; 1.3 </code> it specifies whether
+ the target viewer handles <code>ImageMask</code> with a pattern color.
+ Some old viewers, such as Ghostscript 3.30 fail with such constructs.
+ Setting this option to false, one can get more compatibility,
+ but the mask interpolation is lost.
+ With <code>CompatibilityLevel &ge; 1.3 </code> this option is ignored.
+ Default value is <code>false</code>.<p></dd>
+
+ <dt><code>-dMaxClipPathSize=<em>integer</em></code></dt>
+ <dd>Specifies the maximum number of elements in the clipping path
+ that the target viewer can handle. This option is used only with
+ <code>CompatibilityLevel &lt; 1.3</code> and
+ <code>PatternImagemask=false</code>,
+ and only when converting a mask into a clipping path.
+ If the clipping path exceeds the specified size,
+ the masked image and the clipping path is decomposed into smaller images.
+ The value of the option counts straight path segments
+ (curved segments are not used for representing a mask).
+ Default value is <code>12000</code>.<p></dd>
+
+ <dt><code>-dMaxShadingBitmapSize=<em>integer</em></code></dt>
+ <dd>Specifies the maximum number of bytes allowed for representing a shading as a bitmap.
+ If a shading exceeds this value, the resolution of the output bitmap
+ is reduced to fit into the specified number of bytes.
+ Note that the number of bytes depends on the number of color components
+ in <code>ProcessColorModel</code> or <code>ColorConversionStrategy</code>, assumes 8 bits per sample,
+ and doesn't consider image compression or downsampling. The image is rendered at the current resolution
+ as specified by <code>-r</code> or the default of 720 dpi.
+
+ Default value is <code>256000</code>.
+ In general larger values will result in higher quality,
+ but the output file size may increase dramatically, particularly with shadings which cover large areas.
+
+ Shadings should generally only be rendered to images if <code>CompatibilityLevel</code> is 1.2 or less
+ or if <code>ColorCoversionStrategy</code> specifies a color space different to that of the shading.<p></dd>
+
+ <dt><code>-dHaveTrueTypes=<em>boolean</em></code></dt>
+ <dd>With <code>CompatibilityLevel &lt; 1.3</code> it specifies
+ whether the target viewer can handle TrueType fonts.
+ If not, TrueType fonts are converted into raster fonts
+ with resolution specified in <code>HWResolution</code>. Note that large text at higher resolutions
+ results in very large bitmaps which are likely to defeat caching in many printers. As a result the
+ text is emitted as simple images rather than as a (type 3) bitmap font. The PostScript user parameter
+ MaxFontItem can be used to increase the maximum size of a cache entry which will increase the size/resolution
+ of the text which can be stored in a font.
+ With <code>CompatibilityLevel &ge; 1.3</code> this option is ignored. Default value is <code>true</code>.
+ </dd>
</dl>
<p>
@@ -856,12 +865,12 @@ The following options are useful for creating PDF 1.3 files:
<dl>
-<dt><code>-dHaveTransparency=<em>boolean</em></code>
-<dd>With <code>CompatibilityLevel &ge; 1.4</code> it specifies
-whether the target viewer can handle PDF 1.4 transparency objects.
-If not, the page is converted into a single plain image with all
-transparency flattened.
-Default value is <code>true</code>.
+ <dt><code>-dHaveTransparency=<em>boolean</em></code></dt>
+ <dd>With <code>CompatibilityLevel &ge; 1.4</code> it specifies
+ whether the target viewer can handle PDF 1.4 transparency objects.
+ If not, the page is converted into a single plain image with all
+ transparency flattened.
+ Default value is <code>true</code>.</dd>
</dl>
@@ -882,24 +891,24 @@ Default value is <code>false</code>.
When generating a PDF/X-3 document, Ghostscript performs the following
special actions to satisfy the PDF/X-3 standard:
<ul>
-<li> All fonts are embedded.
-<li> <code>DeviceRGB</code> color space is substituted with
-<code>the DefaultRGB</code> color space,
-which must be defined in the <code>ColorSpace</code> category.
-The easiest way is to provide it in the <code>DefaultRGB</code> file in the resource directory.
-<li> <code>DeviceRGB</code> color values are passed unchanged.
-If a user needs a non trivial color adjustment, a non trivial
-<code>DefaultRGB</code> color space must be defined.
-<li> Transfer functions and halftone phases are skipped.
-<li> <code>/PS pdfmark</code> interprets the <code>DataSource</code>
-stream or file.
-<li><code>TrimBox</code> and <code>BleedBox</code> entries
-are generated in page descriptions.
-Their values can be changed using the
-<code>PDFXTrimBoxToMediaBoxOffset</code>,
-<code>PDFXSetBleedBoxToMediaBox</code>, and
-<code>PDFXBleedBoxToTrimBoxOffset</code>
-distiller parameters (see below).
+ <li> All fonts are embedded.</li>
+ <li> <code>DeviceRGB</code> color space is substituted with
+ <code>the DefaultRGB</code> color space,
+ which must be defined in the <code>ColorSpace</code> category.
+ The easiest way is to provide it in the <code>DefaultRGB</code> file in the resource directory.</li>
+ <li> <code>DeviceRGB</code> color values are passed unchanged.
+ If a user needs a non trivial color adjustment, a non trivial
+ <code>DefaultRGB</code> color space must be defined.</li>
+ <li> Transfer functions and halftone phases are skipped.</li>
+ <li> <code>/PS pdfmark</code> interprets the <code>DataSource</code>
+ stream or file.</li>
+ <li><code>TrimBox</code> and <code>BleedBox</code> entries
+ are generated in page descriptions.
+ Their values can be changed using the
+ <code>PDFXTrimBoxToMediaBoxOffset</code>,
+ <code>PDFXSetBleedBoxToMediaBox</code>, and
+ <code>PDFXBleedBoxToTrimBoxOffset</code>
+ distiller parameters (see below).</li>
</ul>
@@ -908,35 +917,35 @@ The following switches are used for creating encrypted documents :
</h4>
<dl>
-<dt><code>-sOwnerPassword=</code><em>string</em>
+<dt><code>-sOwnerPassword=</code><em>string</em></dt>
<dd>Defines that the document be encrypted with the specified
-owner password.
+owner password.</dd>
</dl>
<dl>
-<dt><code>-sUserPassword=</code><em>string</em>
+<dt><code>-sUserPassword=</code><em>string</em></dt>
<dd>Defines the user password for opening the document.
If empty, the document can be opened with no password,
-but the owner password is required to edit it.
+but the owner password is required to edit it.</dd>
</dl>
<dl>
-<dt><code>-dPermissions=</code><em>number</em>
+<dt><code>-dPermissions=</code><em>number</em></dt>
<dd>Defines the PDF permissions flag field. Negative values are allowed
to represent unsigned integers with the highest bit set. See the PDF
-Reference manual for the meaning of the flag bits.
+Reference manual for the meaning of the flag bits.</dd>
</dl>
<dl>
-<dt><code>-dEncryptionR=</code><em>number</em>
-<dd>Defines the encryption method revision number - either 2 or 3.
+<dt><code>-dEncryptionR=</code><em>number</em></dt>
+<dd>Defines the encryption method revision number - either 2 or 3.</dd>
</dl>
<dl>
-<dt><code>-dKeyLength=</code><em>number</em>
+<dt><code>-dKeyLength=</code><em>number</em></dt>
<dd>Defines the length (in bits) of the encryption key.
Must be a multiple of 8 in the interval [40, 128].
-If the length isn't 40, <code>-dEncryptionR</code> must be 3.
+If the length isn't 40, <code>-dEncryptionR</code> must be 3.</dd>
</dl>
@@ -945,7 +954,7 @@ The following switches are used for generating metadata according to the Adobe X
</h4>
<dl>
-<dt><code>-sDocumentUUID=</code><em>string</em>
+<dt><code>-sDocumentUUID=</code><em>string</em></dt>
<dd>Defines a DocumentID to be included into the document Metadata.
If not specified, Ghostscript generates an UUID automatically.
Otherwise the specified string is copied into the document without
@@ -958,7 +967,7 @@ a correct UUID through this parameter.
<p>
Note that Ghostscript has no assess to the host node ID
due to a minimization of platform dependent modules.
-Therefore it uses an MD5 hash of the document contents for generating UUIDs.
+Therefore it uses an MD5 hash of the document contents for generating UUIDs.</p>
</dl>
<dl>
@@ -1003,9 +1012,9 @@ displaying document's properties,
so we recommend this value.
</dl>
-<d1>
-<a name="UseOCR"></a>
-<dt><code>-sUseOCR=</code><em>string</em>
+<dl>
+
+<dt><a name="UseOCR"></a><code>-sUseOCR=</code><em>string</em>
<dd>Controls the use of OCR in pdfwrite. If enabled this will use an OCR
engine to analyse the glyph bitmaps used to draw text in a PDF file, and
the resulting Unicode code points are then used to construct a ToUnicode
@@ -1026,9 +1035,11 @@ For the reasons above it is useful to be able to exercise some control over the
action of pdfwrite when OCR processing is available, and the <code>UseOCR</code>
parameter provides that control. There are three possible values:
</p>
-<li><code>Never</code> Default - don't use OCR at all even if support is built-in.
-<li><code>AsNeeded</code> If there is no existing ToUnicode information, use OCR.
-<li><code>Always</code> Ignore any existing information and always use OCR.
+<ul>
+<li><code>Never</code> Default - don't use OCR at all even if support is built-in.</li>
+<li><code>AsNeeded</code> If there is no existing ToUnicode information, use OCR.</li>
+<li><code>Always</code> Ignore any existing information and always use OCR.</li>
+</ul>
<p>
Our experimentation with the Tesseract OCR engine has shown that the more text we
can supply for the engine to look at, the better the result we get. We are, unfortunately,
@@ -1057,6 +1068,7 @@ functionality here, but we need concrete examples to work from.
</p>
</dd>
</dt>
+</dl>
<h3><a name="PS"></a>PostScript file output</h3>
<p>
@@ -1077,21 +1089,23 @@ There are also two additional (not Adobe-standard) Distiller parameters, specifi
<dd>No default value. If defined, the contents of the string will be emitted in the output PostScript prolog
enclosed within %%BeginSetup and %%EndSetup comments. This is intended as a means of introducing device-specific document wide
setup or configuration options into the output. Default media selection, printer resolution etc might be included here.
-</dd>
+
<code>/PSPageOptions</code><em> array of strings</em>
+</dd>
<dd>No default value. If defined, the contents of the strings in the array will be emitted in the output PostScript at the start
of each page, one string per page, enclosed within %%BeginPageSetup and %%EndPageSetup comments. This is intended as a means of introducing device-specific
setup or configuration options into the output on a page by page basis. The strings are used from the array sequentially, if there are more
pages than strings then we 'wrap round' and start again with the first string. This makes it convenient to do setup for even/odd pages
by simply including 2 strings in the array.
-</dd>
+
<p>
Note: executing setpagedevice will reset distiller parameters to the default, if you use any of these options via setdistillerparams, and
expect to execute setpagedevice, you should set /LockDistillerParams true. Ordinarily the PDF interpreter executes setpagedevice for
every page in order to set the media size.
</p>
+</dd>
</dt>
-</d1>
+</dl>
<p>
NB the strings contained in PSDocOptions, and the PSPageOptions array, are written verbatim to the output. No error checking is (or can be) performed on these strings
@@ -1378,7 +1392,7 @@ a PostScript Printer Description (PPD) file.
This allows some <a href="#Options">distiller parameters</a>
to be set when a PostScript file is generated.
-<h4>Windows XP or 2000</h4>
+<h3>Windows XP or 2000</h3>
<p>
To install a "Ghostscript PDF" printer on Windows XP,
select the Windows Control Panel,
@@ -1420,7 +1434,7 @@ into the Catalog, creating a conformant set of XML, with all the information syn
dictionary would be challenging, this pdfmark allows the pdfwrite device to generate all the normal information
leaving the user with only the task of specifying the additional data.
-<dt><code>[ /XML (string containing additional XMP data) /Ext_Metadata pdfmark</code>
+<code>[ /XML (string containing additional XMP data) /Ext_Metadata pdfmark</code>
</p>
<hr>
diff --git a/doc/WhatIsGS.htm b/doc/WhatIsGS.htm
index 3895b1ffe..ebb717a29 100644
--- a/doc/WhatIsGS.htm
+++ b/doc/WhatIsGS.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript: What Is Ghostscript?</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/default.css b/doc/default.css
index d2631d098..700342c77 100644
--- a/doc/default.css
+++ b/doc/default.css
@@ -66,6 +66,28 @@ header {
grid-row: 1;
}
+header .title {
+ display: flex;
+ justify-content: start;
+ flex-direction: column;
+}
+
+header h1 {
+ line-height: 40px;
+}
+
+header h2::after {
+ content:"Version 9.55.0";
+}
+
+header h2 {
+ font-weight: bold;
+ margin-top:-45px;
+ font-size: 12px;
+ color: #fff;
+ margin-right:10px;
+}
+
header .search {
width: 50px;
height:50px;
diff --git a/doc/images/favicon.svg b/doc/images/favicon.svg
new file mode 100644
index 000000000..86b60ff95
--- /dev/null
+++ b/doc/images/favicon.svg
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 174.5 203" enable-background="new 0 0 174.5 203" xml:space="preserve">
+
+ <style>path{fill:#333}@media (prefers-color-scheme:dark){path{fill:#eee}}</style>
+
+ <path d="M88.914,62.379c2.305-1.166-1.965-4.208-1.717-9.555c0.275-6.038,2.834-9.767-0.775-9.663
+ c-2.843,0.078-7.028,5.283-6.347,10.597C80.771,59.059,85.951,63.869,88.914,62.379z"/>
+ <path d="M82.704,70.756c-2.901,1.852,4.552,3.786,6.338,9.383c2.024,6.331-0.215,10.913,5.012,9.777
+ c4.119-0.888,8.132-7.467,5.004-12.756C95.923,71.864,86.422,68.364,82.704,70.756z"/>
+ <path d="M77.635,65.538c2.012-1.627-2.801-3.695-3.686-8.962c-1.002-5.985,0.72-10.149-2.799-9.292
+ c-2.752,0.663-5.759,6.648-3.971,11.687C68.97,64.008,75.064,67.635,77.635,65.538z"/>
+ <g>
+ <path d="M8.34,182.553c8.033,8.36,27.344,18.325,73.727,18.325c77.712,0,86.343-34.936,86.672-36.423l0.074-0.335
+ l-2.615-0.673l-0.103,0.317c-0.084,0.262-9.182,26.392-76.57,26.392c-2.336,0-4.77-0.032-7.237-0.095
+ c-16.732-0.429-30.657-3.138-40.269-7.831c-8.394-4.1-13.017-9.442-13.017-15.044c0-11.862,13.986-12.627,14.581-12.655
+ l0.316-0.015l0.177-2.639l-0.312-0.057c-0.233-0.042-5.807-1.036-12.745-1.036c-18.07,0-28.293,6.655-28.786,18.739
+ C2.206,170.181,2.159,176.119,8.34,182.553z"/>
+ <path d="M152.435,59.232c1.118-13.45-11.403-23.37-15.267-26.09l-0.155-0.109l0.021-0.188
+ c0.952-8.478-0.737-15.52-5.021-20.929c-6.977-8.81-18.449-10.085-18.934-10.135l-0.328-0.033l-0.437,2.648l0.32,0.077
+ c0.518,0.124,12.73,3.157,14.018,14.733c1.131,10.18-6.367,14.962-13.618,19.586c-5.594,3.572-10.871,6.942-10.871,12.57
+ c0,6.214,5.439,10.593,10.7,14.827c5.32,4.281,10.341,8.321,9.969,13.87c-0.687,10.304-20.492,15.748-20.692,15.802l-0.331,0.088
+ l0.568,2.639l0.333-0.054C143.685,91.88,151.452,71.054,152.435,59.232z"/>
+ <path d="M80.146,181.454c4.818,0.771,10.645,1.179,16.85,1.179c16.754,0,39.861-3.118,54.467-11.867
+ c14.401-8.616,16.364-22.548,10.86-31.856v-0.001c-4.971-8.418-20.259-22.757-66.8-24.202
+ c-32.475-0.997-48.941-3.565-48.941-7.633c0-3.392,5.788-4.433,11.916-5.535c7.688-1.384,16.401-2.954,16.174-10.354
+ c-0.145-4.691-4.298-7.432-9.107-10.607c-7.262-4.8-16.297-10.773-14.116-26.241c1.864-13.148,21.14-18.701,29.341-20.478
+ c11.723-2.537,31.451-8.128,31.858-17.067c0.368-8.21-8.415-10.998-8.503-11.025l-0.304-0.095l-0.915,2.059l-0.194,0.336
+ l0.304,0.179c0.152,0.092,3.643,2.253,2.214,6.375c-1.521,4.398-7.704,4.754-25.358,5.137
+ c-17.544,0.386-39.579,2.793-54.373,18.103c-8.041,8.324-11.314,19.207-8.754,29.112c2.713,10.485,11.718,19.235,25.356,24.64
+ l0.913,0.362l-0.951,0.245c-3.259,0.838-8.195,2.305-13.196,4.529c-12.741,5.665-19.313,13.407-19.004,22.39
+ c0.797,22.879,35.182,26.661,68.713,27.343c35.983,0.731,51.335,4.303,51.335,11.942c0,6.147-11.885,11.023-28.26,11.596
+ c-1.88,0.065-3.719,0.097-5.466,0.097c-10.907,0-17.937-1.091-21.914-2.007c-4.734-1.088-7.577-2.501-7.606-3.777
+ c-0.015-0.593,0.165-1.072,0.55-1.467c1.375-1.41,4.781-1.706,7.397-1.706c3.296,0,6.365,0.481,6.704,0.535l0.315,0.052
+ l0.748-2.53l-0.29-0.125c-0.064-0.027-6.083-2.606-14.252-2.606c-0.505,0-1.018,0.01-1.539,0.031
+ c-6.817,0.301-11.677,3.807-11.819,8.526C54.379,168.728,56.635,177.698,80.146,181.454z"/>
+ </g>
+
+</svg>
diff --git a/doc/language-bindings/c-sharp-ghost-api.html b/doc/language-bindings/c-sharp-ghost-api.html
index b98732afb..b67442d42 100644
--- a/doc/language-bindings/c-sharp-ghost-api.html
+++ b/doc/language-bindings/c-sharp-ghost-api.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/c-sharp-ghost-mono.html b/doc/language-bindings/c-sharp-ghost-mono.html
index 33c2ef83b..0d4380d2e 100644
--- a/doc/language-bindings/c-sharp-ghost-mono.html
+++ b/doc/language-bindings/c-sharp-ghost-mono.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/c-sharp-ghost-net.html b/doc/language-bindings/c-sharp-ghost-net.html
index 1308abf62..69af73169 100644
--- a/doc/language-bindings/c-sharp-ghost-net.html
+++ b/doc/language-bindings/c-sharp-ghost-net.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/c-sharp-intro.html b/doc/language-bindings/c-sharp-intro.html
index bfcbeeade..a9f6e5adf 100644
--- a/doc/language-bindings/c-sharp-intro.html
+++ b/doc/language-bindings/c-sharp-intro.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/demo-code.html b/doc/language-bindings/demo-code.html
index 876e3cb78..7b71c2db1 100644
--- a/doc/language-bindings/demo-code.html
+++ b/doc/language-bindings/demo-code.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/index.html b/doc/language-bindings/index.html
index 7758abd72..3a793b1e6 100644
--- a/doc/language-bindings/index.html
+++ b/doc/language-bindings/index.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/java-gsjavajar.html b/doc/language-bindings/java-gsjavajar.html
index e11337fce..68877f484 100644
--- a/doc/language-bindings/java-gsjavajar.html
+++ b/doc/language-bindings/java-gsjavajar.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/java-intro.html b/doc/language-bindings/java-intro.html
index 210985211..cb6258332 100644
--- a/doc/language-bindings/java-intro.html
+++ b/doc/language-bindings/java-intro.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/python-gsapi.html b/doc/language-bindings/python-gsapi.html
index d6d97ec3e..0638ba56e 100644
--- a/doc/language-bindings/python-gsapi.html
+++ b/doc/language-bindings/python-gsapi.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/language-bindings/python-intro.html b/doc/language-bindings/python-intro.html
index 6236219b3..338ff1e44 100644
--- a/doc/language-bindings/python-intro.html
+++ b/doc/language-bindings/python-intro.html
@@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="../images/favicon.png">
+ <link rel="shortcut icon" href="../images/favicon.svg">
<link href="css/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/default.js"></script>
</head>
diff --git a/doc/sample_downscale_device.htm b/doc/sample_downscale_device.htm
index 4ba2741c1..65b1d36f6 100644
--- a/doc/sample_downscale_device.htm
+++ b/doc/sample_downscale_device.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript: Sample CMYK 32-bit Device that Supports Post Rendering Processing</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/site.js b/doc/site.js
index f7cb7435a..e805969f0 100644
--- a/doc/site.js
+++ b/doc/site.js
@@ -11,4 +11,4 @@ switch(window.location.protocol) {
default:
break;
-} \ No newline at end of file
+}
diff --git a/doc/subclass.htm b/doc/subclass.htm
index c031cfb56..278011649 100644
--- a/doc/subclass.htm
+++ b/doc/subclass.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Ghostscript: Device Subclassing</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">
diff --git a/doc/thirdparty.htm b/doc/thirdparty.htm
index 3c4d74df5..06429da52 100644
--- a/doc/thirdparty.htm
+++ b/doc/thirdparty.htm
@@ -4,13 +4,13 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="user-scalable=yes, initial-scale=1, width=device-width">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,200i,300,300i,400,400i,600,600i,700,700i,900,900i" rel="stylesheet">
- <link rel="shortcut icon" type="image/png" href="images/favicon.png">
+ <link rel="shortcut icon" href="images/favicon.svg">
<title>Third Party Libraries Used by Ghostscript and GhostPDL</title>
<link href="default.css" rel="stylesheet" type="text/css">
</head>
<body>
- <header><a href="index.html"><h1>Ghostscript documentation</h1></a><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
+ <header><div class="title"><a href="index.html"><h1 aria-label="title">Ghostscript documentation</h1><h2 aria-label="version"></h2></a></div><a href="Search.htm" aria-label="Search" id="searchSite"><div class="search"></div></a></header>
<main>
<article>
<div class="outer">