zint.h: increase symbol->text size 160 -> 200;

rename `ZINT_CAP_EXTENDABLE` -> `ZINT_CAP_EANUPC`
  (`ZINT_CAP_EXTENDABLE` marked as legacy)
CODE128: increase no. symbol chars max 60 -> 99
EAN-2/EAN-5: fix `BARCODE_BIND_TOP/BIND/BOX` output
GS1_128: warn if data > 48 (GS1 General Specifications max)
common: `is_extendable()` -> `is_ucpean()`
raster: add `ZFONT_HALIGN_CENTRE/LEFT/RIGHT` flags and process
  in `draw_string()` (for drawing EAN/UPC outside digits), and
  for `ZFONT_HALIGN_CENTRE` round when calculating centre
  (shifts some texts 1 pixel left)
raster/vector: use offsets into `symbol->text` for EAN/UPC
  instead of `out_upcean_split_text()` (removed)
BMP/EMF/GIF/PCX/PNG/PS/SVG/TIF: use new `out_colour_get_rgb()`
  routine (replaces `colour_to_XXX()`)
general: simplify/fix some `error_number` handling/returning
frontend: truncate overlong `--primary` instead of ignoring;
  negative floating pt option (for `--textgap`)
man page: list size detail for matrix symbols (`--vers`)
manual: further fiddling with scaling text; some typos
This commit is contained in:
gitlost 2023-11-19 19:39:54 +00:00
parent ca964f9098
commit 323b34502b
113 changed files with 2016 additions and 1550 deletions

View file

@ -2,8 +2,8 @@ For generation of "docs/manual.pdf" and "docs/manual.txt" from "manual.pmd" usin
On Ubuntu/Debian (tested on Ubuntu 22.04)
wget https://github.com/jgm/pandoc/releases/download/3.1.5/pandoc-3.1.5-1-amd64.deb
sudo dpkg -i pandoc-3.1.5-1-amd64.deb
wget https://github.com/jgm/pandoc/releases/download/3.1.9/pandoc-3.1.9-1-amd64.deb
sudo dpkg -i pandoc-3.1.9-1-amd64.deb
sudo apt install python3-pip
pip install pandoc-tablenos --user
export PATH=~/.local/bin:"$PATH"
@ -18,9 +18,9 @@ On Ubuntu/Debian (tested on Ubuntu 22.04)
On Fedora (tested on Fedora Linux 38 (Workstation Edition))
wget https://github.com/jgm/pandoc/releases/download/3.1.5/pandoc-3.1.5-linux-amd64.tar.gz
tar xf pandoc-3.1.5-linux-amd64.tar.gz
sudo mv -i pandoc-3.1.5/bin/pandoc /usr/local/bin
wget https://github.com/jgm/pandoc/releases/download/3.1.9/pandoc-3.1.9-linux-amd64.tar.gz
tar xf pandoc-3.1.9-linux-amd64.tar.gz
sudo mv -i pandoc-3.1.9/bin/pandoc /usr/local/bin
sudo dnf install python3-pip
pip install pandoc-tablenos --user
export PATH=~/.local/bin:"$PATH"

View file

@ -1,9 +1,9 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="1013" height="388" version="1.1" xmlns="http://www.w3.org/2000/svg">
<svg width="1013" height="374" version="1.1" xmlns="http://www.w3.org/2000/svg">
<desc>Zint Generated Symbol</desc>
<g id="barcode" fill="#000000">
<rect x="0" y="0" width="1013" height="388" fill="#FFFFFF"/>
<rect x="0" y="0" width="1013" height="374" fill="#FFFFFF"/>
<path d="M0 14.4h9.6v320h-9.6ZM14.4 14.4h4.8v320h-4.8ZM28.8 14.4h4.8v320h-4.8ZM52.8 14.4h4.8v320h-4.8ZM72 14.4h4.8v320h-4.8ZM86.4 14.4h9.6v320h-9.6ZM105.6 14.4h4.8v320h-4.8ZM120 14.4h14.4v320h-14.4ZM139.2 14.4h9.6v320h-9.6ZM158.4 14.4h4.8v320h-4.8ZM168 14.4h14.4v320h-14.4ZM187.2 14.4h19.2v320h-19.2ZM211.2 14.4h9.6v320h-9.6ZM225.6 14.4h9.6v320h-9.6ZM244.8 14.4h9.6v320h-9.6ZM264 14.4h9.6v320h-9.6ZM278.4 14.4h4.8v320h-4.8ZM297.6 14.4h4.8v320h-4.8ZM316.8 14.4h9.6v320h-9.6ZM340.8 14.4h9.6v320h-9.6ZM355.2 14.4h9.6v320h-9.6ZM369.6 14.4h4.8v320h-4.8ZM384 14.4h9.6v320h-9.6ZM403.2 14.4h4.8v320h-4.8ZM422.4 14.4h9.6v320h-9.6ZM436.8 14.4h14.4v320h-14.4ZM460.8 14.4h4.8v320h-4.8ZM475.2 14.4h4.8v320h-4.8ZM484.8 14.4h14.4v320h-14.4ZM504 14.4h19.2v320h-19.2ZM528 14.4h4.8v320h-4.8ZM537.6 14.4h9.6v320h-9.6ZM556.8 14.4h14.4v320h-14.4ZM580.8 14.4h4.8v320h-4.8ZM600 14.4h4.8v320h-4.8ZM609.6 14.4h9.6v320h-9.6ZM633.6 14.4h14.4v320h-14.4ZM662.4 14.4h4.8v320h-4.8ZM672 14.4h9.6v320h-9.6ZM686.4 14.4h9.6v320h-9.6ZM715.2 14.4h4.8v320h-4.8ZM724.8 14.4h4.8v320h-4.8ZM739.2 14.4h9.6v320h-9.6ZM758.4 14.4h4.8v320h-4.8ZM777.6 14.4h4.8v320h-4.8ZM792 14.4h9.6v320h-9.6ZM811.2 14.4h4.8v320h-4.8ZM830.4 14.4h4.8v320h-4.8ZM844.8 14.4h9.6v320h-9.6ZM868.8 14.4h4.8v320h-4.8ZM878.4 14.4h4.8v320h-4.8ZM897.6 14.4h4.8v320h-4.8ZM907.2 14.4h4.8v320h-4.8ZM916.8 14.4h19.2v320h-19.2ZM950.4 14.4h9.6v320h-9.6ZM974.4 14.4h14.4v320h-14.4ZM993.6 14.4h4.8v320h-4.8ZM1003.2 14.4h9.6v320h-9.6ZM0 0h1012.8v14.4h-1012.8Z"/>
<text x="506.4" y="366.43" text-anchor="middle" font-family="Arimo, Arial, sans-serif" font-size="33.6">
0003 932 0621 9912 3456 78 101 040 9

Before

Width:  |  Height:  |  Size: 2 KiB

After

Width:  |  Height:  |  Size: 2 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 KiB

After

Width:  |  Height:  |  Size: 331 KiB

Before After
Before After

View file

@ -258,7 +258,7 @@
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
/* CSS for syntax highlighting */
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span { line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
@ -329,7 +329,7 @@
<h1 class="title">Zint Barcode Generator and Zint Barcode Studio User
Manual</h1>
<p class="author">Version 2.12.0.9</p>
<p class="date">July 2023</p>
<p class="date">November 2023</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
@ -2230,11 +2230,11 @@ aria-hidden="true"><code>zint -d "This Text" --rotate=90</code></figcaption>
<h2 id="adjusting-image-size-x-dimension">4.9 Adjusting Image Size
(X-dimension)</h2>
<p>The size of the image can be altered using the <code>--scale</code>
option, which sets the X-dimension. The scale is multiplied by 2 (with
the exception of MaxiCode) before being applied to the X-dimension. The
default scale is 1.</p>
<p>For MaxiCode, the scale is multiplied by 10 for raster output, by 40
for EMF vector output, and by 2 otherwise (non-EMF vector output).</p>
option, which sets the X-dimension. The default scale is 1.</p>
<p>The scale is multiplied by 2 (with the exception of MaxiCode) before
being applied to the X-dimension. For MaxiCode, it is multiplied by 10
for raster output, by 40 for EMF vector output, and by 2 otherwise
(non-EMF vector output).</p>
<p>For non-Maxicode raster output, the default scale of 1 results in an
X-dimension of 2 pixels. For example for non-Maxicode PNG images a scale
of 5 will increase the X-dimension to 10 pixels. For Maxicode, see <a
@ -2245,19 +2245,77 @@ of 0.5, i.e. 0.5, 1, 1.5, 2, 2.5, 3, 3.5, etc., to avoid the X-dimension
varying across the symbol due to interpolation. 0.5 increments are also
faster to render.</p>
<p>The minimum scale for non-Maxicode raster output in non-dotty mode is
0.5, giving a minimum X-dimension of 1 pixel. The minimum scale for
raster output in dotty mode is 1 (see <a href="#working-with-dots">4.15
Working with Dots</a>). For raster output, text will not be printed for
scales less than 1.</p>
0.5, giving a minimum X-dimension of 1 pixel. For MaxiCode, it is 0.2.
The minimum scale for raster output in dotty mode is 1 (see <a
href="#working-with-dots">4.15 Working with Dots</a>). For raster
output, text will not be printed for scales less than 1.</p>
<p>The minimum scale for vector output is 0.1, giving a minimum
X-dimension of 0.2 (or for Maxicode EMF output, 4).</p>
<p>The maximum scale for both raster and vector is 200.</p>
<p>Using measurable units to specify the X-dimension is often more
useful, as discussed in the next section.</p>
X-dimension of 0.2 (or for Maxicode EMF output, 4). The maximum scale
for both raster and vector is 200.</p>
<p>To summarize the more intricate details:</p>
<div id="tbl:scaling_multiplers" class="tablenos">
<table id="tbl:scaling_multiplers" style="width:92%;"
data-tag=": Scaling Multipliers and Minima">
<caption><span>Table : Scaling Multipliers and Minima</span> </caption>
<colgroup>
<col style="width: 15%" />
<col style="width: 25%" />
<col style="width: 16%" />
<col style="width: 19%" />
<col style="width: 15%" />
</colgroup>
<thead>
<tr class="header">
<th>MaxiCode?</th>
<th style="text-align: left;">Output</th>
<th>Multiplier</th>
<th style="text-align: left;">Min. Scale (non-dotty)</th>
<th style="text-align: left;">Min. Scale (dotty)</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>No</td>
<td style="text-align: left;">Raster</td>
<td>2</td>
<td style="text-align: left;">0.5</td>
<td style="text-align: left;">1</td>
</tr>
<tr class="even">
<td>No</td>
<td style="text-align: left;">Vector</td>
<td>2</td>
<td style="text-align: left;">0.1</td>
<td style="text-align: left;">0.1</td>
</tr>
<tr class="odd">
<td>Yes</td>
<td style="text-align: left;">Raster</td>
<td>10</td>
<td style="text-align: left;">0.2</td>
<td style="text-align: left;">N/A</td>
</tr>
<tr class="even">
<td>Yes</td>
<td style="text-align: left;">Vector (non-EMF)</td>
<td>2</td>
<td style="text-align: left;">0.1</td>
<td style="text-align: left;">N/A</td>
</tr>
<tr class="odd">
<td>Yes</td>
<td style="text-align: left;">EMF</td>
<td>40</td>
<td style="text-align: left;">0.1</td>
<td style="text-align: left;">N/A</td>
</tr>
</tbody>
</table>
</div>
<h3 id="scaling-by-x-dimension-and-resolution">4.9.1 Scaling by
X-dimension and Resolution</h3>
<p>An alternative way to specify the scale which takes the above details
into account and uses measurable units is to use the
<p>An alternative way to specify the scale, which takes the above
details into account, is to specify measurable units using the
<code>--scalexdimdp</code> option, which has the format</p>
<pre><code>--scalexdimdp=X[,R]</code></pre>
<p>where <code>X</code> is the X-dimension (in mm by default) and
@ -2321,9 +2379,10 @@ alt="zint --bold -d &quot;This Text&quot; --small" />
aria-hidden="true"><code>zint --bold -d "This Text" --small</code></figcaption>
</figure>
<p>The gap between the barcode and the text can be adjusted using the
<code>--textgap</code> option, where the gap is given in X-dimensions
(maximum 10X). A zero value uses the default gap (1X). Note that a very
small gap may cause accented texts to overlap with the barcode:</p>
<code>--textgap</code> option, where the gap is given in X-dimensions,
and may be negative (minimum -5X, maximum 10X). The default gap is 1X.
Note that a very small gap may cause accented texts to overlap with the
barcode:</p>
<figure>
<img src="images/code128_textgap.svg" title="fig:" class="lin"
alt="zint -d &quot;Áccent&quot; --textgap=0.1" />
@ -3411,7 +3470,7 @@ X-dimensions).</td>
<td style="text-align: left;">float</td>
<td style="text-align: left;">Gap between barcode and text (HRT) in
X-dimensions.</td>
<td style="text-align: left;">0 (default 1X)</td>
<td style="text-align: left;">1.0</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><code>guard_descent</code></td>
@ -3428,13 +3487,19 @@ symbols.</td>
<td style="text-align: left;">count 0 (disabled)</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><code>debug</code></td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">Debugging flags.</td>
<td style="text-align: left;">0</td>
</tr>
<tr class="even">
<td style="text-align: left;"><code>warn_level</code></td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">Affects error/warning value returned by
Zint API - see <a href="#handling-errors">5.7 Handling Errors</a>.</td>
<td style="text-align: left;"><code>WARN_DEFAULT</code></td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;"><code>text</code></td>
<td style="text-align: left;">unsigned character string</td>
<td style="text-align: left;">Human Readable Text, which usually
@ -3442,31 +3507,31 @@ consists of input data plus one more check digit. Uses UTF-8 formatting,
with a terminating <code>NUL</code>.</td>
<td style="text-align: left;"><code>""</code> (empty) (output only)</td>
</tr>
<tr class="odd">
<tr class="even">
<td style="text-align: left;"><code>rows</code></td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">Number of rows used by the symbol.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;"><code>width</code></td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">Width of the generated symbol.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><code>encoding_data</code></td>
<tr class="even">
<td style="text-align: left;"><code>encoded_data</code></td>
<td style="text-align: left;">array of unsigned character arrays</td>
<td style="text-align: left;">Representation of the encoded data.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;"><code>row_height</code></td>
<td style="text-align: left;">array of floats</td>
<td style="text-align: left;">Representation of the height of rows.</td>
<td style="text-align: left;">Heights of each row.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="odd">
<tr class="even">
<td style="text-align: left;"><code>errtxt</code></td>
<td style="text-align: left;">character string</td>
<td style="text-align: left;">Error message in the event that an error
@ -3474,7 +3539,7 @@ occurred, with a terminating <code>NUL</code> - see <a
href="#handling-errors">5.7 Handling Errors</a>.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;"><code>bitmap</code></td>
<td style="text-align: left;">pointer to unsigned character array</td>
<td style="text-align: left;">Pointer to stored bitmap image - see <a
@ -3482,21 +3547,21 @@ href="#buffering-symbols-in-memory-raster">5.4 Buffering Symbols in
Memory (raster)</a>.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="odd">
<tr class="even">
<td style="text-align: left;"><code>bitmap_width</code></td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">Width of stored bitmap image (in pixels) -
see <code>bitmap</code> member.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;"><code>bitmap_height</code></td>
<td style="text-align: left;">integer</td>
<td style="text-align: left;">Height of stored bitmap image (in pixels)
- see <code>bitmap</code> member.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="odd">
<tr class="even">
<td style="text-align: left;"><code>alphamap</code></td>
<td style="text-align: left;">pointer to unsigned character array</td>
<td style="text-align: left;">Pointer to array representing alpha
@ -3504,7 +3569,7 @@ channel of stored bitmap image (or <code>NULL</code> if no alpha channel
used) - see <code>bitmap</code> member.</td>
<td style="text-align: left;">(output only)</td>
</tr>
<tr class="even">
<tr class="odd">
<td style="text-align: left;"><code>vector</code></td>
<td style="text-align: left;">pointer to vector structure</td>
<td style="text-align: left;">Pointer to vector header containing
@ -3561,7 +3626,7 @@ data-tag=": API Warning and Error Return Values">
<tr class="odd">
<td style="text-align: left;"><code>ZINT_WARN_HRT_TRUNCATED</code></td>
<td style="text-align: left;">The Human Readable Text returned in
<code>text</code> was truncated (maximum 159 bytes).</td>
<code>text</code> was truncated (maximum 199 bytes).</td>
</tr>
<tr class="even">
<td style="text-align: left;"><code>ZINT_WARN_INVALID_OPTION</code></td>
@ -4057,9 +4122,10 @@ Text?</td>
<td style="text-align: left;">Is the symbology stackable?</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><code>ZINT_CAP_EXTENDABLE</code></td>
<td style="text-align: left;">Is the symbology extendable with add-on
data? (i.e. is it EAN/UPC?)</td>
<td style="text-align: left;"><code>ZINT_CAP_EANUPC</code><a
href="#fn12" class="footnote-ref" id="fnref12"
role="doc-noteref"><sup>12</sup></a></td>
<td style="text-align: left;">Is the symbology EAN/UPC?</td>
</tr>
<tr class="even">
<td style="text-align: left;"><code>ZINT_CAP_COMPOSITE</code></td>
@ -4684,8 +4750,8 @@ aria-hidden="true"><code>zint -b CODE128 --bind -d "130170X178"</code></figcapti
128 was developed in 1981 by Computer Identics. This symbology supports
full ASCII text and uses a three-Code Set system to compress the data
into a smaller symbol. Zint automatically switches between Code Sets A,
B and C (but see the special escapes below) and adds a hidden modulo-103
check digit.</p>
B and C (but see following) and adds a hidden modulo-103 check
digit.</p>
<p>Manual switching of Code Sets is possible using the
<code>--extraesc</code> option (API
<code>input_mode |= EXTRA_ESCAPE_MODE</code>) and the Code 128-specific
@ -4707,6 +4773,8 @@ Zint supports the encoding of ISO/IEC 8859-1 (non-English) characters in
Code 128 symbols. The ISO/IEC 8859-1 character set is shown in Annex <a
href="#a.2-latin-alphabet-no.-1-isoiec-8859-1">A.2 Latin Alphabet No. 1
(ISO/IEC 8859-1)</a>.</p>
<p>Zint can encode a maximum of 99 symbol characters, which allows for
e.g. 198 all-numeric characters.</p>
<h4 id="code-128-suppress-code-set-c-code-sets-a-and-b-only">6.1.10.2
Code 128 Suppress Code Set C (Code Sets A and B only)</h4>
<figure>
@ -4717,8 +4785,8 @@ aria-hidden="true"><code>zint -b CODE128AB -d "130170X178"</code></figcaption>
</figure>
<p>It is sometimes advantageous to stop Code 128 from using Code Set C
which compresses numerical data. The <code>BARCODE_CODE128AB</code><a
href="#fn12" class="footnote-ref" id="fnref12"
role="doc-noteref"><sup>12</sup></a> variant (symbology 60) suppresses
href="#fn13" class="footnote-ref" id="fnref13"
role="doc-noteref"><sup>13</sup></a> variant (symbology 60) suppresses
Code Set C in favour of Code Sets A and B.</p>
<p>Note that the special escapes to manually switch Code Sets mentioned
above are not available for this variant (nor for any other).</p>
@ -8920,7 +8988,8 @@ raster output (BMP, GIF, PCX, PNG and TIF).</p>
<p>Scale the image according to X-dimension <em>X</em> and resolution
<em>R</em>, where <em>X</em> is in mm and <em>R</em> is in dpmm (dots
per mm). <em>X</em> and <em>R</em> may be floating-point. <em>R</em> is
optional and defaults to 12 dpmm (approximately 300 dpi).</p>
optional and defaults to 12 dpmm (approximately 300 dpi). <em>X</em> may
be zero in which case a symbology-specific default is used.</p>
<p>The scaling takes into account the output filetype, and deals with
all the details mentioned above. Units may be specified for <em>X</em>
by appending “in” (inch) or “mm”, and for <em>R</em> by appending “dpi”
@ -8987,7 +9056,7 @@ names can be used with <code>-b</code> | <code>--barcode</code>.</p>
<dd>
<p>Adjust the gap between the barcode and the Human Readable Text (HRT).
<em>NUMBER</em> is in X-dimensions, and may be floating-point. Maximum
is 10; zero results in the default 1X being used.</p>
is 10 and minimum is -5. The default is 1.</p>
</dd>
<dt><code>--vers=INTEGER</code></dt>
<dd>
@ -8995,13 +9064,108 @@ is 10; zero results in the default 1X being used.</p>
<em>INTEGER</em>. The meaning is symbol-specific.</p>
<p>For most matrix symbols, it specifies size:</p>
<pre><code>Aztec Code 1 to 36 (1 to 4 compact)
Code One 1 to 10
Data Matrix 1 to 48 (31 to 48 DMRE)
1 15x15 13 53x53 25 105x105
2 19x19 14 57x57 26 109x109
3 23x23 15 61x61 27 113x113
4 27x27 16 67x67 28 117x117
5 19x19 17 71x71 29 121x121
6 23x23 18 75x75 30 125x125
7 27x27 19 79x79 31 131x131
8 31x31 20 83x83 32 135x135
9 37x37 21 87x87 33 139x139
10 41x41 22 91x91 34 143x143
11 45x45 23 95x95 35 147x147
12 49x49 24 101x101 36 151x151
Code One 1 to 10 (9 and 10 variable width) (WxH)
1 16x18 6 70x76
2 22x22 7 104x98
3 28x28 8 148x134
4 40x42 9 Wx8
5 52x54 10 Wx16
Data Matrix 1 to 48 (31 to 48 DMRE) (HxW)
1 10x10 17 72x72 33 8x80
2 12x12 18 80x80 34 8x96
3 14x14 19 88x88 35 8x120
4 16x16 20 96x96 36 8x144
5 18x18 21 104x104 37 12x64
6 20x20 22 120x120 38 12x88
7 22x22 23 132x132 39 16x64
8 24x24 24 144x144 40 20x36
9 26x26 25 8x18 41 20x44
10 32x32 26 8x32 42 20x64
11 36x36 28 12x26 43 22x48
12 40x40 28 12x36 44 24x48
13 44x44 29 16x36 45 24x64
14 48x48 30 16x48 46 26x40
15 52x52 31 8x48 47 26x48
16 64x64 32 8x64 48 26x64
Grid Matrix 1 to 13
1 18x18 6 78x78 11 138x138
2 30x30 7 90x90 12 150x150
3 42x42 8 102x102 13 162x162
4 54x54 9 114x114
5 66x66 10 126x126
Han Xin 1 to 84
1 23x23 29 79x79 57 135x135
2 25x25 30 81x81 58 137x137
3 27x27 31 83x83 59 139x139
4 29x29 32 85x85 60 141x141
5 31x31 33 87x87 61 143x143
6 33x33 34 89x89 62 145x145
7 35x35 35 91x91 63 147x147
8 37x37 36 93x93 64 149x149
9 39x39 37 95x95 65 151x151
10 41x41 38 97x97 66 153x153
11 43x43 39 99x99 67 155x155
12 45x45 40 101x101 68 157x157
13 47x47 41 103x103 69 159x159
14 49x49 42 105x105 70 161x161
15 51x51 43 107x107 71 163x163
16 53x53 44 109x109 72 165x165
17 55x55 45 111x111 73 167x167
18 57x57 46 113x113 74 169x169
19 59x59 47 115x115 75 171x171
20 61x61 48 117x117 76 173x173
21 63x63 49 119x119 77 175x175
22 65x65 50 121x121 78 177x177
23 67x67 51 123x123 79 179x179
24 69x69 52 125x125 80 181x181
25 71x71 53 127x127 81 183x183
26 73x73 54 129x129 82 185x185
27 75x75 55 131x131 83 187x187
28 77x77 56 133x133 84 189x189
Micro QR 1 to 4 (M1, M2, M3, M4)
1 11x11 3 15x15
2 13x13 4 17x17
QR Code 1 to 40
rMQR 1 to 38 (33 to 38 automatic width)</code></pre>
1 21x21 15 77x77 29 133x133
2 25x25 16 81x81 30 137x137
3 29x29 17 85x85 31 141x141
4 33x33 18 89x89 32 145x145
5 37x37 19 93x93 33 149x149
6 41x41 20 97x97 34 153x153
7 45x45 21 101x101 35 157x157
8 49x49 22 105x105 36 161x161
9 53x53 23 109x109 37 165x165
10 57x57 24 113x113 38 169x169
11 61x61 25 117x117 39 173x173
12 65x65 26 121x121 40 177x177
13 69x69 27 125x125
14 73x73 28 129x129
rMQR 1 to 38 (33 to 38 automatic width) (HxW)
1 7x73 14 11x77 27 15x139
2 7x59 15 11x99 28 17x43
3 7x77 16 11x139 29 17x59
4 7x99 17 13x27 30 17x77
5 7x139 18 13x43 31 17x99
6 9x43 19 13x59 32 17x139
7 9x59 20 13x77 33 7xW
8 9x77 21 13x99 34 9xW
9 9x99 22 13x139 35 11xW
10 9x139 23 15x43 36 13xW
11 11x27 24 15x59 37 15xW
12 11x43 25 15x77 38 17xW
13 11x59 26 15x99</code></pre>
<p>For a number of linear symbols, it specifies check character options
(“hide” or “hidden” means dont show in HRT, “visible” means do display
in HRT):</p>
@ -9062,7 +9226,7 @@ Success (including when given informational options <code>-h</code> |
</dd>
<dt><code>1</code></dt>
<dd>
Human Readable Text was truncated (maximum 159 bytes)
Human Readable Text was truncated (maximum 199 bytes)
(<code>ZINT_WARN_HRT_TRUNCATED</code>)
</dd>
<dt><code>2</code></dt>
@ -9222,9 +9386,12 @@ class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn11"><p>Codablock-F, Code 16K, Code 49, EAN-2 to EAN-13, ISBN,
ITF-14, UPC-A and UPC-E have compliant quiet zones added by default.<a
href="#fnref11" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn12"><p><code>BARCODE_CODE128AB</code> previously used the name
<code>BARCODE_CODE128B</code>, which is still recognised.<a
<li id="fn12"><p><code>ZINT_CAP_EANUPC</code> was previously named
<code>ZINT_CAP_EXTENDABLE</code>, which is still recognised.<a
href="#fnref12" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn13"><p><code>BARCODE_CODE128AB</code> previously used the name
<code>BARCODE_CODE128B</code>, which is still recognised.<a
href="#fnref13" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</aside>
</body>

View file

@ -1,6 +1,6 @@
% Zint Barcode Generator and Zint Barcode Studio User Manual
% Version 2.12.0.9
% July 2023
% November 2023
# 1. Introduction
@ -1066,14 +1066,16 @@ followed by the angle of rotation as shown below.
![`zint -d "This Text" --rotate=90`](images/code128_rotate90.svg){.lin}
\clearpage
## 4.9 Adjusting Image Size (X-dimension)
The size of the image can be altered using the `--scale` option, which sets the
X-dimension. The scale is multiplied by 2 (with the exception of MaxiCode)
before being applied to the X-dimension. The default scale is 1.
X-dimension. The default scale is 1.
For MaxiCode, the scale is multiplied by 10 for raster output, by 40 for EMF
vector output, and by 2 otherwise (non-EMF vector output).
The scale is multiplied by 2 (with the exception of MaxiCode) before being
applied to the X-dimension. For MaxiCode, it is multiplied by 10 for raster
output, by 40 for EMF vector output, and by 2 otherwise (non-EMF vector output).
For non-Maxicode raster output, the default scale of 1 results in an X-dimension
of 2 pixels. For example for non-Maxicode PNG images a scale of 5 will increase
@ -1085,22 +1087,37 @@ Scales for non-Maxicode raster output should be given in increments of 0.5, i.e.
symbol due to interpolation. 0.5 increments are also faster to render.
The minimum scale for non-Maxicode raster output in non-dotty mode is 0.5,
giving a minimum X-dimension of 1 pixel. The minimum scale for raster output in
dotty mode is 1 (see [4.15 Working with Dots]). For raster output, text will not
be printed for scales less than 1.
giving a minimum X-dimension of 1 pixel. For MaxiCode, it is 0.2. The minimum
scale for raster output in dotty mode is 1 (see [4.15 Working with Dots]). For
raster output, text will not be printed for scales less than 1.
The minimum scale for vector output is 0.1, giving a minimum X-dimension of 0.2
(or for Maxicode EMF output, 4).
(or for Maxicode EMF output, 4). The maximum scale for both raster and vector is
200.
The maximum scale for both raster and vector is 200.
To summarize the more intricate details:
Using measurable units to specify the X-dimension is often more useful, as
discussed in the next section.
-----------------------------------------------------------------
MaxiCode? Output Multiplier Min. Scale Min. Scale
(non-dotty) (dotty)
--------- ---------------- ---------- ------------ ----------
No Raster 2 0.5 1
No Vector 2 0.1 0.1
Yes Raster 10 0.2 N/A
Yes Vector (non-EMF) 2 0.1 N/A
Yes EMF 40 0.1 N/A
-----------------------------------------------------------------
Table: {#tbl:scaling_multiplers tag=": Scaling Multipliers and Minima"}
### 4.9.1 Scaling by X-dimension and Resolution
An alternative way to specify the scale which takes the above details into
account and uses measurable units is to use the `--scalexdimdp` option, which
An alternative way to specify the scale, which takes the above details into
account, is to specify measurable units using the `--scalexdimdp` option, which
has the format
```
@ -1177,9 +1194,9 @@ be used together if required, but only for vector output.
![`zint --bold -d "This Text" --small`](images/code128_small_bold.svg){.lin}
The gap between the barcode and the text can be adjusted using the `--textgap`
option, where the gap is given in X-dimensions (maximum 10X). A zero value uses
the default gap (1X). Note that a very small gap may cause accented texts to
overlap with the barcode:
option, where the gap is given in X-dimensions, and may be negative (minimum
-5X, maximum 10X). The default gap is 1X. Note that a very small gap may cause
accented texts to overlap with the barcode:
![`zint -d "Áccent" --textgap=0.1`](images/code128_textgap.svg){.lin}
@ -1350,8 +1367,6 @@ Nevertheless, for ECI Code 3, this is not usually required, as this is the
default encoding for most barcodes, which is also active without any ECI
information.
\clearpage
#### 4.11.2.1 Input Modes and ECI Example 1
The Euro sign U+20AC can be encoded in ISO/IEC 8859-15. The Euro sign has the
@ -1957,7 +1972,7 @@ Member Name Type Meaning Default Value
dotty mode (in
X-dimensions).
`text_gap` float Gap between barcode and 0 (default 1X)
`text_gap` float Gap between barcode and 1.0
text (HRT) in
X-dimensions.
@ -1969,6 +1984,8 @@ Member Name Type Meaning Default Value
Append a sequence of symbols. (disabled)
structure
`debug` integer Debugging flags. 0
`warn_level` integer Affects error/warning `WARN_DEFAULT`
value returned by Zint
API - see [5.7 Handling
@ -1987,13 +2004,13 @@ Member Name Type Meaning Default Value
`width` integer Width of the generated (output only)
symbol.
`encoding_data` array of Representation of the (output only)
`encoded_data` array of Representation of the (output only)
unsigned encoded data.
character
arrays
`row_height` array of Representation of the (output only)
floats height of rows.
`row_height` array of Heights of each row. (output only)
floats
`errtxt` character Error message in the (output only)
string event that an error
@ -2077,7 +2094,7 @@ detailing the nature of the error. The errors generated by Zint are:
Return Value Meaning
----------------------------- -----------------------------------------------
`ZINT_WARN_HRT_TRUNCATED` The Human Readable Text returned in `text` was
truncated (maximum 159 bytes).
truncated (maximum 199 bytes).
`ZINT_WARN_INVALID_OPTION` One of the values in `zint_struct` was set
incorrectly but Zint has made a guess at what
@ -2512,8 +2529,7 @@ Value Meaning
`ZINT_CAP_STACKABLE` Is the symbology stackable?
`ZINT_CAP_EXTENDABLE` Is the symbology extendable with add-on data?
(i.e. is it EAN/UPC?)
`ZINT_CAP_EANUPC`[^12] Is the symbology EAN/UPC?
`ZINT_CAP_COMPOSITE` Does the symbology support composite data? (see
[6.3 GS1 Composite Symbols (ISO 24723)] below)
@ -2544,6 +2560,9 @@ Value Meaning
Table: {#tbl:api_cap tag=": API Capability Flags"}
[^12]: `ZINT_CAP_EANUPC` was previously named `ZINT_CAP_EXTENDABLE`, which is
still recognised.
For example:
```c
@ -3034,8 +3053,8 @@ pharmaceuticals. The symbology is able to encode whole numbers between 3 and
One of the most ubiquitous one-dimensional barcode symbologies, Code 128 was
developed in 1981 by Computer Identics. This symbology supports full ASCII text
and uses a three-Code Set system to compress the data into a smaller symbol.
Zint automatically switches between Code Sets A, B and C (but see the special
escapes below) and adds a hidden modulo-103 check digit.
Zint automatically switches between Code Sets A, B and C (but see following) and
adds a hidden modulo-103 check digit.
Manual switching of Code Sets is possible using the `--extraesc` option (API
`input_mode |= EXTRA_ESCAPE_MODE`) and the Code 128-specific escapes `\^A`,
@ -3062,18 +3081,21 @@ supports the encoding of ISO/IEC 8859-1 (non-English) characters in Code 128
symbols. The ISO/IEC 8859-1 character set is shown in Annex [A.2 Latin Alphabet
No. 1 (ISO/IEC 8859-1)].
Zint can encode a maximum of 99 symbol characters, which allows for e.g. 198
all-numeric characters.
#### 6.1.10.2 Code 128 Suppress Code Set C (Code Sets A and B only)
![`zint -b CODE128AB -d "130170X178"`](images/code128ab.svg){.lin}
It is sometimes advantageous to stop Code 128 from using Code Set C which
compresses numerical data. The `BARCODE_CODE128AB`[^12] variant (symbology 60)
compresses numerical data. The `BARCODE_CODE128AB`[^13] variant (symbology 60)
suppresses Code Set C in favour of Code Sets A and B.
Note that the special escapes to manually switch Code Sets mentioned above are
not available for this variant (nor for any other).
[^12]: `BARCODE_CODE128AB` previously used the name `BARCODE_CODE128B`, which is
[^13]: `BARCODE_CODE128AB` previously used the name `BARCODE_CODE128B`, which is
still recognised.
#### 6.1.10.3 GS1-128

View file

@ -1,6 +1,6 @@
Zint Barcode Generator and Zint Barcode Studio User Manual
Version 2.12.0.9
July 2023
November 2023
*******************************************************************************
* For reference the following is a text-only version of the Zint manual, *
@ -1163,11 +1163,11 @@ followed by the angle of rotation as shown below.
4.9 Adjusting Image Size (X-dimension)
The size of the image can be altered using the --scale option, which sets the
X-dimension. The scale is multiplied by 2 (with the exception of MaxiCode)
before being applied to the X-dimension. The default scale is 1.
X-dimension. The default scale is 1.
For MaxiCode, the scale is multiplied by 10 for raster output, by 40 for EMF
vector output, and by 2 otherwise (non-EMF vector output).
The scale is multiplied by 2 (with the exception of MaxiCode) before being
applied to the X-dimension. For MaxiCode, it is multiplied by 10 for raster
output, by 40 for EMF vector output, and by 2 otherwise (non-EMF vector output).
For non-Maxicode raster output, the default scale of 1 results in an X-dimension
of 2 pixels. For example for non-Maxicode PNG images a scale of 5 will increase
@ -1179,23 +1179,38 @@ Scales for non-Maxicode raster output should be given in increments of 0.5, i.e.
symbol due to interpolation. 0.5 increments are also faster to render.
The minimum scale for non-Maxicode raster output in non-dotty mode is 0.5,
giving a minimum X-dimension of 1 pixel. The minimum scale for raster output in
dotty mode is 1 (see 4.15 Working with Dots). For raster output, text will not
be printed for scales less than 1.
giving a minimum X-dimension of 1 pixel. For MaxiCode, it is 0.2. The minimum
scale for raster output in dotty mode is 1 (see 4.15 Working with Dots). For
raster output, text will not be printed for scales less than 1.
The minimum scale for vector output is 0.1, giving a minimum X-dimension of 0.2
(or for Maxicode EMF output, 4).
(or for Maxicode EMF output, 4). The maximum scale for both raster and vector is
200.
The maximum scale for both raster and vector is 200.
To summarize the more intricate details:
Using measurable units to specify the X-dimension is often more useful, as
discussed in the next section.
-------------------------------------------------------------------
MaxiCode? Output Multiplier Min. Scale Min. Scale
(non-dotty) (dotty)
----------- ----------------- ------------ ------------- ----------
No Raster 2 0.5 1
No Vector 2 0.1 0.1
Yes Raster 10 0.2 N/A
Yes Vector (non-EMF) 2 0.1 N/A
Yes EMF 40 0.1 N/A
-------------------------------------------------------------------
: Table : Scaling Multipliers and Minima:
4.9.1 Scaling by X-dimension and Resolution
An alternative way to specify the scale which takes the above details into
account and uses measurable units is to use the --scalexdimdp option, which has
the format
An alternative way to specify the scale, which takes the above details into
account, is to specify measurable units using the --scalexdimdp option, which
has the format
--scalexdimdp=X[,R]
@ -1259,9 +1274,9 @@ together if required, but only for vector output.
[zint --bold -d "This Text" --small]
The gap between the barcode and the text can be adjusted using the --textgap
option, where the gap is given in X-dimensions (maximum 10X). A zero value uses
the default gap (1X). Note that a very small gap may cause accented texts to
overlap with the barcode:
option, where the gap is given in X-dimensions, and may be negative (minimum
-5X, maximum 10X). The default gap is 1X. Note that a very small gap may cause
accented texts to overlap with the barcode:
[zint -d "Áccent" --textgap=0.1]
@ -1977,7 +1992,7 @@ encoding stages. The zint_symbol structure consists of the following members:
dotty mode (in
X-dimensions).
text_gap float Gap between barcode and 0 (default 1X)
text_gap float Gap between barcode and 1.0
text (HRT) in
X-dimensions.
@ -1989,6 +2004,8 @@ encoding stages. The zint_symbol structure consists of the following members:
Append sequence of symbols. (disabled)
structure
debug integer Debugging flags. 0
warn_level integer Affects error/warning WARN_DEFAULT
value returned by Zint
API - see 5.7 Handling
@ -2007,13 +2024,13 @@ encoding stages. The zint_symbol structure consists of the following members:
width integer Width of the generated (output only)
symbol.
encoding_data array of Representation of the (output only)
encoded_data array of Representation of the (output only)
unsigned encoded data.
character
arrays
row_height array of Representation of the (output only)
floats height of rows.
row_height array of Heights of each row. (output only)
floats
errtxt character Error message in the event (output only)
string that an error occurred,
@ -2083,7 +2100,7 @@ the nature of the error. The errors generated by Zint are:
Return Value Meaning
------------------------------ -----------------------------------------------
ZINT_WARN_HRT_TRUNCATED The Human Readable Text returned in text was
truncated (maximum 159 bytes).
truncated (maximum 199 bytes).
ZINT_WARN_INVALID_OPTION One of the values in zint_struct was set
incorrectly but Zint has made a guess at what
@ -2471,8 +2488,7 @@ see which are set.
ZINT_CAP_STACKABLE Is the symbology stackable?
ZINT_CAP_EXTENDABLE Is the symbology extendable with add-on data?
(i.e. is it EAN/UPC?)
ZINT_CAP_EANUPC[12] Is the symbology EAN/UPC?
ZINT_CAP_COMPOSITE Does the symbology support composite data? (see
6.3 GS1 Composite Symbols (ISO 24723) below)
@ -2945,8 +2961,8 @@ pharmaceuticals. The symbology is able to encode whole numbers between 3 and
One of the most ubiquitous one-dimensional barcode symbologies, Code 128 was
developed in 1981 by Computer Identics. This symbology supports full ASCII text
and uses a three-Code Set system to compress the data into a smaller symbol.
Zint automatically switches between Code Sets A, B and C (but see the special
escapes below) and adds a hidden modulo-103 check digit.
Zint automatically switches between Code Sets A, B and C (but see following) and
adds a hidden modulo-103 check digit.
Manual switching of Code Sets is possible using the --extraesc option (API
input_mode |= EXTRA_ESCAPE_MODE) and the Code 128-specific escapes \^A, \^B,
@ -2969,12 +2985,15 @@ supports the encoding of ISO/IEC 8859-1 (non-English) characters in Code 128
symbols. The ISO/IEC 8859-1 character set is shown in Annex A.2 Latin Alphabet
No. 1 (ISO/IEC 8859-1).
Zint can encode a maximum of 99 symbol characters, which allows for e.g. 198
all-numeric characters.
6.1.10.2 Code 128 Suppress Code Set C (Code Sets A and B only)
[zint -b CODE128AB -d "130170X178"]
It is sometimes advantageous to stop Code 128 from using Code Set C which
compresses numerical data. The BARCODE_CODE128AB[12] variant (symbology 60)
compresses numerical data. The BARCODE_CODE128AB[13] variant (symbology 60)
suppresses Code Set C in favour of Code Sets A and B.
Note that the special escapes to manually switch Code Sets mentioned above are
@ -4725,7 +4744,7 @@ configured barcode is displayed once the "Generate" button is pressed.
Annex D. Man Page ZINT(1)
% ZINT(1) Version 2.12.0.9 % % July 2023
% ZINT(1) Version 2.12.0.9 % % November 2023
NAME
@ -5088,7 +5107,8 @@ OPTIONS
Scale the image according to X-dimension X and resolution R, where X is in
mm and R is in dpmm (dots per mm). X and R may be floating-point. R is
optional and defaults to 12 dpmm (approximately 300 dpi).
optional and defaults to 12 dpmm (approximately 300 dpi). X may be zero in
which case a symbology-specific default is used.
The scaling takes into account the output filetype, and deals with all the
details mentioned above. Units may be specified for X by appending “in”
@ -5150,8 +5170,8 @@ OPTIONS
--textgap=NUMBER
Adjust the gap between the barcode and the Human Readable Text (HRT). NUMBER
is in X-dimensions, and may be floating-point. Maximum is 10; zero results
in the default 1X being used.
is in X-dimensions, and may be floating-point. Maximum is 10 and minimum is
-5. The default is 1.
--vers=INTEGER
@ -5161,13 +5181,108 @@ OPTIONS
For most matrix symbols, it specifies size:
Aztec Code 1 to 36 (1 to 4 compact)
Code One 1 to 10
Data Matrix 1 to 48 (31 to 48 DMRE)
1 15x15 13 53x53 25 105x105
2 19x19 14 57x57 26 109x109
3 23x23 15 61x61 27 113x113
4 27x27 16 67x67 28 117x117
5 19x19 17 71x71 29 121x121
6 23x23 18 75x75 30 125x125
7 27x27 19 79x79 31 131x131
8 31x31 20 83x83 32 135x135
9 37x37 21 87x87 33 139x139
10 41x41 22 91x91 34 143x143
11 45x45 23 95x95 35 147x147
12 49x49 24 101x101 36 151x151
Code One 1 to 10 (9 and 10 variable width) (WxH)
1 16x18 6 70x76
2 22x22 7 104x98
3 28x28 8 148x134
4 40x42 9 Wx8
5 52x54 10 Wx16
Data Matrix 1 to 48 (31 to 48 DMRE) (HxW)
1 10x10 17 72x72 33 8x80
2 12x12 18 80x80 34 8x96
3 14x14 19 88x88 35 8x120
4 16x16 20 96x96 36 8x144
5 18x18 21 104x104 37 12x64
6 20x20 22 120x120 38 12x88
7 22x22 23 132x132 39 16x64
8 24x24 24 144x144 40 20x36
9 26x26 25 8x18 41 20x44
10 32x32 26 8x32 42 20x64
11 36x36 28 12x26 43 22x48
12 40x40 28 12x36 44 24x48
13 44x44 29 16x36 45 24x64
14 48x48 30 16x48 46 26x40
15 52x52 31 8x48 47 26x48
16 64x64 32 8x64 48 26x64
Grid Matrix 1 to 13
1 18x18 6 78x78 11 138x138
2 30x30 7 90x90 12 150x150
3 42x42 8 102x102 13 162x162
4 54x54 9 114x114
5 66x66 10 126x126
Han Xin 1 to 84
1 23x23 29 79x79 57 135x135
2 25x25 30 81x81 58 137x137
3 27x27 31 83x83 59 139x139
4 29x29 32 85x85 60 141x141
5 31x31 33 87x87 61 143x143
6 33x33 34 89x89 62 145x145
7 35x35 35 91x91 63 147x147
8 37x37 36 93x93 64 149x149
9 39x39 37 95x95 65 151x151
10 41x41 38 97x97 66 153x153
11 43x43 39 99x99 67 155x155
12 45x45 40 101x101 68 157x157
13 47x47 41 103x103 69 159x159
14 49x49 42 105x105 70 161x161
15 51x51 43 107x107 71 163x163
16 53x53 44 109x109 72 165x165
17 55x55 45 111x111 73 167x167
18 57x57 46 113x113 74 169x169
19 59x59 47 115x115 75 171x171
20 61x61 48 117x117 76 173x173
21 63x63 49 119x119 77 175x175
22 65x65 50 121x121 78 177x177
23 67x67 51 123x123 79 179x179
24 69x69 52 125x125 80 181x181
25 71x71 53 127x127 81 183x183
26 73x73 54 129x129 82 185x185
27 75x75 55 131x131 83 187x187
28 77x77 56 133x133 84 189x189
Micro QR 1 to 4 (M1, M2, M3, M4)
1 11x11 3 15x15
2 13x13 4 17x17
QR Code 1 to 40
rMQR 1 to 38 (33 to 38 automatic width)
1 21x21 15 77x77 29 133x133
2 25x25 16 81x81 30 137x137
3 29x29 17 85x85 31 141x141
4 33x33 18 89x89 32 145x145
5 37x37 19 93x93 33 149x149
6 41x41 20 97x97 34 153x153
7 45x45 21 101x101 35 157x157
8 49x49 22 105x105 36 161x161
9 53x53 23 109x109 37 165x165
10 57x57 24 113x113 38 169x169
11 61x61 25 117x117 39 173x173
12 65x65 26 121x121 40 177x177
13 69x69 27 125x125
14 73x73 28 129x129
rMQR 1 to 38 (33 to 38 automatic width) (HxW)
1 7x73 14 11x77 27 15x139
2 7x59 15 11x99 28 17x43
3 7x77 16 11x139 29 17x59
4 7x99 17 13x27 30 17x77
5 7x139 18 13x43 31 17x99
6 9x43 19 13x59 32 17x139
7 9x59 20 13x77 33 7xW
8 9x77 21 13x99 34 9xW
9 9x99 22 13x139 35 11xW
10 9x139 23 15x43 36 13xW
11 11x27 24 15x59 37 15xW
12 11x43 25 15x77 38 17xW
13 11x59 26 15x99
For a number of linear symbols, it specifies check character options (“hide”
or “hidden” means dont show in HRT, “visible” means do display in HRT):
@ -5226,7 +5341,7 @@ EXIT STATUS
--ecinos, -t | --types, -v | --version).
1
Human Readable Text was truncated (maximum 159 bytes)
Human Readable Text was truncated (maximum 199 bytes)
(ZINT_WARN_HRT_TRUNCATED)
2
@ -5362,5 +5477,8 @@ Special considerations apply to ITF-14 - see 6.1.2.6 ITF-14.
[11] Codablock-F, Code 16K, Code 49, EAN-2 to EAN-13, ISBN, ITF-14, UPC-A and
UPC-E have compliant quiet zones added by default.
[12] BARCODE_CODE128AB previously used the name BARCODE_CODE128B, which is still
[12] ZINT_CAP_EANUPC was previously named ZINT_CAP_EXTENDABLE, which is still
recognised.
[13] BARCODE_CODE128AB previously used the name BARCODE_CODE128B, which is still
recognised.

View file

@ -1,188 +1,171 @@
.\" Automatically generated by Pandoc 3.1.5
.\" Automatically generated by Pandoc 3.1.9
.\"
.\" Define V font for inline verbatim, using C font in formats
.\" that render this, and otherwise B font.
.ie "\f[CB]x\f[]"x" \{\
. ftr V B
. ftr VI BI
. ftr VB B
. ftr VBI BI
.\}
.el \{\
. ftr V CR
. ftr VI CI
. ftr VB CB
. ftr VBI CBI
.\}
.TH "ZINT" "1" "July 2023" "Version 2.12.0.9" ""
.hy
.TH "ZINT" "1" "November 2023" "Version 2.12.0.9" ""
.SH NAME
.PP
\f[V]zint\f[R] - encode data as a barcode image
\f[CR]zint\f[R] - encode data as a barcode image
.SH SYNOPSIS
.PP
\f[V]zint\f[R] [\f[V]-h\f[R] | \f[V]--help\f[R]]
\f[CR]zint\f[R] [\f[CR]-h\f[R] | \f[CR]--help\f[R]]
.PD 0
.P
.PD
\f[V]zint\f[R] [\f[I]options\f[R]]
\f[CR]zint\f[R] [\f[I]options\f[R]]
.SH DESCRIPTION
.PP
zint takes input data from the command line or a file to encode in a
barcode which is then output to an image file.
.PP
Input data is UTF-8, unless \f[V]--binary\f[R] is specified.
Input data is UTF-8, unless \f[CR]--binary\f[R] is specified.
.PP
Human Readable Text (HRT) is displayed by default for those barcodes
that support HRT, unless \f[V]--notext\f[R] is specified.
that support HRT, unless \f[CR]--notext\f[R] is specified.
.PP
The output image file (specified with \f[V]-o\f[R] | \f[V]--output\f[R])
may be in one of these formats: Windows Bitmap (\f[V]BMP\f[R]), Enhanced
Metafile Format (\f[V]EMF\f[R]), Encapsulated PostScript
(\f[V]EPS\f[R]), Graphics Interchange Format (\f[V]GIF\f[R]), ZSoft
Paintbrush (\f[V]PCX\f[R]), Portable Network Format (\f[V]PNG\f[R]),
Scalable Vector Graphic (\f[V]SVG\f[R]), or Tagged Image File Format
(\f[V]TIF\f[R]).
The output image file (specified with \f[CR]-o\f[R] |
\f[CR]--output\f[R]) may be in one of these formats: Windows Bitmap
(\f[CR]BMP\f[R]), Enhanced Metafile Format (\f[CR]EMF\f[R]),
Encapsulated PostScript (\f[CR]EPS\f[R]), Graphics Interchange Format
(\f[CR]GIF\f[R]), ZSoft Paintbrush (\f[CR]PCX\f[R]), Portable Network
Format (\f[CR]PNG\f[R]), Scalable Vector Graphic (\f[CR]SVG\f[R]), or
Tagged Image File Format (\f[CR]TIF\f[R]).
.SH OPTIONS
.TP
\f[V]-h\f[R], \f[V]--help\f[R]
\f[CR]-h\f[R], \f[CR]--help\f[R]
Print usage information summarizing command line options.
.TP
\f[V]-b TYPE\f[R], \f[V]--barcode=TYPE\f[R]
\f[CR]-b TYPE\f[R], \f[CR]--barcode=TYPE\f[R]
Set the barcode symbology that will be used to encode the data.
\f[I]TYPE\f[R] is the number or name of the barcode symbology.
If not given, the symbology defaults to 20 (Code 128).
To see what types are available, use the \f[V]-t\f[R] |
\f[V]--types\f[R] option.
To see what types are available, use the \f[CR]-t\f[R] |
\f[CR]--types\f[R] option.
Type names are case-insensitive, and non-alphanumerics are ignored.
.TP
\f[V]--addongap=INTEGER\f[R]
\f[CR]--addongap=INTEGER\f[R]
For EAN/UPC symbologies, set the gap between the main data and the
add-on.
\f[I]INTEGER\f[R] is in integral multiples of the X-dimension.
The maximum gap that can be set is 12.
The minimum is 7, except for UPC-A, when the minimum is 9.
.TP
\f[V]--batch\f[R]
Treat each line of an input file specified with \f[V]-i\f[R] |
\f[V]--input\f[R] as a separate data set and produce a barcode image for
each one.
\f[CR]--batch\f[R]
Treat each line of an input file specified with \f[CR]-i\f[R] |
\f[CR]--input\f[R] as a separate data set and produce a barcode image
for each one.
The barcode images are outputted by default to numbered filenames
starting with \[lq]00001.png\[rq], \[lq]00002.png\[rq] etc., which can
be changed by using the \f[V]-o\f[R] | \f[V]--output\f[R] option.
be changed by using the \f[CR]-o\f[R] | \f[CR]--output\f[R] option.
.TP
\f[V]--bg=COLOUR\f[R]
\f[CR]--bg=COLOUR\f[R]
Specify a background (paper) colour where \f[I]COLOUR\f[R] is in
hexadecimal \f[V]RRGGBB\f[R] or \f[V]RRGGBBAA\f[R] format or in decimal
\f[V]C,M,Y,K\f[R] percentages format.
hexadecimal \f[CR]RRGGBB\f[R] or \f[CR]RRGGBBAA\f[R] format or in
decimal \f[CR]C,M,Y,K\f[R] percentages format.
.TP
\f[V]--binary\f[R]
\f[CR]--binary\f[R]
Treat input data as raw 8-bit binary data instead of the default UTF-8.
Automatic code page translation to an ECI page is disabled, and no
validation of the data\[cq]s character encoding takes place.
.TP
\f[V]--bind\f[R]
\f[CR]--bind\f[R]
Add horizontal boundary bars (also known as bearer bars) to the symbol.
The width of the boundary bars is specified by the \f[V]--border\f[R]
The width of the boundary bars is specified by the \f[CR]--border\f[R]
option.
\f[V]--bind\f[R] can also be used to add row separator bars to symbols
stacked with multiple \f[V]-d\f[R] | \f[V]--data\f[R] inputs, in which
\f[CR]--bind\f[R] can also be used to add row separator bars to symbols
stacked with multiple \f[CR]-d\f[R] | \f[CR]--data\f[R] inputs, in which
case the width of the separator bars is specified with the
\f[V]--separator\f[R] option.
\f[CR]--separator\f[R] option.
.TP
\f[V]--bindtop\f[R]
\f[CR]--bindtop\f[R]
Add a horizontal boundary bar to the top of the symbol.
The width of the boundary bar is specified by the \f[V]--border\f[R]
The width of the boundary bar is specified by the \f[CR]--border\f[R]
option.
.TP
\f[V]--bold\f[R]
\f[CR]--bold\f[R]
Use bold text for the Human Readable Text (HRT).
.TP
\f[V]--border=INTEGER\f[R]
Set the width of boundary bars (\f[V]--bind\f[R] or \f[V]--bindtop\f[R])
or box borders (\f[V]--box\f[R]), where \f[I]INTEGER\f[R] is in integral
multiples of the X-dimension.
\f[CR]--border=INTEGER\f[R]
Set the width of boundary bars (\f[CR]--bind\f[R] or
\f[CR]--bindtop\f[R]) or box borders (\f[CR]--box\f[R]), where
\f[I]INTEGER\f[R] is in integral multiples of the X-dimension.
The default is zero.
.TP
\f[V]--box\f[R]
\f[CR]--box\f[R]
Add a box around the symbol.
The width of the borders is specified by the \f[V]--border\f[R] option.
The width of the borders is specified by the \f[CR]--border\f[R] option.
.TP
\f[V]--cmyk\f[R]
\f[CR]--cmyk\f[R]
Use the CMYK colour space when outputting to Encapsulated PostScript
(EPS) or TIF files.
.TP
\f[V]--cols=INTEGER\f[R]
\f[CR]--cols=INTEGER\f[R]
Set the number of data columns in the symbol to \f[I]INTEGER\f[R].
Affects Codablock-F, DotCode, GS1 DataBar Expanded Stacked
(DBAR_EXPSTK), MicroPDF417 and PDF417 symbols.
.TP
\f[V]--compliantheight\f[R]
Warn if the height specified by the \f[V]--height\f[R] option is not
compliant with the barcode\[cq]s specification, or if \f[V]--height\f[R]
is not given, default to the height specified by the specification (if
any).
\f[CR]--compliantheight\f[R]
Warn if the height specified by the \f[CR]--height\f[R] option is not
compliant with the barcode\[cq]s specification, or if
\f[CR]--height\f[R] is not given, default to the height specified by the
specification (if any).
.TP
\f[V]-d\f[R], \f[V]--data=DATA\f[R]
\f[CR]-d\f[R], \f[CR]--data=DATA\f[R]
Specify the input \f[I]DATA\f[R] to encode.
The \f[V]--esc\f[R] option may be used to enter non-printing characters
The \f[CR]--esc\f[R] option may be used to enter non-printing characters
using escape sequences.
The \f[I]DATA\f[R] should be UTF-8, unless the \f[V]--binary\f[R] option
is given, in which case it can be anything.
The \f[I]DATA\f[R] should be UTF-8, unless the \f[CR]--binary\f[R]
option is given, in which case it can be anything.
.TP
\f[V]--direct\f[R]
\f[CR]--direct\f[R]
Send output to stdout, which in most cases should be re-directed to a
pipe or a file.
Use \f[V]--filetype\f[R] to specify output format.
Use \f[CR]--filetype\f[R] to specify output format.
.TP
\f[V]--dmiso144\f[R]
\f[CR]--dmiso144\f[R]
For Data Matrix symbols, use the standard ISO/IEC codeword placement for
144 x 144 (\f[V]--vers=24\f[R]) sized symbols, instead of the default
144 x 144 (\f[CR]--vers=24\f[R]) sized symbols, instead of the default
\[lq]de facto\[rq] placement (which rotates the placement of ECC
codewords).
.TP
\f[V]--dmre\f[R]
\f[CR]--dmre\f[R]
For Data Matrix symbols, allow Data Matrix Rectangular Extended (DMRE)
sizes when considering automatic sizes.
See also \f[V]--square\f[R].
See also \f[CR]--square\f[R].
.TP
\f[V]--dotsize=NUMBER\f[R]
Set the radius of the dots in dotty mode (\f[V]--dotty\f[R]).
\f[CR]--dotsize=NUMBER\f[R]
Set the radius of the dots in dotty mode (\f[CR]--dotty\f[R]).
\f[I]NUMBER\f[R] is in X-dimensions, and may be floating-point.
The default is 0.8.
.TP
\f[V]--dotty\f[R]
\f[CR]--dotty\f[R]
Use dots instead of squares for matrix symbols.
DotCode is always in dotty mode.
.TP
\f[V]--dump\f[R]
\f[CR]--dump\f[R]
Dump a hexadecimal representation of the symbol\[cq]s encodation to
stdout.
The same representation may be outputted to a file by using a
\f[V].txt\f[R] extension with \f[V]-o\f[R] | \f[V]--output\f[R] or by
specifying \f[V]--filetype=txt\f[R].
\f[CR].txt\f[R] extension with \f[CR]-o\f[R] | \f[CR]--output\f[R] or by
specifying \f[CR]--filetype=txt\f[R].
.TP
\f[V]-e\f[R], \f[V]--ecinos\f[R]
\f[CR]-e\f[R], \f[CR]--ecinos\f[R]
Display the table of ECIs (Extended Channel Interpretations).
.TP
\f[V]--eci=INTEGER\f[R]
\f[CR]--eci=INTEGER\f[R]
Set the ECI code for the input data to \f[I]INTEGER\f[R].
See \f[V]-e\f[R] | \f[V]--ecinos\f[R] for a list of the ECIs available.
See \f[CR]-e\f[R] | \f[CR]--ecinos\f[R] for a list of the ECIs
available.
ECIs are supported by Aztec Code, Code One, Data Matrix, DotCode, Grid
Matrix, Han Xin Code, MaxiCode, MicroPDF417, PDF417, QR Code, rMQR and
Ultracode.
.TP
\f[V]--embedfont\f[R]
\f[CR]--embedfont\f[R]
For vector output, embed the font in the file for portability.
Currently only available for SVG output.
.TP
\f[V]--esc\f[R]
\f[CR]--esc\f[R]
Process escape characters in the input data.
The escape sequences are:
.RS
.IP
.nf
\f[C]
.EX
\[rs]0 (0x00) NUL Null character
\[rs]E (0x04) EOT End of Transmission
\[rs]a (0x07) BEL Bell
@ -206,90 +189,89 @@ The escape sequences are:
where NNNN is hexadecimal
\[rs]UNNNNNN (U+NNNNNN) Any 21-bit Unicode character
where NNNNNN is hexadecimal
\f[R]
.fi
.EE
.RE
.TP
\f[V]--extraesc\f[R]
Process the special escape sequences \f[V]\[rs]\[ha]A\f[R],
\f[V]\[rs]\[ha]B\f[R] and \f[V]\[rs]\[ha]C\f[R] that allow manual
\f[CR]--extraesc\f[R]
Process the special escape sequences \f[CR]\[rs]\[ha]A\f[R],
\f[CR]\[rs]\[ha]B\f[R] and \f[CR]\[rs]\[ha]C\f[R] that allow manual
switching of Code Sets (Code 128 only).
The sequence \f[V]\[rs]\[ha]\[ha]\f[R] can be used to encode data that
The sequence \f[CR]\[rs]\[ha]\[ha]\f[R] can be used to encode data that
contains special escape sequences.
.TP
\f[V]--fast\f[R]
\f[CR]--fast\f[R]
Use faster if less optimal encodation or other shortcuts (affects Data
Matrix, MicroPDF417, PDF417, QRCODE & UPNQR only).
.TP
\f[V]--fg=COLOUR\f[R]
\f[CR]--fg=COLOUR\f[R]
Specify a foreground (ink) colour where \f[I]COLOUR\f[R] is in
hexadecimal \f[V]RRGGBB\f[R] or \f[V]RRGGBBAA\f[R] format or in decimal
\f[V]C,M,Y,K\f[R] percentages format.
hexadecimal \f[CR]RRGGBB\f[R] or \f[CR]RRGGBBAA\f[R] format or in
decimal \f[CR]C,M,Y,K\f[R] percentages format.
.TP
\f[V]--filetype=TYPE\f[R]
\f[CR]--filetype=TYPE\f[R]
Set the output file type to \f[I]TYPE\f[R], which is one of
\f[V]BMP\f[R], \f[V]EMF\f[R], \f[V]EPS\f[R], \f[V]GIF\f[R],
\f[V]PCX\f[R], \f[V]PNG\f[R], \f[V]SVG\f[R], \f[V]TIF\f[R],
\f[V]TXT\f[R].
\f[CR]BMP\f[R], \f[CR]EMF\f[R], \f[CR]EPS\f[R], \f[CR]GIF\f[R],
\f[CR]PCX\f[R], \f[CR]PNG\f[R], \f[CR]SVG\f[R], \f[CR]TIF\f[R],
\f[CR]TXT\f[R].
.TP
\f[V]--fullmultibyte\f[R]
\f[CR]--fullmultibyte\f[R]
Use the multibyte modes of Grid Matrix, Han Xin and QR Code for
non-ASCII data.
.TP
\f[V]--gs1\f[R]
\f[CR]--gs1\f[R]
Treat input as GS1 compatible data.
Application Identifiers (AIs) should be placed in square brackets
\f[V]\[dq][]\[dq]\f[R] (but see \f[V]--gs1parens\f[R]).
\f[CR]\[dq][]\[dq]\f[R] (but see \f[CR]--gs1parens\f[R]).
.TP
\f[V]--gs1nocheck\f[R]
\f[CR]--gs1nocheck\f[R]
Do not check the validity of GS1 data.
.TP
\f[V]--gs1parens\f[R]
Process parentheses \f[V]\[dq]()\[dq]\f[R] as GS1 AI delimiters, rather
than square brackets \f[V]\[dq][]\[dq]\f[R].
\f[CR]--gs1parens\f[R]
Process parentheses \f[CR]\[dq]()\[dq]\f[R] as GS1 AI delimiters, rather
than square brackets \f[CR]\[dq][]\[dq]\f[R].
The input data must not otherwise contain parentheses.
.TP
\f[V]--gssep\f[R]
For Data Matrix in GS1 mode, use \f[V]GS\f[R] (0x1D) as the GS1 data
separator instead of \f[V]FNC1\f[R].
\f[CR]--gssep\f[R]
For Data Matrix in GS1 mode, use \f[CR]GS\f[R] (0x1D) as the GS1 data
separator instead of \f[CR]FNC1\f[R].
.TP
\f[V]--guarddescent=NUMBER\f[R]
\f[CR]--guarddescent=NUMBER\f[R]
For EAN/UPC symbols, set the height the guard bars descend below the
main bars, where \f[I]NUMBER\f[R] is in X-dimensions.
\f[I]NUMBER\f[R] may be floating-point.
.TP
\f[V]--guardwhitespace\f[R]
For EAN/UPC symbols, add quiet zone indicators \f[V]\[dq]<\[dq]\f[R]
and/or \f[V]\[dq]>\[dq]\f[R] to HRT where applicable.
\f[CR]--guardwhitespace\f[R]
For EAN/UPC symbols, add quiet zone indicators \f[CR]\[dq]<\[dq]\f[R]
and/or \f[CR]\[dq]>\[dq]\f[R] to HRT where applicable.
.TP
\f[V]--height=NUMBER\f[R]
\f[CR]--height=NUMBER\f[R]
Set the height of the symbol in X-dimensions.
\f[I]NUMBER\f[R] may be floating-point.
.TP
\f[V]--heightperrow\f[R]
\f[CR]--heightperrow\f[R]
Treat height as per-row.
Affects Codablock-F, Code 16K, Code 49, GS1 DataBar Expanded Stacked
(DBAR_EXPSTK), MicroPDF417 and PDF417.
.TP
\f[V]-i\f[R], \f[V]--input=FILE\f[R]
\f[CR]-i\f[R], \f[CR]--input=FILE\f[R]
Read the input data from \f[I]FILE\f[R].
Specify a single hyphen (\f[V]-\f[R]) for \f[I]FILE\f[R] to read from
Specify a single hyphen (\f[CR]-\f[R]) for \f[I]FILE\f[R] to read from
stdin.
.TP
\f[V]--init\f[R]
\f[CR]--init\f[R]
Create a Reader Initialisation (Programming) symbol.
.TP
\f[V]--mask=INTEGER\f[R]
\f[CR]--mask=INTEGER\f[R]
Set the masking pattern to use for DotCode, Han Xin or QR Code to
\f[I]INTEGER\f[R], overriding the automatic selection.
.TP
\f[V]--mirror\f[R]
\f[CR]--mirror\f[R]
Use the batch data to determine the filename in batch mode
(\f[V]--batch\f[R]).
The \f[V]-o\f[R] | \f[V]--output\f[R] option can be used to specify an
(\f[CR]--batch\f[R]).
The \f[CR]-o\f[R] | \f[CR]--output\f[R] option can be used to specify an
output directory (any filename will be ignored).
.TP
\f[V]--mode=INTEGER\f[R]
\f[CR]--mode=INTEGER\f[R]
For MaxiCode and GS1 Composite symbols, set the encoding mode to
\f[I]INTEGER\f[R].
.RS
@ -297,80 +279,74 @@ For MaxiCode and GS1 Composite symbols, set the encoding mode to
For MaxiCode (SCM is Structured Carrier Message, with 3 fields:
postcode, 3-digit ISO 3166-1 country code, 3-digit service code):
.IP
.nf
\f[C]
.EX
2 SCM with 9-digit numeric postcode
3 SCM with 6-character alphanumeric postcode
4 Enhanced ECC for the primary part of the message
5 Enhanced ECC for all of the message
6 Reader Initialisation (Programming)
\f[R]
.fi
.EE
.PP
For GS1 Composite symbols (names end in \f[V]_CC\f[R], i.e.\ EANX_CC,
For GS1 Composite symbols (names end in \f[CR]_CC\f[R], i.e.\ EANX_CC,
GS1_128_CC, DBAR_OMN_CC etc.):
.IP
.nf
\f[C]
.EX
1 CC-A
2 CC-B
3 CC-C (GS1_128_CC only)
\f[R]
.fi
.EE
.RE
.TP
\f[V]--nobackground\f[R]
\f[CR]--nobackground\f[R]
Remove the background colour (EMF, EPS, GIF, PNG, SVG and TIF only).
.TP
\f[V]--noquietzones\f[R]
\f[CR]--noquietzones\f[R]
Disable any quiet zones for symbols that define them by default.
.TP
\f[V]--notext\f[R]
\f[CR]--notext\f[R]
Remove the Human Readable Text (HRT).
.TP
\f[V]-o\f[R], \f[V]--output=FILE\f[R]
\f[CR]-o\f[R], \f[CR]--output=FILE\f[R]
Send the output to \f[I]FILE\f[R].
When not in batch mode, the default is \[lq]out.png\[rq] (or
\[lq]out.gif\[rq] if zint built without PNG support).
When in batch mode (\f[V]--batch\f[R]), special characters can be used
When in batch mode (\f[CR]--batch\f[R]), special characters can be used
to format the output filenames:
.RS
.IP
.nf
\f[C]
.EX
\[ti] Insert a number or 0
# Insert a number or space
\[at] Insert a number or * (+ on Windows)
Any other Insert literally
\f[R]
.fi
.EE
.RE
.TP
\f[V]--primary=STRING\f[R]
\f[CR]--primary=STRING\f[R]
For MaxiCode, set the content of the primary message.
For GS1 Composite symbols, set the content of the linear symbol.
.TP
\f[V]--quietzones\f[R]
\f[CR]--quietzones\f[R]
Add compliant quiet zones for symbols that specify them.
This is in addition to any whitespace specified by \f[V]-w\f[R] |
\f[V]--whitesp\f[R] or \f[V]--vwhitesp\f[R].
This is in addition to any whitespace specified by \f[CR]-w\f[R] |
\f[CR]--whitesp\f[R] or \f[CR]--vwhitesp\f[R].
.TP
\f[V]-r\f[R], \f[V]--reverse\f[R]
\f[CR]-r\f[R], \f[CR]--reverse\f[R]
Reverse the foreground and background colours (white on black).
Known as \[lq]reflectance reversal\[rq] or \[lq]reversed
reflectance\[rq].
.TP
\f[V]--rotate=INTEGER\f[R]
\f[CR]--rotate=INTEGER\f[R]
Rotate the symbol by \f[I]INTEGER\f[R] degrees, where \f[I]INTEGER\f[R]
can be 0, 90, 270 or 360.
.TP
\f[V]--rows=INTEGER\f[R]
\f[CR]--rows=INTEGER\f[R]
Set the number of rows for Codablock-F or PDF417 to \f[I]INTEGER\f[R].
It will also set the minimum number of rows for Code 16K or Code 49, and
the maximum number of rows for GS1 DataBar Expanded Stacked
(DBAR_EXPSTK).
.TP
\f[V]--scale=NUMBER\f[R]
\f[CR]--scale=NUMBER\f[R]
Adjust the size of the X-dimension.
\f[I]NUMBER\f[R] may be floating-point, and is multiplied by 2 (except
for MaxiCode) before being applied.
@ -383,15 +359,17 @@ EMF output, and by 2 otherwise.
Increments of 0.5 (half-integers) are recommended for non-MaxiCode
raster output (BMP, GIF, PCX, PNG and TIF).
.PP
See also \f[V]--scalexdimdp\f[R] below.
See also \f[CR]--scalexdimdp\f[R] below.
.RE
.TP
\f[V]--scalexdimdp=X[,R]\f[R]
\f[CR]--scalexdimdp=X[,R]\f[R]
Scale the image according to X-dimension \f[I]X\f[R] and resolution
\f[I]R\f[R], where \f[I]X\f[R] is in mm and \f[I]R\f[R] is in dpmm (dots
per mm).
\f[I]X\f[R] and \f[I]R\f[R] may be floating-point.
\f[I]R\f[R] is optional and defaults to 12 dpmm (approximately 300 dpi).
\f[I]X\f[R] may be zero in which case a symbology-specific default is
used.
.RS
.PP
The scaling takes into account the output filetype, and deals with all
@ -399,22 +377,21 @@ the details mentioned above.
Units may be specified for \f[I]X\f[R] by appending \[lq]in\[rq] (inch)
or \[lq]mm\[rq], and for \f[I]R\f[R] by appending \[lq]dpi\[rq] (dots
per inch) or \[lq]dpmm\[rq] -
e.g.\ \f[V]--scalexdimdp=0.013in,300dpi\f[R].
e.g.\ \f[CR]--scalexdimdp=0.013in,300dpi\f[R].
.RE
.TP
\f[V]--scmvv=INTEGER\f[R]
\f[CR]--scmvv=INTEGER\f[R]
For MaxiCode, prefix the Structured Carrier Message (SCM) with
\f[V]\[dq][)>\[rs]R01\[rs]Gvv\[dq]\f[R], where \f[V]vv\f[R] is a 2-digit
\f[I]INTEGER\f[R].
\f[CR]\[dq][)>\[rs]R01\[rs]Gvv\[dq]\f[R], where \f[CR]vv\f[R] is a
2-digit \f[I]INTEGER\f[R].
.TP
\f[V]--secure=INTEGER\f[R]
\f[CR]--secure=INTEGER\f[R]
Set the error correction level (ECC) to \f[I]INTEGER\f[R].
The meaning is specific to the following matrix symbols (all except
PDF417 are approximate):
.RS
.IP
.nf
\f[C]
.EX
Aztec Code 1 to 4 (10%, 23%, 36%, 50%)
Grid Matrix 1 to 5 (10% to 50%)
Han Xin 1 to 4 (8%, 15%, 23%, 30%)
@ -423,31 +400,30 @@ PDF417 0 to 8 (2\[ha](INTEGER + 1) codewords)
QR Code 1 to 4 (7%, 15%, 25%, 30%) (L, M, Q, H)
rMQR 2 or 4 (15% or 30%) (M or H)
Ultracode 1 to 6 (0%, 5%, 9%, 17%, 25%, 33%)
\f[R]
.fi
.EE
.RE
.TP
\f[V]--segN=ECI,DATA\f[R]
\f[CR]--segN=ECI,DATA\f[R]
Set the \f[I]ECI\f[R] & \f[I]DATA\f[R] content for segment N, where N is
1 to 9.
\f[V]-d\f[R] | \f[V]--data\f[R] must still be given, and counts as
segment 0, its ECI given by \f[V]--eci\f[R].
\f[CR]-d\f[R] | \f[CR]--data\f[R] must still be given, and counts as
segment 0, its ECI given by \f[CR]--eci\f[R].
Segments must be consecutive.
.TP
\f[V]--separator=INTEGER\f[R]
\f[CR]--separator=INTEGER\f[R]
Set the height of row separator bars for stacked symbologies, where
\f[I]INTEGER\f[R] is in integral multiples of the X-dimension.
The default is zero.
.TP
\f[V]--small\f[R]
\f[CR]--small\f[R]
Use small text for Human Readable Text (HRT).
.TP
\f[V]--square\f[R]
\f[CR]--square\f[R]
For Data Matrix symbols, exclude rectangular sizes when considering
automatic sizes.
See also \f[V]--dmre\f[R].
See also \f[CR]--dmre\f[R].
.TP
\f[V]--structapp=I,C[,ID]\f[R]
\f[CR]--structapp=I,C[,ID]\f[R]
Set Structured Append info, where \f[I]I\f[R] is the 1-based index,
\f[I]C\f[R] is the total number of symbols in the sequence, and
\f[I]ID\f[R], which is optional, is the identifier that all symbols in
@ -456,17 +432,18 @@ Structured Append is supported by Aztec Code, Code One, Data Matrix,
DotCode, Grid Matrix, MaxiCode, MicroPDF417, PDF417, QR Code and
Ultracode.
.TP
\f[V]-t\f[R], \f[V]--types\f[R]
\f[CR]-t\f[R], \f[CR]--types\f[R]
Display the table of barcode types (symbologies).
The numbers or names can be used with \f[V]-b\f[R] |
\f[V]--barcode\f[R].
The numbers or names can be used with \f[CR]-b\f[R] |
\f[CR]--barcode\f[R].
.TP
\f[V]--textgap=NUMBER\f[R]
\f[CR]--textgap=NUMBER\f[R]
Adjust the gap between the barcode and the Human Readable Text (HRT).
\f[I]NUMBER\f[R] is in X-dimensions, and may be floating-point.
Maximum is 10; zero results in the default 1X being used.
Maximum is 10 and minimum is -5.
The default is 1.
.TP
\f[V]--vers=INTEGER\f[R]
\f[CR]--vers=INTEGER\f[R]
Set the symbol version (size, check digits, other options) to
\f[I]INTEGER\f[R].
The meaning is symbol-specific.
@ -474,25 +451,117 @@ The meaning is symbol-specific.
.PP
For most matrix symbols, it specifies size:
.IP
.nf
\f[C]
.EX
Aztec Code 1 to 36 (1 to 4 compact)
Code One 1 to 10
Data Matrix 1 to 48 (31 to 48 DMRE)
1 15x15 13 53x53 25 105x105
2 19x19 14 57x57 26 109x109
3 23x23 15 61x61 27 113x113
4 27x27 16 67x67 28 117x117
5 19x19 17 71x71 29 121x121
6 23x23 18 75x75 30 125x125
7 27x27 19 79x79 31 131x131
8 31x31 20 83x83 32 135x135
9 37x37 21 87x87 33 139x139
10 41x41 22 91x91 34 143x143
11 45x45 23 95x95 35 147x147
12 49x49 24 101x101 36 151x151
Code One 1 to 10 (9 and 10 variable width) (WxH)
1 16x18 6 70x76
2 22x22 7 104x98
3 28x28 8 148x134
4 40x42 9 Wx8
5 52x54 10 Wx16
Data Matrix 1 to 48 (31 to 48 DMRE) (HxW)
1 10x10 17 72x72 33 8x80
2 12x12 18 80x80 34 8x96
3 14x14 19 88x88 35 8x120
4 16x16 20 96x96 36 8x144
5 18x18 21 104x104 37 12x64
6 20x20 22 120x120 38 12x88
7 22x22 23 132x132 39 16x64
8 24x24 24 144x144 40 20x36
9 26x26 25 8x18 41 20x44
10 32x32 26 8x32 42 20x64
11 36x36 28 12x26 43 22x48
12 40x40 28 12x36 44 24x48
13 44x44 29 16x36 45 24x64
14 48x48 30 16x48 46 26x40
15 52x52 31 8x48 47 26x48
16 64x64 32 8x64 48 26x64
Grid Matrix 1 to 13
1 18x18 6 78x78 11 138x138
2 30x30 7 90x90 12 150x150
3 42x42 8 102x102 13 162x162
4 54x54 9 114x114
5 66x66 10 126x126
Han Xin 1 to 84
1 23x23 29 79x79 57 135x135
2 25x25 30 81x81 58 137x137
3 27x27 31 83x83 59 139x139
4 29x29 32 85x85 60 141x141
5 31x31 33 87x87 61 143x143
6 33x33 34 89x89 62 145x145
7 35x35 35 91x91 63 147x147
8 37x37 36 93x93 64 149x149
9 39x39 37 95x95 65 151x151
10 41x41 38 97x97 66 153x153
11 43x43 39 99x99 67 155x155
12 45x45 40 101x101 68 157x157
13 47x47 41 103x103 69 159x159
14 49x49 42 105x105 70 161x161
15 51x51 43 107x107 71 163x163
16 53x53 44 109x109 72 165x165
17 55x55 45 111x111 73 167x167
18 57x57 46 113x113 74 169x169
19 59x59 47 115x115 75 171x171
20 61x61 48 117x117 76 173x173
21 63x63 49 119x119 77 175x175
22 65x65 50 121x121 78 177x177
23 67x67 51 123x123 79 179x179
24 69x69 52 125x125 80 181x181
25 71x71 53 127x127 81 183x183
26 73x73 54 129x129 82 185x185
27 75x75 55 131x131 83 187x187
28 77x77 56 133x133 84 189x189
Micro QR 1 to 4 (M1, M2, M3, M4)
1 11x11 3 15x15
2 13x13 4 17x17
QR Code 1 to 40
rMQR 1 to 38 (33 to 38 automatic width)
\f[R]
.fi
1 21x21 15 77x77 29 133x133
2 25x25 16 81x81 30 137x137
3 29x29 17 85x85 31 141x141
4 33x33 18 89x89 32 145x145
5 37x37 19 93x93 33 149x149
6 41x41 20 97x97 34 153x153
7 45x45 21 101x101 35 157x157
8 49x49 22 105x105 36 161x161
9 53x53 23 109x109 37 165x165
10 57x57 24 113x113 38 169x169
11 61x61 25 117x117 39 173x173
12 65x65 26 121x121 40 177x177
13 69x69 27 125x125
14 73x73 28 129x129
rMQR 1 to 38 (33 to 38 automatic width) (HxW)
1 7x73 14 11x77 27 15x139
2 7x59 15 11x99 28 17x43
3 7x77 16 11x139 29 17x59
4 7x99 17 13x27 30 17x77
5 7x139 18 13x43 31 17x99
6 9x43 19 13x59 32 17x139
7 9x59 20 13x77 33 7xW
8 9x77 21 13x99 34 9xW
9 9x99 22 13x139 35 11xW
10 9x139 23 15x43 36 13xW
11 11x27 24 15x59 37 15xW
12 11x43 25 15x77 38 17xW
13 11x59 26 15x99
.EE
.PP
For a number of linear symbols, it specifies check character options
(\[lq]hide\[rq] or \[lq]hidden\[rq] means don\[cq]t show in HRT,
\[lq]visible\[rq] means do display in HRT):
.IP
.nf
\f[C]
.EX
C25IATA 1 or 2 (add visible or hidden check digit)
C25IND ditto
C25INTER ditto
@ -512,112 +581,104 @@ MSI Plessey 0 to 6 (none to various visible options)
3, 4 (mod-11 IBM, mod-11 IBM + mod-10)
5, 6 (mod-11 NCR, mod-11 NCR + mod-10)
+10 (hide)
\f[R]
.fi
.EE
.PP
For a few other symbologies, it specifies other characteristics:
.IP
.nf
\f[C]
.EX
Channel Code 3 to 8 (no. of channels)
DAFT 50 to 900 (permille tracker ratio)
DPD 1 (relabel)
PZN 1 (PZN7 instead of default PZN8)
Ultracode 2 (revision 2)
VIN 1 (add international prefix)
\f[R]
.fi
.EE
.RE
.TP
\f[V]-v\f[R], \f[V]--version\f[R]
\f[CR]-v\f[R], \f[CR]--version\f[R]
Display zint version.
.TP
\f[V]--vwhitesp=INTEGER\f[R]
\f[CR]--vwhitesp=INTEGER\f[R]
Set the height of vertical whitespace above and below the barcode, where
\f[I]INTEGER\f[R] is in integral multiples of the X-dimension.
.TP
\f[V]-w\f[R], \f[V]--whitesp=INTEGER\f[R]
\f[CR]-w\f[R], \f[CR]--whitesp=INTEGER\f[R]
Set the width of horizontal whitespace either side of the barcode, where
\f[I]INTEGER\f[R] is in integral multiples of the X-dimension.
.TP
\f[V]--werror\f[R]
\f[CR]--werror\f[R]
Convert all warnings into errors.
.SH EXIT STATUS
.TP
\f[V]0\f[R]
Success (including when given informational options \f[V]-h\f[R] |
\f[V]--help\f[R], \f[V]-e\f[R] | \f[V]--ecinos\f[R], \f[V]-t\f[R] |
\f[V]--types\f[R], \f[V]-v\f[R] | \f[V]--version\f[R]).
\f[CR]0\f[R]
Success (including when given informational options \f[CR]-h\f[R] |
\f[CR]--help\f[R], \f[CR]-e\f[R] | \f[CR]--ecinos\f[R], \f[CR]-t\f[R] |
\f[CR]--types\f[R], \f[CR]-v\f[R] | \f[CR]--version\f[R]).
.TP
\f[V]1\f[R]
Human Readable Text was truncated (maximum 159 bytes)
(\f[V]ZINT_WARN_HRT_TRUNCATED\f[R])
\f[CR]1\f[R]
Human Readable Text was truncated (maximum 199 bytes)
(\f[CR]ZINT_WARN_HRT_TRUNCATED\f[R])
.TP
\f[V]2\f[R]
\f[CR]2\f[R]
Invalid option given but overridden by Zint
(\f[V]ZINT_WARN_INVALID_OPTION\f[R])
(\f[CR]ZINT_WARN_INVALID_OPTION\f[R])
.TP
\f[V]3\f[R]
Automatic ECI inserted by Zint (\f[V]ZINT_WARN_USES_ECI\f[R])
\f[CR]3\f[R]
Automatic ECI inserted by Zint (\f[CR]ZINT_WARN_USES_ECI\f[R])
.TP
\f[V]4\f[R]
\f[CR]4\f[R]
Symbol created not compliant with standards
(\f[V]ZINT_WARN_NONCOMPLIANT\f[R])
(\f[CR]ZINT_WARN_NONCOMPLIANT\f[R])
.TP
\f[V]5\f[R]
Input data wrong length (\f[V]ZINT_ERROR_TOO_LONG\f[R])
\f[CR]5\f[R]
Input data wrong length (\f[CR]ZINT_ERROR_TOO_LONG\f[R])
.TP
\f[V]6\f[R]
Input data incorrect (\f[V]ZINT_ERROR_INVALID_DATA\f[R])
\f[CR]6\f[R]
Input data incorrect (\f[CR]ZINT_ERROR_INVALID_DATA\f[R])
.TP
\f[V]7\f[R]
Input check digit incorrect (\f[V]ZINT_ERROR_INVALID_CHECK\f[R])
\f[CR]7\f[R]
Input check digit incorrect (\f[CR]ZINT_ERROR_INVALID_CHECK\f[R])
.TP
\f[V]8\f[R]
Incorrect option given (\f[V]ZINT_ERROR_INVALID_OPTION\f[R])
\f[CR]8\f[R]
Incorrect option given (\f[CR]ZINT_ERROR_INVALID_OPTION\f[R])
.TP
\f[V]9\f[R]
\f[CR]9\f[R]
Internal error (should not happen)
(\f[V]ZINT_ERROR_ENCODING_PROBLEM\f[R])
(\f[CR]ZINT_ERROR_ENCODING_PROBLEM\f[R])
.TP
\f[V]10\f[R]
Error opening output file (\f[V]ZINT_ERROR_FILE_ACCESS\f[R])
\f[CR]10\f[R]
Error opening output file (\f[CR]ZINT_ERROR_FILE_ACCESS\f[R])
.TP
\f[V]11\f[R]
Memory allocation (malloc) failure (\f[V]ZINT_ERROR_MEMORY\f[R])
\f[CR]11\f[R]
Memory allocation (malloc) failure (\f[CR]ZINT_ERROR_MEMORY\f[R])
.TP
\f[V]12\f[R]
Error writing to output file (\f[V]ZINT_ERROR_FILE_WRITE\f[R])
\f[CR]12\f[R]
Error writing to output file (\f[CR]ZINT_ERROR_FILE_WRITE\f[R])
.TP
\f[V]13\f[R]
Error counterpart of warning if \f[V]--werror\f[R] given
(\f[V]ZINT_ERROR_USES_ECI\f[R])
\f[CR]13\f[R]
Error counterpart of warning if \f[CR]--werror\f[R] given
(\f[CR]ZINT_ERROR_USES_ECI\f[R])
.TP
\f[V]14\f[R]
Error counterpart of warning if \f[V]--werror\f[R] given
(\f[V]ZINT_ERROR_NONCOMPLIANT\f[R])
\f[CR]14\f[R]
Error counterpart of warning if \f[CR]--werror\f[R] given
(\f[CR]ZINT_ERROR_NONCOMPLIANT\f[R])
.TP
\f[V]15\f[R]
Error counterpart of warning if \f[V]--werror\f[R] given
(\f[V]ZINT_ERROR_HRT_TRUNCATED\f[R])
\f[CR]15\f[R]
Error counterpart of warning if \f[CR]--werror\f[R] given
(\f[CR]ZINT_ERROR_HRT_TRUNCATED\f[R])
.SH EXAMPLES
.PP
Create \[lq]out.png\[rq] (or \[lq]out.gif\[rq] if zint built without PNG
support) in the current directory, as a Code 128 symbol.
.IP
.nf
\f[C]
.EX
zint -d \[aq]This Text\[aq]
\f[R]
.fi
.EE
.PP
Create \[lq]qr.svg\[rq] in the current directory, as a QR Code symbol.
.IP
.nf
\f[C]
.EX
zint -b QRCode -d \[aq]This Text\[aq] -o \[aq]qr.svg\[aq]
\f[R]
.fi
.EE
.PP
Use batch mode to read from an input file \[lq]ean13nos.txt\[rq]
containing 13-digit GTINs, to create a series of EAN-13 barcodes,
@ -625,34 +686,25 @@ formatting the output filenames to \[lq]ean001.gif\[rq],
\[lq]ean002.gif\[rq] etc.
using the special character \[lq]\[ti]\[rq].
.IP
.nf
\f[C]
.EX
zint -b EANX --batch -i \[aq]ean13nos.txt\[aq] -o \[aq]ean\[ti]\[ti]\[ti].gif\[aq]
\f[R]
.fi
.EE
.SH BUGS
.PP
Please send bug reports to https://sourceforge.net/p/zint/tickets/.
.SH SEE ALSO
.PP
Full documention for \f[V]zint\f[R] (and the API \f[V]libzint\f[R] and
the GUI \f[V]zint-qt\f[R]) is available from
Full documention for \f[CR]zint\f[R] (and the API \f[CR]libzint\f[R] and
the GUI \f[CR]zint-qt\f[R]) is available from
.IP
.nf
\f[C]
.EX
https://zint.org.uk/manual/
\f[R]
.fi
.EE
.PP
and at
.IP
.nf
\f[C]
.EX
https://sourceforge.net/p/zint/docs/manual.txt
\f[R]
.fi
.EE
.SH CONFORMING TO
.PP
Zint is designed to be compliant with a number of international
standards, including:
.PP
@ -665,9 +717,9 @@ ISO/IEC 16390:2007, ISO/IEC 16023:2000, ISO/IEC 24728:2006, ISO/IEC
15438:2015, ISO/IEC 18004:2015, ISO/IEC 23941:2022, AIM ITS/04-023
(2022)
.SH COPYRIGHT
.PP
Copyright © 2023 Robin Stuart.
Released under GNU GPL 3.0 or later.
.SH AUTHOR
.PP
Robin Stuart <robin@zint.org.uk>
Robin Stuart \c
.MT robin@zint.org.uk
.ME \c

View file

@ -1,6 +1,6 @@
% ZINT(1) Version 2.12.0.9
%
% July 2023
% November 2023
# NAME
@ -327,7 +327,8 @@ Paintbrush (`PCX`), Portable Network Format (`PNG`), Scalable Vector Graphic (`S
`--scalexdimdp=X[,R]`
: Scale the image according to X-dimension *X* and resolution *R*, where *X* is in mm and *R* is in dpmm (dots per
mm). *X* and *R* may be floating-point. *R* is optional and defaults to 12 dpmm (approximately 300 dpi).
mm). *X* and *R* may be floating-point. *R* is optional and defaults to 12 dpmm (approximately 300 dpi). *X* may
be zero in which case a symbology-specific default is used.
The scaling takes into account the output filetype, and deals with all the details mentioned above. Units may be
specified for *X* by appending "in" (inch) or "mm", and for *R* by appending "dpi" (dots per inch) or "dpmm" -
@ -383,7 +384,7 @@ Paintbrush (`PCX`), Portable Network Format (`PNG`), Scalable Vector Graphic (`S
`--textgap=NUMBER`
: Adjust the gap between the barcode and the Human Readable Text (HRT). *NUMBER* is in X-dimensions, and may be
floating-point. Maximum is 10; zero results in the default 1X being used.
floating-point. Maximum is 10 and minimum is -5. The default is 1.
`--vers=INTEGER`
@ -392,13 +393,108 @@ Paintbrush (`PCX`), Portable Network Format (`PNG`), Scalable Vector Graphic (`S
For most matrix symbols, it specifies size:
Aztec Code 1 to 36 (1 to 4 compact)
Code One 1 to 10
Data Matrix 1 to 48 (31 to 48 DMRE)
1 15x15 13 53x53 25 105x105
2 19x19 14 57x57 26 109x109
3 23x23 15 61x61 27 113x113
4 27x27 16 67x67 28 117x117
5 19x19 17 71x71 29 121x121
6 23x23 18 75x75 30 125x125
7 27x27 19 79x79 31 131x131
8 31x31 20 83x83 32 135x135
9 37x37 21 87x87 33 139x139
10 41x41 22 91x91 34 143x143
11 45x45 23 95x95 35 147x147
12 49x49 24 101x101 36 151x151
Code One 1 to 10 (9 and 10 variable width) (WxH)
1 16x18 6 70x76
2 22x22 7 104x98
3 28x28 8 148x134
4 40x42 9 Wx8
5 52x54 10 Wx16
Data Matrix 1 to 48 (31 to 48 DMRE) (HxW)
1 10x10 17 72x72 33 8x80
2 12x12 18 80x80 34 8x96
3 14x14 19 88x88 35 8x120
4 16x16 20 96x96 36 8x144
5 18x18 21 104x104 37 12x64
6 20x20 22 120x120 38 12x88
7 22x22 23 132x132 39 16x64
8 24x24 24 144x144 40 20x36
9 26x26 25 8x18 41 20x44
10 32x32 26 8x32 42 20x64
11 36x36 28 12x26 43 22x48
12 40x40 28 12x36 44 24x48
13 44x44 29 16x36 45 24x64
14 48x48 30 16x48 46 26x40
15 52x52 31 8x48 47 26x48
16 64x64 32 8x64 48 26x64
Grid Matrix 1 to 13
1 18x18 6 78x78 11 138x138
2 30x30 7 90x90 12 150x150
3 42x42 8 102x102 13 162x162
4 54x54 9 114x114
5 66x66 10 126x126
Han Xin 1 to 84
1 23x23 29 79x79 57 135x135
2 25x25 30 81x81 58 137x137
3 27x27 31 83x83 59 139x139
4 29x29 32 85x85 60 141x141
5 31x31 33 87x87 61 143x143
6 33x33 34 89x89 62 145x145
7 35x35 35 91x91 63 147x147
8 37x37 36 93x93 64 149x149
9 39x39 37 95x95 65 151x151
10 41x41 38 97x97 66 153x153
11 43x43 39 99x99 67 155x155
12 45x45 40 101x101 68 157x157
13 47x47 41 103x103 69 159x159
14 49x49 42 105x105 70 161x161
15 51x51 43 107x107 71 163x163
16 53x53 44 109x109 72 165x165
17 55x55 45 111x111 73 167x167
18 57x57 46 113x113 74 169x169
19 59x59 47 115x115 75 171x171
20 61x61 48 117x117 76 173x173
21 63x63 49 119x119 77 175x175
22 65x65 50 121x121 78 177x177
23 67x67 51 123x123 79 179x179
24 69x69 52 125x125 80 181x181
25 71x71 53 127x127 81 183x183
26 73x73 54 129x129 82 185x185
27 75x75 55 131x131 83 187x187
28 77x77 56 133x133 84 189x189
Micro QR 1 to 4 (M1, M2, M3, M4)
1 11x11 3 15x15
2 13x13 4 17x17
QR Code 1 to 40
rMQR 1 to 38 (33 to 38 automatic width)
1 21x21 15 77x77 29 133x133
2 25x25 16 81x81 30 137x137
3 29x29 17 85x85 31 141x141
4 33x33 18 89x89 32 145x145
5 37x37 19 93x93 33 149x149
6 41x41 20 97x97 34 153x153
7 45x45 21 101x101 35 157x157
8 49x49 22 105x105 36 161x161
9 53x53 23 109x109 37 165x165
10 57x57 24 113x113 38 169x169
11 61x61 25 117x117 39 173x173
12 65x65 26 121x121 40 177x177
13 69x69 27 125x125
14 73x73 28 129x129
rMQR 1 to 38 (33 to 38 automatic width) (HxW)
1 7x73 14 11x77 27 15x139
2 7x59 15 11x99 28 17x43
3 7x77 16 11x139 29 17x59
4 7x99 17 13x27 30 17x77
5 7x139 18 13x43 31 17x99
6 9x43 19 13x59 32 17x139
7 9x59 20 13x77 33 7xW
8 9x77 21 13x99 34 9xW
9 9x99 22 13x139 35 11xW
10 9x139 23 15x43 36 13xW
11 11x27 24 15x59 37 15xW
12 11x43 25 15x77 38 17xW
13 11x59 26 15x99
For a number of linear symbols, it specifies check character options ("hide" or "hidden" means don't show in HRT,
"visible" means do display in HRT):
@ -457,7 +553,7 @@ Paintbrush (`PCX`), Portable Network Format (`PNG`), Scalable Vector Graphic (`S
`--version`).
`1`
: Human Readable Text was truncated (maximum 159 bytes) (`ZINT_WARN_HRT_TRUNCATED`)
: Human Readable Text was truncated (maximum 199 bytes) (`ZINT_WARN_HRT_TRUNCATED`)
`2`
: Invalid option given but overridden by Zint (`ZINT_WARN_INVALID_OPTION`)